Замена диалоговых окон самп
Вещь хорошая, однозначно.
Надеюсь, что она работает не по тому-же принципу, как у АРП (которую обойти, как два пальца. ).
Её не обойти читом, ибо защита построена на серверной функции ShowPlayerDialog, которую со стороны клиента никак не вызвать.
Только стоит учитывать, что если, например, у вас есть fs, в котором игроку идёт показ диалога, но в этот fs не подключить сей инклюд, сервер будет считать любой диалог из этого fs как диалог, вызванный читом. Так что, как сказал в шапке темы, сей инклюд нужно подключать как в мод, так и во все подключаемые к серверу FS, в которых используются диалоги. Тогда проблем не будет
Как изменить полностью диалоговые окна Не через sampgui.jpg Оценка:Добрый вечер, хочу спросить как изменить полность GUI в SAMP как на Arizona, Radmir и т.д. С помощь чего они переделывают GUI без использования sampgui.jpg?
Добрый вечер, хочу спросить как изменить полность GUI в SAMP как на Arizona, Radmir и т.д. С помощь чего они переделывают GUI без использования sampgui.jpg?
lua и imgui, либо asi в связке с imgui. можно вполне симпотные диалоги сделать при наличии рук с правильного места
SF Plugin [ImGui] vSettings 1.1 (Handling Editor, Tuning, Profiles, etc.)
Описание: Данный скрипт(плагин) позволяет изменить практически любую характеристику любого авто из игры. Имеется возможность копировать/вставлять характеристики из одного т/с в другое. Можно создавать свои профили с настройкой под каждую т/с.
Активация: F9 (изначально)
Требования: SAMPFUNCS (Желательно 5.4.1-final)
Установка: Поместить файл в папку SAMPFUNCS.
Профили сохраняются по пути: GTA_SAMP\SAMPFUNCS\vSettings\
Возвращаемые значения:
Данная функция не возвращает какого-либо конкретного значения.
Стили диалога:
0 | DIALOG_STYLE_MSGBOX | Обычный диалог с 2-мя кнопками |
1 | DIALOG_STYLE_INPUT | Диалог с полем для ввода |
2 | DIALOG_STYLE_LIST | Список из нескольких элементов |
3 | DIALOG_STYLE_PASSWORD | Позволяет игрокам вводить пароль не раскрывая его |
Функция:
Вызывается диалоговое окно функцией ShowPlayerDialog, структура функции такая:
Упрощение:
Обычно, чтобы не запоминать цифры и не писать длинное название стилей диалогов, я заменяю их такими макросами:
Или можно использовать <ID> стиля диалогового окна
Для написания основного текста диалогового окна вы можете использовать нижеприведенную таблицу:
\b | backspaсe |
\f | Form feed |
\n | Переход на новую строку |
\r | Возврат каретки |
\t | Табуляция |
\v | Вертикальная табуляция |
\' | Одиночная кавычка |
\" | Двойные кавычки |
\? | Вопросительный знак |
Мы сделали диалоговое меню, состоящее из 9 пунктов. А нам надо сделать так, чтобы при нажатии на первый пункт, у нас появлялся другой диалог с другой информацией. Для этот мы будем использовать вот такой код:
Условные конструкции:
Вот примет одной конструкции
Пример диалога с использование условной конструкцией
Создадим команду с использование ZCMD (командный процессор)
Креативизация:
Вы решили создать диалог, а он серы и скучный?
Мы можем раскрасить наш диалог в любые цвета формата RGB.
Пример:
Цвет мы заключаем в фигурную скобку "<" и ">"
FFFFFF - это белый цвет
3DB6F2 - светло-голубой
Думаю цвета вам не доставит большого труда отыскать. Для этого есть множество поисковых система.
Оператор switch – это оператор выбора. Он удобен в первую очередь тем, что может заменить много условий if, которые проверяют значение одной переменной.
Пример построения с этим оператором:
! Стоить отметить, что в официальной документации к языку написано: ‘In pawn, switch is a structured “if”‘, а это значит, что конструкция switch — это набор структурированных if’ов, отсюда следует, что switch не может работать быстрее if. Но это не всегда так.
Как видим — switch/case медленнее(значительно) if только на больших промежутках значений.
Сейчас бы я хотел немного рассказать вам о том, как можно в один диалог использовать гораздо большее количество символов.
Данный метод подходит, когда есть некоторые переменные, которые нужно внедрить в текст.
Есть еще один метод, который более менее мне известный - это константная переменная. Этот пример часто встречается в RLS/SRL модах. Мне же не очень нравится этот метод.Причины: не очень читабельный для человека, в отличии от первого примера.
В пером случаи делается все давольно просто и знакомо, где после обьявления макроса, мы задаем имя и параметр.
Совет: для объявления макроса/директивы, лучше использовать имена в ВЕРХНЕМ регистре. Почему? А вот почему: если мы будем исползовать имена в нижнем регистре, то есть вероятность того, что мы сможем перепутать их с переменными.
Во втором случае мы добавим перечисление enum <>.
Само слово перечисление говорит нам о том, что мы будет перечислять по порядку от нуля до N-ного числа.
Читайте также: