ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Скрипты которые - ... от пилота Andrei [<>Ace] | страница 1 |
|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]» |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
. В теме обсуждаем Скрипты отмеченные как - "... от пилота Andrei [<>Ace]". Скрипты и информацию по ним можно найти в базе данных Elite Games. Подробное описание скриптов в Readme_xxx.doc в архиве со скриптом.
. Можно предложить Ваши идеи скриптов, если посчитаю актуальными и воплотимыми, постараюсь сделать скрипт.
Последний раз редактировалось: Andrei [<>Ace] (22:45 30-09-2007), всего редактировалось 22 раз(а) |
|
|
ValeRoN
88 EGP
 Рейтинг канала: 1(3) Репутация: 12 Сообщения: 159 Откуда: Минск Зарегистрирован: 30.10.2006
 |
|
Мне кажется идея классная!!
С нетерпением жду скрипта.
_________________ Я не понял, где ты конкретно не понял.
Вы помедленнее флудите, я ж записываю! |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Valeron : |
Мне кажется идея классная!!
С нетерпением жду скрипта.
|
Понимаю рвение отметиться , но всеже прошу постить по существу обсуждаемых вопросов.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
Хотелось бы увидеть развернутые оценки скрипта, предложения по улучшению «итерфейса».
|
Скажу по существу - я вообще до сих пор не понял, о чем идёт речь Можешь объяснить подробнее, для чего это нужно и что оно делает? Наверное не один я не понял
И что такое "шаблон товара"?
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
И что такое "шаблон товара"?
|
SS_WARE_SW_NEW вот это я имею ввиду под словосочитанием "шаблон товара", так как новый товар можно ввести в игру только через эту фишку, ну и там сразу заложена цена. Таких шаблонов только 20. 20 было, сейчас свободных гораздо меньше, некоторые занял бонус пак (включая те которые я использовал в своих скриптах, некоторые используют в своих скриптах другие авторы.
AlexYar : |
Скажу по существу - я вообще до сих пор не понял, о чем идёт речь Можешь объяснить подробнее, для чего это нужно и что оно делает? Наверное не один я не понял
|
Так вот, чтобы и у других была возможность представить свои товары, я, вместо четырех используемых ранее шаблонов, теперь занимаю только один SS_WARE_SW_NEW4. Что это дает:
1. Заменить один шаблон при неожиданном наложении проще.
2. Не сильно напрягаю других в выборе шаблонов.
3. Есть задумки на будущее, Не нужно искать свободный шаблон.
Да и скрипт сам по себе интересный.
Ну а почему нужно обязательно использовать в скрипте шаблон?
Да как то сложилось, что на улучшения надо потратится. Раньше покупали товар, сейчас просто энная сумма будет удержана у игрока.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
Так вот, чтобы и у других была возможность представить свои товары, я, вместо четырех используемых ранее шаблонов, теперь занимаю только один SS_WARE_SW_NEW4. Что это дает:
|
Теперь более понятно. Еще в х2 я придумал методу, как всего одну команду можно расклонировать до бесконечности. Твоя идея похожа, но относится не к команде, а к товару? Надо будет подробнее глянуть, интересно
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
AlexYar : |
Теперь более понятно. Еще в х2 я придумал методу, как всего одну команду можно расклонировать до бесконечности. Твоя идея похожа, но относится не к команде, а к товару? Надо будет подробнее глянуть, интересно
|
Нет товар здесь не клонируется. Клонируется команда привязанная к товару. Все остальное делают локальные переменные.
|
|
|
ULiX
320 EGP
      Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005
 |
|
to Andrei [<>Ace]
Извечная проблема - никто не хочет тестить незаконченный продукт, а уж тем более давать рекомендации. Им подавай результат. У меня та же проблема была с дроидом. Я смотрю у нас идеи в общем похожи. Мой дроид тоже добавляет функциональность и при этом не использует ни слотов команд, ни слотов оборудования (товара). И при этом имеет интуитивный удобный интерфейс на основе диалога. То, что уже сделано и выложено имеет давольно сильные функции, и даже в том виде, какой он есть сейчас, он очень полезен. Однако проект был заморожен в надежде добавления нужных скрипт команд в новом патче. Команд нет... Прийдётся делать по старому алгоритму...
Предлагаю объдинить усилия. Мне кажется, использование диалогового меню пользователям будет удобнее для изменения параметров и активации возможностей и функций. Централизованная система запросов с быстрым доступом (не заглядывая в консоль) повышает эфективность использования многих способностей, которые затрудненно использовать в бою в связи с затратами времени на отдачу приказа и ввода данных.
Кроме всего прочего, я стараюсь делать объединённые многофункциональные модули, что ведёт к меньшим затратам времени компиляции и ускорению работы скриптов. Вынесение малых функций в отдельные скрипт файлы ведёт к увеличению времени обработки задачи за счет вызова удаленных процессов.
Чем собственно отличались наши идеи.
Для активации новых способностей, ты хотел покупать дополнительное (виртуальное) оборудование, путём запросов у некоторой службы поддержки. Мой дроид должен был приобретать новые возможности после нахождения дополнительных (виртуальных, нематериализованых) модулей после выполнения определённых шагов задуманного квеста (так интереснее). В демо версии все модули дроида установлены. Но к тому же эти модули работают как ПО (програмное обеспечение) дроида, т.е. требуют на корабле наличие стандартного оборудования для возможности использования. Собственно у тебя та же концепция. Ограничения моего дроида - это
1) расширение возможностей и функциональности только корабля игрока.
2) дроид путешествует вместе с игроком от корабля к кораблю.
3) дроид подстраивается к каждому кораблю индивидуально и помнит настройки на каждом корабле, где побывал игрок.
Как видишь, в целом идеи похожи, только реализация разная.
И у тебя и у меня сейчас стоит вопрос, что именно будет включать данная система, какие способности дать, и как их реализовать. Даже не так... Какие из уже имеющихся скриптовых возможностей включить в данную систему. Т.е. идея глобализации различных подсистем в централизованную. (ака микрософт офис).
И одна и та же проблема с захломлением журнала. Ничего, у меня хлама больше! Хотя можно цеплять изменённый x3story.obj с новыми командами... Но тогда работоспособность скриптов будет зависить ещё и от пилотов добаляющих новые команды в скрипт редактор. Но выход официальных патчей ещё не остановлен, и ситема не будет совместима с новыми версиями игры. Всегда нужно чем-то жертвовать. Кроме того, используюя стандартный набор команд, есть шанс подписать свой проект у разработчиков.
Дроида, думаю, ты уже видел:
http://www.elite-games.ru/conference/download.php?id=429
_________________ Новое ещё не значит лучшее |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
ULiX : |
Предлагаю объдинить усилия. Мне кажется, использование диалогового меню пользователям будет удобнее для изменения параметров и активации возможностей и функций. Централизованная система запросов с быстрым доступом (не заглядывая в консоль) повышает эфективность использования многих способностей, которые затрудненно использовать в бою в связи с затратами времени на отдачу приказа и ввода данных.
|
Где ты был в пятницу. Идея хорошая. Опробовал. Да журнал немного пострадает. А может есть какая-нить команда без записи в журнал? Но и непрерывный диалог не получиться, необходимо вводить дополнительные аргументы.
Да и команды побереч можно. Максимум две-три использовать.
. Принял за основу идею предложенную ULiX-ом
Вот что получилось: ВТОРАЯ DEMOверсия Скрипта «Additional device "Universal Module of Connection"», смотрите первый пост.
Процес работы со скриптом «Additional device "Universal Module of Connection"» стал намного удобнее и информативнее.
В принципе скрипт рабочий (в плане того, что с ним идет скрипт "Hot keys for Ships"), но тем, кто использует мой Пакет, рекомендую поверх Пакета его не ставить.
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Вопрос второй.
Скрипт Module “TM” (Tracking Missile) версии V2.
Скрипт создает дополнительную клавишу для быстрого нацеливания на запущенную в корабль игрока(оборудованный Модулем "ТМ") ракету, а так же научит корабли игрока оборудованные Модулем "ТМ" сбивать запущенные в них ракеты.
Эффективен ли скрипт, какие замечания? Что изменить, добавить, убрать?
Поступили первые предложения:
1. Выводит звуковое сообщение, когда модуль не установлен при нажатии клавиши нацеливания.
2. Добавит шаблонов кода.
Каких шаблонов кода (приведите пример) и для каких кораблей добавить?
Какие ракеты представляют угрозу М3?
Какие ракеты представляют угрозу М4?
Какие ракеты представляют угрозу М5?
|
|
|
Romashka
230 EGP
  Рейтинг канала: 1(1) Репутация: 37 Сообщения: 521 Откуда: Астрахань Зарегистрирован: 26.11.2003
 |
|
может меня сочтут за читера
Но хотелось бы увидеть некое подобие радио, тоесть информационное окно в котором будут транслироваться все новости и миссии со всех станций в данном секторе, но без указания конкретной станции.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Andrei [<>Ace] : |
Какие ракеты представляют угрозу М3?Какие ракеты представляют угрозу М4?Какие ракеты представляют угрозу М5?
|
Ты мои мысли прочитал и решил сделать автоанализ ракет по опасности?
Проверяется просто - берешь показатель щита корабля и показатель дэмеджа ракеты (команда есть такая в разделе weapons). Если ракета гробит хотя бы треть щита за раз, то она считается опасной.
Ну и по размеру дэмеджа можно сортировать по уровню опасности сами ракеты.
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Romashka : |
... хотелось бы увидеть некое подобие радио, тоесть информационное окно в котором будут транслироваться все новости и миссии со всех станций в данном секторе, но без указания конкретной станции.
|
Подумаю, но пока закончу начатое...
AlexYar : |
Ты мои мысли прочитал и решил сделать автоанализ ракет по опасности?
|
Вообще-то, я просто хотел определиться с ракетами...
Но "Анализатор опасности попадания ракеты" в сложившейся ситуации - это даже очень интересно.
|
|
|
ULiX
320 EGP
      Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005
 |
|
Andrei [<>Ace] : |
Romashka :
... хотелось бы увидеть некое подобие радио, тоесть информационное окно в котором будут транслироваться все новости и миссии со всех станций в данном секторе, но без указания конкретной станции.
Подумаю, но пока закончу начатое...
|
Что тут думать. Нереально, если не делать мод. Новости конечно можешь генерить сколько угодно, но начать втсроенную BBS миссию вне станции невозможно - обработка идёт в obj. Можно только создать свои миссии с обработкой в скриптах. Да и в любом случае, не возможно узнать, какие именно новости висят на станциях, так как они генерируются при стыковке.
Andrei [<>Ace] : |
Где ты был в пятницу. Идея хорошая. Опробовал. Да журнал немного пострадает. А может есть какая-нить команда без записи в журнал? Но и непрерывный диалог не получиться, необходимо вводить дополнительные аргументы.
|
Команда есть, но для диалога не подходит, так как не позволяет узнать ответ пилота.
Однако в модуле с расширенными командами скриптов, есть нужная команда. В частности её использовали в казино. Но я ещё не видел подобной модификации для версии 2.0.02. Да и использовать этот модуль можно только создавая МОД, а не просто скрипты.
Увы, стандартными средствами, организовать диалог с чтением выбора пилота и автоматическим отображением выбраных пунктов, можно только по примеру меню дроида.
Да, конечно, ввод аргументов несколько затруднён, но всё равно возможен. К примеру, организация выбора объёма трюма - фиксированные значения чисел. Хотя можно было выбирать поразрядно, тысячи, сотни, десятки, единицы... и получить конкретное значение. Другое место задание параметра, при выборе цели для автооправки при захвате: создаётся список, из которого формируется динамическое меню, спиок станций, или список носителей. Таким же образом можно вводить конкретный товар, выбирая, скажем, субтип, а потом конкретный товар.
Я думаю, что можно найти способы, как организовать ввод парамметров минуя консоль. Конечно, можно создать дублированные возможности: хотите - через консоль, хотите - через меню... Всё для пилотов, кому как удобнее. Можно в диалоге дать рекомендации, как сделать через консоль, как это было у тебя в первой версии Но и дать возможность сделать то-же самое через диалог.
Что касается противоракетной обороны. Я, собственно, не хотел придумывать что-то своё. Просто увидел через какую Ж приходится вводить маску для настройки реакции ПРО, и решил, что эту маску можно настраивать не через консоль, а удобно-читаемо через диалог.
Ну а потом уже возникла идея создать более мощные системы ПРО, на подобии ESM в Elite. Далее я вспомнил Джони-5 из фильма "Короткое замыкание 1,2", который мог управлять электроникой на растоянии, и возникла идея перенаправлять ракеты. Вот только эта идёя что-то не очень поддаётся реализации. Единственное, что у меня получилось - это физически столкнуть ракету с врагом, меняя координаты ракеты как объекта, и совмещая их с жертвой. Но тогда прийдётся делать свою скриптовую процедуру двигающую ракету, исходя из её характеристик. Другой вариант, который я ещё не пробовал, уничтожить старую ракету и создать на её месте новую с новыми параметрами цели.
Кроме того, нужно научить дроида отличать ракеты с наведением. от обычных неуправляемых ракет, а то будет нонсенс, если он повернёт торпеду
_________________ Новое ещё не значит лучшее |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Romashka : |
...хотелось бы увидеть некое подобие радио, тоесть информационное окно в котором будут транслироваться все новости и миссии со всех станций в данном секторе, но без указания конкретной станции.
|
ULiX : |
Нереально, если не делать мод. Новости конечно можешь генерить сколько угодно, но начать втсроенную BBS миссию вне станции невозможно - обработка идёт в obj. Можно только создать свои миссии с обработкой в скриптах. Да и в любом случае, не возможно узнать, какие именно новости висят на станциях, так как они генерируются при стыковке.
|
Так вернее будет. Но подумать в любом случае можно.
ULiX : |
Кроме того, нужно научить дроида отличать ракеты с наведением. от обычных неуправляемых ракет, а то будет нонсенс, если он повернёт торпеду
|
Не беда, если верить таблице subtype неуправляемых ракет такие 2, 9, 15, 18, 23, 25 собираешь их в архив и сверяешь, как понадобиться.
ULiX : |
Я думаю, что можно найти способы, как организовать ввод парамметров минуя консоль. Конечно, можно создать дублированные возможности: хотите - через консоль, хотите - через меню... Всё для пилотов, кому как удобнее. Можно в диалоге дать рекомендации, как сделать через консоль, как это было у тебя в первой версии Но и дать возможность сделать то-же самое через диалог.
|
Ввод данных через меню эффективен при малом количестве обектов.
Буду делать смешанный ввод. Как только понадобятся дополнительные аргумент - лезь в консоль и вводи. Нечего забор городить.
|
|
|
ULiX
320 EGP
      Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005
 |
