www.mudconnector.su
https://forum.mudconnector.su/

Графический интерфейс для создания триггеров
https://forum.mudconnector.su/viewtopic.php?f=15&t=127
Страница 2 из 2

Автор:  KadVar [ Пн сен 07, 2009 6:47 pm ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

Pacifist писал(а):
Ну избавит от необходимости выполнения последовательности лишних действий. Например, при написании тех же самых триггеров, я не особо силен в программировании, поэтому не могу заранее сказать будет работать написанное мной или нет. Итак, я пишу триггер, запускаю локальный сервер, конекчусь к нему клиентом, персонажем ползу на то место где находится этот триггер, и смотрю работает ли он и работает ли так как надо (может можно и по другому поступать, я не знаю, на данный момент я делаю так). Тратится много времени, которое можно было бы потратить на что-нибудь другое, а так можно было бы написать триггер в редакторе, тут же запустить его и посмотреть как он работает.


Я-бы предложил такую схему за "идеал".
Запускаете сервер, идете в нужное место.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Идти кстати не надо - надо goto подключить в дебаг-моде.

Такой вариант устроит ?

ЗЫ. Ваше мнение в этом контексте наиболее интересно, т.к. лично меня интересуют люди не обладающие спецподготовкой.

Автор:  omlin [ Чт сен 10, 2009 6:11 am ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

KadVar писал(а):
Запускаете сервер, идете в нужное место.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.


Было бы очень удобно.
Вообще это не только к триггерам относится:)
Отдельная перезагрузка полностью либо выборочно ресетов/мобов/предметов/комнат - это очень нужная штука, хотя бы для билдеров, да и на действующей системе вполне пригодится, хотфиксы делать.

Правда, это вопрос реализации. И вопрос не такой уж и банальный...
Впрочем, такие мады есть, насколько я слышал. Так что все реально.


Возвращаясь к графическому интерфейсу...
Пара развернутых примеров внешнего вида триггеров:
Вложение:
Комментарий к файлу: триггер 27200 (Игрок берет яйцо из гнезда совы)
gr_trig_sova.jpg
gr_trig_sova.jpg [ 47.18 KIB | Просмотров: 10309 ]

Вложение:
Комментарий к файлу: первый квест барона (частично)
gr_trig_baron.jpg
gr_trig_baron.jpg [ 150.3 KIB | Просмотров: 10312 ]


Что хочется прокомментировать:

1. Считаю весьма важным логическое разделение и объединение триггеров.
Например, триггеры первого квеста барона объединены в отдельную группу.
Триггеры второго квеста - по идее желательно расположить в другой группе (даже несмотря на то, что по идее второй квест барон выдает сразу после конца первого). Причем там тоже будут триггеры на вход, на ресив и т.п.
Да, а поскольку кухарка и пес также учавствуют в первом квесте, в идеале нужно бы и их триггеры добавить в группу к этому квесту (у меня пока не добавлено).

2. Могут возникнуть проблемы с копипастом, поэтому к данному "древовидному" языку необходимо создать сериалайзер - самое простое в XML, ну или во что-то еще, причем сериализованные строки надо дать возможность просматривать и редактировать, и соответственно - копипастить.

3. Редактирование строк триггера можно в принципе реализовать и внутри контрола, подменяя текст веток EditBox-ами и ListBox-ами. Тогда драг-н-дроп не нужен - а значит сэкономим кучу места на экране.


P.S. Времени пока практически нет. Так что когда еще что-то рожу не знаю)

Автор:  Кошир [ Чт сен 10, 2009 7:32 pm ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

"В комнату с монстром зашли", вероятно лучше выводить как "В комнату с монстром <ID> зашли"
А еще - "self.quest.given = 1", "object.val3 != 0", "actor.var_27203=1" выглядят печально и просятся быть замененными в русскоязычном интерфейса на "квест_барона.выдан = 1("да"?)", "предмет.отравлен="0"("нет"?)", "игрок.квест_барона=1("да"?)"

Автор:  Pacifist [ Пт сен 11, 2009 7:03 am ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

KadVar писал(а):
Я-бы предложил такую схему за "идеал".
Запускаете сервер, идете в нужное место.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Изменяете триггер. Сохраняете его. На сервере даете 1 команду (или даже не даете ее) - он обновляется. Тестируете.
Идти кстати не надо - надо goto подключить в дебаг-моде.

Такой вариант устроит ?

ЗЫ. Ваше мнение в этом контексте наиболее интересно, т.к. лично меня интересуют люди не обладающие спецподготовкой.

Можно и так, примерно то же самое получается.

Автор:  KadVar [ Ср сен 16, 2009 6:21 pm ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

Pacifist писал(а):
Можно и так, примерно то же самое получается.

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

Автор:  Эрендир [ Чт сен 17, 2009 12:24 am ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

а может к редактору прикрутить простенький клиент? А по нажатию кнопки "проверить триггер" делать все перечисленные действия:
сохранить, загрузить на сервере, сделать goto, опционально проверить.

Автор:  omlin [ Чт сен 17, 2009 10:42 am ]
Заголовок сообщения:  Re: Графический интерфейс для создания триггеров

Эрендир писал(а):
а может к редактору прикрутить простенький клиент? А по нажатию кнопки "проверить триггер" делать все перечисленные действия:сохранить, загрузить на сервере, сделать goto, опционально проверить.

да ну, чем клиент встроенный будет отличаться от клиента внешнего?
лишние телодвижения ради копеечного результата...
а насчет всяких гоуту и опциональных проверок - есть алиасы, пишешь 1 раз, и потом очень быстро и удобно все проверяется:)

но вообще, вы знаете, очень интересная мысль - насчет проверок, которые приписаны к триггеру... практически юнит тесты получаются :)
впрочем, их можно реализовать и без привязки клиента

Страница 2 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/