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

  » Mission Director aka MD (Новый квестовый движок от Эгософта) | страница 9
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

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

   Страница 9 из 10
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. | Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » Модовый и скриптовый отсек X3: Terran Conflict: «Mission Director aka MD (Новый квестовый движок от Эгософта)»
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 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
Цитата:
level="easy"

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

Таким образом, эти директивы задают отображения тех или иных значков и так же участвуют как модификаторы при автоматических расчетах штрафов или вознаграждений. Например:
    {penalty.money@level.discipline} --- {penalty.money@average.TXXX}

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

Последний раз редактировалось: bi0nik (09:16 16-01-2013), всего редактировалось 1 раз
    Добавлено: 09:12 16-01-2013   
Gaynec
 77 EGP


Рейтинг канала: 4(99)
Репутация: 4
Сообщения: 153

Зарегистрирован: 13.03.2012
Спасибо доходчиво.
Еще такой вопрос для всех нпс дается значение L2M006.Имя нпс.
Что это?
_________________
X3Terran Conflict 2 HardMod
    Добавлено: 09:52 16-01-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 07.11.2006
Gaynec :
Еще такой вопрос для всех нпс дается значение L2M006.Имя нпс.
Что это?

L2M006 - это имя Cue (эпизод/секция) к которой привязан наш объект
Имя нпс - Это непосредственно идентификатор (имя нашего объекта)

Таким образом, мы конкретизируем для MD (явно указываем) какой объект использовать для взаимодействия (при условии, что он создан и описан в этой секции).

L2M006 это еще вдобавок имя родительского Cue (который к тому же является библиотечным). Поэтому когда мы в других вложенных секциях создаем переменную/объект и указываем имя как “L2M006.Имя нпс” мы, таким образом, привязываем эту переменную к секции L2M006. соответственно и обращаться к данному объекту необходимо используя эту же конструкцию имени.

В общем, это нужно почитать про локальные и глобальные переменные в MD скриптах и их видимости, с учетом простых и библиотечных Cue. Я сам еще путаюсь в понятиях локальных/глобальных переменных MD-скриптов и их правильного использования, поэтому могу ошибиться или некорректно объяснить и внести еще больше сумятицы. Улыбка
    Добавлено: 08:10 17-01-2013   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 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 обрабатывается, переход в библ. эпизод есть, вопрос задается - вот анализа ответа уже в "настоящем" эпизоде -нет. Почему? Подозрение.
Выход я нашел: надо анализ вопроса делать в теле библ.эпизода, и там задавать глобальную переменную, которую потом анализировать в "настоящем". Чего так? Переменную получить из библиотеки - пожалуйста, а ответ на вопрос - нет.. Подозрение.
Поясните кто-нибудь Улыбка
_________________
Совершенству нет предела...
    Добавлено: 20:14 04-03-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 07.11.2006
by.@ztek :
Есть вопрос знатокам Улыбка
Конструкция типа:
 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 обрабатывается, переход в библ. эпизод есть, вопрос задается - вот анализа ответа уже в "настоящем" эпизоде -нет. Почему? Подозрение.
Выход я нашел: надо анализ вопроса делать в теле библ.эпизода, и там задавать глобальную переменную, которую потом анализировать в "настоящем". Чего так? Переменную получить из библиотеки - пожалуйста, а ответ на вопрос - нет.. Подозрение.
Поясните кто-нибудь Улыбка

Если я правильно понял вопрос и суть проблемы... Есть подозрение, что конфликт в области видимости значений переменных (в нашем случае переменная вопрос и переменная ответ). Т.е. секции (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>
...
    Добавлено: 07:55 05-03-2013   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 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 раз
    Добавлено: 18:03 05-03-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 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 раз
    Добавлено: 04:27 06-03-2013   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 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 раз
    Добавлено: 17:56 06-03-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 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>
    Добавлено: 04:05 07-03-2013   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
bi0nik :
negate - это атрибут "состояние отрицания". Указывает на то, при каком результате условия выполнять тело

Да, только в данном
<check_value value=”{question.answer@brief_quest}” negate=”0” />
примере надо указать значение. negate - "истина" или "ложь" по отношению к какому-нибудь событию или значению:
Там надо указывать явное значение - иначе срабатывать будет всегда.
п.с. И да, в первом примере в посте выше -должно сработать уже,
теоретически. Я не проверял уже, т.к. решен вопрос. Улыбка
_________________
Совершенству нет предела...
    Добавлено: 19:29 07-03-2013   
Jetro
 65 EGP


Репутация: 8
Сообщения: 82

Зарегистрирован: 06.01.2009
Прошу совета.
При добавлении продуктов на станцию (<products>) как установить этим продуктам цену? А лучше как их вообще бесплатными сделать?

Ну и еще один вопрос в догонку:
Как новосозданную станцию сделать скрытой? при создании прописывал свойство "invincible", но у меня не заработало - станцию в прицел взять получалось.

Последний раз редактировалось: Jetro (16:20 16-03-2013), всего редактировалось 1 раз
    Добавлено: 16:16 16-03-2013   
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})
Как добавить имя сектора в котором корабль?
    Добавлено: 01:20 17-03-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 07.11.2006
Dimmell :
Как добавить имя сектора в котором корабль?

Не совсем понимаю конструкцию типа "param@ShipName" в текстовых файлах как это работает, но у меня с "param" текстовики что-то не хотели работать. Делал следующим образом.

Допустим, что существует объект и ссылка на него (например, в виде переменной) ShipObject и, учитывая области видимости переменных, можно вывести сектор в текстовике следующими командами (директивами):

    {sector.name@{object.sector@{object@ShipObject}}}
    {object.sector.name@{object@ShipObject}}
    Добавлено: 09:30 18-03-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 07.11.2006
Jetro :
При добавлении продуктов на станцию (<products>) как установить этим продуктам цену? А лучше как их вообще бесплатными сделать?

Скорее всего, штатными средствами в MD не предусмотрено задавать цену для продуктов/товаров/ресурсов при их создании/добавлении.

Jetro :
Как новосозданную станцию сделать скрытой? при создании прописывал свойство "invincible", но у меня не заработало - станцию в прицел взять получалось.

"invincible" - это свойство непобедимости, а не скрытности.

Чтобы скрыть на карте сектора станцию или другой объект необходимо после создания (объекта) воспользоваться командой <set_hidden>. А вот как сделать запрет в MD, чтобы станция не бралась в прицел – не знаю.
    Добавлено: 10:36 18-03-2013   
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 раз
    Добавлено: 20:38 18-03-2013   
XXXL
 77 EGP


Рейтинг канала: 4(67)
Репутация: 7
Сообщения: 271

Зарегистрирован: 12.12.2010
Dimmell :
...не работает...

Может просто объект (и сектор) появляются после согласия на миссию.
    Добавлено: 22:20 18-03-2013   
Dimmell
 88 EGP


Рейтинг канала: 4(95)
Репутация: 10
Сообщения: 772
Откуда: Минск
Зарегистрирован: 31.01.2010
XXXL :
Может просто объект (и сектор) появляются после согласия на миссию.

да появляется он нормально до согласия, вопрос - как получить имя сектора зная корабль (имя корабля, ссылку на корабль и т.п.) из задания на миссию???

    Добавлено: 23:05 18-03-2013   
bi0nik
 423 EGP


Рейтинг канала: 5(147)
Репутация: 102
Сообщения: 728

Зарегистрирован: 07.11.2006
2 Dimmell
Так это в брифинге отображение, я то думал в выводимом текстовом сообщении (аля от бортового компьютера). С брифингом мне тоже не все ясно. Но попробуй следующую конструкцию:
    {value@{object.sector.name@{object@ShipObject}}}
Или попробуй в этом и предедущих вариантах {object@ShipObject} заменить просто на ShipObject.

А лучше, если бы ты привел полный скрипт MD (хотя бы тот cue, где происходит создание брифинга и описание всех переменных связанных с ним) + текстовик, так будет проще понять, какой вариант является корректней всего.

Можешь скачать мой MD-скрипт (не сочтите за рекламу) мини-сюжетки, и посмотреть внутрянку что да как. Не скажу, что там на все случаи жизни, но все равно есть полезная информация.

Последний раз редактировалось: bi0nik (04:49 19-03-2013), всего редактировалось 1 раз
    Добавлено: 04:46 19-03-2013   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 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 раз(а)
    Добавлено: 08:45 19-03-2013   
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.
    Добавлено: 11:50 19-03-2013   
Канал X3: Terran Conflict -> Модовый и скриптовый отсек X3: Terran Conflict: «Mission Director aka MD (Новый квестовый движок от Эгософта)»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Всем скучающим собраться в сабже для составления расписания отъезжания собственных крыш. (CooL_SnipeR)

  » Mission Director aka MD (Новый квестовый движок от Эгософта) | страница 9
Каналы: Новости | 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