GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: bence19961 - 2011. június 01. - 14:53:52

Cím: Afk
Írta: bence19961 - 2011. június 01. - 14:53:52
Üdv!
Szeretném publikálni az AFK scriptemet, mely a /afk beírására
-VirtualWorld-t állít
-Lefagyaszt/felolvaszt
KEzdõknek jój jöhet
Elkészítési idõ: 3perc
[pawn]#include <a_samp>
#define FILTERSCRIPT
#define COLOR_RED 0xFF0000FF
new bool:afkstatus=false;
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
if (strcmp(cmd,\"/afk\", true) == 0)
{
   if( !afkstatus )
   {
      TogglePlayerControllable(playerid,0);
      SendClientMessage(playerid, COLOR_RED, \"AFK-BE\");
      SetPlayerVirtualWorld(playerid, 1);
      afkstatus=true;
    }
    else if( afkstatus )
    {
            TogglePlayerControllable(playerid,1);
      SendClientMessage(playerid, COLOR_RED, \"AFK-KI\");
      SetPlayerVirtualWorld(playerid, 0);
            afkstatus=false;
   }
   return 1;
}
}
[/pawn]
Cím: Afk
Írta: mauladam - 2011. június 01. - 19:13:21
Kezdõhöz képest nagyon szép script! GRAT!(Mondjuk ki mondja... :))
Majd bõvitsd!
Cím: Afk
Írta: a]X[e - 2011. június 01. - 19:18:13
Szép lett, gratulálok! :)
Cím: Afk
Írta: Buba - 2011. június 02. - 16:17:01
Jó lett :)
 
Idézetet írta: mauladam date=1306948401\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8507\" data-ipsquote-contentclass=\"forums_Topic
Kezdõhöz képest nagyon szép script! GRAT!(Mondjuk ki mondja... :))
Majd bõvitsd!
 
Nem azt írja hogy õ kezdõ, hanem
 

KEzdõknek jój jöhet
 
[/quote]
Cím: Afk
Írta: Flash - 2011. június 02. - 17:46:14
Látszik, hogy nem kezdõ! :)
Cím: Afk
Írta: bence19961 - 2011. június 02. - 18:37:07
Elég kezdõ vagyok, de ez már nagyjából megy!
Cím: Afk
Írta: ►ѕтa - 2011. június 03. - 07:30:56
Ez viszont nem lesz jó, mert ha valaki afkba lép, bárki ki tud lépni belõle
[pawn]#include <a_samp>
#define COLOR_RED 0xFF0000FF
#define PLAYERS 50 // Férõhelyek számára írd át
new bool:afkstatus[PLAYERS]=false;
public OnPlayerCommandText(playerid, cmdtext[ ])
{
if (strcmp(cmdtext,\"/afk\", true))
{
   if( !afkstatus[playerid] )
   {
      TogglePlayerControllable(playerid,false);
      SendClientMessage(playerid, COLOR_RED, \"AFK-BE\");
      SetPlayerVirtualWorld(playerid, 1);
      afkstatus[playerid]=true;
       }
       else if( afkstatus )
       {
                  TogglePlayerControllable(playerid,true);
      SendClientMessage(playerid, COLOR_RED, \"AFK-KI\");
      SetPlayerVirtualWorld(playerid, 0);
                  afkstatus[playerid]=false;
   }
   return 1;
}
return 0;
}
[/pawn]
Cím: Afk
Írta: Zsolesszka - 2011. június 03. - 08:47:11
Nem rossz nem rossz de az elkészítési idõt figyelembe véve, nem is lehet többet várni.
(nem bírom ezt az elkészítési idõ feltüntetését, valahogy nem hiszem hogy a valóságot tükrözi  :problem:)
De íme egy változat én hogy írtam volna meg, bocsánat a zcmd miatt de ha egyszer rászokik az ember már nem tér vissza strcmp dolgokra  :D
 

#include <a_samp>
#define FILTERSCRIPT  // Ha filterscriptként van használva a zcmd igényli a FILTERSCRIPT definiciót
#include <zcmd>
#define COLOR_RED 0xFF0000FF
// Az érthetõség kedvéért a true és false értékeknek nevet adtam AFK_KI és AFK_BE ezeknek az értékét a TogglePlayerControllable határozta meg!!
#define AFK_KI true // 1 unfreeze
#define AFK_BE false // 0 freeze
new
bool:afkstatus[MAX_PLAYERS] = {AFK_KI, ... };
COMMAND:afk(playerid)
{
afkstatus[playerid] = AFK_KI - afkstatus[playerid];
TogglePlayerControllable(playerid, afkstatus[playerid]);
SendClientMessage(playerid, COLOR_RED, (afkstatus[playerid])?(\"AFK-KI\"):(\"AFK_BE\"));
SetPlayerVirtualWorld(playerid, _:afkstatus[playerid]);
return 1;
}
public
OnPlayerConnect(playerid)
{
afkstatus[playerid] = AFK_KI;
return 1;
}
public
OnPlayerDisconnect(playerid)
{
afkstatus[playerid] = AFK_KI;
return 1;
}

 
Ha van egy változó aminek csak két értéke lehet ( bool ) nem kell állandóan if vizsgálat azért hogy true vagy false az értéke, és emiatt szinte duplán leírni a két eshetõségre vonatkozó utasításokat.
Remélem lehet belõle kicsit tanulni.  :angel: