И так, после небольшого перерыва, я готов написать статью о системе PayDay и LVL...
Первым делом мы должны добавить две переменные в
и ...
После идем в new ( Если нету, то надо после pInfo создать... )
Пишем Code
new lvl;
new exp = PlayerInfo[i][pExp];
new expup = 12;
Далее идем в конец мода, и добовляем стоки
Code
stock PayDay()
{
new string[128];
new sendername[MAX_PLAYER_NAME];
for(new i=0;i<MaxPlayers;i++)
{ if(exp == expup)
{
PlayerInfo[i][pLvl] += 1;
PlayerInfo[i][pExp] = 0;
}
}
return true;
}
stock OnPlayerUpdateRL(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == true)
{
new string3[39];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "acc/%s.ini", playername3);
new File = ini_openFile(string3);
if(!File)
{
ini_setString(iniFile,"Pass",Player[playerid][pPass]);
}}}return true;}
Далее идем в паблик
Code
public OnGameModeInit()
и после
Code
SetGameModeText("Blank Script");
Добавляем Code
SetTimer("Obnov",1000,1);
new tmphour, tmpminute, tmpsecond;
gettime(tmphour, tmpminute, tmpsecond);
FixHour(tmphour);
tmphour = shifthour;
ghour = tmphour;
SetWorldTime(tmphour);
и далее в конец мода добавляем
Code
forward Obnov();
public Obnov()
{
for(new i=0;i<MaxPlayers;i++)
{
gettime(tmphour, tmpminute, tmpsecond);
FixHour(tmphour);
tmphour = shifthour;
if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
{
format(string, sizeof(string), "Сейчас времени%d:00 Минут",tmphour);
BroadCast(COLOR_WHITE,string);
ghour = tmphour;
PayDay();
for(new i=0;i<MaxPlayers;i++)
if (realtime){SetWorldTime(tmphour);}
}
}
}
Теперь опять идем в конец мода, и добавляем сток
Code
stock ScoreUpdate()
{
new LevScore;
for(new i=0;i<MaxPlayers;i++)
{
LevScore = PlayerInfo[i][pLevel];
SetPlayerScore(i, LevScore);
}
return true;
}
Теперь идем в паблик
Code
public OnPlayerConnect(playerid)
и после Code
PlayerInfo[playerid][pReg] = 0;
Добавляем
Code
PlayerInfo[playerid][pLvl] = 0;
PlayerInfo[playerid][pExp] = 0;
Дальше идем в паблик
Code
public OnPlayerRegister(playerid, password[])
и вставляем после
Code
ini_setString(iniFile,"Pass",Player[playerid][pPass]);
Code
ini_setString(iniFile,"Lvl",Player[playerid][pLvl]);
ini_setString(iniFile,"Exp",Player[playerid][pExp]);
После в сток
Code
stock OnPlayerUpdateRL(playerid)
и после
Code
ini_setString(iniFile,"Pass",Player[playerid][pPass]);
добавляем
Code
ini_setString(iniFile,"Lvl",Player[playerid][pLvl]);
ini_setString(iniFile,"Exp",Player[playerid][pExp]);
Опять идем в паблик
Code
public OnPlayerLogin(playerid,password[])
и после
Code
ini_getString(iniFile,"Pass",pass,64);
Добавляем Code
ini_getString(iniFile,"Lvl",Player[playerid][pLvl]);
ini_getString(iniFile,"Lvl", Player[playerid][pExp]);
Теперь идем в паблик
Code
public OnPlayerCommandText(playerid, cmdtext[])
и после скобочки добавляем
Code
if (strcmp("/stats", cmdtext, true, 6) == 0)
{
GetPlayerName(targetid, name, sizeof(name));
format(string,sizeof(string),"accounts/%s.ini",name);
new Float:px,Float:py,Float:pz;
GetPlayerPos(targetid, px, py, pz);
new str[6],sctring[1200];
format(str,sizeof(str),"{ff0000}ФИО: {FFFFFF}%s ( Отчество не указано... )\n",name);
strcat(sctring,str);
format(str,sizeof(str),"{ff0000}Level: {FFFFFF}%s \n",lvl);
strcat(sctring,str);
format(str,sizeof(str),"{ff0000}Часов до следующего Lvl (Exp) {00FF00}%s{ffffff}: %s \n",exp, expup);
strcat(sctring,str);
ShowPlayerDialog(playerid,10004,DIALOG_STYLE_MSGBOX,lol,sctring,"Îê","");
return true;
}