|
Andrei [<>Ace] : |
Ввод данных через меню эффективен при малом количестве обектов.
Буду делать смешанный ввод. Как только понадобятся дополнительные аргумент - лезь в консоль и вводи. Нечего забор городить.
|
Ну можно и погородить, разбвая большие списки на страницы подтипов. Ведь всё равно игрок при выборе параметров будет придерживаться какой-то концепции, как бы фильтруя список. Сделать несколько фильтров - и число объектов будет уменьшаться. Вот скажем при выводе отчета о торговых операциях, в случае слишком большого числа найденных объктов, производилась разбивка на страницы (вынужденная, оказывается один лог в журнале ограничен числом строк).
Ещё у меня была идея в отчете внутрисекторальных сделок и в отчете торгового помошника сделать кнопочки на каждый пункт, чтоб можно было свой корабль автоматически поставить на курс. Увидел достойный маршрут, выбрал, и кораблик пошёл на автопилоте выполнять транзакции. Или (для внутрисекторальных сделок) выбрал маршрут, выбрал корабль из списка, и забыл, ака ручной режим "торговой сети".
_________________ Новое ещё не значит лучшее |
|
|
Black_Jak
65 EGP
 Репутация: 5 Сообщения: 73
Зарегистрирован: 22.10.2006
 |
|
ULiX : |
Что тут думать. Нереально, если не делать мод. Новости конечно можешь генерить сколько угодно, но начать втсроенную BBS миссию вне станции невозможно - обработка идёт в obj. Можно только создать свои миссии с обработкой в скриптах. Да и в любом случае, не возможно узнать, какие именно новости висят на станциях, так как они генерируются при стыковке.
|
Ну а такой вариант:
Окно новостей сектора подразделяется на разделы всех станций, выбираешь станцию, происходит псевдостыковка (скриптовая) и кидает сразу в раздел новостей, получаешь в окне все тамошние новости, выбираешь нужное и вперед, или просто закрываешь после пересмотра, (отключаешь контакт-радио)!
Так можно реализовать?
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
То Black_Jak
Извини, но мне пока некогдазаниматься вопросом новостей.
В этой теме я просил обсуждать только вопросы и идеи связанные с темой или Пакетом скриптов от пилота Andrei [<>Ace](смотри первый пост первый абзац)
А по вопросам радио пака обратитесь в тему К скриптерам просьба
|
|
|
Romashka
230 EGP
  Рейтинг канала: 1(1) Репутация: 37 Сообщения: 521 Откуда: Астрахань Зарегистрирован: 26.11.2003
 |
|
Andrei [<>Ace] : |
по вопросам радио
|
Запрос отправлен. Спасибо что не отказали.
|
|
|
ULiX
320 EGP
      Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005
 |
