Szerző Téma: Afk  (Megtekintve 1959 alkalommal)

Afk
« Dátum: 2011. június 01. - 14:53:52 »
+1 Show voters
Ü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]
« Utoljára szerkesztve: 2011. november 13. - 09:43:21 írta Jethro »

Afk
« Válasz #1 Dátum: 2011. június 01. - 19:13:21 »
0 Show voters
Kezdõhöz képest nagyon szép script! GRAT!(Mondjuk ki mondja... :))
Majd bõvitsd!

Nem elérhető a]X[e

  • 538
    • Profil megtekintése
Afk
« Válasz #2 Dátum: 2011. június 01. - 19:18:13 »
0 Show voters
Szép lett, gratulálok! :)

Nem elérhető Buba

  • 540
    • Profil megtekintése
Afk
« Válasz #3 Dátum: 2011. június 02. - 16:17:01 »
0 Show voters
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]

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Afk
« Válasz #4 Dátum: 2011. június 02. - 17:46:14 »
0 Show voters
Látszik, hogy nem kezdõ! :)

Afk
« Válasz #5 Dátum: 2011. június 02. - 18:37:07 »
0 Show voters
Elég kezdõ vagyok, de ez már nagyjából megy!

Nem elérhető ►ѕтa

  • 2016
  • Newbie
    • Profil megtekintése
Afk
« Válasz #6 Dátum: 2011. június 03. - 07:30:56 »
0 Show voters
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]

Afk
« Válasz #7 Dátum: 2011. június 03. - 08:47:11 »
0 Show voters
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:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal