Форум Pawn.Wiki - Воплоти мечту в реальность!: DialogTree - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

DialogTree древовидный диалоговый процессор Оценка: ***** 1 Голосов

#1
Пользователь офлайн   M I S T E V 

  • Вставить ник
  • Раскрыть информацию
Сделал альтернативную версию диалогового обработчика DialogTree. В основе лежит mdialog, где используется отдельный паблик для создания и обработки диалога. Все тесты проводились при использовании open.mp (3.10.11).

Функционал системы:
Основные функции: [Показать]

Функции связанные с игроком: [Показать]

Функции вызываемые внутри «DialogCreate:» [Показать]

Функции вызываемые внутри «DialogResponse:» [Показать]

Константы: [Показать]

Пример использования: [Показать]


Скачать: DialogTree.inc [11,9К]

Сообщение отредактировал M I S T E V: 06 июля 2025 - 12:33

0

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

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
А для чего придумывать свои названия для макросов и функций? Не логичнее ли взять название того же mdialog (или другой библиотеки, если считаешь, что она популярнее), дабы те, кто решат перейти на твою библиотеку, могли это сделать без правок имён.

Ну и советую так же аналог "DialogInterrupt" из mdialog реализовать (коллбэк, который вызывается всякий раз, когда диалог закрывается другим диалогом и игрок, при этом, не нажимал никаких кнопок). Крайне полезно, чтоб сбрасывать данные системы в случае, если диалог по какой-то причине закрывается "извне" системы.
0

#3
Пользователь офлайн   M I S T E V 

  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDeimoS (22 июня 2025 - 19:33) писал:

А для чего придумывать свои названия для макросов и функций? Не логичнее ли взять название того же mdialog (или другой библиотеки, если считаешь, что она популярнее), дабы те, кто решат перейти на твою библиотеку, могли это сделать без правок имён.

Возможно, логичнее, но лично я не понимаю некоторых вещей, которые применяются в mdialog, поэтому решил сделать свою версию, с добавлением функций из своей же другой библиотеки. Насчёт названий ситуация такая же. Не понятно зачем делать отдельную приставку Dialog_, когда всё можно реализовать с "типичными" именами :blush: Возможно, позже сделаю макрос, чтобы применить нейминг из mdialog :wink:


Просмотр сообщенияDeimoS (22 июня 2025 - 19:33) писал:

Ну и советую так же аналог "DialogInterrupt" из mdialog реализовать (коллбэк, который вызывается всякий раз, когда диалог закрывается другим диалогом и игрок, при этом, не нажимал никаких кнопок). Крайне полезно, чтоб сбрасывать данные системы в случае, если диалог по какой-то причине закрывается "извне" системы.

В ближайшее время обязательно это добавлю :yes:
0

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

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияM I S T E V (22 июня 2025 - 23:30) писал:

Возможно, логичнее, но лично я не понимаю некоторых вещей, которые применяются в mdialog


Так, помимо необязательной интеграции zlang, там, вроде, нет никакого особенного функционала.


Просмотр сообщенияM I S T E V (22 июня 2025 - 23:30) писал:

Насчёт названий ситуация такая же. Не понятно зачем делать отдельную приставку Dialog_, когда всё можно реализовать с "типичными" именами


Чтоб у тебя нейминг был единообразным? В результате и запоминать названия проще, и использовать, за счёт подсказок редактора, так же проще. Особенно если сниппеты настроить, то достаточно каждый раз начать вводить "Dialog", чтоб уже все возможные варианты перед глазами были.

Дело, конечно, твоё, но я бы тебя ещё понял, если бы вместо "OpenPlayerDialog" ты использовал "ShowPlayerDialog", например - то бишь, не плодил новый нейминг, а использовал стандартный. А так получается, что и в твоём случае придётся новые названия запоминать, и в случае условного mdialog. Только во втором случае есть удобный единый префикс для большинства случаев, а у тебя все функции разношёрстно названы и, как минимум, первое время их точно придётся подглядывать в списке всех функций (не получится просто ввести условный "Dialog", увидеть во всплывающей подсказке список всех существующих функций и подобрать по названию нужную).
1

#5
Пользователь офлайн   M I S T E V 

  • Вставить ник
  • Раскрыть информацию
Обновлено.

    ■   Удален колбэк OnPlayerDialogReceived, вместо него добавлена функция DialogReceived:
    ■   Добавлена функция DialogInterrupt:
    ■   В функцию Dialog_Open добавлены параметры min и max (аналог функций Dialog_Min и Dialog_Max).
    ■   Теперь не обязательно использовать DialogCreate, чтобы отобразить диалог, достаточно задать все необходимые параметры в функции Dialog_Open.
    ■   При использовании DialogCreate можно задавать свои параметры, а не только playerid.
    ■   Названия функций приведены к общему стилю.

Сообщение отредактировал M I S T E V: 06 июля 2025 - 12:32

1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика