TORETTO28
Компетентный
Здравствуйте, есть система ежедневного бонуса, но когда перезаходишь, бонус снова выдается,
хотя судя по коду этого быть не должно. Суть такова - первый день зашел, получил бонус.
Следующий бонус можно получить только на следующий день. Помогите, решить эту проблему.
хотя судя по коду этого быть не должно. Суть такова - первый день зашел, получил бонус.
Следующий бонус можно получить только на следующий день. Помогите, решить эту проблему.
в enum pInfo
PHP:
pBonusDay,
pPoluchil,
pProigral,
ко всем new
PHP:
new prower[MAX_PLAYERS];
в OnPlayerConnect(playerid)
PHP:
PlayerInfo[playerid][pBonusDay]=0;
PlayerInfo[playerid][pPoluchil]=0;
PlayerInfo[playerid][pProigral]=0;
Теперь в OnPlayerLogin
PHP:
iniGetInt(File,"BonusDay",PlayerInfo[playerid][pBonusDay]);
iniGetInt(File,"Poluchil",PlayerInfo[playerid][pPoluchil]);
iniGetInt(File,"Proigral",PlayerInfo[playerid][pProigral]);
в OnPlayerRegister, OnPlayerUpdate
PHP:
iniSetInt(File,"BonusDay",PlayerInfo[playerid][pBonusDay]);
iniSetInt(File,"Poluchil",PlayerInfo[playerid][pPoluchil]);
iniSetInt(File,"Proigral",PlayerInfo[playerid][pProigral]);
OnPlayerSpawn(playerid)
PHP:
Bonus(playerid);
PHP:
forward Bonus(playerid);
public Bonus(playerid)
{
if(PlayerInfo[playerid][pProigral]==0)
{
if(PlayerInfo[playerid][pPoluchil]==0)
{
if(PlayerInfo[playerid][pBonusDay]==0)
{
//здесь то что будете давать игроку
SCM(playerid,COLOR_LIGHTGREEN,"{FFFFFF} День 1/5");// сообщение
PlayerInfo[playerid][pBonusDay]=1;
PlayerInfo[playerid][pPoluchil]=1;
}
else if(PlayerInfo[playerid][pBonusDay]==1)
{
//и здесь
SCM(playerid,COLOR_LIGHTGREEN,"{FFFFFF} День 2/5");// сообщение
PlayerInfo[playerid][pBonusDay]=2;
PlayerInfo[playerid][pPoluchil]=1;
}
else if(PlayerInfo[playerid][pBonusDay]==2)
{
//и здесь
SCM(playerid,COLOR_LIGHTGREEN,"{FFFFFF} День 3/5");// сообщение
PlayerInfo[playerid][pBonusDay]=3;
PlayerInfo[playerid][pPoluchil]=1;
}
else if(PlayerInfo[playerid][pBonusDay]==3)
{
//и здесь
SCM(playerid,COLOR_LIGHTGREEN,"{FFFFFF} День 4/5");// сообщение
PlayerInfo[playerid][pBonusDay]=4;
PlayerInfo[playerid][pPoluchil]=1;
}
else if(PlayerInfo[playerid][pBonusDay]==4)
{
//и здесь
SCM(playerid,COLOR_LIGHTGREEN,"{FFFFFF} День 5/5");// сообщение
PlayerInfo[playerid][pBonusDay]=0;
PlayerInfo[playerid][pPoluchil]=1;
}
}
}
else
{
if(PlayerInfo[playerid][pBonusDay]!=0)
{
SCM(playerid,COLOR_LIGHTGREEN,"Чтоб получать бонусы Вы должны играть кадый день. Начните с начала.");// сообщение
PlayerInfo[playerid][pBonusDay]=0;
PlayerInfo[playerid][pPoluchil]=0;
if(PlayerInfo[playerid][pBonusDay]==0)
{
//и здесь
SCM(playerid,COLOR_LIGHTGREEN,"{FFFFFF} День 1/5");// сообщение
PlayerInfo[playerid][pBonusDay]=1;PlayerInfo[playerid][pPoluchil]=1;
}
}
}
return true;
}
PHP:
forward Zawel(i);
public Zawel(i)
{
prower[i]++;
if(prower[i]==86400)/*здесь количество раз сколько запустился паблик если игрок не заходил(24 часа), если не зашел в течении 24 часов - значит начинает всё с начала*/
{
PlayerInfo[i][pProigral]=1;
}
if(IsPlayerConnected(i))
{
prower[i]=0;
}
return true;
}
в OnGameModeInit()
PHP:
new hour,minute,second;
gettime(hour,minute,second);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(hour==24)
{
SetTimer("Zawel",1000,true);// стартует проверку паблика зашел ли игрок.
PlayerInfo[i][pPoluchil]=0;// обнуляет переменную которая даёт возможность получить бонус
}
}
