07.07.2012, 03:46
Detectando um player pausado, eu fiz este cуdigo a pouco tempo, entгo decidi postar:
Cуdigo com comentбrios: http://pastebin.com/AwwHvdEQ
Print (Nome do gamemode e pessoal, nickname foram apagados para evitar entendimento de divulgaзгo):
http://i45.tinypic.com/21md8na.png
pawn Код:
new checkTimer;
forward PauseCheck();
public OnGameModeInit()
{
checkTimer = SetTimer("PauseCheck", 1000, true);
return 1;
}
public OnGameModeExit()
{
KillTimer(checkTimer);
return 1;
}
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "whileConnect", 1);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(GetPVarInt(playerid, "whileConnect") == 1) SetPVarInt(playerid, "whileConnect", 0);
SetPVarInt(playerid, "spawnedPlayer", 1);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid, "spawnedPlayer", 0);
return 1;
}
public OnPlayerUpdate(playerid)
{
SetPVarInt(playerid, "lastUpdate", GetTickCount());
if(GetTickCount() < (GetPVarInt(playerid, "lastUpdate")+5000) && GetPVarInt(playerid, "pausedPlayer") == 1)
{
SetPVarInt(playerid, "pausedPlayer", 0);
printf("Debug: O Player com o id '%d' nгo estб mais pausado.", playerid);
}
return 1;
}
public PauseCheck()
{
for(new i, gM = GetMaxPlayers(); i != gM; ++i)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
if(GetTickCount() > (GetPVarInt(i, "lastUpdate")+5000) && GetPVarInt(i, "whileConnect") && GetPVarInt(i, "spawnedPlayer") == 1 && GetPVarInt(i, "pausedPlayer") == 0)
{
SetPVarInt(i, "pausedPlayer", 1);
printf("Debug: O Player com o id '%d' estб pausado", i);
}
}
}
return 1;
}
Print (Nome do gamemode e pessoal, nickname foram apagados para evitar entendimento de divulgaзгo):
http://i45.tinypic.com/21md8na.png