|
|
|
Канал X3: Terran Conflict »
Модовый и скриптовый отсек X3: Terran Conflict: «Mission Director aka MD (Новый квестовый движок от Эгософта)» |
|
|
Криптон
1011 EGP
       Рейтинг канала: 9(1038) Репутация: 164 Сообщения: 2667 Откуда: Москва Зарегистрирован: 05.04.2008
 |
|
Хранитель : |
А разве нужно только его?
|
Если ты про пункт (2), то конечно нет, можно и что-нибудь другое. Только я этого "чего-нибудь другого" просто не знаю.
|
|
|
Криптон
1011 EGP
       Рейтинг канала: 9(1038) Репутация: 164 Сообщения: 2667 Откуда: Москва Зарегистрирован: 05.04.2008
 |
|
Хранитель : |
кстати не подскажете, где можно его скачать?
|
На сайте MS, конечно.
Если нужна именно версия 2008, то вот:
http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
А так у них есть и более новая:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express
Для 2008-ой версии пробный период месяц, дальше требуется бесплатная регистрация.
|
|
|
Хранитель
|
|
большое спасибо! теперь наверняка заработает пожстановка слов
|
|
|
Хранитель
|
|
А вот ещё Праблэм. Как проверить дистанцию от корабля игрока до например какой-нить станции (в отсеке condition)?
|
|
|
Криптон
1011 EGP
       Рейтинг канала: 9(1038) Репутация: 164 Сообщения: 2667 Откуда: Москва Зарегистрирован: 05.04.2008
 |
|
В MD есть множество встроенных переменных, в справке они перечислены в таблице "Variable definitions"
Там, в частности, есть такие, как:
переменная | пример | описание | {object.distance@object} | {object.distance@enemy} | Distance of the specified object from the player (even if in another sector) |
{object.distance.m@object} | {object.distance.m@enemy} | Distance of the specified object from the player (even if in another sector) in metres |
{object.distance.km@object} | {object.distance.km@enemy} | Distance of the specified object from the player (even if in another sector) in kilometres |
Станцию можно найти через <find_station>.
А дальше <check_distance>.
|
|
|
Хранитель
|
|
Спасибо. Вы тут добрые все.
|
|
|
Хранитель
|
|
Cкрытый текст (кликните здесь для просмотра)
Код: |
<find_station name="this.staionargontrade" typename="SS_DOCK_A_TRADE">
<sector sector="{Sp053IOnBattler54jo2.sector1}"/> |
|
Cкрытый текст (кликните здесь для просмотра)
Код: |
<check_distance value="{object.distance.km@Sp053IOnBattler54jo2.staionargontrade}" min="6km" max="4km"/> |
|
тут написаны несколько строк. Скажите мне в чём в них ошибка. (Хоть стреляйся понять не могу. )
|
|
|
Криптон
1011 EGP
       Рейтинг канала: 9(1038) Репутация: 164 Сообщения: 2667 Откуда: Москва Зарегистрирован: 05.04.2008
 |
|
Хранитель : |
тут написаны несколько строк
|
object.distance.km возвращает дистанцию в километрах. То есть, если от игрока до цели 6км, то возвращено будет 6. А
интерпретатор воспринимает как
. Соответственно, чтобы условие выполнилось, игрок должен быть на расстоянии от 4000000км до 6000000км до цели.
добавлено спустя 1 минуту:
При условии, что сектор найден правильно, и в нём есть станция нужного типа, и в названии эпизода не допущено опечаток.
Последний раз редактировалось: Криптон (19:54 02-07-2012), всего редактировалось 3 раз(а) |
|
|
Хранитель
|
|
ОФИГЕТЬ. Надо попробывать.
|
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Всё, сломал я себе голову об этот квестовый движок.
Не могу понять, как добавить свой пунктик в меню диалога у миссионного персонажа. Разбирался с егософтовскими MD-скриптами и еще больше запутался.
Создал актера на объекте станция, создал миссионное предложение с этим актером. Создал брифинг с задачами. Актера со значком миссии наблюдаю на этой станции, а когда выбираю поговорить с ним в списке стандартные три фразы (где то-то, где это, и сдавайся). Каким образом заставить его предлагать мою миссию, как это у NPC’шных персов?
|
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
bi0nik : |
Каким образом заставить его предлагать мою миссию, как это у NPC’шных персов?
|
Надо conversation. txt файл смотреть. и в миссиях предлагать. Как, например, в "Скрипт: Покупка репутаций". Посмотри, как сделано..
добавлено спустя 11 минут:
Ну вот как-то так
Cкрытый текст (кликните здесь для просмотра)
<do_if value="{player.gamestart}" list="180|181|182|183">
<create_ship typename="SS_SH_X_M3" name="TOTT_SHIP_Noto_Xenon" racelogic="0" known="1">
<position min="15km" max="16km" height="1km"/>
<equipment loadout="maximum"/>
<command command="idle"/>
<pilot shipname="{17,5883}"/>
</create_ship>
<create_actor character="{176,3015}{176,3015}{176,3055}{176,3040}{176,3025}" name="TOTT_Seller_Noto_Xenon" race="xenon" location="pilot" face="1141" object="TOTT_SHIP_Noto_Xenon" voice="111"/>
</do_if>
<create_offer actor="TOTT_Seller_Noto_Xenon" conversation="L2OfferBuyCustom1" cue="TOTT_Sell_Noto_Xenon" discipline="TXXX">
<params>
<param name="OfferText" value="{310,827} - {35,696}"/>
<param name="Option1" value="{35,696} {32,693006} 1"/>
<param name="Price1" value="1 000 Cr."/>
</params>
</create_offer>
</do_all>
</action>
<cues>
<cue name="TOTT_Sell_Noto_Xenon_Answ_NO">
<condition>
<check_all>
<cue_is_complete cue="parent"/>
<conversation_completed actor="TOTT_Seller_Noto_Xenon" answer="cancel"/>
</check_all>
</condition>
<timing>
<time exact="3s"/>
</timing>
<action>
<do_all>
<set_command command="idle"/>
<cancel_cue cue="TOTT_Sell_Noto_Xenon_Answ_YES"/>
<remove_offer actor="TOTT_Seller_Noto_Xenon" conversation="L2OfferBuyCustom1" discipline="TXXX"/>
<cancel_cue cue="TOTT_Sell_Noto_Xenon_Chaned_Sector_1"/>
</do_all>
</action>
<cues>
<cue name="TOTT_Sell_Noto_Xenon_Answ_NO_1">
<condition>
<cue_is_complete cue="parent"/>
</condition>
<timing>
<time exact="15m" comment="for full 1h"/>
</timing>
<action>
<do_all>
<reset_cue cue="TOTT_Sell_Noto_Xenon"/>
</do_all>
</action>
</cue>
</cues>
</cue>
<cue name="TOTT_Sell_Noto_Xenon_Chaned_Sector_1">
<condition>
<check_all>
<object_changed_sector/>
</check_all>
</condition>
<timing>
<time exact="30s"/>
</timing>
<action>
<do_all>
<destroy_object object="TOTT_SHIP_Noto_Xenon"/>
<remove_object object="TOTT_SHIP_Noto_Xenon"/>
<remove_actor actor="TOTT_Seller_Noto_Xenon"/>
<remove_offer actor="TOTT_Seller_Noto_Xenon_1" conversation="L2OfferBuyCustom1" discipline="TXXX"/>
<reset_cue cue="TOTT_Sell_Noto_Xenon"/>
</do_all>
</action>
</cue>
|
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (00:06 11-11-2012), всего редактировалось 3 раз(а) |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Благодарю by.@ztek.
Нутром чуял, что где-то что-то зашито. Про создание актера с параметрами додумался при препарировании миссию "2.136 Notoriety Hack.xml", но вот про "conversations.xml" даже мысль не возникла. Теперь можно попробовать реализовать задумку с маленькой сюжетной линией
|
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
Причем, discipline="..." : TXXX -trade missions, XFXX - fight missions, XXBX - build missions, XXXT - think missions. Т.е. лампочки такие над заданиями будут.
Ну, квоты не рассматриваю, хотя они и есть:
Код: |
<set_value name="this.L2M101" exact="1" chance="{player.sector.quota.XFXX}*100"/> |
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (05:20 11-11-2012), всего редактировалось 2 раз(а) |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
by.@ztek : |
Причем, discipline="..." : TXXX -trade missions, XFXX - fight missions, XXBX - build missions, XXXT - think missions. Т.е. лампочки такие над заданиями будут.
|
Про это я в курсе. Есть еще такая дисциплина XXXXP - Синяя книжка (Plot), т.е. сюжетная миссия.
|
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Что-то я недопонимаю в уровнях видимости эпизодов (cue), а так же в порядке их следования.
Рассмотрим на примере Криптона (несколькими страницами выше в теме). Но дополню его (пример) еще одним уровнем – cue0
Код: |
<cue name="cue0">
<cues>
<cue name="cue1">
<cues>
<cue name="cue1_1"/>
<cue name="cue1_2">
<cues>
<cue name="cue1_2_1"/>
<cue name="cue1_2_2"/>
</cues>
</cue>
<cue name="cue1_3"/>
</cues>
</cue>
<cue name="cue2"/>
</cues>
</cue>
|
1. Если в эпизоде cue1_2_2 необходимо согласно своим условиям завершить (прекратить/прервать) сюжетную линию, то достаточно просто в секции действия использовать инструкцию <cancel_cue cue="cue0" />, а про остальные дочерни/вложенные эпизоды забыть, MD сам позаботиться об этом? Или, все же, нужно каждый эпизод принудительно закрывать, чтобы к нему не обращался MD?
2. Не совсем понятен вопрос и с видимостью этих эпизодов. Насколько я понял cue1_2_1 не видит cue2, а cue2 в свою очередь может использовать условия активации по завершению эпизода cue1_2_1. Или не так?
3. А эпизоды с пометкой “библиотечный”... Если cue1_2 является библиотечным, получается, на него ссылаться могут только эпизоды 1_1, 1_3 и непосредственно дочерни эпизоды библиотечного эпизода (1_2_1 и 1_2_2). А вот 1 и 2 эпизоды уже ссылаться не могут, т.к. не видят его.
Но нет ли тут противоречий между 1 , 2 и 3 вопросами касаемо видимости по уровням иерархии вложенности. Честно говоря, документация по MD (которая выложена в первом сообщении) не дает четкого понимания всех процессов взаимодействия эпизодов между собой.
Непонимание процесса работы и взаимодействия между собой эпизодов, мешает правильному написанию скрипта, который бы минимизировал свое влияние на производительность игры в целом.
|
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
Поясню немного:
1) Важно наличие условий для запуска каждого эпизода (или секций тайминга), т.к. МД в эпизодах без условий считывает код сразу весь и запускает на исполнение. А при наличии условий в эпизодах (достаточно вставлять просто <cue_is_complete cue="parent"/>), да, <cancel_cue cue="cue0" /> отрубит весь скрипт.
2) Так.
3) Если cue1_2 является библиотечным - то все вложенные в него эпизоды так же являются библиотечными, наследуют параметры родителя. 1 и 2 эпизоды ссылаться могут на него.
_________________ Совершенству нет предела... |
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
bi0nik : |
А эпизоды с пометкой “библиотечный”...
|
Читаются отдельно и в своем теле (cue) не исполняются; исполняются по cue ref.. только
добавлено спустя 6 минут:
МД отличается от СЕ еще и тем, что эпизоды (группы команд, объектно-ориентированный код ) в одном скрипте могут исполняться параллельно, в то время как в СЕ - все команды исполняются последовательно.
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (19:33 13-11-2012), всего редактировалось 2 раз(а) |
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
by.@ztek : |
1 и 2 эпизоды ссылаться могут на него.
|
И не важно, в каком месте скрипта они расположены - главное соблюдать иерархию. А судя по примеру - просто расположены один относительно другого несколько различно. Как уже писал выше - эпизод 2 можно разместить ровненько над эпизодом 1. И ничего не изменится.
_________________ Совершенству нет предела... |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
В общем так . Нарисовал небольшой сюжетик. Грубых ошибок, как в логике работы, так и в оформлении не должно быть (я в это надеюсь). Но мог и проглядеть (вычищать можно до бесконечности с вероятностью того, что в чистку и нужное попадет ).
Сюжет опубликовал в темке скриптов, а здесь жду ваших отзывов технического характера. Отзывы по самому сюжету... даже и не знаю куда их, скорее всего правильней в теме обсуждения скриптов. Отдельную темку забабахать скромность не позволяет .
Приятного прохождения!
Последний раз редактировалось: bi0nik (17:33 24-11-2012), всего редактировалось 1 раз |
|
|
Gaynec
77 EGP
 Рейтинг канала: 4(99) Репутация: 4 Сообщения: 153
Зарегистрирован: 13.03.2012
 |
|
В связи с тем что база пособия не полная.Накопились вопросы.
В любом квесте встречается такой параметр-
((<mission discipline="XXXT" level="easy"/>)
Последняя строка Level= easy отвечает за отображение в меню миссии. А вот ХХХТ и XFXX мне не совсем понятны.
_________________ X3Terran Conflict 2 HardMod |
|
|
|
|
|
Канал X3: Terran Conflict ->
Модовый и скриптовый отсек X3: Terran Conflict: «Mission Director aka MD (Новый квестовый движок от Эгософта)» |
|