Система PayDay

damitz

всем привет как делаf
Активный
Статус
Оффлайн
Сообщения
649
Лайки
289

10

месяц на сайте

Доброго времени суток пользователи Pawn-live
Это моя первая тема на данном форуме.
:rolleyes:

Сразу обозначу что не я первый пишу данную систему "PayDay".
Так почему же я решил внести изменения в данную систему? Ответ прост, прошлая система которую предоставил нам Romzes у меня просто не работает.
Виной тому послужило как я выяснил цикл
Pawn:
for(new i=0; i<MAX_PLAYERS; i++)

По этому решил создать первую тему именно с этой системой. Ну что же начнем...


В начало мода где находятся #include вставляем:
Код:
#include <foreach>

Спускаемся в public OnGameModeInit() и вставляем следующие:
Код:
SetTimer("UpDateTimer", 1000*60, 1); //Таймер который будет включаться каждый час.


Следом идем к forward желательно определить место где будут находиться все forward и вставляем:
Код:
forward UpDateTimer(); // Новый Public который будет вызываться каждый час.


Идем в конец когда и вставляем:

Код:
public UpDateTimer()
{
    new hour, minute, second;
    gettime(hour, minute, second);
    if(minute == 0) // Зарплата выдается каждый час в 0 минут.
    {
        PayDay(); // Вызываем паблик с зарплатой.
    }
    return true;
}


Поднимаемся к нашим forward и вставляем:
Код:
forward PayDay();


После чего ищем где находится enum с переменными для аккаунтов и вставляем следующие:

Код:
enum player // У вас может называться по другому
{
        pLevel,
        pExpe
}


Далее в конец кода:
Pawn:
public PayDay()
{
        foreach(new i : Player)// Цыкл проверяет всех игроков
       {
            new nextlevel = pInfo[i][pLevel]*6; // определяет следующий уровень
            new exp=nextlevel-pInfo[i][pExpe]; // определяет сколько опыта осталось до получение следующего уровня.
            pInfo[i][pExpe]++;
            SavePlayer(i,"Expe",pInfo[i][pExpe], "d"); // сохраняет количество опыта в БД.
            if(pInfo[i][pExpe] > nextlevel) // pInfo у вас может быть другим
            {
                pInfo[i][pLevel]+=1;
                pInfo[i][pExpe]=0;
                SavePlayer(i,"Expe",pInfo[i][pExpe], "d");
                SavePlayer(i, "Level", pInfo[i][pLevel], "d"); // сохраняет уровень в БД
                SCM(i,-1,SERVER"Ваш уровень повышен!");
            }
            if(pInfo[i][pLevel] <= 3) // pInfo у вас может быть другим
            {
                        new str[110];
                        SCM(i,-1,"======================== {00C0FF}PayDay{FFFFFF} ===========================");
                        format(str,sizeof(str),"Ваш уровень:{00C0FF}%d{FFFFFF}",pInfo[i][pLevel]);
                        SCM(i,-1,str);
                        format(str,sizeof(str),"Опыт:{00C0FF}%d{FFFFFF}",pInfo[i][pExpe]);
                        SCM(i,-1,str);
                        format(str,sizeof(str),"До повышение уровня осталось {00C0FF}%d{FFFFFF} часов",exp);
                        SCM(i,-1,str);
            }
                
    }
    return 1;
}
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху