Модостроение (вопросы и ответы)
Модераторы: by.@ztek, Постигший истину, Модераторы
Re: Модостроение (вопросы и ответы)
gav622007
И это ты называешь без заморочек Без заморочек - это когда просто берёшь и присваиваешь нужному кораблю и в нужном месте флаг sellable
И это ты называешь без заморочек Без заморочек - это когда просто берёшь и присваиваешь нужному кораблю и в нужном месте флаг sellable
-
DNA78 - Admin
- Сообщений: 1423
- Изображения: 2
- Зарегистрирован: 09 фев 2011, 20:08
- DSP: 144
- Благодарил (а): 175 раз.
- Поблагодарили: 763 раз.
Re: Модостроение (вопросы и ответы)
gav622007 писал(а):У меня немного другие задачи
Тогда да, мой вариант не годится.
gav622007 писал(а):вот скопипастит кто нидь, и будет ему гемор
Защита от бездумного копирования
"Открылась бездна звезд полна; Звездам числа нет, бездне дна."
- phalcor
- Moderator
- Сообщений: 221
- Изображения: 0
- Зарегистрирован: 07 июн 2017, 11:57
- DSP: 30
- Награды: 1
- Благодарил (а): 42 раз.
- Поблагодарили: 91 раз.
Re: Модостроение (вопросы и ответы)
DNA78, так ведь нет вариантов без правки ОБЖа, ну а в чём заморочки, написать маленький эпизод в MD? Который сработает один раз за игру. Конечно, я и сам хотел бы написать сюжет в MD, было бы красивей. Пытаюсь, может что и выйдет, но туго у меня в MD идёт, а в SE запросто
- gav622007
- Newbie
- Сообщений: 38
- Изображения: 0
- Зарегистрирован: 13 июн 2018, 14:15
- DSP: 1
- Благодарил (а): 3 раз.
- Поблагодарили: 6 раз.
Re: Модостроение (вопросы и ответы)
gav622007
Да там ничего сложного. Чтобы быстрей понять принцип их работы - дебуж их.
Да там ничего сложного. Чтобы быстрей понять принцип их работы - дебуж их.
-
DNA78 - Admin
- Сообщений: 1423
- Изображения: 2
- Зарегистрирован: 09 фев 2011, 20:08
- DSP: 144
- Благодарил (а): 175 раз.
- Поблагодарили: 763 раз.
Re: Модостроение (вопросы и ответы)
Нужно из MD запустить глобальный скрипт SE и передать ему аргументом корыто, правильно ли будет:
вроде работает, но сомневаюсь в стеке task="1", при других вариантах не работает.
- Код: выделить все
<run_script script="a.find.traitor" task="1">
<scriptargs>
<scriptvalue datatype="ship" datavalue="this.traitor">
</scriptvalue>
</scriptargs>
</run_script>
вроде работает, но сомневаюсь в стеке task="1", при других вариантах не работает.
- gav622007
- Newbie
- Сообщений: 38
- Изображения: 0
- Зарегистрирован: 13 июн 2018, 14:15
- DSP: 1
- Благодарил (а): 3 раз.
- Поблагодарили: 6 раз.
Re: Модостроение (вопросы и ответы)
gav622007
Открывай чужие скрипты и смотри как сделано там. Например скрипты из ТОТТ'а.
- Код: выделить все
<run_script script="a.find.traitor">
<scriptargs>
<scriptvalue datatype="ship" datavalue="{object@this.traitor}"/>
</scriptargs>
</run_script>
Открывай чужие скрипты и смотри как сделано там. Например скрипты из ТОТТ'а.
-
DNA78 - Admin
- Сообщений: 1423
- Изображения: 2
- Зарегистрирован: 09 фев 2011, 20:08
- DSP: 144
- Благодарил (а): 175 раз.
- Поблагодарили: 763 раз.
Re: Модостроение (вопросы и ответы)
gav622007 писал(а):сомневаюсь в стеке task="1"
В данном случае это не стек.
- Код: выделить все
task boolean Start action as a separate task?
"Открылась бездна звезд полна; Звездам числа нет, бездне дна."
- Рейтинг: 1.89%
-
- phalcor
- Moderator
- Сообщений: 221
- Изображения: 0
- Зарегистрирован: 07 июн 2017, 11:57
- DSP: 30
- Награды: 1
- Благодарил (а): 42 раз.
- Поблагодарили: 91 раз.
Re: Модостроение (вопросы и ответы)
- Код: выделить все
<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 сек.
Значит правильно будет всё таки: <run_script script="a.find.traitor" task="1"/>?
Ещё раз спасибо, что ткнул носом в "Start action as a separate task?" (у меня мозгов не хватило в director найти описание task), думал это стек
Полез теперь разбираться с брифингами
Последний раз редактировалось gav622007 18 янв 2020, 18:25, всего редактировалось 1 раз.
- gav622007
- Newbie
- Сообщений: 38
- Изображения: 0
- Зарегистрирован: 13 июн 2018, 14:15
- DSP: 1
- Благодарил (а): 3 раз.
- Поблагодарили: 6 раз.
Re: Модостроение (вопросы и ответы)
Без task="1?
Ооо, куда пост дел?
З.Ы. вызываемому скрипту дай задержку до return null секунд 10, и будет тебе радость
Ооо, куда пост дел?
З.Ы. вызываемому скрипту дай задержку до return null секунд 10, и будет тебе радость
- gav622007
- Newbie
- Сообщений: 38
- Изображения: 0
- Зарегистрирован: 13 июн 2018, 14:15
- DSP: 1
- Благодарил (а): 3 раз.
- Поблагодарили: 6 раз.
Re: Модостроение (вопросы и ответы)
gav622007 писал(а):З.Ы. вызываемому скрипту дай задержку до return null секунд 10, и будет тебе радость
Только радость не мне, а тебе Без задержки у меня работает всё нормально и без task="1". Я как бы не ясновидящий, что бы знать что там у тебя за скрипты запускаются.
-
DNA78 - Admin
- Сообщений: 1423
- Изображения: 2
- Зарегистрирован: 09 фев 2011, 20:08
- DSP: 144
- Благодарил (а): 175 раз.
- Поблагодарили: 763 раз.
Re: Модостроение (вопросы и ответы)
По поводу task.
Для себя я сделал вывод, что это БАГ в движке MD, связанный с тем, что он (движок) не всегда проверяет статус запускаемого "cue", и, в нашем случае, он повторно запускает "cue", который имеет статус 1-active (означает - начал работу, но ещё не завершён).
Убедиться в этом можно, проведя простой эксперимент.
Имеем:
Итак, запускаем игру с этими скриптами:
1) task=1 (т.е., как правильно заметил выше gav622007 - md не будет ждать завершения se), и через 30 сек в журнале видим:
[Для просмотра изображения необходимо включить JavaScript]
Т.е. всё, как и должно быть.
2) task=0 (md должен ДОЖДАТЬСЯ окончания запускаемого se-скрипта)
Порлучаем сотни запущенных копий MD и SE!!!
Происходит это ТОЛЬКО в случае, если в запускаемом SE-скрипте присутствует оператор @wait (или ему подобный), который, как известно, служит для передачи процессорного времени другим исполняемым в то же время задачам.
Надеюсь, понятно объяснил
Можно уменьшит wait до ~300-500ms (чтобы было запущено всего несколько десятков копий) и затем посмотреть в журнале очерёдность исполнения скриптов.
Для себя я сделал вывод, что это БАГ в движке 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 (или ему подобный), который, как известно, служит для передачи процессорного времени другим исполняемым в то же время задачам.
Надеюсь, понятно объяснил
Можно уменьшит wait до ~300-500ms (чтобы было запущено всего несколько десятков копий) и затем посмотреть в журнале очерёдность исполнения скриптов.
"Открылась бездна звезд полна; Звездам числа нет, бездне дна."
- phalcor
- Moderator
- Сообщений: 221
- Изображения: 0
- Зарегистрирован: 07 июн 2017, 11:57
- DSP: 30
- Награды: 1
- Благодарил (а): 42 раз.
- Поблагодарили: 91 раз.
Re: Модостроение (вопросы и ответы)
Ну да, я ж к этому и пришёл благодаря твоей подсказке, ставим task=1 для глобального, и никаких проблем, MD ждёт следующих условий, а SE делает своё
Даже если не будет task=1 и перед run scripn никаких действий в cue, он всё равно будет плодить скрипты пока первый не отработает, проверял. Только если вызываемый скрипт чисто запускает другой без задержки, но это лишний скрипт в SE.
Даже если не будет task=1 и перед run scripn никаких действий в cue, он всё равно будет плодить скрипты пока первый не отработает, проверял. Только если вызываемый скрипт чисто запускает другой без задержки, но это лишний скрипт в SE.
- gav622007
- Newbie
- Сообщений: 38
- Изображения: 0
- Зарегистрирован: 13 июн 2018, 14:15
- DSP: 1
- Благодарил (а): 3 раз.
- Поблагодарили: 6 раз.
Re: Модостроение (вопросы и ответы)
файл conversations.xml
Есть варианты как обмануть {@pageid,943}? Вместо 943 подставлять переменную, чтобы не писать шаблон под каждый ответ. Перепробовал разные варианты, не получается.
- Код: выделить все
<conversation name="OfferGettingTugConv01">
<player text="{3800,5000}" comment="OfferText">
<npc text="{@pageid,943}" comment="answer npc"/>
</player>
</conversation>
Есть варианты как обмануть {@pageid,943}? Вместо 943 подставлять переменную, чтобы не писать шаблон под каждый ответ. Перепробовал разные варианты, не получается.
- gav622007
- Newbie
- Сообщений: 38
- Изображения: 0
- Зарегистрирован: 13 июн 2018, 14:15
- DSP: 1
- Благодарил (а): 3 раз.
- Поблагодарили: 6 раз.
Re: Модостроение (вопросы и ответы)
Good information thanks for sharing
- johndsh
- Newbie
- Сообщений: 1
- Зарегистрирован: 08 окт 2020, 10:42
- DSP: 0
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
Re: Модостроение (вопросы и ответы)
Доброго дня, коллеги.
У меня возник один вопрос, ответ на который я запамятовал и программы для его решения давно дропнул.
Захотелось тут восстановить в игру один старый корабль
В тех модпаках, которые я сохранил как ресурсную базу для судов - он почему-то дырявый, т.е. у него в области входного и выходного доков в модели просто дырки. Я предположил, что просто эта конкретная версия корабля битая и, вероятно, в модпаках просто не использовалась. Попытался найти в сцене судна какие-то недостающие элементы - но не нашел ссылок ни на что такое крупное.
Попытался где-то ещё его найти. Т.к. корабль очень старый, удалось найти только файл формата XSP. Помнится, когда-то давно моды к X3 именно так распространялись, а потом уже перешли на cat/dat-ы.
Так вот, вопрос:
Чем вскрыть этот XSP-файл? Можно его перегнать в формат cat/dat?
Заранее спасибо.
У меня возник один вопрос, ответ на который я запамятовал и программы для его решения давно дропнул.
Захотелось тут восстановить в игру один старый корабль
M0 USS Yorktown
В тех модпаках, которые я сохранил как ресурсную базу для судов - он почему-то дырявый, т.е. у него в области входного и выходного доков в модели просто дырки. Я предположил, что просто эта конкретная версия корабля битая и, вероятно, в модпаках просто не использовалась. Попытался найти в сцене судна какие-то недостающие элементы - но не нашел ссылок ни на что такое крупное.
Я так понимаю, объекты 19050 и 19051 - это шлюзы. Но даже с ними там есть дыры в модели.
Попытался где-то ещё его найти. Т.к. корабль очень старый, удалось найти только файл формата XSP. Помнится, когда-то давно моды к X3 именно так распространялись, а потом уже перешли на cat/dat-ы.
Так вот, вопрос:
Чем вскрыть этот XSP-файл? Можно его перегнать в формат cat/dat?
Заранее спасибо.
- Ivan_USER
- Trainee
- Сообщений: 64
- Зарегистрирован: 05 дек 2011, 10:06
- DSP: 3
- Благодарил (а): 8 раз.
- Поблагодарили: 3 раз.
Re: Модостроение (вопросы и ответы)
Ivan_USER писал(а):Я так понимаю, объекты 19050 и 19051 - это шлюзы. Но даже с ними там есть дыры в модели.
А эти ID шлюзов прописаны в Dummies.txt?
Ivan_USER писал(а):Чем вскрыть этот XSP-файл?
XPMShipCreator из комплекта старой версии XPluginManager.
Ivan_USER писал(а):Можно его перегнать в формат cat/dat?
С помощью XPluginManager v.1.6 можно это сделать.
Вся нужная инфа по XSP-файлам здесь.
-
DNA78 - Admin
- Сообщений: 1423
- Изображения: 2
- Зарегистрирован: 09 фев 2011, 20:08
- DSP: 144
- Благодарил (а): 175 раз.
- Поблагодарили: 763 раз.
Re: Модостроение (вопросы и ответы)
DNA78 писал(а):А эти ID шлюзов прописаны в Dummies.txt?
С этим вообще странно: ни в моём Dummies, ни в том моде, из которого я корабль ранее скопитырил, эти объекты не прописаны. То есть даже если я правильно опознал их как доки (а в Dummies есть похожие номера, но, например, не 19050, а 19098), они и в исходном моде не должны были бы работать. Плюс я уже сталкивался с глючными доками на звездолётах - та обычно не было самого шлюза, но углубление для него оставалось, т.к. оно было просто замоделено. А тут просто две дырки в модели, через которые видно изнанку звездолёта - выглядит будто не хватает какой-то детали. Будто в имеющемся у меня моде эту деталь "потеряли", потому я стал искать другие источники с этим кораблём - и нарыл XSP.
DNA78 писал(а):С помощью XPluginManager v.1.6 можно это сделать.
За наводку спасибо, но что-то я там нахожу только битые ссылки на софт. Не знаете, где ещё эту прогу можно поискать?
Upd: отмена, уже нашёл на другом сайте.
Upd2: вскрыл XSP. Ну я почти угадал: в файлах мода были необходимые доки - но вот ни в Dummies, ни даже в сцену самого звездолёта, как они были в доступном мне модпаке, они не были вписаны. Будем править.
- Ivan_USER
- Trainee
- Сообщений: 64
- Зарегистрирован: 05 дек 2011, 10:06
- DSP: 3
- Благодарил (а): 8 раз.
- Поблагодарили: 3 раз.
Re: Модостроение (вопросы и ответы)
Всем снова здравствуйте.
С чинимым мной звездолётом ситуация оказалась вовсе смешной. В оригинальном моде действительно имелась целая куча деталей, которые не прикрепили к кораблю.
Плохо то, что они и в оригинальных файлах не были прописаны ни в сцену корабля, ни в Dummies. Часть из них я просто выкинул - они были дополнительно анимированы, при это были запрятаны в глубину судна и ни на что не влияли. Недостающую палубу ангара я нашёл и вставил как статичный объект, поскольку мне не попалось внятной информации, как и куда её ещё надо было прописать. Локаторы стыковки просто заменил на простые точки, к которым судно должно прилететь, и откуда оно спавнится при отлёте.
Сейчас думаю слегка переписать их сцены, сохранить как отдельные стыковочные узлы с возможностью подобрать М6 - и тем самым сделать фишку корабля как носителя корветов (размер входа в ангар позволяет).
Остался чисто эстетический вопрос, но о котором я вынужден просить помощи.
Цель - поставить на входе и выходе из ангара кораблю некое энергетическое поле, которое типа удерживает воздух внутри ангара без необходимости в шлюзах. Идеальным для этого будет какой-нибудь параллелепипед или вовсе плоскость, покрытая с одной стороны просто полупрозрачной светящейся текстурой.
Коллеги, посоветуйте, пожалуйста, некую БД моделей для X3, где можно найти такую деталь? Или вдруг у вас что-то завалялось - скиньте, пожалуйста.
С чинимым мной звездолётом ситуация оказалась вовсе смешной. В оригинальном моде действительно имелась целая куча деталей, которые не прикрепили к кораблю.
Плохо то, что они и в оригинальных файлах не были прописаны ни в сцену корабля, ни в Dummies. Часть из них я просто выкинул - они были дополнительно анимированы, при это были запрятаны в глубину судна и ни на что не влияли. Недостающую палубу ангара я нашёл и вставил как статичный объект, поскольку мне не попалось внятной информации, как и куда её ещё надо было прописать. Локаторы стыковки просто заменил на простые точки, к которым судно должно прилететь, и откуда оно спавнится при отлёте.
Сейчас думаю слегка переписать их сцены, сохранить как отдельные стыковочные узлы с возможностью подобрать М6 - и тем самым сделать фишку корабля как носителя корветов (размер входа в ангар позволяет).
Остался чисто эстетический вопрос, но о котором я вынужден просить помощи.
Цель - поставить на входе и выходе из ангара кораблю некое энергетическое поле, которое типа удерживает воздух внутри ангара без необходимости в шлюзах. Идеальным для этого будет какой-нибудь параллелепипед или вовсе плоскость, покрытая с одной стороны просто полупрозрачной светящейся текстурой.
Коллеги, посоветуйте, пожалуйста, некую БД моделей для X3, где можно найти такую деталь? Или вдруг у вас что-то завалялось - скиньте, пожалуйста.
- Ivan_USER
- Trainee
- Сообщений: 64
- Зарегистрирован: 05 дек 2011, 10:06
- DSP: 3
- Благодарил (а): 8 раз.
- Поблагодарили: 3 раз.
Re: Модостроение (вопросы и ответы)
Хоть скрин корабля можно? любопытство)
-
ir6ds - Newbie
- Сообщений: 40
- Зарегистрирован: 20 июл 2017, 13:41
- DSP: 0
- Благодарил (а): 37 раз.
- Поблагодарили: 5 раз.
Re: Модостроение (вопросы и ответы)
ir6ds писал(а):Хоть скрин корабля можно? любопытство)
Без проблем.
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
[Для просмотра изображения необходимо включить JavaScript]
Изначально это была космофицированная версия USS Yorktown, но я смыл с него названия и эмблемы (можно и новые нарисовать, если захочется - но мне нравится минимализм этого "зубила"). Затем перетряхнул сцену: прописал внутренности ангара (изначально там была просто дыра), убрал отдельных 3 куска модели, которые были анимированы, но не приносили никакой функциональной пользы (да и находились внутри - их было толком не видно. А ресурсы они ели бы), заменил точки стыковки на работающие, заменил исходный кокпит на обычный вид "примерно из кабины" (да, там был замоделен кокпит - но выглядел он очень "лоу-поли"), прописал двигатели.
На 5 фото видно, что у сабжа сквозной ангар (почему-то красный, хотя в 3D Viewer-е он нормальный). Собственно, его я и хотел бы прикрыть полупрозрачными энергетическими полями - типа они воздух удерживают. И сажать на него М6 - размер входных и выходных ворот позволяет туда и небольшой фрегат впихнуть.
Ни у кого не завалялось какой-нибудь как отдельной модели для X3 плоскости, зашкруенной полупрозрачной светящейся текстурой, чтоб прикрыть эти "ворота"?
- Ivan_USER
- Trainee
- Сообщений: 64
- Зарегистрирован: 05 дек 2011, 10:06
- DSP: 3
- Благодарил (а): 8 раз.
- Поблагодарили: 3 раз.
Вернуться в X3: Time Of The Truth
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1