Вопросы по созданию модов

Форум Модификации для игр серии Ex Machina Вопросы по созданию модификаций
Сообщений: 1744 • Страница 87 из 88 1 ... 808182838485868788
Аватара
Уже так и сделал. Было обидно начинать сначала. Если код перенести в файлах труда не составило, то вот карты в сдк пришлось начинать заново переделывать . Ну в принципе вопрос снят. Решение не нашел , но с проблемой справился .
Аватара

Цитата:

карты в сдк пришлось начинать заново переделывать


А что, если попробовать скопировать dynamicscene, разве на карте объекты не сохраняются?
Аватара
Объекты сохраняются , но изменения были не только в динамиксцене, это и новый рельеф, и дороги , и вода , и много всего остального. Папку карты переносил целиком на чистую игру , заранее проверив как ведут себя при взрыве бочки. Естественно , на чистой игре все отлично. А когда перенес начались чудеса) Во первых , бочки , чтобы были по светлее, которые собственно и взрываются при выстреле, поменяли свой цвет , стали более темные. На выстрелы никак не реагировали. Другая группа бочек, эти наоборот были темные , и взрывались раньше только если что то рядом рванет, среагировала на выстрелы взрывом. Хотя они не должны были. А дальше самое интересное. Решил протаранить первую группу бочек, и они взорвались. Ну, как взорвались , звук взрыва был, эффетка не было, никаких ошметков в стороны не разлетелось , а сами бочки увеличились в размере раза в полтора-два, и остались валяться на земле. Вот и весь взрыв)) Метаморфозы)
Аватара
Жесть ) У меня тоже был глюк - на тестовой локации, которую я сделал, внезапно исчезли все объекты. Уже боюсь в сдк работать.
Аватара
Приветстсвую. На будущее - сто раз просили выкладывать лог-файл с крашем. Очень помогает в диагностике неполадки. А по твоему(вашему?) вопросу- скорее всего ты мог редактировать эффекты через сдк. В таком случае сдк губит файл effects.xml effects.bps(архив). Лежат они в дата\моделс. Как губит? ну например у меня сдк пару раз переписывал этот файл "своими" эффектами с карты или хз откуда. И да, вот пример куска кода из этого файла из аркады
Код: Ctrl+A, Ctrl+C
      
<!-- DV эта фигня заглушка потоиу что ET_PS_MACHINEGUNUNITEXPLOSION где то вызывается но так и не понятно где и нафига оно надо-->
<Node name="ET_PS_MACHINEGUNUNITEXPLOSION" class="SgNode">
</Node>
<!-- DV bonus EFF-->


Как видно - даже таргем не грушался делать "заглушки" чтобы игра не крашила.

З.ы. ПОЖАЛУЙСТА выкладывайте логи, если у вас крашит и не понятно почему.

Моя база знаний по МОДДИНГУ и СТРУКТУРЕ движка Ex Machine Meridian113.
База знаний, на шару, качать всем
Спасибо ScorpyX, Myx, Wooffallo, Kto и другим, кто помогал мне тогда.
Аватара
Обновите базу своего моддинга ссылка старая и не работает!
Аватара
KOYOT , спасибо вам за ответ . Хоть и уже поздно. В любом случае , ничего страшного не произошло, локации переделал заново, и в этот раз в виду увеличившегося опыта работы с СДК , получилось гораздо качественнее .
Почему не выложил Лог-файл? А смысла в нем не было . Краш вызывала единственная строчка "Can't find server item for ET_PS_EXPLOSION", которую я написал в предыдущем сообщении, собственно это все что нужно было увидеть в этом логе. Все остальное было в порядке.
Ну и с возвращением , что-ли)
Аватара
Привет всем.У меня возник вопрос:как изменить место появления гг(Прям в другой локации)
Аватара
Место появления можно поменять с помощью PassToMap.

PassToMap( <MapName>, <LocationName>, <Angle>, <Immediate> )
MapName — имя карты, куда осуществляется переход.
LocationName — название локации на новой карте.
Angle — угол поворота машины при установке, в градусах или -1 (автоматическая ориентировка).
Immediate — указывает, переходить немедленно или включить затухание (fading); логический тип.

Примеры:
PassToMap("r1m2", "FromR1M1", -1) - переход на карту Риджин в центр локации FromR1M1 с затуханием.
PassToMap("r1m2", "FromR1M1") - то же самое. По умолчанию используется автоориентирование и затухание.
PassToMap("r1m2", "FromR1M3", 315, 1) - переход на карту Риджин в центр локации FromR1M3 с поворотом машины на 315(-45) градусов без затухания.
PassToMap("r1m2", "FromR1M3", -45, true) - то же самое.
Аватара
Спасибо за ответ.Но у меня появился еще вопрос как создавать свои катсцены?
Аватара
Что означает скрипт SetThrottle в триггерах Ex Machina? Используется он довольно часто, а что конкретно он делает мне установить так и не удалось даже экспериментальным путём.
Аватара
SetThrottle - втопить педаль газа. Имеет дробное значение в диапазоне от 0 до 1.
Аватара

Цитата:

SetThrottle - втопить педаль газа. Имеет дробное значение в диапазоне от 0 до 1.


Семимахов, благодарю за ответ. В таком случае, ещё пара вопросов, тоже по скриптам.
В команде
Спойлер
CreateEffectTTLed("ET_PS_BRIDGE_EXP_MAIN", CVector(5535.000, 206, 1423.000), Quaternion(0.0000, 0.0000, 0.0000, 1.0000), 600000)

что обозначает число 600000? Пробовал его менять, вроде ничего не поменялось. В папке scripts ни в одном lua-файле эту команду вообще не нашёл.
А в команде
Спойлер
CreateEffectInsertedInRemove( "ET_PS_VEH_EXP1_MED1", CVector(5555.000, 209, 1422.000), Quaternion(0.0000, 0.0000, 0.0000, 1.0000), true )

что значит true? Сначала думал, что это отвечает за исчезновение эффекта, но при значении false данный эффект также исчезает, так что немного непонятно.
Аватара
CreateEffectTTLed - встроенная функция, 600000 - время жизни. По-моему, в каких-то своих внутренних единицах.
true - как понял, это разрешает/запрещает создавать эффект на месте предыдущего, если он ещё существует. То есть, либо можно вставить в существующий либо нет.
Аватара
Премного благодарен за ответы.
Аватара
Ещё вопрос возник.
Нужно создать на карте объект в процессе игры, т.е. поставить в редакторе - не вариант. Причём этот объект должен иметь масштаб, отличный от стандартного (равного 1).
Насколько я понял, за создание объектов отвечают команды CreateNewDummyObject, CreateNewBreakableObject и CreateNewSgNodeObject. Первые две я отметаю сразу, так как в server.lua в этих командах не используется масштаб, значит нужно работать с CreateNewSgNodeObject.
Спойлер
Код: Ctrl+A, Ctrl+C
      function CreateNewSgNodeObject( modelName, objName, parentId, belong, pos, rot , scale)
local prototypeName = "SgNodeObject"
local dObj = _CreateNewObject( prototypeName, objName, parentId, belong )
local obj = GetEntityByID (dObj)

obj:SetSgNode( modelName )
if rot then
obj:SetRotation ( rot )
else
obj:SetRotation (Quaternion(0.0000, 0.0000, 0.0000, 1.0000))
end

if scale then
obj:SetScale ( scale )
end

obj:SetPosition ( pos )
return obj
end

Проблема в том, что при создании объекта таким образом, он не имеет коллизии и игрок может спокойно сквозь него проехать.
Если ставить объекты через редактор (который, в свою очередь, ставит их через world.xml), то за коллизию там отвечает параметр passable, но для команды CreateNewSgNodeObject в server.lua такого параметра нет.
Спойлер
Код: Ctrl+A, Ctrl+C
       <Node
name="Object92382085"
class="SgAnimatedModelNode"
org="1676.813 0.000 2198.562"
orgRel="1"
rot="0.0000 -0.9873 0.0000 -0.1586"
scale="9.800 9.800 9.800"
id="MODELNAME"
ndmAction="0"
passable="1" />


В связи с этим возникает вопрос: каким образом создать объект на карте непосредственно в самой игре, чтобы он имел нужный мне масштаб (отличный от 1) и при этом сквозь него нельзя было проехать?
P.S. Пробовал создавать объект через CreateNewDummyObject и потом к нему пытался применить параметр SetScale - игра выдаёт ошибку (nil value).
P.P.S. Пробовал непосредственно в server.lua команде CreateNewDummyObject прописать ещё и использование масштаба - снова ошибка.
Больше вариантов у меня нет.
Аватара
Такое дело...если ты меняешь масштаб и обьект динамический - ты его когда пнешь(активируешь динамику) - он станет старого размера. Причина - в динамических обьектах целиковые модели - подменяются битыми "на лету". Дальше.....есть такая кнопка в маппере "Convert all NODES" и подозреваю, что тебе нужно именно это. Потому что нода - не обьект. Скорее всего после "респауна" обьекта, тебе еще надо в код встроить преобразование обьекта из нода в что-то иное. Подробнее не подскажу - сам с этим не экспериментировал.

А не по теме вопрос - к чему такой гемморой? нельзя ли просто обьект в майе увеличить? Или с моделлингом все совсем плохо?

Моя база знаний по МОДДИНГУ и СТРУКТУРЕ движка Ex Machine Meridian113.
База знаний, на шару, качать всем
Спасибо ScorpyX, Myx, Wooffallo, Kto и другим, кто помогал мне тогда.
Аватара
KoYoT, спасибо за ответ, попробую разобраться. Хотя уже вроде как решил проблему, просто разместив объекты там, куда игрок не сможет добраться и, соответственно, проехать через них.
А что насчёт моделинга - даже связываться не хочу. В 3D-моделинге я ни бум-бум, а начинать изучение с нуля ради пары-тройки объектов мне абсолютно не хочется.
К тому же, судя по некоторым видео, сам процесс конвертации довольно гумозный и корявый, сама Maya отвратительно работает, в общем, овчинка выделки не стоит в моей ситуации.
Аватара
Народ, не пойму как сделать переход на другую локацию. С r1m1 в r5m1
Вот текст-----

Это первый регион

<Object
Flags="21"
Name="FromR5M1"
Belong="1100"
Prototype="genericLocation"
Pos="2248.236 321.924 2825.460"
Radius="10.000"
LookingTimeOut="10.000"
ExitLocation="ToR5M1" />

<Object
Flags="21"
Name="ToR5M1"
Belong="1100"
Prototype="genericLocation"
Pos="2116.774 335.574 2837.144"
Radius="100.000"
LookingTimeOut="100.000"
PassageAddress="r5m1 FromR1M1"
PassageActive="0" />
Это пятый регион регион
<Object
Flags="21"
Name="ToR1M1"
Belong="1100"
Prototype="genericLocation"
Pos="2393.954 372.451 2009.011"
Radius="100.000"
LookingTimeOut="100.000"
PassageAddress="r1m1 FromR5M1"
PassageActive="0" />

<Object
Flags="21"
Name="FromR1M1"
Belong="1100"
Prototype="genericLocation"
Pos="2382.206 372.768 2068.128"
Radius="10.000"
LookingTimeOut="10.000"
ExitLocation="ToR1M1" />


P.S При въезде в FromR5M1 ничего не происходит :(

Аватара
stanislav097, для того, чтобы сделать переход на другую локацию недостаточно просто сделать локации ToR5M1 и FromR5M1, нужно ещё также прописать в триггерах саму команду, отвечающую за этот переход.
Открываешь файл data/maps/r1m1/triggers.xml, находишь там триггер с названием "triggerExitToMap13", делаешь копию, меняешь имя, название локации в ивенте, убираешь условие с if (если тебе нужно, чтобы перейти на твою локацию можно было сразу с начала игры) и ещё некоторые ненужные команды. Или вот тебе готовый триггер, просто скопируй в triggers.xml Края и твоей локации (r5m1).
Этот для Края
Код: Ctrl+A, Ctrl+C
       <trigger Name="triggerExitToMap51" active="1">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="ToR5M1" />
<script>
local b = SpawnMessageBox( "8801" )
if b == 1 then
PassToMap("r5m1", "FromR1M1", -1 )
end
</script>
</trigger>

Этот для твоей локи (важно, чтобы в файле strings.xml твоей локации был объект с id=8801 наподобие того, который есть в том же файле локации Край)
Код: Ctrl+A, Ctrl+C
       <trigger Name="triggerExitToMap11" active="1">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="ToR1M1" />
<script>
local b = SpawnMessageBox( "8801" )
if b == 1 then
PassToMap("r1m1", "FromR1M5", -1 )
end
</script>
</trigger>
Сообщений: 1744 • Страница 87 из 88 1 ... 808182838485868788