Модостроение (вопросы и ответы)

Модераторы: by.@ztek, Постигший истину, Модераторы

Re: Модостроение (вопросы и ответы)

Сообщение DNA78 » 17 янв 2020, 05:26

gav622007
И это ты называешь без заморочек :D Без заморочек - это когда просто берёшь и присваиваешь нужному кораблю и в нужном месте флаг sellable ;)
Аватар пользователя
DNA78
Admin
Admin
 
Сообщений: 1423
Изображения: 2
Зарегистрирован: 09 фев 2011, 20:08
DSP: 144
Благодарил (а): 175 раз.
Поблагодарили: 763 раз.

Re: Модостроение (вопросы и ответы)

Сообщение phalcor » 17 янв 2020, 10:54

gav622007 писал(а):У меня немного другие задачи

Тогда да, мой вариант не годится. :dknow:
gav622007 писал(а):вот скопипастит кто нидь, и будет ему гемор

Защита от бездумного копирования ;)
"Открылась бездна звезд полна; Звездам числа нет, бездне дна."
phalcor
Moderator
Moderator
 
Сообщений: 221
Изображения: 0
Зарегистрирован: 07 июн 2017, 11:57
DSP: 30
Награды: 1
За то что надо!!! (1)
Благодарил (а): 42 раз.
Поблагодарили: 91 раз.

Re: Модостроение (вопросы и ответы)

Сообщение gav622007 » 17 янв 2020, 12:29

DNA78, так ведь нет вариантов без правки ОБЖа, ну а в чём заморочки, написать маленький эпизод в MD? Который сработает один раз за игру. Конечно, я и сам хотел бы написать сюжет в MD, было бы красивей. Пытаюсь, может что и выйдет, но туго у меня в MD идёт, а в SE запросто :)
gav622007
Newbie
Newbie
 
Сообщений: 38
Изображения: 0
Зарегистрирован: 13 июн 2018, 14:15
DSP: 1
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение DNA78 » 17 янв 2020, 13:21

gav622007
Да там ничего сложного. Чтобы быстрей понять принцип их работы - дебуж их.
Аватар пользователя
DNA78
Admin
Admin
 
Сообщений: 1423
Изображения: 2
Зарегистрирован: 09 фев 2011, 20:08
DSP: 144
Благодарил (а): 175 раз.
Поблагодарили: 763 раз.

Re: Модостроение (вопросы и ответы)

Сообщение gav622007 » 18 янв 2020, 05:42

Нужно из MD запустить глобальный скрипт SE и передать ему аргументом корыто, правильно ли будет:
Код: выделить все
<run_script script="a.find.traitor" task="1">
    <scriptargs>
       <scriptvalue datatype="ship" datavalue="this.traitor">
       </scriptvalue>
     </scriptargs>
 </run_script>

вроде работает, но сомневаюсь в стеке task="1", при других вариантах не работает.
gav622007
Newbie
Newbie
 
Сообщений: 38
Изображения: 0
Зарегистрирован: 13 июн 2018, 14:15
DSP: 1
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение DNA78 » 18 янв 2020, 09:31

gav622007
Код: выделить все
<run_script script="a.find.traitor">
   <scriptargs>
      <scriptvalue datatype="ship" datavalue="{object@this.traitor}"/>
   </scriptargs>
</run_script>

Открывай чужие скрипты и смотри как сделано там. Например скрипты из ТОТТ'а.
Аватар пользователя
DNA78
Admin
Admin
 
Сообщений: 1423
Изображения: 2
Зарегистрирован: 09 фев 2011, 20:08
DSP: 144
Благодарил (а): 175 раз.
Поблагодарили: 763 раз.

Re: Модостроение (вопросы и ответы)

Сообщение phalcor » 18 янв 2020, 10:39

gav622007 писал(а):сомневаюсь в стеке task="1"

В данном случае это не стек.
Код: выделить все
   task      boolean       Start action as a separate task? 
"Открылась бездна звезд полна; Звездам числа нет, бездне дна."

За это сообщение автора phalcor поблагодарил:
gav622007
Рейтинг: 1.89%
 
phalcor
Moderator
Moderator
 
Сообщений: 221
Изображения: 0
Зарегистрирован: 07 июн 2017, 11:57
DSP: 30
Награды: 1
За то что надо!!! (1)
Благодарил (а): 42 раз.
Поблагодарили: 91 раз.

Re: Модостроение (вопросы и ответы)

Сообщение gav622007 » 18 янв 2020, 14:42

Код: выделить все
<run_script script="a.find.traitor">
   <scriptargs>
      <scriptvalue datatype="ship" datavalue="{object@this.traitor}"/>
   </scriptargs>
</run_script>

при таком варианте запускается несколько сотен скриптов
вот весь эпизод
Код: выделить все
cues>
    <cue name="Start Getting a Tug" game="all" version="1" comment="this is only so we know
what's happening in this cue ">
      <condition>
        <check_all>
          <check_age value="{player.age}" min="1h"/>
          <check_value value="{player.notoriety.boron.rank}" min="5"/>
        </check_all>
      </condition>
      <timing>
        <time min="5s" max="10s"/>
      </timing>
      <action>
        <do_all>
          <find_station name="this.shipyard" typename="SS_FAC_B_SHIP_BIG">
            <sector x="17" y="14" />
          </find_station>
          <create_ship name="this.traitor" typename="SS_SH_B_M6" race="boron" boardable="1" invincible="1" >
            <position object="this.shipyard" min="1km" max="3km"/>
            <sector x="17" y="14"/>
            <equipment loadout="default"/>
            <command command="none">
            </command>
          </create_ship>
          <run_script script="a.find.traitor">
            <scriptargs>
              <scriptvalue datatype="ship" datavalue="{object@this.traitor}"/>
            </scriptargs>
          </run_script>
         </do_all>
      </action>
    </cue>
   </cues>

где ошибка?
нормально работает только:
Код: выделить все
<run_script script="a.find.traitor" task="1">
     <scriptargs>
       <scriptvalue datatype="ship" datavalue="{object@this.traitor}"/>
    </scriptargs>
 </run_script>

вот из TOTT.Xenon.Invasions
Код: выделить все
<action>
     <do_all>
      <run_script script="TOTT.New.Invasion.Backsector" task="1"/>                 
   </do_all>
</action>

больше я run_script нигде не нашёл :?
Кажется понял: task boolean Start action as a separate task? --> Выполнить действие как самостоятельную задачу (не ожидать завершения)?
Получается, если нет task="1" или task="0", run_script повторяет действия перед ним, пока не отработает вызываемый скрипт, а у меня в нём задержка 10 сек, вот он и создавал мне 700 корыт за 10 сек. :D
Значит правильно будет всё таки: <run_script script="a.find.traitor" task="1"/>?
Ещё раз спасибо, что ткнул носом в "Start action as a separate task?" (у меня мозгов не хватило в director найти описание task), думал это стек :D
Полез теперь разбираться с брифингами :)
Последний раз редактировалось gav622007 18 янв 2020, 18:25, всего редактировалось 1 раз.
gav622007
Newbie
Newbie
 
Сообщений: 38
Изображения: 0
Зарегистрирован: 13 июн 2018, 14:15
DSP: 1
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение gav622007 » 18 янв 2020, 18:08

Без task="1?
Ооо, куда пост дел? :D
З.Ы. вызываемому скрипту дай задержку до return null секунд 10, и будет тебе радость :D
gav622007
Newbie
Newbie
 
Сообщений: 38
Изображения: 0
Зарегистрирован: 13 июн 2018, 14:15
DSP: 1
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение DNA78 » 18 янв 2020, 18:19

gav622007 писал(а):З.Ы. вызываемому скрипту дай задержку до return null секунд 10, и будет тебе радость

Только радость не мне, а тебе :D Без задержки у меня работает всё нормально и без task="1". Я как бы не ясновидящий, что бы знать что там у тебя за скрипты запускаются.
Аватар пользователя
DNA78
Admin
Admin
 
Сообщений: 1423
Изображения: 2
Зарегистрирован: 09 фев 2011, 20:08
DSP: 144
Благодарил (а): 175 раз.
Поблагодарили: 763 раз.

Re: Модостроение (вопросы и ответы)

Сообщение phalcor » 19 янв 2020, 13:55

По поводу task.
Для себя я сделал вывод, что это БАГ в движке MD, связанный с тем, что он (движок) не всегда проверяет статус запускаемого "cue", и, в нашем случае, он повторно запускает "cue", который имеет статус 1-active (означает - начал работу, но ещё не завершён).
Убедиться в этом можно, проведя простой эксперимент.
Имеем:
Код: выделить все
      <cue name="test_task_bug">
            <action>
              <do_all>               
                  <incoming_message text="md1: {player.age}"/>               
                  <run_script script="test.task1" task="1"/>                           
                 <incoming_message text="md2: {player.age}"/>               
              </do_all>
          </action>
      </cue>
Код: выделить все
$t=playing time
$t='se1: '+$t
write to player logbook $t

$wait=30000
while$wait
$wait=wait $wait ms
end

$t=playing time
$t='se2: '+$t
write to player logbook $t

return null
Итак, запускаем игру с этими скриптами:
1) task=1 (т.е., как правильно заметил выше gav622007 - md не будет ждать завершения se), и через 30 сек в журнале видим:
[Для просмотра изображения необходимо включить JavaScript]
Т.е. всё, как и должно быть.

2) task=0 (md должен ДОЖДАТЬСЯ окончания запускаемого se-скрипта)
Порлучаем сотни запущенных копий MD и SE!!!

Происходит это ТОЛЬКО в случае, если в запускаемом SE-скрипте присутствует оператор @wait (или ему подобный), который, как известно, служит для передачи процессорного времени другим исполняемым в то же время задачам.

Надеюсь, понятно объяснил :bv:
Можно уменьшит wait до ~300-500ms (чтобы было запущено всего несколько десятков копий) и затем посмотреть в журнале очерёдность исполнения скриптов.
"Открылась бездна звезд полна; Звездам числа нет, бездне дна."
phalcor
Moderator
Moderator
 
Сообщений: 221
Изображения: 0
Зарегистрирован: 07 июн 2017, 11:57
DSP: 30
Награды: 1
За то что надо!!! (1)
Благодарил (а): 42 раз.
Поблагодарили: 91 раз.

Re: Модостроение (вопросы и ответы)

Сообщение gav622007 » 19 янв 2020, 15:43

Ну да, я ж к этому и пришёл благодаря твоей подсказке, ставим task=1 для глобального, и никаких проблем, MD ждёт следующих условий, а SE делает своё :)
Даже если не будет task=1 и перед run scripn никаких действий в cue, он всё равно будет плодить скрипты пока первый не отработает, проверял. Только если вызываемый скрипт чисто запускает другой без задержки, но это лишний скрипт в SE.
gav622007
Newbie
Newbie
 
Сообщений: 38
Изображения: 0
Зарегистрирован: 13 июн 2018, 14:15
DSP: 1
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение gav622007 » 22 янв 2020, 14:15

файл conversations.xml
Код: выделить все
<conversation name="OfferGettingTugConv01">
        <player text="{3800,5000}" comment="OfferText">
         <npc text="{@pageid,943}" comment="answer npc"/>
       </player>
   </conversation>

Есть варианты как обмануть {@pageid,943}? Вместо 943 подставлять переменную, чтобы не писать шаблон под каждый ответ. Перепробовал разные варианты, не получается.
gav622007
Newbie
Newbie
 
Сообщений: 38
Изображения: 0
Зарегистрирован: 13 июн 2018, 14:15
DSP: 1
Благодарил (а): 3 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение johndsh » 08 окт 2020, 11:05

Good information thanks for sharing
johndsh
Newbie
Newbie
 
Сообщений: 1
Зарегистрирован: 08 окт 2020, 10:42
DSP: 0
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Ivan_USER » 14 ноя 2021, 23:33

Доброго дня, коллеги.
У меня возник один вопрос, ответ на который я запамятовал и программы для его решения давно дропнул.
Захотелось тут восстановить в игру один старый корабль
M0 USS Yorktown

В тех модпаках, которые я сохранил как ресурсную базу для судов - он почему-то дырявый, т.е. у него в области входного и выходного доков в модели просто дырки. Я предположил, что просто эта конкретная версия корабля битая и, вероятно, в модпаках просто не использовалась. Попытался найти в сцене судна какие-то недостающие элементы - но не нашел ссылок ни на что такое крупное.
Я так понимаю, объекты 19050 и 19051 - это шлюзы. Но даже с ними там есть дыры в модели.

Попытался где-то ещё его найти. Т.к. корабль очень старый, удалось найти только файл формата XSP. Помнится, когда-то давно моды к X3 именно так распространялись, а потом уже перешли на cat/dat-ы.
Так вот, вопрос:
Чем вскрыть этот XSP-файл? Можно его перегнать в формат cat/dat?

Заранее спасибо.
Ivan_USER
Trainee
Trainee
 
Сообщений: 64
Зарегистрирован: 05 дек 2011, 10:06
DSP: 3
Благодарил (а): 8 раз.
Поблагодарили: 3 раз.

Re: Модостроение (вопросы и ответы)

Сообщение DNA78 » 18 ноя 2021, 06:32

Ivan_USER писал(а):Я так понимаю, объекты 19050 и 19051 - это шлюзы. Но даже с ними там есть дыры в модели.

А эти ID шлюзов прописаны в Dummies.txt?
Ivan_USER писал(а):Чем вскрыть этот XSP-файл?

XPMShipCreator из комплекта старой версии XPluginManager.
Ivan_USER писал(а):Можно его перегнать в формат cat/dat?

С помощью XPluginManager v.1.6 можно это сделать.
Вся нужная инфа по XSP-файлам здесь.
Аватар пользователя
DNA78
Admin
Admin
 
