Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Исправление бага SA:MP с диалогами

Статус
В этой теме нельзя размещать новые ответы.

XemyL

Компетентный
В SA:MP 0.3e есть такой баг с диалогами, что если открыт один диалог, то можно включить другой (без читов и т.п., а просто например ввести команду для открытия какого-либо диалога) тем самым не выбирая ни одно из действий первого диалога. Таким багом можно было обойти важные диалоги в модах, например аренду транспорта и т.п.
На некоторых серверах конечно стоят фиксы на то чтобы нельзя было завести не арендованный транспорт... Но это не удобно, много писать лишнего. А с этим фиксом баг пропадает.

Если у вас стоит защита от подмены диалогов, её можно вырезать. Тут она уже встроена.


Ко всем #define:
PHP:
ShowPlayerDialogFix(playerid, dialogid, style, caption[], info[], button1[], button2[])
{
    if(GetPVarInt(playerid, "DialogID") != -2) return 1;
    if(dialogid == -1) SetPVarInt(playerid, "DialogID", -2);
    SetPVarInt(playerid, "DialogID", dialogid);
    return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
}
#define ShowPlayerDialog ShowPlayerDialogFix
В OnPlayerConnect:
PHP:
SetPVarInt(playerid, "DialogID", -2);
В самое начало OnDialogResponse:
PHP:
if(GetPVarInt(playerid, "DialogID") != dialogid) return 1;
SetPVarInt(playerid, "DialogID", -2);
Разработчик:
XemyL (Galaktika Team)

При копировании материала в другие источники указывайте настоящего разработчика!​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу