• Страница 1 из 1
  • 1
Форум » Программирование в Pawno » Готовые решения » АФК система ( кривая )
АФК система ( кривая )
Добавлено 31.03.2016 в 05:40 | Сообщение №1
Сообщений: 265 Репутация: 0
Администраторы
Ко всем new
Код
new plafk[MAX_PLAYERS];

В паблик OnPlayerSpawn
Код
plafk [playerid]= 0;

В паблик OnPlayerConnect
Код
plafk [playerid]= -2;

В паблик OnPlayerDeath
Код
plafk [playerid]= -2;

В паблик OnPlayerUpdate ( При выходе из АФК игроку будет писать его время АФК )
Код
if(plafk [playerid]> -2)   
{   
if(plafk [playerid]> 0)   
{   
new string[128];   
format(string,sizeof(string),"Время вашего АФК: %s",ConvertSeconds(plafk[playerid]));   
SendClientMessage(playerid, COLOR_ORANGE, string);   
SetPlayerChatBubble(playerid, "АФК: завершено", COLOR_WHITE, 10.0, 1);   
}   
plafk [playerid]= 0;   
}

В паблик OnGameModeInit
Код
SetTimer("AFKSystem", 1000, 1);

В конец мода
Код
forward AFKSystem();   
public AFKSystem()   
{   
for(new playerid;playerid < MAX_PLAYERS;playerid++)   
{   
if(IsPlayerConnected(playerid))   
{   
if(plafk [playerid]== 0) plafk [playerid]-= 1;   
else if(plafk [playerid]== -1)   
{   
plafk [playerid]= 1;   
new string[128];   
format(string, sizeof(string), "АФК: %s", ConvertSeconds(plafk[playerid]));   
SetPlayerChatBubble(playerid, string, COLOR_WHITE, 10.0, 70000000);   
}   
else if(plafk [playerid]> 0)   
{   
new string[255];   
plafk [playerid]+= 1;   
format(string, sizeof(string), "АФК: %s", ConvertSeconds(plafk[playerid]));   
SetPlayerChatBubble(playerid, string, COLOR_WHITE, 10.0, 70000000);   
}   
}   
}   
}

Тоже в конец мода, отвечает за время
Код
stock ConvertSeconds(time)   
{   
new string[128];   
if(time < 60) format(string, sizeof(string), "%d секунд", time);   
else if(time == 60) string = "1 минуту";   
else if(time > 60 && time < 3600)   
{   
new Float: minutes;   
new seconds;   
minutes = time / 60;   
seconds = time % 60;   
format(string, sizeof(string), "%.0f минут и %d секунд", minutes, seconds);   
}   
else if(time == 3600) string = "1 час";   
else if(time > 3600)   
{   
new Float: hours;   
new minutes_int;   
new Float: minutes;   
new seconds;   
hours = time / 3600;   
minutes_int = time % 3600;   
minutes = minutes_int / 60;   
seconds = minutes_int % 60;   
format(string, sizeof(string), "%.0f:%.0f:%d", hours, minutes, seconds);   
}   
return string;   
}

Автор: Неизвестен


Программист любитель :)
Форум » Программирование в Pawno » Готовые решения » АФК система ( кривая )
  • Страница 1 из 1
  • 1
Поиск: