Szerző Téma: AFK rendszer visszatérési probléma.  (Megtekintve 693 alkalommal)

AFK rendszer visszatérési probléma.
« Dátum: 2015. November 22. - 13:56:00 »
0 Show voters
Az angol fórumról beszereztem egy afk rendszert:
 
#include <a_samp>
#define yellow 0xFFFF00AA
#define COLOR_YELLOW 0xFFFF00AA
new Text3D:label[MAX_PLAYERS];
 
public OnFilterScriptInit()
{
        print(\"\\n--------------------------------------\");
        print(\" Afk SYSTEM\");
        print(\"--------------------------------------\\n\");
        return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
   if(strcmp(\"/afk\", cmdtext, true) == 0)
   {
   SendClientMessage(playerid, COLOR_YELLOW, \"You are now AFK, type /back to move again!\");
   TogglePlayerControllable(playerid,0);
   label[playerid] = Create3DTextLabel(\"AFK\",yellow,30.0,40.0,50.0,40.0,0);
   Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
   new string3[70];
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   format(string3, sizeof(string3), \"%s is now Away from the keyboard!\", name);
   SendClientMessageToAll(COLOR_YELLOW, string3);
   }
   if(strcmp(\"/back\", cmdtext, true) == 0)
   {
   SendClientMessage(playerid, COLOR_YELLOW, \"You are now back!\");
   TogglePlayerControllable(playerid,1);
   new string3[70];
   new name[MAX_PLAYER_NAME];
   GetPlayerName(playerid, name, sizeof(name));
   format(string3, sizeof(string3), \"%s is now Back!\", name);
   SendClientMessageToAll(COLOR_YELLOW, string3);
   Delete3DTextLabel(Text3D:label[playerid]);
   return 1;
   }
   return 0;
}

 
A gondom az vele, hogyha valaki nem jön vissza és úgy elteleportál ugyan úgy tud továbbra is mozogni, de az afkolók listáján ugyan úgy fent van. A másik probléma vele, hogyha valaki afkol, akkor a játékos feje felett megjelenik egy AFK felirat viszont, ha visszajön nem tűnik el. Valakinek van megoldása?

Nem elérhető Flips

AFK rendszer visszatérési probléma.
« Válasz #1 Dátum: 2015. November 22. - 15:29:46 »
0 Show voters
Lehet tudom mi a probléma de mivel nem vagyok nagy scripter nem tudom megfogalmazni normálisan, bocsi.
Próbáld meg lekérni hogy jelenleg AFK módban van-e ha szeretnéd segítségül bemásolom azt amit én írtam.

AFK rendszer visszatérési probléma.
« Válasz #2 Dátum: 2015. November 22. - 18:25:33 »
+1 Show voters
#include <a_samp>
#define yellow 0xFFFF00AA
#define COLOR_YELLOW 0xFFFF00AA
new Text3D:label[MAX_PLAYERS],
IsPlayerAway[MAX_PLAYERS];
 
public OnFilterScriptInit()
{
        print(\"\\n--------------------------------------\");
        print(\" Afk SYSTEM\");
        print(\"--------------------------------------\\n\");
        return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(IsPlayerAway[playerid] && (strcmp(cmdtext, \"/back\", true) != 0)) return SendClientMessage(playerid, -1, \"AFK vagy, térj vissza a \'/back\' paranccsal\"), 1;
if(strcmp(\"/afk\", cmdtext, true) == 0)
{
    new string3[70],
   name[MAX_PLAYER_NAME];
if(IsPlayerAway[playerid]) return SendClientMessage(playerid, -1, \"már elmentél.\");
SendClientMessage(playerid, COLOR_YELLOW, \"You are now AFK, type /back to move again!\");
TogglePlayerControllable(playerid,0);
label[playerid] = Create3DTextLabel(\"AFK\",yellow,30.0,40.0,50.0,40.0,0);
Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
GetPlayerName(playerid, name, sizeof(name));
TogglePlayerControllable(playerid, false);
IsPlayerAway[playerid] = true;
format(string3, sizeof(string3), \"%s is now Away from the keyboard!\", name);
SendClientMessageToAll(COLOR_YELLOW, string3);
return 1;
}
if(strcmp(\"/back\", cmdtext, true) == 0)
{
    new string3[70],
   name[MAX_PLAYER_NAME];
if(!IsPlayerAway[playerid]) return SendClientMessage(playerid, -1, \"el sem mentél.\");
SendClientMessage(playerid, COLOR_YELLOW, \"You are now back!\");
TogglePlayerControllable(playerid,1);
GetPlayerName(playerid, name, sizeof(name));
format(string3, sizeof(string3), \"%s is now Back!\", name);
SendClientMessageToAll(COLOR_YELLOW, string3);
TogglePlayerControllable(playerid, true);
IsPlayerAway[playerid] = false;
Delete3DTextLabel(label[playerid]);
return 1;
}
if(strcmp(cmdtext, \"/asd\", true) == 0) return SendClientMessage(playerid, -1, \"asd\");
return 0;
}

 
a /asd parancsot töröld, csak tesztelni hagytam bent :)
remélem átlátható, hogy mit javítottam

AFK rendszer visszatérési probléma.
« Válasz #3 Dátum: 2015. November 23. - 15:29:28 »
0 Show voters
igen köszi remélem működik :) ha működik megírom és zárom a témát
ha holnap háromig nem lesz zárva a téma, akkor nem működik :D

Dupla hozzászólás automatikusan összefûzve. ( 2015. November 23. - 15:52:51 )

na ez működik köszi :D de a probléma hogy teleportálni még tud :D
« Utoljára szerkesztve: 2015. November 23. - 15:52:51 írta GoldTec »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
AFK rendszer visszatérési probléma.
« Válasz #4 Dátum: 2015. November 23. - 16:26:01 »
0 Show voters
        if(IsPlayerAway[playerid] && (strcmp(cmdtext, \"/back\", true) != 0)) return SendClientMessage(playerid, -1, \"AFK vagy, térj vissza a \'/back\' paranccsal\"), 1;
helyett
        if(IsPlayerAway[playerid] && (strcmp(cmdtext, \"/back\", true) != 0)) return SendClientMessage(playerid, -1, \"AFK vagy, térj vissza a \'/back\' paranccsal\"), 0;
(szerintem)

AFK rendszer visszatérési probléma.
« Válasz #5 Dátum: 2015. November 23. - 18:28:59 »
0 Show voters
ha nullával térsz vissza, akkor az üzenet után megjelenik a \"SERVER: Unknown Command!\" sorocska :) 1 esetén nem :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal