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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: dexi - 2012. január 08. - 19:02:46

Cím: Mûködne ez az AFK FS?
Írta: dexi - 2012. január 08. - 19:02:46
Hali!
Lényeg: Ha 5percig semmit sem csinálunk és nem vagyunk AFK üzemmódban akkor dobjon ki, ha AFK-ban vagyunk akkor ne. Müködne?
 
#include <a_samp>
#include <zcmd>
new afkba[MAX_PLAYERS];
new asd;
public OnFilterScriptInit()
{
print(\"\\n_-_-_---------------------------_-_-_-\");
print(\"\\n [ Nesze Olie :D - AwayFromKeyboard ] \");
print(\"\\n_-_-_---------------------------_-_-_-\");
return 1;
}
public OnFilterScriptExit()
{
KillTimer(asd);
return 1;
}
forward AJEFKA(playerid);
public OnPlayerUpdate(playerid)
{
if(afkba[playerid] == 0)
{
    KillTimer(asd);
asd = SetTimerEx(\"AJEFKA\", 5*(60*1000), 0, \"i\", playerid);
}
else SendClientMessage(playerid, 0x00FF00, \"Teszt: Nem vagy AFK.\");
return 1;
}
public AJEFKA(playerid)
{
if(afkba[playerid] == 0)
{
SendClientMessage(playerid, 0x00FF00, \"Túl sokáig voltál AFK! Máskor /afk\");
Kick(playerid);
}
SendClientMessage(playerid, -1, \"Teszt: Most rúgott volna ki.\");
}
CMD:afk(playerid)
{
if(afkba[playerid] == 0)
{
SetPlayerVirtualWorld(playerid, 4);
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid, 0x00FF00, \"AFK-ba léptél.\");
afkba[playerid] = 1;
}
else if(afkba[playerid] == 1)
{
SetPlayerVirtualWorld(playerid, 0);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, 0x00FF00, \"Már nem vagy AFK.\");
afkba[playerid] = 0;
}
return 1;
}
Cím: Mûködne ez az AFK FS?
Írta: Norby - 2012. január 08. - 20:07:37
Ez teljesen rossz :D
OnPlayerUpdate ??
Most akkor ha az afkba változo 0 akkor az folyton meghívja neked a Timert és a többit ez nagyon nagy lagg + nagyon eszi a procit is!
Cím: Mûködne ez az AFK FS?
Írta: dexi - 2012. január 08. - 20:20:36
Más ötletem nincs azt ellenörizni hogy mikor mozog az illetõ.
Cím: Mûködne ez az AFK FS?
Írta: Norby - 2012. január 08. - 20:28:25
mondjuk ha egy billentyût sem nyom meg azt ellenõriztesd hogyha pl 5-10 percig nem nyomott meg egyet sem akkor teszi AFK ba :)
például : a W billenytût mert avval megy elõre :)
Cím: Mûködne ez az AFK FS?
Írta: dexi - 2012. január 08. - 20:57:17
#include <a_samp>
#include <zcmd>
new afkba[MAX_PLAYERS];
new asd;
public OnFilterScriptInit()
{
print(\"\\n_-_-_---------------------------_-_-_-\");
print(\"\\n [ Nesze Olie :D - AwayFromKeyboard ] \");
print(\"\\n_-_-_---------------------------_-_-_-\");
return 1;
}
public OnFilterScriptExit()
{
KillTimer(asd);
return 1;
}
forward AJEFKA(playerid);
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys & KEY_UP || newkeys & KEY_DOWN || newkeys & KEY_LEFT || newkeys & KEY_RIGHT)
{
if(afkba[playerid] == 0)
{
       KillTimer(asd);
   asd = SetTimerEx(\"AJEFKA\", 5*(60*1000), 0, \"i\", playerid);
   SendClientMessage(playerid, 0x00FF00, \"Teszt: Nem vagy AFK. Timer elindítva\");
}
else SendClientMessage(playerid, 0x00FF00, \"Teszt: AFK vagy.\");
}
return 1;
}
public AJEFKA(playerid)
{
if(afkba[playerid] == 0)
{
SendClientMessage(playerid, 0x00FF00, \"Túl sokáig voltál AFK! Máskor /afk\");
Kick(playerid);
}
SendClientMessage(playerid, -1, \"Teszt: Most rúgott volna ki.\");
}
CMD:afk(playerid)
{
if(afkba[playerid] == 0)
{
SetPlayerVirtualWorld(playerid, 4);
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid, 0x00FF00, \"AFK-ba léptél.\");
afkba[playerid] = 1;
}
else if(afkba[playerid] == 1)
{
SetPlayerVirtualWorld(playerid, 0);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, 0x00FF00, \"Már nem vagy AFK.\");
afkba[playerid] = 0;
}
return 1;
}

 
Így?( Nem tudok tesztelni gép hiányában )