Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Скрипты которые - ... от пилота Andrei [<>Ace] | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 8
На страницу: 1, 2, 3, 4, 5, 6, 7, 8  След. | Все страницы
Поиск в этой теме:
Канал 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 раз(а)
    Добавлено: 22:53 27-11-2006   
ValeRoN
 88 EGP


Рейтинг канала: 1(3)
Репутация: 12
Сообщения: 159
Откуда: Минск
Зарегистрирован: 30.10.2006
Мне кажется идея классная!! Супер!
С нетерпением жду скрипта. Подмигиваю
_________________
Я не понял, где ты конкретно не понял.
Вы помедленнее флудите, я ж записываю!
    Добавлено: 13:27 28-11-2006   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Valeron :
Мне кажется идея классная!!
С нетерпением жду скрипта.


Понимаю рвение отметиться Улыбка , но всеже прошу постить по существу обсуждаемых вопросов.
    Добавлено: 13:31 01-12-2006   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Хотелось бы увидеть развернутые оценки скрипта, предложения по улучшению «итерфейса».


Скажу по существу - я вообще до сих пор не понял, о чем идёт речь Гы-гы Можешь объяснить подробнее, для чего это нужно и что оно делает? Наверное не один я не понял Улыбка

И что такое "шаблон товара"?
    Добавлено: 17:36 01-12-2006   
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. Есть задумки на будущее, Не нужно искать свободный шаблон.

Да и скрипт сам по себе интересный. Улыбка

Ну а почему нужно обязательно использовать в скрипте шаблон?
Да как то сложилось, что на улучшения надо потратится. Раньше покупали товар, сейчас просто энная сумма будет удержана у игрока.
    Добавлено: 18:51 01-12-2006   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Так вот, чтобы и у других была возможность представить свои товары, я, вместо четырех используемых ранее шаблонов, теперь занимаю только один SS_WARE_SW_NEW4. Что это дает:


Теперь более понятно. Улыбка Еще в х2 я придумал методу, как всего одну команду можно расклонировать до бесконечности. Твоя идея похожа, но относится не к команде, а к товару? Надо будет подробнее глянуть, интересно Улыбка
    Добавлено: 22:38 01-12-2006   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
AlexYar :
Теперь более понятно. Еще в х2 я придумал методу, как всего одну команду можно расклонировать до бесконечности. Твоя идея похожа, но относится не к команде, а к товару? Надо будет подробнее глянуть, интересно


Нет товар здесь не клонируется. Клонируется команда привязанная к товару. Все остальное делают локальные переменные.
    Добавлено: 22:42 01-12-2006   
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
_________________
Новое ещё не значит лучшее
    Добавлено: 12:31 04-12-2006   
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"), но тем, кто использует мой Пакет, рекомендую поверх Пакета его не ставить.
    Добавлено: 22:02 04-12-2006   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Вопрос второй.

Скрипт Module “TM” (Tracking Missile) версии V2.
Скрипт создает дополнительную клавишу для быстрого нацеливания на запущенную в корабль игрока(оборудованный Модулем "ТМ") ракету, а так же научит корабли игрока оборудованные Модулем "ТМ" сбивать запущенные в них ракеты.

Эффективен ли скрипт, какие замечания? Что изменить, добавить, убрать?

Поступили первые предложения:
1. Выводит звуковое сообщение, когда модуль не установлен при нажатии клавиши нацеливания.
2. Добавит шаблонов кода.

Каких шаблонов кода (приведите пример) и для каких кораблей добавить?

Какие ракеты представляют угрозу М3?
Какие ракеты представляют угрозу М4?
Какие ракеты представляют угрозу М5?
    Добавлено: 20:50 05-12-2006   
Romashka
 230 EGP


Рейтинг канала: 1(1)
Репутация: 37
Сообщения: 521
Откуда: Астрахань
Зарегистрирован: 26.11.2003
может меня сочтут за читера
Но хотелось бы увидеть некое подобие радио, тоесть информационное окно в котором будут транслироваться все новости и миссии со всех станций в данном секторе, но без указания конкретной станции.
    Добавлено: 21:22 05-12-2006   
AlexYar
 1851 EGP


Рейтинг канала: 13(2096)
Репутация: 324
Сообщения: 31640

Зарегистрирован: 26.10.2003
Andrei [<>Ace] :
Какие ракеты представляют угрозу М3?Какие ракеты представляют угрозу М4?Какие ракеты представляют угрозу М5?


Ты мои мысли прочитал и решил сделать автоанализ ракет по опасности? Гы-гы

Проверяется просто - берешь показатель щита корабля и показатель дэмеджа ракеты (команда есть такая в разделе weapons). Если ракета гробит хотя бы треть щита за раз, то она считается опасной.
Ну и по размеру дэмеджа можно сортировать по уровню опасности сами ракеты.
    Добавлено: 21:50 05-12-2006   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
Romashka :
... хотелось бы увидеть некое подобие радио, тоесть информационное окно в котором будут транслироваться все новости и миссии со всех станций в данном секторе, но без указания конкретной станции.

Подумаю, но пока закончу начатое...

AlexYar :
Ты мои мысли прочитал и решил сделать автоанализ ракет по опасности? Гы-гы


Вообще-то, я просто хотел определиться с ракетами... Гы-гы
Но "Анализатор опасности попадания ракеты" в сложившейся ситуации - это даже очень интересно. Супер!
    Добавлено: 23:16 05-12-2006   
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", который мог управлять электроникой на растоянии, и возникла идея перенаправлять ракеты. Вот только эта идёя что-то не очень поддаётся реализации. Единственное, что у меня получилось - это физически столкнуть ракету с врагом, меняя координаты ракеты как объекта, и совмещая их с жертвой. Но тогда прийдётся делать свою скриптовую процедуру двигающую ракету, исходя из её характеристик. Другой вариант, который я ещё не пробовал, уничтожить старую ракету и создать на её месте новую с новыми параметрами цели.

Кроме того, нужно научить дроида отличать ракеты с наведением. от обычных неуправляемых ракет, а то будет нонсенс, если он повернёт торпеду Улыбка
_________________
Новое ещё не значит лучшее
    Добавлено: 10:13 06-12-2006   
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 :
Я думаю, что можно найти способы, как организовать ввод парамметров минуя консоль. Конечно, можно создать дублированные возможности: хотите - через консоль, хотите - через меню... Всё для пилотов, кому как удобнее. Можно в диалоге дать рекомендации, как сделать через консоль, как это было у тебя в первой версии Но и дать возможность сделать то-же самое через диалог.


Ввод данных через меню эффективен при малом количестве обектов.
Буду делать смешанный ввод. Как только понадобятся дополнительные аргумент - лезь в консоль и вводи. Нечего забор городить.
    Добавлено: 10:44 06-12-2006   
ULiX
 320 EGP


Рейтинг канала: 7(691)
Репутация: 146
Сообщения: 573
Откуда: Комсомольск на-Амуре
Зарегистрирован: 12.07.2005
Andrei [<>Ace] :
Ввод данных через меню эффективен при малом количестве обектов.
Буду делать смешанный ввод. Как только понадобятся дополнительные аргумент - лезь в консоль и вводи. Нечего забор городить.

Ну можно и погородить, разбвая большие списки на страницы подтипов. Ведь всё равно игрок при выборе параметров будет придерживаться какой-то концепции, как бы фильтруя список. Сделать несколько фильтров - и число объектов будет уменьшаться. Вот скажем при выводе отчета о торговых операциях, в случае слишком большого числа найденных объктов, производилась разбивка на страницы (вынужденная, оказывается один лог в журнале ограничен числом строк).

Ещё у меня была идея в отчете внутрисекторальных сделок и в отчете торгового помошника сделать кнопочки на каждый пункт, чтоб можно было свой корабль автоматически поставить на курс. Увидел достойный маршрут, выбрал, и кораблик пошёл на автопилоте выполнять транзакции. Или (для внутрисекторальных сделок) выбрал маршрут, выбрал корабль из списка, и забыл, ака ручной режим "торговой сети".
_________________
Новое ещё не значит лучшее
    Добавлено: 11:12 06-12-2006   
Black_Jak
 65 EGP


Репутация: 5
Сообщения: 73

Зарегистрирован: 22.10.2006
ULiX :
Что тут думать. Нереально, если не делать мод. Новости конечно можешь генерить сколько угодно, но начать втсроенную BBS миссию вне станции невозможно - обработка идёт в obj. Можно только создать свои миссии с обработкой в скриптах. Да и в любом случае, не возможно узнать, какие именно новости висят на станциях, так как они генерируются при стыковке.

Ну а такой вариант:
Окно новостей сектора подразделяется на разделы всех станций, выбираешь станцию, происходит псевдостыковка (скриптовая) и кидает сразу в раздел новостей, получаешь в окне все тамошние новости, выбираешь нужное и вперед, или просто закрываешь после пересмотра, (отключаешь контакт-радио)!
Так можно реализовать?
    Добавлено: 16:08 06-12-2006   
Andrei [<>Ace]
 303 EGP


Рейтинг канала: 6(416)
Репутация: 108
Сообщения: 766
Откуда: Беларусь, Салiгорск
Зарегистрирован: 29.03.2006
То Black_Jak

Извини, но мне пока некогдазаниматься вопросом новостей.
В этой теме я просил обсуждать только вопросы и идеи связанные с темой или Пакетом скриптов от пилота Andrei [<>Ace](смотри первый пост первый абзац)

А по вопросам радио пака обратитесь в тему К скриптерам просьба
    Добавлено: 16:22 06-12-2006   
Romashka
 230 EGP


Рейтинг канала: 1(1)
Репутация: 37
Сообщения: 521
Откуда: Астрахань
Зарегистрирован: 26.11.2003
Andrei [<>Ace] :
по вопросам радио

Запрос отправлен. Спасибо что не отказали.
    Добавлено: 08:59 08-12-2006   
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
По случаю жизни, я занимаюсь разработкой интерфейсов и устройств сопряжения для различных научных приборов. Вот не думал, что прийдётся заниматься разработкой интерфейса виртуальных приборов Ой, не могу!..
_________________
Новое ещё не значит лучшее
    Добавлено: 09:57 08-12-2006   
Канал X3: Reunion -> Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]»
На страницу: 1, 2, 3, 4, 5, 6, 7, 8  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Больше модеров в КСО - всяких и разных, дабы ни один пилот не остался необиженным! (Helga)

  » Скрипты которые - ... от пилота Andrei [<>Ace] | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18