Сообщений: 1423
Изображения: 2
Зарегистрирован: 09 фев 2011, 20:08
DSP: 144
Благодарил (а): 175 раз.
Поблагодарили: 763 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Ivan_USER » 19 ноя 2021, 11:07

DNA78 писал(а):А эти ID шлюзов прописаны в Dummies.txt?

С этим вообще странно: ни в моём Dummies, ни в том моде, из которого я корабль ранее скопитырил, эти объекты не прописаны. То есть даже если я правильно опознал их как доки (а в Dummies есть похожие номера, но, например, не 19050, а 19098), они и в исходном моде не должны были бы работать. Плюс я уже сталкивался с глючными доками на звездолётах - та обычно не было самого шлюза, но углубление для него оставалось, т.к. оно было просто замоделено. А тут просто две дырки в модели, через которые видно изнанку звездолёта - выглядит будто не хватает какой-то детали. Будто в имеющемся у меня моде эту деталь "потеряли", потому я стал искать другие источники с этим кораблём - и нарыл XSP.
DNA78 писал(а):С помощью XPluginManager v.1.6 можно это сделать.

За наводку спасибо, но что-то я там нахожу только битые ссылки на софт. Не знаете, где ещё эту прогу можно поискать?
Upd: отмена, уже нашёл на другом сайте.
Upd2: вскрыл XSP. Ну я почти угадал: в файлах мода были необходимые доки - но вот ни в Dummies, ни даже в сцену самого звездолёта, как они были в доступном мне модпаке, они не были вписаны. Будем править.
Ivan_USER
Trainee
Trainee
 
Сообщений: 64
Зарегистрирован: 05 дек 2011, 10:06
DSP: 3
Благодарил (а): 8 раз.
Поблагодарили: 3 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Ivan_USER » 20 ноя 2021, 20:00

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

Остался чисто эстетический вопрос, но о котором я вынужден просить помощи.
Цель - поставить на входе и выходе из ангара кораблю некое энергетическое поле, которое типа удерживает воздух внутри ангара без необходимости в шлюзах. Идеальным для этого будет какой-нибудь параллелепипед или вовсе плоскость, покрытая с одной стороны просто полупрозрачной светящейся текстурой.

Коллеги, посоветуйте, пожалуйста, некую БД моделей для X3, где можно найти такую деталь? Или вдруг у вас что-то завалялось - скиньте, пожалуйста.
Ivan_USER
Trainee
Trainee
 
Сообщений: 64
Зарегистрирован: 05 дек 2011, 10:06
DSP: 3
Благодарил (а): 8 раз.
Поблагодарили: 3 раз.

Re: Модостроение (вопросы и ответы)

Сообщение ir6ds » 20 ноя 2021, 21:22

Хоть скрин корабля можно? любопытство)
Аватар пользователя
ir6ds
Newbie
Newbie
 
Сообщений: 40
Зарегистрирован: 20 июл 2017, 13:41
DSP: 0
Благодарил (а): 37 раз.
Поблагодарили: 5 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Ivan_USER » 21 ноя 2021, 11:51

ir6ds писал(а):Хоть скрин корабля можно? любопытство)

Без проблем.

Изначально это была космофицированная версия USS Yorktown, но я смыл с него названия и эмблемы (можно и новые нарисовать, если захочется - но мне нравится минимализм этого "зубила"). Затем перетряхнул сцену: прописал внутренности ангара (изначально там была просто дыра), убрал отдельных 3 куска модели, которые были анимированы, но не приносили никакой функциональной пользы (да и находились внутри - их было толком не видно. А ресурсы они ели бы), заменил точки стыковки на работающие, заменил исходный кокпит на обычный вид "примерно из кабины" (да, там был замоделен кокпит - но выглядел он очень "лоу-поли"), прописал двигатели.
На 5 фото видно, что у сабжа сквозной ангар (почему-то красный, хотя в 3D Viewer-е он нормальный). Собственно, его я и хотел бы прикрыть полупрозрачными энергетическими полями - типа они воздух удерживают. И сажать на него М6 - размер входных и выходных ворот позволяет туда и небольшой фрегат впихнуть.

Ни у кого не завалялось какой-нибудь как отдельной модели для X3 плоскости, зашкруенной полупрозрачной светящейся текстурой, чтоб прикрыть эти "ворота"?
Ivan_USER
Trainee
Trainee
 
Сообщений: 64
Зарегистрирован: 05 дек 2011, 10:06
DSP: 3
Благодарил (а): 8 раз.
Поблагодарили: 3 раз.

Пред.След.

Вернуться в X3: Time Of The Truth

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron