Sok AFK scriptet látni itt a fórumon de még 1 olyat se láttam ami:
- Kidobja a játékost ha x ideig nem mozog.
- Ha AFK-ban van a játékos, nem kickeli.
Ha már van ilyen akkor tévedtem, nem néztem mindet végig
.
Szükséges hozzá: zcmd include.
/*==================================================================*/
Az esetleges bugokért / hibákért elnézést kérek, szokásomhoz híven nincs lehetõségem tesztelni.
Code:
#include <a_samp>
#include <zcmd>
new bool:afk[MAX_PLAYERS];
new AfkTimer[MAX_PLAYERS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ( newkeys & KEY_UP || newkeys & KEY_DOWN || newkeys & KEY_RIGHT || newkeys & KEY_LEFT)
{
KillTimer(AfkTimer[playerid]);
AfkTimer[playerid] = SetTimerEx(\"AwayFromKeyboard\", 5 * ( 60 * 1000 ), 0, \"i\", playerid);
}
return 1;
}
stock Kirug(playerid, reason[])
{
new stR[200];
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(stR, sizeof(stR), \"**[server] %s ki lett rúgva. Ok: %s\", pName, reason);
SendClientMessageToAll(-1,stR);
Kick(playerid);
return stR;
}
forward AwayFromKeyboard(playerid);
public AwayFromKeyboard(playerid)
{
if(afk[playerid] == false)
{
SendClientMessage(playerid, -1, \"Túl sokáig voltál AFK. Máskor /afk!\");
Kirug(playerid,\"Away From Keyboard\");
}
}
CMD:afk(playerid)
{
if(afk[playerid] == false)
{
SendClientMessage(playerid, -1, \"AFK üzemmódba léptél.\");
SetPlayerVirtualWorld(playerid, 10);
TogglePlayerControllable(playerid, 0);
afk[playerid] = true;
}
else if(afk[playerid] == true)
{
SendClientMessage(playerid, -1, \"Már nem vagy AFK.\");
SetPlayerVirtualWorld(playerid, 0);
TogglePlayerControllable(playerid, 1);
afk[playerid] = false;
}
return 1;
}