Consuelo_Delite
Новичок
Всем привет. Наткнулся на такую проблему. Поставил к себе на сервере AFK систему.
Ну она багнутая. =(
Вроде все норм работает, но.. Бывает так, что игроки не в АФК, а надпись не пропадает. Прошу помощь, вот весь код скрипта.
Заранее спасибо!
Ну она багнутая. =(
Вроде все норм работает, но.. Бывает так, что игроки не в АФК, а надпись не пропадает. Прошу помощь, вот весь код скрипта.
PHP:
#include <a_samp>
enum p_info
{
Tick,
Chek,
Var,
bool:pSpawn,
}
new Player[MAX_PLAYERS][p_info];
main()
{
print("************************************************** *");
print(" AFK System ");
print("************************************************** *");
}
new Time;
public OnFilterScriptInit()
{
Time = SetTimer("AFK", 1100,1);
return 1;
}
public OnFilterScriptExit()
{
KillTimer(Time);
return 1;
}
public OnPlayerConnect(playerid)
{
Player[playerid][Tick] = 0;
Player[playerid][pSpawn] = false;
return 1;
}
public OnPlayerDeath(playerid,killerid, reason)
{
Player[playerid][pSpawn] = false;
return 1;
}
forward AFK();
public AFK()
{
for(new x = 0; x < MAX_PLAYERS; x++)
{
if(IsPlayerConnected(x))
{
if(Player[x][Chek] < Player[x][Tick])
{
Player[x][Var] = 0;
}
if(Player[x][Chek] == Player[x][Tick])
{
if(Player[x][pSpawn] == true)
{
Player[x][Var]++;
}
}
if(Player[x][Var] > 600)
{
SendClientMessage(x,COLOR_REDD,"[AFK]: Вы были отсоедены от сервера за AFK");
Player[x][Var] = 0;
Kick(x);
}
if(Player[x][Var] > 4)
{
new stringF[20];
format(stringF,sizeof(stringF),"АФК [%s]",Convert(Player[x][Var]));
SetPlayerChatBubble(x, stringF, 0x34c924FF, 70.0, 1200);
}
Player[x][Chek] = Player[x][Tick];
}
}
return 1;
}
public OnPlayerSpawn(playerid)
{
Player[playerid][pSpawn] = true;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(!IsPlayerConnected(playerid)) return 0;
Player[playerid][Tick]++;
return 1;
}
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)));
if(hours > 0)
{
format(string, 100, "%d:%02dm:%02ds", hours, mins, secs);
}
else
{
format(string, 100, "%d:%02d", mins, secs);
}
return string;
}
