|
|
|
Канал X3: Terran Conflict »
Модовый и скриптовый отсек X3: Terran Conflict: «Mission Director aka MD (Новый квестовый движок от Эгософта)» |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Gaynec : |
В связи с тем что база пособия не полная. Накопились вопросы.
В любом квесте встречается такой параметр-
((<mission discipline="XXXT" level="easy"/>)
Последняя строка Level= easy отвечает за отображение в меню миссии. А вот ХХХТ и XFXX мне не совсем понятны.
|
По вопросу о "ХХХТ и XFXX" несколькими постами ранее был дан ответ. Это категории (дисциплины) миссий производные от слогона игр серии X Universe "Trade Fight Build Think":
"TXXX" Trade (Торгуй) - Trade missions (торговые миссии со значком "кредиты")
"XFXX" Fight (Сражайся) - Fight missions (военные миссии со значком "прицел")
"XXBX" Build (Строй) - Build missions (строительные миссии со значком "кирпичная кладка")
"XXXT" Think (Думай) - Think missions (миссии разного характера, значок "лампочка")
Имеется отдельная категория миссий, у которых значок "Синяя книга", это сюжетные миссии: XXXXP - Plot
Это уровень сложности миссии, который учитывается при расчетах всех выплат вознаграждений или наложение штрафов (если оное производиться с помощью соответствующих директив). В описании брифинга и списке заданий имеет лишь информативное значение.
Таким образом, эти директивы задают отображения тех или иных значков и так же участвуют как модификаторы при автоматических расчетах штрафов или вознаграждений. Например:
{penalty.money@level.discipline} --- {penalty.money@average.TXXX}
Это расчет штрафа (денежного), сбалансированного на основе текущего состояния игрока и предустановленных значений уровня миссии с учетом её дисциплины.
Последний раз редактировалось: bi0nik (09:16 16-01-2013), всего редактировалось 1 раз |
|
|
Gaynec
77 EGP
 Рейтинг канала: 4(99) Репутация: 4 Сообщения: 153
Зарегистрирован: 13.03.2012
 |
|
Спасибо доходчиво.
Еще такой вопрос для всех нпс дается значение L2M006.Имя нпс.
Что это?
_________________ X3Terran Conflict 2 HardMod |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Gaynec : |
Еще такой вопрос для всех нпс дается значение L2M006.Имя нпс.
Что это?
|
L2M006 - это имя Cue (эпизод/секция) к которой привязан наш объект
Имя нпс - Это непосредственно идентификатор (имя нашего объекта)
Таким образом, мы конкретизируем для MD (явно указываем) какой объект использовать для взаимодействия (при условии, что он создан и описан в этой секции).
L2M006 это еще вдобавок имя родительского Cue (который к тому же является библиотечным). Поэтому когда мы в других вложенных секциях создаем переменную/объект и указываем имя как “L2M006.Имя нпс” мы, таким образом, привязываем эту переменную к секции L2M006. соответственно и обращаться к данному объекту необходимо используя эту же конструкцию имени.
В общем, это нужно почитать про локальные и глобальные переменные в MD скриптах и их видимости, с учетом простых и библиотечных Cue. Я сам еще путаюсь в понятиях локальных/глобальных переменных MD-скриптов и их правильного использования, поэтому могу ошибиться или некорректно объяснить и внести еще больше сумятицы.
|
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
Есть вопрос знатокам
Конструкция типа:
Cкрытый текст (кликните здесь для просмотра)
Код: |
<cues>
<cue name="Lib" library="1">
<timing>
<time exact="1s"/>
</timing>
<action>
<do_all>
<ask_question name="111" author="{param@this.split}" text="{....}" popup="1"/>
</do_all>
</action>
</cue>
<cue name="1">
<condition>
<conversation_completed actor=" " conversation=" " answer="accept1"/>
</condition>
<action>
<do_all>
<remove_offer actor=" " conversation=" " discipline=" "/>
</do_all>
</action>
<cues>
<cue ref="Lib">
<params>
<param name="this.split" value=" "/>
</params>
</cue>
<cue name=" _answYes">
<condition>
<question_answered question="111" answer="yes"/>
</condition>
<action>
<do_all>
<incoming_message text="11111"/>
</do_all>
</action>
</cue>
<cue name=" _answNo">
<condition>
<question_answered question="111" answer="no"/>
</condition>
<action>
<do_all>
<incoming_message text="0999900099"/>
</do_all>
</action>
</cue>
|
|
В текстовом файле все нормально. Вопрос: почему после вызова библ. эпизода с вопросом не идет анализ ответа?
Conversation обрабатывается, переход в библ. эпизод есть, вопрос задается - вот анализа ответа уже в "настоящем" эпизоде -нет. Почему?
Выход я нашел: надо анализ вопроса делать в теле библ.эпизода, и там задавать глобальную переменную, которую потом анализировать в "настоящем". Чего так? Переменную получить из библиотеки - пожалуйста, а ответ на вопрос - нет..
Поясните кто-нибудь
_________________ Совершенству нет предела... |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Если я правильно понял вопрос и суть проблемы... Есть подозрение, что конфликт в области видимости значений переменных (в нашем случае переменная вопрос и переменная ответ). Т.е. секции (cue) " _answYes" и " _answNo" не видят (не знают) о существовании вопроса ask_question name="111", а соответственно и ответы не обрабатываются.
Почему так происходит, скорее всего, что вопрос был задан в библиотечном cue где он и остался. И если ответ не записать в глобальную переменную, то его не обработать инструкцией question_answered, т.к. данная конструкция должна быть в одном поле видимости с задаваемым вопросом (мои догадки).
Могу предложить воспользоваться следующими инструкциями (опять же это всего лишь догадка, сработает или нет – не знаю).
Код: |
{question.answer@question} - Value selected by the user in answer to the specified question
{question.answer} - Value selected by the user in answer to the current question
|
В первом случае – выбивается ответ игрока на указанный вопрос. Второй пример позволяет выбрать ответ последнего заданного вопроса. По идеи это то же самое, что и у тебя, но мало ли… вдруг MD (по воле разработчиков) данную конструкцию обрабатывают иначе.
Пример обработки. Привел оба варианта, но лучше выбрать что-то одно (то, что сработает ) (кликните здесь для просмотра)
Код: |
...
<cue name=" _answYes">
<condition>
< check_value value = "{question.answer}" exact ="yes" />
</condition>
<action>
<do_all>
<incoming_message text="11111"/>
</do_all>
</action>
</cue>
<cue name=" _answNo">
<condition>
<check_value value = "{question.answer@111}" exact ="no"/>
</condition>
<action>
<do_all>
<incoming_message text="0999900099"/>
</do_all>
</action>
</cue>
... |
|
|
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
bi0nik : |
В первом случае – выбивается ответ игрока на указанный вопрос. Второй пример позволяет выбрать ответ последнего заданного вопроса. По идеи это то же самое, что и у тебя, но мало ли… вдруг MD (по воле разработчиков) данную конструкцию обрабатывают иначе.
|
Не прокатило Не видит вне библиотечного эпизода МД движок переменных "вопрос-ответ".
Может как-то привязать переменные ответа к значениям глобальных(локальных) переменных? (сорри за каламбур )
Типа:
Код: |
<t id="150">Беретесь?\n\n[center][select value='{param@this.question1}']Да, берусь. [/select][/center]\n\n[center][select value='{param@this.question2}']Нет, отказываюсь.[/select][/center]</t> |
Только вместо {param@.....} назначать какую-то переменную непосредственно в библиотеке? Как сделать так? Только опять же, возвращаемся к анализу в теле библиотечного эпизода, а так - не хотел
Если нет ответов - тогда совет скриптописателям:
используя библиотечный эпизод с секцией вопроса <ask_question....> делать анализ ответа в том же библиотечном эпизоде. Я сделал назначение переменной и уже вне библиотеки проверял эту переменную.
Cкрытый текст (кликните здесь для просмотра)
Код: |
<cue name="Lib" library="1">
<timing>
<time exact="1s"/>
</timing>
<action>
<do_all>
<ask_question name="brief_quest" author="{param@this.split}" text="..." popup="1"/>
</do_all>
</action>
<cues>
<cue name="....brief_yes">
<condition>
<check_all>
<cue_is_complete cue="parent"/>
<question_answered question="brief_quest" answer="yes"/>
</check_all>
</condition>
<action>
<do_all>
<set_value name="brief_Stat" exact="1"/>
</do_all>
</action>
</cue>
<cue name="....brief_no">
<condition>
<check_all>
<cue_is_complete cue="parent"/>
<question_answered question="brief_quest" answer="no"/>
</check_all>
</condition>
<action>
<do_all>
<set_value name="brief_Stat" exact="0"/>
</do_all>
</action>
</cue>
</cues>
ТУТ идет обращение к библиотеке, а потом анализ значений ответа:
<cue name="_answYes">
<condition>
<check_all>
<check_any>
<cue_is_complete cue=".....brief_yes"/>
<cue_is_complete cue=".....brief_no"/>
</check_any>
<check_value value="{value@brief_Stat}" exact="1"/>
</check_all>
</condition>
<action>
<do_all>
<incoming_message text="11111"/>
</do_all>
</action>
</cue>
<cue name="_answNo">
<condition>
<check_all>
<check_any>
<cue_is_complete cue=".....brief_yes"/>
<cue_is_complete cue=".....brief_no"/>
</check_any>
<check_value value="{value@brief_Stat}" exact="0"/>
</check_all>
</condition>
<action>
<do_all>
<incoming_message text="0999900099"/>
</do_all>
</action>
</cue |
|
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (22:13 05-03-2013), всего редактировалось 1 раз |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
2 by.@ztek
Теоретически, такой вариант тоже должен работать. (кликните здесь для просмотра)
Код: |
<cue name="Lib" library="1">
<timing>
<time exact="1s"/>
</timing>
<action>
<do_all>
<ask_question name="brief_quest" author="{param@this.split}" text="..." popup="1"/>
</do_all>
</action>
<cues>
<cue name="....brief_ask">
<condition>
<check_all>
<cue_is_complete cue="parent"/>
<check_value value=”{question.answer@brief_quest}” negate=”0” />
</check_all>
</condition>
<action>
<do_all>
<set_value name="brief_Stat" exact="{question.answer@brief_quest}"/>
</do_all>
</action>
</cue>
</cues>
ТУТ идет обращение к библиотеке, а потом анализ значений ответа:
<cue name="_answBrief ">
<condition>
<check_all>
<cue_is_complete cue="....brief_ask"/>
</check_all>
</condition>
<action>
<do_all>
<do_if value="{value@brief_Stat}" exact="yes"><incoming_message text="11111"/></do_if>
<do_if value="{value@brief_Stat}" exact="no"><incoming_message text="0999900099"/><do_if>
</do_all>
</action>
</cue>
|
|
Мы в теле библиотечного cue переменной присваиваем значение ответа на вопрос, а уже где нужно делаем обработку результата. Обработка происходит в одном cue, где используя <do_if> или <do_choose> выбираем нужный результат с последующими действиями.
Последний раз редактировалось: bi0nik (04:35 06-03-2013), всего редактировалось 1 раз |
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
Хм, а что за проверка ?
<check_value value=”{question.answer@brief_quest}” negate=”0” />
Какое значение вернет? negate=”0” - "Истина"; value=”{question.answer@brief_quest}” - имеет в данном случае 2 значения: yes и no. Что проверять-то?
добавлено спустя 9 минут:
Не, не пройдет
Все, ладно, остановимся - решение есть, см. мой пост выше
п.с. Сразу два сообщения приходит , вне зависимости от ответа.
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (17:56 06-03-2013), всего редактировалось 1 раз |
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
negate - это атрибут "состояние отрицания". Указывает на то, при каком результате условия выполнять тело <do_if>. Иначе, negate=”0” мы имеем простой IF (истина), а при negate=”1” not IF (ложь). По идеи можно было не указывать данный атрибут, т.к. по умолчанию подразумевается состояние истина.
Скорее всего, я некорректно привел пример. Так должно быть правильней: <check_value value=”{value@{question.answer@brief_quest}}” list="yes|no"/>
Или вообще отказаться от этой строчки в <condition>.
Также я сделал ошибку. Т.к. мы работаем со значениями, то необходимо использовать подобную схему {value@value}
Скоректированный вариант (кликните здесь для просмотра)
Код: |
<cue name="Lib" library="1">
<timing>
<time exact="1s"/>
</timing>
<action>
<do_all>
<ask_question name="brief_quest" author="{param@this.split}" text="..." popup="1"/>
</do_all>
</action>
<cues>
<cue name="....brief_ask">
<condition>
<check_all>
<cue_is_complete cue="parent"/>
<check_value value=”{value@{question.answer@brief_quest}}” list="yes|no"/>
</check_all>
</condition>
<action>
<do_all>
<set_value name="brief_Stat" exact=”{value@{question.answer@brief_quest}}”/>
</do_all>
</action>
</cue>
</cues>
ТУТ идет обращение к библиотеке, а потом анализ значений ответа:
<cue name="_answBrief ">
<condition>
<check_all>
<cue_is_complete cue="....brief_ask"/>
</check_all>
</condition>
<action>
<do_all>
<do_if value="{value@brief_Stat}" exact="yes"><incoming_message text="11111"/></do_if>
<do_if value="{value@brief_Stat}" exact="no"><incoming_message text="0999900099"/><do_if>
</do_all>
</action>
</cue> |
|
Если все равно два сообщения приходят вместе, то можно изолировать их конструкцией <do_choose> <do_if> (кликните здесь для просмотра)
Код: |
<action>
<do_all>
<do_choose>
<do_when value="{value@brief_Stat }" exact="yes">
<incoming_message text="11111"/>
</do_when>
<do_otherwise>
<do_if value="{value@brief_Stat}" exact="no">
<incoming_message text="0999900099"/>
<do_if>
</do_otherwise>
</do_choose>
</do_all>
</action> |
|
|
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
bi0nik : |
negate - это атрибут "состояние отрицания". Указывает на то, при каком результате условия выполнять тело
|
Да, только в данном
<check_value value=”{question.answer@brief_quest}” negate=”0” />
примере надо указать значение. negate - "истина" или "ложь" по отношению к какому-нибудь событию или значению:
Там надо указывать явное значение - иначе срабатывать будет всегда.
п.с. И да, в первом примере в посте выше -должно сработать уже,
теоретически. Я не проверял уже, т.к. решен вопрос.
_________________ Совершенству нет предела... |
|
|
Jetro
65 EGP
 Репутация: 8 Сообщения: 82
Зарегистрирован: 06.01.2009
 |
|
Прошу совета.
При добавлении продуктов на станцию (<products>) как установить этим продуктам цену? А лучше как их вообще бесплатными сделать?
Ну и еще один вопрос в догонку:
Как новосозданную станцию сделать скрытой? при создании прописывал свойство "invincible", но у меня не заработало - станцию в прицел взять получалось.
Последний раз редактировалось: Jetro (16:20 16-03-2013), всего редактировалось 1 раз |
|
|
Dimmell
88 EGP
 Рейтинг канала: 4(95) Репутация: 10 Сообщения: 772 Откуда: Минск Зарегистрирован: 31.01.2010
 |
|
Вопрос к знатокам:
все знают миссии по возврату кораблей (из L2M105 Return Ship), идет предложение примерно такого вида:
<t id="1002">В соседнем секторе один из наших пилотов покинул корабль. Его нужно привести назад.</t>
Как добавить имя сектора?
На егософтовском форуме был вариант:
<t id="1002">Один из наших пилотов покинул корабль {lookup.type.name@{value@L2M105 Return Ship.Shiptype}} в соседнем секторе {object.sector.name@{param@ShipName}}. Его нужно привести назад.</t>
имя корабля пишется нормально, сектор - нет (пишет object.sector.name@{param@ShipName})
Как добавить имя сектора в котором корабль?
|
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Dimmell : |
Как добавить имя сектора в котором корабль?
|
Не совсем понимаю конструкцию типа "param@ShipName" в текстовых файлах как это работает, но у меня с "param" текстовики что-то не хотели работать. Делал следующим образом.
Допустим, что существует объект и ссылка на него (например, в виде переменной) ShipObject и, учитывая области видимости переменных, можно вывести сектор в текстовике следующими командами (директивами):
{sector.name@{object.sector@{object@ShipObject}}}
{object.sector.name@{object@ShipObject}}
|
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
Jetro : |
При добавлении продуктов на станцию (<products>) как установить этим продуктам цену? А лучше как их вообще бесплатными сделать?
|
Скорее всего, штатными средствами в MD не предусмотрено задавать цену для продуктов/товаров/ресурсов при их создании/добавлении.
Jetro : |
Как новосозданную станцию сделать скрытой? при создании прописывал свойство "invincible", но у меня не заработало - станцию в прицел взять получалось.
|
"invincible" - это свойство непобедимости, а не скрытности.
Чтобы скрыть на карте сектора станцию или другой объект необходимо после создания (объекта) воспользоваться командой <set_hidden>. А вот как сделать запрет в MD, чтобы станция не бралась в прицел – не знаю.
|
|
|
Dimmell
88 EGP
 Рейтинг канала: 4(95) Репутация: 10 Сообщения: 772 Откуда: Минск Зарегистрирован: 31.01.2010
 |
|
bi0nik : |
Допустим, что существует объект и ссылка на него (например, в виде переменной) ShipObject и, учитывая области видимости переменных, можно вывести сектор в текстовике следующими командами (директивами):
{sector.name@{object.sector@{object@ShipObject}}}
{object.sector.name@{object@ShipObject}}
|
не работает...
Ладно, подойдем к этой с другой позиции:
есть вариант транспортировки пассажиров
<t id="101">Мне обязательно нужно попасть на встречу на станции {object.name@L2M103 Offer.{param@ID} L0Dest} в секторе {object.sector.name@L2M103 Offer.{param@ID} L0Dest}, а мой корабль сейчас в ремонте.</t>
он работает нормально.
Что надо дописать/исправить/переменную добавить и т.д. в самом файле (например 0.5 Return Ship) чтобы заработало по такой конструкции?
Или по другой схеме что добавить в текстовик и миссии чтобы заработало.
bi0nik : |
Не совсем понимаю конструкцию типа
|
я вообще с тоской гляжу на этот багованный выкидыш инженерной мысли именуемый MD. Если бы не надоели некоторые баги/глюки - вообще не полез бы. Откуда он что берет и когда - он сам не знает, потому что концы найти просто невозможно.
Последний раз редактировалось: Dimmell (20:43 18-03-2013), всего редактировалось 1 раз |
|
|
XXXL
77 EGP
 Рейтинг канала: 4(67) Репутация: 7 Сообщения: 271
Зарегистрирован: 12.12.2010
 |
|
Dimmell : |
...не работает...
|
Может просто объект (и сектор) появляются после согласия на миссию.
|
|
|
Dimmell
88 EGP
 Рейтинг канала: 4(95) Репутация: 10 Сообщения: 772 Откуда: Минск Зарегистрирован: 31.01.2010
 |
|
XXXL : |
Может просто объект (и сектор) появляются после согласия на миссию.
|
да появляется он нормально до согласия, вопрос - как получить имя сектора зная корабль (имя корабля, ссылку на корабль и т.п.) из задания на миссию???
|
|
|
bi0nik
423 EGP
       Рейтинг канала: 5(150) Репутация: 102 Сообщения: 729
Зарегистрирован: 07.11.2006
 |
|
2 Dimmell
Так это в брифинге отображение, я то думал в выводимом текстовом сообщении (аля от бортового компьютера). С брифингом мне тоже не все ясно. Но попробуй следующую конструкцию:
{value@{object.sector.name@{object@ShipObject}}} Или попробуй в этом и предедущих вариантах {object@ShipObject} заменить просто на ShipObject.
А лучше, если бы ты привел полный скрипт MD (хотя бы тот cue, где происходит создание брифинга и описание всех переменных связанных с ним) + текстовик, так будет проще понять, какой вариант является корректней всего.
Можешь скачать мой MD-скрипт (не сочтите за рекламу) мини-сюжетки, и посмотреть внутрянку что да как. Не скажу, что там на все случаи жизни, но все равно есть полезная информация.
Последний раз редактировалось: bi0nik (04:49 19-03-2013), всего редактировалось 1 раз |
|
|
by.@ztek
316 EGP
    Рейтинг канала: 5(218) Репутация: 52 Сообщения: 799 Откуда: Минск, Беларусь Зарегистрирован: 21.04.2010
 |
|
Dimmell : |
Что надо дописать/исправить/переменную добавить и т.д. в самом файле (например 0.5 Return Ship) чтобы заработало по такой конструкции?
|
Надо создать свой набор параметров (param) для обращения к библиотечному эпизоду. В своем МД скрипте создаем переменные и обращаемся к библиотеке, указывая необходимые:
Cкрытый текст (кликните здесь для просмотра)
Код: |
<cues>
<cue ref="L0M05">
<params>
<param name="Cue" value="L2M105 Return Ship" comment="The cue where values will be localized"/>
<param name="Step" value="L2M105 Return Ship.Step" comment="The initial objective step"/>
<param name="OfferRace" value="{value@L2M105.OfferRace}" comment="Offer Race ID"/>
<param name="PageID" value="{value@L2M105.PageID}" comment="The PageID of the text"/>
<param name="Direction" value="{object.route.gate.name@L2M105 Return Ship.Ship}"/>
<param name="TextID Title" value="{value@L2M105.TextID Title}" comment="The briefing title ID"/>
<param name="TextID Text" value="{value@L2M105.TextID Text}" comment="The briefing text ID"/>
<param name="TextID Claim" value="{value@L2M105.TextID Claim}" comment="The text ID for the claim objective text"/>
<param name="TextID Return" value="{value@L2M105.TextID Return}" comment="The text ID for the return objective text"/>
<param name="DestName" value="L2M105.OfferStation"/>
<param name="ShipName" value="L2M105 Return Ship.Ship"/>
<param name="AllowLoss" value="1"/>
<param name="Preview" value="0" comment="Is the briefing a preview"/>
<param name="SetObjective" value="1" comment="Set the objectives and run the Objective library"/>
<param name="Complete Briefing" value="1" comment="Run the briefing completion library"/>
<param name="IsPlot" value="0" comment="Is this a plot mission"/>
<param name="UseTimer" value="0" comment="Override the plot signal and use a timer"/>
<param name="Difficulty" value="{value@L2M105 Return Ship.Difficulty}" comment="The value address for the difficulty"/>
<param name="Duration" value="L2M105 Return Ship.Duration" comment="Mission Time"/>
<!--reward parameters (in priority order)-->
<param name="RewardCr" value="L2M105 Return Ship.RewardCr" comment="Reward - credits"/>
<param name="OfferActor" value="{actor@L2M105.OfferActor}" comment="The actor"/>
<param name="FeedbackName" value="L2M105 Return Ship.Feedback" comment="The address where the step value is stored"/>
</params>
</cue>
</cues>
|
|
Вот, там все параметры указаны. В нашем случае, в верхнем эпизоде, при создании корабля даем ему имя MyName.Ship, например,
<create_ship name="MyName.Ship" typename="SS_SH_A_M3" race="neutral" capturable="1">.
Теперь, при обращении к библиотеке у нас задан параметр
<param name="ShipName" value="MyName.Ship"/>, и сектор этого корабля должен корректно отображаться.
п.с. Только правильно (с точки зрения локальных-глобальных переменных) присваиваем кораблю имя.
п.п.с. Можно оставить при создании корабля имя "L2M105 Return Ship.Ship"
(<create_ship name="L2M105 Return Ship.Ship" typename="SS_SH_A_M3" race="neutral" capturable="1">), поскольку в т-файле могут быть прямые обращения к этой переменной, надо смотреть его.
_________________ Совершенству нет предела...
Последний раз редактировалось: by.@ztek (08:58 19-03-2013), всего редактировалось 2 раз(а) |
|
|
Dimmell
88 EGP
 Рейтинг канала: 4(95) Репутация: 10 Сообщения: 772 Откуда: Минск Зарегистрирован: 31.01.2010
 |
|
by.@ztek : |
п.п.с. Можно оставить при создании корабля имя "L2M105 Return Ship.Ship"
|
я вчера пробовал по такой схеме (пара вариантов посмотреть что получится):
<t id="1002">Один из наших пилотов покинул корабль {lookup.type.name@{value@L2M105 Return Ship.Shiptype}} в соседнем секторе {object.sector.name@{object@L2M105 Return Ship.Ship}} {object.sector.name@{param@L2M105 Return Ship.Ship}} . Его нужно привести назад.</t>
имя корабля выводит без проблем, сектор - фигвам.
bi0nik : |
Но попробуй следующую конструкцию:
{value@{object.sector.name@{object@ShipObject}}}
Или попробуй в этом и предедущих вариантах {object@ShipObject} заменить просто на ShipObject.
|
благодарю, попробую. Хотя я уже устал искать иголку в куче мусора...
есть прямая ссылка на существующий объект (как я это понимаю) - object@L2M105 Return Ship.Ship.
Получить сектор нахождения этого объекта - проблема мирового масштаба для MD.
|
|
|
|
|
|
Канал X3: Terran Conflict ->
Модовый и скриптовый отсек X3: Terran Conflict: «Mission Director aka MD (Новый квестовый движок от Эгософта)» |
|