MrMak
Ученик
Описание: Самая обычная система PayDay, но EXP не выдаётся игроку, если он не пробыл в игре хотя бы 20 минут.
Как это работает? Очень просто: мы делаем обычную рекламу на сервер, которая высвечивается всем игрокам в 20 минут и 40 минут часа. Например: 09:20;11:40 и тд.
Во время того как высвечивается реклама мы прибавим к заранее созданной переменной единицу, а в PayDay укажем условие.
Вот сама система:
Вариант от Saibot`a
Вариант Автора:
Вот и вся система...
Автор не я. Вырезал из Аризоны, немного переделал.
Критики на подобии: "Гавнокодер, дэбил, что это за х**ня?" не жду. Кто хочет оставить такой пост, будьте добры, не делайте этого, дабы избежать сквернословия.
Кому нравится, кушайте на здоровье...
Будут ошибки пишите, исправим вместе.
Как это работает? Очень просто: мы делаем обычную рекламу на сервер, которая высвечивается всем игрокам в 20 минут и 40 минут часа. Например: 09:20;11:40 и тд.
Во время того как высвечивается реклама мы прибавим к заранее созданной переменной единицу, а в PayDay укажем условие.
Вот сама система:
Вариант от Saibot`a
Ко всем new
В OnGameModeInit
В конец мода
pLevel, pExp >> Это все меняем на свое!!!
PHP:
new bool: time_played[MAX_PLAYERS char];
PHP:
SetTimer(!"@_TimePayday", 1000, false);
PHP:
@_TimePayday();
@_TimePayday()
{
new hour_payday,
minutes_payday,
second_payday;
gettime(hour_payday, minutes_payday, second_payday);
if(minutes_payday == 20 || minutes_payday == 40
&& second_payday == 00)
{
foreach(Player, i)
{
time_played{i} = true;
SendClientMessage(i, -1, !"Вы отыграли 20 мн.");
}
}
if(hour_payday == hour_payday && second_payday == 00)
{
SetWorldTime(hour_payday);
PayDay();
}
SetTimer("@_TimePayday", 1000, false);
}
PHP:
stock PayDay()
{
new str_fmt[72 + 14 + 11],
level_up;
foreach(Player, i)
{
if(time_played{i})
{
time_played{i} = false;
PlayerInfo[i][pExp] ++;
SendClientMessage(i, -1, !"__________Банковский чек__________");
format(str_fmt, sizeof(str_fmt), "Текущая сумма в банке: $%d\n",\
PlayerInfo[i][член_перечесление_деньги_в_банке]);
SendClientMessage(i, -1, str_fmt);
format(str_fmt, sizeof(str_fmt), "В данный момент у вас %d-й уровень и %d/%d респектов\n",\
PlayerInfo[i][pLevel], PlayerInfo[i][pExp], (PlayerInfo[i][pLevel] + 1 ) * 4);
SendClientMessage(i,-1,str_fmt);
SendClientMessage(i, -1, !"__________________________________");
GameTextForPlayer(i, !"~y~PAYDAY", 3000, 1);
level_up = (PlayerInfo[i][pLevel] + 1) * 4;
if(PlayerInfo[i][pExp] >= level_up)
{
PlayerInfo[i][pLevel] ++;
PlayerInfo[i][pExp] -= level_up;
SetPlayerScore(i, PlayerInfo[i][pLevel]);
format(str_fmt, sizeof(str_fmt),"Поздравляю! Вы достигли %d-го уровня!", PlayerInfo[i][pLevel]);
SendClientMessage(i, -1, str_fmt);
}
}
else SendClientMessage(i, 0xFF6347FF, !"Для получения PayDay вы должны отыграть минимум 20 минут.")
}
return true;
}
Вариант Автора:
ко всем new добавим:
в public OnPlayerConnect(playerid)
В конец мода добавим сток:
и еще один сток:
еще сток:
в public OnGameModeInit
PHP:
new PAYDAY = 0;
new twelve[MAX_PLAYERS];
new othtimer;
PHP:
twelve[playerid] = 0;
PHP:
stock Fresh()
{
new year,month,day,minute,second,hour;
getdate(year,month,day);
gettime(hour,minute,second);
if(minute == 0 && second >= 11 && second <= 16) PAYDAY = 0;
if(minute == 0 && second >= 0 && second <= 10 && PAYDAY == 0)
{
PAYDAY = 1;
SetWorldTime(hour); // время суток в игре
PayDay();
}
if(minute == 20 && second == 00)
{
for(new i;i<MAX_PLAYERS;i++)
{
if(gPlayerLogged[i])
{
twelve[i]++;
}
}
SendClientMessageToAll(0xFFCC00FF,"---------------------------------------------------------------");
SendClientMessageToAll(0xFFCC00FF,"реклама");
SendClientMessageToAll(0xFFCC00FF,"Реклама");
SendClientMessageToAll(0xFFCC00FF,"реклама");
SendClientMessageToAll(0xFFCC00FF,"---------------------------------------------------------------");
}
if(minute == 40 && second == 00)
{
for(new i;i<MAX_PLAYERS;i++)
{
if(gPlayerLogged[i])// проверка на то, авторизован ли игрок
{
twelve[i]++;
}
}
SendClientMessageToAll(0xFFCC00FF,"---------------------------------------------------------------");
SendClientMessageToAll(0xFFCC00FF,"реклама");
SendClientMessageToAll(0xFFCC00FF,"Реклама");
SendClientMessageToAll(0xFFCC00FF,"реклама");
SendClientMessageToAll(0xFFCC00FF,"---------------------------------------------------------------");
}
return true;
}
PHP:
stock PayDay()
{
new string[900];// 900 ячеек, потому что нужно добавлять ЗП, фрак ЗП ну и еще что вам нужно.. Вобщем если планируете так оставить уменьшите значение до 300, а может меньше, посчитаете...
for(new i = 0;i < MAX_PLAYERS; i ++)
{
if(!IsPlayerConnected(i)) {SendClientMessage(i, -1, "Вы не на сервере"); continue;}
if(gPlayerLogged[i])
{
if(twelve[i]>0)
{
twelve[i]=0;
PlayerInfo[i][pExp] += 1;
SendClientMessage(i,COLOR_VALIK,"__________Банковский чек__________");
format(string,sizeof(string),"Текущая сумма в банке: $%d\n",PlayerInfo[i][pSchetBank]);
SendClientMessage(i,-1,string);
format(string,sizeof(string),"В данный момент у вас %d-й уровень и %d/%d респектов\n",PlayerInfo[i][pLevel],PlayerInfo[i][pExp],(PlayerInfo[i][pLevel]+1)*4);
SendClientMessage(i,-1,string);
SendClientMessage(i,COLOR_VALIK,"__________________________________");
format(string, sizeof(string), "~y~PAYDAY");
SaveAccount(i);
GameTextForPlayer(i, string, 3000, 1);
CheckNextLevel(i);
}
else SendClientMessage(i, COLOR_RED, "Для получения PayDay вы должны отыграть минимум 20 минут."),twelve[i]++;
}else SendClientMessage(i, -1, "Вы не авторизированы для получения зарплаты");
}
return true;
}
PHP:
stock CheckNextLevel(playerid)
{
new expamount = ( PlayerInfo[playerid][pLevel] + 1) * 4, string[144];
if(PlayerInfo[playerid][pExp] >= expamount)
{
PlayerInfo[playerid][pLevel] ++;
PlayerInfo[playerid][pExp] -= expamount;
SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]);
format(string,sizeof(string),"Поздравляю! Вы достигли %d-го уровня!",PlayerInfo[playerid][pLevel]);
SendClientMessage(playerid,COLOR_VALIK,string);
//SaveAccount(playerid);
return true;
}
return false;
}
PHP:
publics: OtherTimer()
{
Fresh();
return true;
}
PHP:
othtimer = SetTimer("OtherTimer", 1000, 1);
Вот и вся система...
Автор не я. Вырезал из Аризоны, немного переделал.
Критики на подобии: "Гавнокодер, дэбил, что это за х**ня?" не жду. Кто хочет оставить такой пост, будьте добры, не делайте этого, дабы избежать сквернословия.
Кому нравится, кушайте на здоровье...
Будут ошибки пишите, исправим вместе.
Последнее редактирование модератором:
