Roka_Kuroki2
Новичок
Добрый День, я решил вырезать систему уровенй из мода k-reality но у меня почему - то не считает минуты/секунды/часы
Вот собственно код
Ероров варнингов нет не понимаю из - за чего?
Диалог #define DIALOG_MSGBOX 10
в
Если скажите в чем проблема дам + или же вознагражу материально
Вот собственно код
Ероров варнингов нет не понимаю из - за чего?
Диалог #define DIALOG_MSGBOX 10
в
PHP:
public OnPlayerSpawn(playerid)
это
SetPlayerScore(playerid, GetPVarInt(playerid,"Level"));
в OnPlayerLogin
new result[256];
new add_time,add_level;
sscanf(result, "p<|>is[24]s[34]s[26]iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii",add_time,add_level);
SetPVarInt(playerid,"Time",add_time);
SetPVarInt(playerid,"Level",add_level);
Далее сток
stock ShowStats(playerid,forplayerid)
{
new string[64],sctring[356];
format(string,sizeof(string),"{FFFFFF}Имя: {00b4ff}%s\n",PlayerName(playerid));
strcat(sctring,string);
format(string,sizeof(string),"{FFFFFF}Уровень: %i\n",GetPVarInt(playerid,"Level"));
strcat(sctring,string);
format(string,sizeof(string),"{FFFFFF}Время в игре: %s\n",tformat(GetPVarInt(playerid,"Time")));
strcat(sctring,string);
format(string,sizeof(string),"{FFFFFF}%i уровень: %s\n",GetPVarInt(playerid,"Level")+1,nformat((GetPVarInt(playerid,"Level")+1)*GetPVarInt(playerid,"Level"),"час","часа","часов"));
strcat(sctring,string);
ShowPlayerDialog(forplayerid, DIALOG_MSGBOX, DIALOG_STYLE_MSGBOX, "Статистика", sctring, "Готово", "");
return 1;
}
паблик обновления
forward TimeUpdate();
public TimeUpdate()
{
new string[128];
for(new i; i < GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !GetPVarInt(i,"Logged")) continue;
SetPVarInt(i,"Time",GetPVarInt(i,"Time")+1);
if(((GetPVarInt(i,"Level")+1)*GetPVarInt(i,"Level")) == GetPVarInt(i,"Time")/3600 && GetPVarInt(i,"Time")%3600 == 0)
{
SetPVarInt(i,"Level",GetPVarInt(i,"Time")/3600);
SetPlayerScore(i, GetPVarInt(i,"Level"));
format(string,sizeof(string)," За %s в игре вы получили %i уровень", nformat(GetPVarInt(i,"Time")/3600,"час, проведенный","часа, проведенных","часов, проведенных"),GetPVarInt(i,"Level"));
SendClientMessage(i, COLOR_YELLOW, string);
}
}
}
return 1;
}
таймер для него SetTimer("TimeUpdate",1000,1);
Стоки для времени
stock tformat(s)
{
new time[128],hour,minute;
hour = s/3600;
s -= hour*3600;
minute = s/60;
s -= minute*60;
format(time,sizeof(time),"%s %s %s",nformat(hour,"час","часа","часов"),nformat(minute,"минута","минуты","минут"),nformat(s,"секунда","секунды","секунд"));
return time;
}
stock nformat(n,f1[],f2[],f5[])
{
new r[128];
if(n%100>5 && n%100<21)
{
format(r,sizeof(r),"%i %s",n,f5);
}
else
{
new fg = n%10;
if(fg<1 || fg>4)
{
format(r,sizeof(r),"%i %s",n,f5);
}
else if(fg==1)
{
format(r,sizeof(r),"%i %s",n,f1);
}
else
{
format(r,sizeof(r),"%i %s",n,f2);
}
}
return r;
}
Команда для вызова диалога
if(strcmp(cmdtext, "/stats", true) == 0)
{
ShowStats(playerid,playerid);
return true;
}
