[Урок]Убираем флуд пикапами [оптимизировано] - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок]Убираем флуд пикапами [оптимизировано]
STy1e Дата: Вторник, 01.04.2014, 20:35 | Сообщение # 1
Боец
Сообщений: 51
Статус: Offline
Всем привет, вот на прошлой неделе увидел урок от Olegsuper1. Он пытался объяснить флуд диалогами на пикапах. Но его способ сначала оказался не рабочим, затем он вырезал новый код из не видомого мода. Но его способ не очень удобен. В общем сделать анти флуд диалогами на пикапах можно гораздо проще.

И так, приступим. Припустим, что у нас есть пикап на который становишься и вылазит диалог банка например "Баланс", "Пополнить", "Снять".

Наш пикап:

Код
new pickup = CreatePickup(1318,23,x.x,y.y,z.z,-1);


Действие привязаное к пикапу:

if(pickupid == pickup)
{
if(GetPVarInt(playerid,"dialogblock") == 0)//Проверяем, открыт ли наш диалог или нет.
{
ShowPlayerDialog(playerid, DIALOG_BANK, 2, "Баланс\nПополнить\nСнять","Выбрать","Отмена");
SetPVarInt(playerid,"dialogblock",1);
}
}
Строка, которую я выделил красным как раз и будет отвечать за наш флуд. Мы присваиваем игроку, который встал на этот пикап PVar (скажем так переменную для данного игрока) "dialogblock" единицу. Так мы при проверке чему равна наша переменная и будем узнавать, вылез ли нашему игроку диалог.
То есть, если переменая равняется "true", то диалог не будет показываться игроку по след. кругу, если равняется "false", то мы выводим диалог.

Далее, идем в наш диалог в OnPlayerDialogResponse

Код

case DIALOG_BANK:
{
if(!response)//Если игрок нажал "отмена"
{
SetPVarInt(playerid,"dialogblock",0);//Мы присваиваем игроку переменную "dialogblock" 0
return 1;
}
switch(listitem)
{
case 0:
{
//Тут уже другие функции...
}
case 1:
{
//Тут уже другие функции...
}
case 2:
{
//Тут уже другие функции...
}            
}
}

В общем когда игрок выходит с диалога, то есть нажимает кнопку "Отмена" или же действия с диалогом уже завершены - нужно писать SetPVarInt(playerid,"dialogblock",0);

Автор урока: STy1e
Если кому то что-то не понятно, спрашивайте. Поясню smile


###adeaf6944f49fac015d35e9d3eb34516###

Сообщение отредактировал STy1e - Вторник, 01.04.2014, 20:40
Кotov2708 Дата: Понедельник, 07.04.2014, 17:51 | Сообщение # 2
Боец
Сообщений: 128
Статус: Offline
Спасибо.Отлично обьяснил.

Приму в дар аккаунт в ньюс [ARP,SRP,DRP]
==================================
ОБОЗРЕВАЮ ВАШИ ПРОГРАММЫ - ОБРАЩАТЬСЯ В ЛС.
Grap_Reds Дата: Вторник, 08.04.2014, 17:31 | Сообщение # 3
Любитель
Сообщений: 30
Статус: Offline
+
Axwell Дата: Суббота, 03.05.2014, 20:05 | Сообщение # 4
Бывалый
Сообщений: 481
Статус: Offline
Молодец! +++
Помог очень
Saint[yl] Дата: Суббота, 03.05.2014, 21:08 | Сообщение # 5
^^SвYтый YлЬка
Сообщений: 248
Статус: Offline
Лучше в коллбэке ShowPlayerDialog
Код
if(GetPVarInt(playerid,"dialogblock") != 0) return true;


Тогда все пикапы кроме диалогов будут работать


==========================
[+] Skype: saint.yl
[+] ВКонтакте: vk.com/saintyl
==========================

Ничего Не покупаю / Не продаю


Сообщение отредактировал Saint[yl] - Суббота, 03.05.2014, 21:09
  • Страница 1 из 1
  • 1
Поиск: