Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Бонус игроку

Статус
В этой теме нельзя размещать новые ответы.

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;// обнуляет переменную которая даёт возможность получить бонус
        }
    }
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу