02.11.2017, 11:15
SetTimer global desnecessario , vocк criou uma stock para getar o nome dos jogadores e mesmo assim em alguns pontos com loop vocк criou outra variavel para getar o nome .
Acho que vocк nem compilou , acho que isto vai dar um aviso ao compilar .
Mas e tentando que se aprende , boa .
Nгo testei talvez tenha algum erro , estou sem os programas no pc para testar mas pode ser uma base para vocк poder melhorar .
PHP код:
pInfo[playerid][tempoafk] = false;
Mas e tentando que se aprende , boa .
Nгo testei talvez tenha algum erro , estou sem os programas no pc para testar mas pode ser uma base para vocк poder melhorar .
PHP код:
#include a_samp
#include zcmd
enum pafk {
Timer,
Tempo,
bool:AFK
}
new SistemaAFK[MAX_PLAYERS][pafk];
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
SistemaAFK[playerid][Tempo] = 0;
SistemaAFK[playerid][AFK] = false;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SistemaAFK[playerid][Tempo] = 0;
SistemaAFK[playerid][AFK] = false;
return 1;
}
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(success){
if(SistemaAFK[playerid][AFK] == true)return SendClientMessage(playerid, -1, "Senhor esta ausente.");}
return true;
}
command(afk, playerid, params[])
{
if(SistemaAFK[playerid][AFK] == false)
{
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, -1, "Use: /afk, para sair do modo ausente");
SistemaAFK[playerid][AFK] = true;
SistemaAFK[playerid][Timer] = SetTimerEx("CheckAFK", 1000, true, "i", playerid);
}
else
{
TogglePlayerControllable(playerid, true);
SendClientMessage(playerid, -1, "Use: /afk, para entrar no modo ausente");
SistemaAFK[playerid][AFK] = false;
KillTimer(SistemaAFK[playerid][Timer]);
}
return true;
}
command(lista, playerid, params[])
{
new pimbando[128];
for (new ds;ds <MAX_PLAYERS; ds++)
{
if(SistemaAFK[ds][AFK] == true)
{
format(pimbando, sizeof(pimbando), "%s O jogador %s estб ausente por: [%s]\n", pimbando, DonPegaNome(ds), Convert(SistemaAFK[ds][Tempo]));
}
}
if (strlen(pimbando) > 0)
ShowPlayerDialog(playerid, 99, DIALOG_STYLE_MSGBOX, "Jogadores ausentes:", pimbando, "FECHAR", #);
else
SendClientMessage(playerid, 0xFF0000FF, "{FF0000}Nгo hб jogadores ausentes.");
return true;
}
forward CheckAFK(playerid);
public CheckAFK(playerid)return SistemaAFK[playerid][Tempo]++;
stock DonPegaNome(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock Convert(number)
{
new hours = 0, mins = 0, secs = 0, string[100];
hours = floatround(number / 3600);
mins = floatround((number / 60) - (hours * 60));
secs = floatround(number - ((hours * 3600) + (mins * 60)));
new days = 0;
if(hours >= 24)
{
days = floatround((hours/24), floatround_floor);
hours = hours % 24;
}
if(days > 0)
{
format(string, 100, "%ddias, %dh %dm e %ds", days, hours, mins, secs);
}
else if(hours > 0)
{
format(string, 100, "%dh %dm e %ds", hours, mins, secs);
}
else
{
format(string, 100, "%dm e %ds", mins, secs);
}
return string;
}