Скрытный
Ученик
В этом уроке Я вам покажу как сделать не просто рекламу которая будет идти каждые 5 минут но и команду, с помощью которой игрок сможет отключить эту рекламу в любой момент! Для новичков думаю это полезный урок
Итак, приступим...
=============================================================
1) Ко всем forward добавляем функцию показа рекламы: forward Advertising();
2) Ко всем new добавляем переменную для таймера: new AdvTimer;
3) Также к new добавим для каждого пользователя переменную, которая будет говорить нам о том, нужно ли посылать ему рекламу или нет: new NoAdv[MAX_PLAYERS];
4) Теперь идем в public OnGameModeInit() и куда-нибудь пропишем наш таймер вывода рекламы: AdvTimer = SetTimer("Advertising",300000,1);
5) Далее ищем public OnPlayerConnect(playerid) и в нем задаем для игрока NoAdv[playerid] = 1;
*** сделаем так: 1 - реклама выводится, 0 - не выводится.
6) Теперь крутим колесико в самый конец кода и добавляем туда нашу функцию:
7) Итак, функцию мы создали, теперь сделаем отключение по команде => нам нужно сделать так, чтобы переменная NoAdv для игрока стала равна 0 (см. 5 пункт).
Идем в public OnPlayerCommandText и добавим туда команду для отключения, например назовем ее /nohelpad
8) Ну и наконец, ищем public GameModeExitFunc() и убиваем в нем наш таймер: KillTimer(AdvTimer);
=============================================================
Автор: Я, Скрытный
Источник: Мой мозг
От награды не откажусь, спасибо :ba:
Итак, приступим...
=============================================================
1) Ко всем forward добавляем функцию показа рекламы: forward Advertising();
2) Ко всем new добавляем переменную для таймера: new AdvTimer;
3) Также к new добавим для каждого пользователя переменную, которая будет говорить нам о том, нужно ли посылать ему рекламу или нет: new NoAdv[MAX_PLAYERS];
4) Теперь идем в public OnGameModeInit() и куда-нибудь пропишем наш таймер вывода рекламы: AdvTimer = SetTimer("Advertising",300000,1);
5) Далее ищем public OnPlayerConnect(playerid) и в нем задаем для игрока NoAdv[playerid] = 1;
*** сделаем так: 1 - реклама выводится, 0 - не выводится.
6) Теперь крутим колесико в самый конец кода и добавляем туда нашу функцию:
PHP:
public Advertising()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(NoAdv[i]==0) return 1;
SendClientMessage(i,COLOR_LIGHTGREEN,"*** ВАШ РЕКЛАМНЫЙ ТЕКСТ ***");
SendClientMessage(i,COLOR_LIGHTGREEN,"*** ВАШ РЕКЛАМНЫЙ ТЕКСТ ***");//таких строчек можно создать сколько угодно
}
return 1;
}
Идем в public OnPlayerCommandText и добавим туда команду для отключения, например назовем ее /nohelpad
PHP:
if(strcmp(cmd, "/nohelpad",true)==0)
{
if(!IsPlayerConnected(playerid)) return 1;//проверка, на сервере ли игрок или нет
NoAdv[playerid] = 0;//присваеваем NoAdv значение 0
SendClientMessage(playerid,COLOR_GRAD1,"Подсказка отключена");
return 1;
}
=============================================================
Автор: Я, Скрытный
Источник: Мой мозг
От награды не откажусь, спасибо :ba:
Последнее редактирование:
