Замена диалоговых окон самп

Обновлено: 06.07.2024

Вещь хорошая, однозначно.
Надеюсь, что она работает не по тому-же принципу, как у АРП (которую обойти, как два пальца. ).

Её не обойти читом, ибо защита построена на серверной функции ShowPlayerDialog, которую со стороны клиента никак не вызвать.

Только стоит учитывать, что если, например, у вас есть fs, в котором игроку идёт показ диалога, но в этот fs не подключить сей инклюд, сервер будет считать любой диалог из этого fs как диалог, вызванный читом. Так что, как сказал в шапке темы, сей инклюд нужно подключать как в мод, так и во все подключаемые к серверу FS, в которых используются диалоги. Тогда проблем не будет

Как изменить полностью диалоговые окна Не через sampgui.jpg Оценка:

Пользователь офлайн

MrYulik


Добрый вечер, хочу спросить как изменить полность GUI в SAMP как на Arizona, Radmir и т.д. С помощь чего они переделывают GUI без использования sampgui.jpg?

Пользователь офлайн

MDarklight

Добрый вечер, хочу спросить как изменить полность GUI в SAMP как на Arizona, Radmir и т.д. С помощь чего они переделывают GUI без использования sampgui.jpg?


lua и imgui, либо asi в связке с imgui. можно вполне симпотные диалоги сделать при наличии рук с правильного места

Пользователь офлайн

Romzes

SF Plugin [ImGui] vSettings 1.1 (Handling Editor, Tuning, Profiles, etc.)

SF Plugin [ImGui] vSettings 1.1 (Handling Editor, Tuning, Profiles, etc.)

SF Plugin [ImGui] vSettings 1.1 (Handling Editor, Tuning, Profiles, etc.)


Описание: Данный скрипт(плагин) позволяет изменить практически любую характеристику любого авто из игры. Имеется возможность копировать/вставлять характеристики из одного т/с в другое. Можно создавать свои профили с настройкой под каждую т/с.
Активация: F9 (изначально)
Требования: SAMPFUNCS (Желательно 5.4.1-final)
Установка: Поместить файл в папку SAMPFUNCS.
Профили сохраняются по пути: GTA_SAMP\SAMPFUNCS\vSettings\

Возвращаемые значения:
Данная функция не возвращает какого-либо конкретного значения.

Стили диалога:

0DIALOG_STYLE_MSGBOXОбычный диалог с 2-мя кнопками
1DIALOG_STYLE_INPUTДиалог с полем для ввода
2DIALOG_STYLE_LISTСписок из нескольких элементов
3DIALOG_STYLE_PASSWORDПозволяет игрокам вводить пароль не раскрывая его

Функция:
Вызывается диалоговое окно функцией ShowPlayerDialog, структура функции такая:

Упрощение:
Обычно, чтобы не запоминать цифры и не писать длинное название стилей диалогов, я заменяю их такими макросами:

Или можно использовать <ID> стиля диалогового окна

Для написания основного текста диалогового окна вы можете использовать нижеприведенную таблицу:

\bbackspaсe
\fForm feed
\nПереход на новую строку
\rВозврат каретки
\tТабуляция
\vВертикальная табуляция
\'Одиночная кавычка
\"Двойные кавычки
\?Вопросительный знак
Ответ на диалог:
Мы сделали диалоговое меню, состоящее из 9 пунктов. А нам надо сделать так, чтобы при нажатии на первый пункт, у нас появлялся другой диалог с другой информацией. Для этот мы будем использовать вот такой код:
Условные конструкции:
Вот примет одной конструкции

Пример диалога с использование условной конструкцией

Создадим команду с использование ZCMD (командный процессор)

Спойлер: Пример команды на стандартном командном процессере И в public OnDialogResponse мы добавим ответ на наш диалог
Креативизация:
Вы решили создать диалог, а он серы и скучный?
Мы можем раскрасить наш диалог в любые цвета формата RGB.
Пример:

Цвет мы заключаем в фигурную скобку "<" и ">"
FFFFFF - это белый цвет
3DB6F2 - светло-голубой
Думаю цвета вам не доставит большого труда отыскать. Для этого есть множество поисковых система.

Что же такое этот оператор switch?
Оператор switch – это оператор выбора. Он удобен в первую очередь тем, что может заменить много условий if, которые проверяют значение одной переменной.
Пример построения с этим оператором:
! Стоить отметить, что в официальной документации к языку написано: ‘In pawn, switch is a structured “if”‘, а это значит, что конструкция switch — это набор структурированных if’ов, отсюда следует, что switch не может работать быстрее if. Но это не всегда так.
Как видим — switch/case медленнее(значительно) if только на больших промежутках значений.

Сейчас бы я хотел немного рассказать вам о том, как можно в один диалог использовать гораздо большее количество символов.

Данный метод подходит, когда есть некоторые переменные, которые нужно внедрить в текст.

Есть еще один метод, который более менее мне известный - это константная переменная. Этот пример часто встречается в RLS/SRL модах. Мне же не очень нравится этот метод.Причины: не очень читабельный для человека, в отличии от первого примера.

В пером случаи делается все давольно просто и знакомо, где после обьявления макроса, мы задаем имя и параметр.

Совет: для объявления макроса/директивы, лучше использовать имена в ВЕРХНЕМ регистре. Почему? А вот почему: если мы будем исползовать имена в нижнем регистре, то есть вероятность того, что мы сможем перепутать их с переменными.

Во втором случае мы добавим перечисление enum <>.

Само слово перечисление говорит нам о том, что мы будет перечислять по порядку от нуля до N-ного числа.

Читайте также: