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 Если кому то что-то не понятно, спрашивайте. Поясню
###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 |
|
|
|