|
Тестить очень сложно!
Если это демо версия для тестирования, то обеспечь своих тестеров информацией.
** За что отвечает каждый модуль скрипта. Тестеру сложно копаться и искать нужный момент, когда он даже не знает толком, где скать, а у тебя их 24 штуки, ну можно конечно отсеить некоторые по логическим соображениям, однако всё равно прийдётся искать нужное хотяб в 3-5 модулях, либо начинать с сетапа и продвигаться по цепочке, но это не дело. Сам ведь понимаешь, что по фразам нужного места не найти, прийдётся ещё покапаться в текстовом модуле, чтоб опредилить номер нужной страницы и тега.
** Далее. Откуда по твоему тестер должен узнать, что в скриптах уже осуществлено, а что просто декарация? ОТкуда тестер может знать, что определённые моменты не работают не из-за глюков, а из-за того, что просто не обрабатываются? Вот например, покупка оборудования через диалог не даёт никакого эффекта... Почему? Тестер должен копаться в коде и разбираться? Ну покапался он и понял, что обработки этих событий вообще нет, только время тратил.
Теперь по существу.
Код: |
- <page id="2010" title="Script Cmd Names" descr="Long version of commandos. These are the commandos assigned to ships using the commandconsole. Page 2010 and 2011 belong together and hold short and long versions of the same commands" voice="0">
<t id="460">Запустить ПО "Navigator Trader"</t>
<t id="461">Запустить ПО "Navigator Miner"</t>
<t id="563">Запустить ПО "Ship Scout"</t>
<t id="758">Запустить ПО "Scout"</t>
<t id="759">Запустить ПО "ТМ"</t>
<t id="760">Назначить клавишу</t>
<t id="761">Удалить клавишу</t>
<t id="815">Включить UMC</t>
|
Предлагаю всё это осуществить через диалог меню, исключая 815, которую предлагаю посадить на горячку, хотя можно и оставить в консоле.
Код: |
055 $string = sprintf: pageid=$pageid textid=81550, $menu.software, $menu.service, $menu.gift, null, null
056 $menu.umc = $string
057
058 send incoming question $menu.umc to player: callback='ace.service.enter.code.operation
|
Это из соображений, "почему бы не использовать лишнюю переменную"?
Идея рекурсивного вызова обработки ответа из самого процеса обработки ответа мне очень понравилась. Действительно в этом случае меню появляются на экране автоматически и не нужно извращаться с выводом незначащего сообщения,как я это сделал в дроиде, только для того, чтоб отобразить диалог не вынуждая пилота читать входящие сообщения. Ну я о такой фишке не знал, пробовал всякими способами, но рекурсию использовать не догадался - в голову не приходило, что даст нужный результат.
И общие замечания по стилю.
Программирование спонтанное, без предварительного построения модели, что пораждает нерациональные моменты и ведёт к размазыванию кода. Хотя в общем наблюдается некотарая конструтивность - копирование, вставка рулит
Использование номерного идентификатора команд, скоро приведёт тебя к путанице. Конечно, легче записать цифру, как бы быстрее, с учетом специфики данного редактора, но потом ты станешь забывать, за что какая цифра отвечала. Я в дроиде отказался от числовой ситстемы, там где это возможно. Числа удобней использовать как идентификатор динамического списка, а символьные идентификаторы будут всегда помогать тебе ориентироваться - ты ведь ремарки не вставляешь, так вот эти символы идентификатора команд служат как ремарка и как часть программы.
Учитывая найденное тобой НОУ-ХАО с рекурсией, для облегчения автоматического вывода диалога, напрашивается следующая структура:
Код: |
Menu.System (CodeOp as String)
//Блок вывода меню диалога, он же обработчик ответа
{
// Dialog.F.Active - глобальная переменная,
// 1 - пользователь лазает по подменю
// 0 - пользователь закрыл меню, и это первый запуск, или запуск после закрытия
//
// Dialog.LastMenu - глобальная
// Содержит идентификатор последнего активного подменю.
//
if Not Dialog.F.Active
{
// Если первый запуск, то по правилам хорошего тона, отправим пользователя в
// то меню, где он лазал в последний раз (можно и не делать этого)
// В стартовое меню отсюда отправлять не нужно, будет лишним.
// Также сдесь возможны дополнительные проверки и отправка в нужное меню по ситуации
Dialog.F.Active = 1
if Dialog.LastMenu = IDSubMenu2 goto SubMenu2
if Dialog.LastMenu = IDSubMenu3 goto SubMenu3
if Dialog.LastMenu = IDSubMenu4 goto SubMenu4
//...
}
else
{
// Если же меню уже активировано, то поступил рукурсивный вызов
// и мы начинаем обработку входных данных и выбора нового суб меню или обработчика
if CodeOp = IDSubMenu1 goto SubMenu1
if CodeOp = IDSubMenu2 goto SubMenu2
if CodeOp = IDSubMenu3 goto SubMenu3
if CodeOp = IDSubMenu4 goto SubMenu4
if CodeOp = IDCommand11 goto Command11
if CodeOp = IDCommand12 goto Command12
if CodeOp = IDCommand21 goto Command21
if CodeOp = IDCommand22 goto Command22
if CodeOp = IDCommand23 goto Command23
if CodeOp = IDCommandClose goto CommandClose
}
// Стартовое главное меню
SubMenu1:
Dialog.LastMenu = IDSubMenu1
...
goto PrintMenu
// Команды субменю (при выборе пунктов без перехода в другое подменю)
// После завершения цепочки команд меню обновляется.
Command11:
...
goto SubMenu1
Command12:
...
goto SubMenu1
SubMenu2:
Dialog.LastMenu = IDSubMenu2
...
Goto PrintMenu
Command21:
...
goto SubMenu2
Command22:
...
goto SubMenu2
Command23:
...
goto SubMenu2
SubMenu3:
Dialog.LastMenu = IDSubMenu3
...
goto PrintMenu
SubMenu4:
Dialog.LastMenu = IDSubMenu4
...
goto PrintMenu
SubMenu5:
Dialog.LastMenu = IDSubMenu5
...
goto PrintMenu
CommandClose:
Dialog.F.Active = 0
return 0
// Вывод меню и закрытие модуля до следующего рекурсивного вызова.
PrintMenu:
send incoming question $menustring to player: callback='Menu.System'
return 0
}
|
Чтоб применить данную схему к моему дроиду, мне прийдётся понаставить кучу дополнительных меток, и вынести общий обработчик ответов... Вот тут-то и здорого, что я не использовал числовых идентификаторов для ответов.
Кроме этого, уже проверил, что если модуль имеет параметр, и вызывается по горячей клавише, то параметр просто будет иметь значение Null (ещё один признак первого вызова меню). Однако, если вызвать этот модуль через консоль. то значение параметра запросится. Поэтому активацию меню по рекурсивной схеме лучше делать по горячей клавише.
P.S.
Матерился долго с этим НД переводом в отношении скриптов. Типы переменных перевели - сволочи!!! Я привык видеть Var\String а не Перем\Текст. УЖАС!
P.P.S.
Надеюсь, приведённый материал поможет. И всё же, сделай боле подробные инструкции для тестеров.
P.P.P.S
По случаю жизни, я занимаюсь разработкой интерфейсов и устройств сопряжения для различных научных приборов. Вот не думал, что прийдётся заниматься разработкой интерфейса виртуальных приборов
_________________ Новое ещё не значит лучшее |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Подходи тихо, стреляй точно, улетай быстро.
|
» Скрипты которые - ... от пилота Andrei [<>Ace] | страница 1 |
|