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

Форум Модификации для игр серии Ex Machina Вопросы по созданию модификаций
Сообщений: 1744 • Страница 45 из 88 1 ... 42434445464748 ... 88
Аватара
Deenis, хотя я нашёл не полный от блуддекса.

Цитата:

Теперь откроем файл infection.xml, который также находится в папке gamedata/gameobjects. Этот файл позволяет редактировать те машины, которые рандомно появляются около машины игрока в игре. Предупреждаю, что здесь нет привычных нам строк с подробным описанием машины(т.е. какая кабина, пушка и т.д.), а значит придется работать «вслепую». Но это только так кажется! На самом же деле, есть файл towns.xml, в котором есть специальные, как бы их назвать, генераторы оружия, т.е. то оружие, которое занесено в список определенного «генератора», и будет появляться рандомно в какой-либо «инфекционной зоне». Ну, откроем сначала файл Infection.xml, рассмотрим его, а потом уже посмотрим и towns.xml. И так, мы хотим изменить инфекционную зону так, чтобы вместо «Тараканов» и «Клопов» в ней появлялись «Вены» и «Молоковозы». Для этого есть строчка:
VehiclesPrototypes =”Sml1 Sml2”
Т.е. если нам нужны вместо Клопа и Таракана – Вен и Молоковоз, изменяем так:
VehiclesPrototypes =”Bug Molokovoz”
Так же есть строка, отвечающая за кол-во появляющихся машин:
DesiredCount =”1-3”
Т.е. если нам нужно вместо 1-3 машины 1-10, то так и ставим 1-10.
Также есть строка, отвечающая за то, какой генератор предоставит машинам врагов пушки:
GunAffixGeneratorPrototype =”gun_affix_generator_good”>


WoT и WoWs:
Спойлер



Аватара

Цитата:

Также есть строка, отвечающая за то, какой генератор предоставит машинам врагов пушки:
GunAffixGeneratorPrototype =”gun_affix_generator_good”>


Этот генератор отвечает не за пушки а за аффиксы - модификаторы оружия противника (отличный, скорострельный, ржавый и т.п.)
Так же есть строка WaresPrototypes="book tobacco" , где "book tobacco" - названия товаров, которые генерируются в кузовах врагов. И ещё никак не могу разобраться что значит РartOfSchwartz...
И ещё в начале есть строки:
Код: Ctrl+A, Ctrl+C
      
<Prototype
Class = "InfectionZone"
Name = "InfectionZone"
MinDistToPlayer = "200" -- минимальная дистанция до игрока
CriticalTeamDist = "500"
CriticalTeamTime = "5"
BlindTeamDist = "200"
BlindTeamTime = "20"
DropOutTimeOut = "20.000" -- наверное время, отведённое на генерацию одной "банды"
/>

На этом (и том, что писал блудекс), вобщем, почти весь infection.xml и заканчивается.

Бывший Star_Racer
Аватара

"Alexey_70707" писал(а):

РartOfSchwartz


Кажется, это вероятность выпадания самого дропа. Я тоже когда-то этот файл редактировал.



BRB the day that never comes.
Аватара
Кажется кто то уже спрашивал , но я не нашел ответа. Каковы максимальные размеры одной локации ? Есть ли возможность создать вместо 10 отдельных областей , одну , к примеру 100X100 км?



Кто ждет тот всегда дождется!
Аватара
Нет, максимальный размер 8 на 8 км (это округлённо).

Играю в WoT.
Аватара

"Trity" писал(а):

Кажется кто то уже спрашивал , но я не нашел ответа. Каковы максимальные размеры одной локации ? Есть ли возможность создать вместо 10 отдельных областей , одну , к примеру 100X100 км?

Ограничений, в принципе (в пределах разумного) нет.
В "редаке" есть выбор от 8х8 до 128х128.
Для примера - Край - 32х32, все локации в игре не превышают 64х64.
Проверить очень просто, достаточно распаковать игру, и по пути data\mapsпросмотреть файлы .ssl (они есть для каждой карты (типа r1m1.ssl))
В каждом файле (.ssl) есть строка типа
Код: Ctrl+A, Ctrl+C
       <Key
name="LEVELSIZE">32</Key>

Значение (цифра) - размер по горизонтали, и по вертикали (в этом случае 32х32), то есть размер карты.

P.S. Отдельный "прикол" в том, что карту с нуля создать нереально (из-за "особенностей" редактора).
То есть как вариант, дублировать одну из больших (64х64 (r1m2,r1m3,r2m1 или r4m1,)), "чистить" dynamicscene.xml и начинать всё сначала.

Если у кого есть более простой способ, напишите.

Третий Закон: Любая достаточно развитая технология неотличима от магии. (Кларк)
Аватара
Появился такой вопрос: как в триггерах прописать переезд на другую локацию, но не просто с выезда, а с определённой точки или сразу после квеста и чтобы появление в целевой локации произошло не у обычного переезда а в другом месте (например чтоб переехать из края в фатерлянд не через "арку"(дорога в фатерлянд), а сразу после квеста, и появиться не рядом с "дорогой в край", а, ну скажем, сразу у Пешта)?

И ещё: какой параметр отвечает у Машины/шасси за восстановление ХП?

Бывший Star_Racer
Аватара

"bat13" писал(а):

P.S. Отдельный "прикол" в том, что карту с нуля создать нереально (из-за "особенностей" редактора).


Это не прикол, а легенда. Из-за того, что когда-то, леть пять тому назад, так сказал САМ JSinx. :) То ли ему было лень разбираться с проблемой, то ли так пошутил.

Новый уровень создаётся без проблем:
Спойлер
Запустить редактор. Далее:
File -> New или щёлкнуть по соответствующему значку.

Выбрать параметры создаваемого уровня:
Levels size (in units) /Размер уровня (в единицах)/
Ground level /Уровень "земли"/
Template /Шаблон/

Нажать "Ok"

Значки работы с уровнем гаснут. Внизу, в подвале, появляется сообщение "New, please wait".
Теперь надо просто ждать, пока создаётся новый уровень и мышкой никуда не тыкать.
Через какое-то время внизу появляются одна за другой полосы, которые показывают прогресс в создании уровня.
После того, как они перестанут появляться, а значки станут активными - уровень создан.
То что на экран по прежнему чёрный - это просто баг.

Чтобы начать работу с новым уровнем достаточно просто щёлкнуть на значок вроде "Terrain via brush" или "Water". Или просто его сохранить, перезапустить редактор и загрузить по новой.


"Alexey_70707" писал(а):

Появился такой вопрос: как в триггерах прописать переезд на другую локацию, но не просто с выезда, а с определённой точки или сразу после квеста


Выезд и есть та самая "определённая точка", то есть локация. Размести свою такую же где хочешь и выезжай.
Функция для переезда на другую карту:
Спойлер
PassToMap( <MapName>, <LocationName>, <Angle>, <Immediate> )

MapName — переменная типа «string», передаёт имя карты.
LocationName — переменная типа «string», передаёт имя локации.
Angle — переменная типа «number» (с плавающей точкой), передаёт угол поворота.
Immediate — переменная типа «boolean», определяет момент перехода.

Возвращает пустое значение.

Описание:
Переход на другую карту. Переход происходит на карту MapName в центр локации LocationName. На месте машина поворачивается на угол Angle. Если Immediate=true, то переход осуществляется немедленно.
Аватара
Семимахов, а возможно ли сделать чтобы игрок переходил на другу локацию сразу после опр. квеста?

Бывший Star_Racer
Аватара
Можно. Вызвай PassToMap и переходи.
Аватара
Код: Ctrl+A, Ctrl+C
      
<trigger Name="TRIGGER_FREEPLAYSTART" active="0">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="Player1" />
<script>


local b = SpawnMessageBox( "8801" )
if b == 1 then
PassToMap("r4m2", "FromR1M3", -1 )

local vehPlayer = GetPlayerVehicle()
local camPos = GetCameraPos()
if vehPlayer then
vehPlayer:SetGamePositionOnGround( CVector(2692.094, 274.295, 1836.091))
vehPlayer:SetRotation(Quaternion(0.014, 0.784, -0.039, 0.619))
end


AddHistory( "r1_After_Fight_Oracle" )
AddFadingMsgId( "fm_history_got" )

else
ShowDeathMenu()
end


trigger:Deactivate()
</script>
</trigger>

Что-то вроде этого?
P.S. Я пытаюсь сделать так, чтобы после битвы с оракулом и после конца скриптогого ролика игрока в зармек перенесло.
Спойлер
Вот переделанные мной под фриплей триггеры если что:
Код: Ctrl+A, Ctrl+C
      
<trigger Name="TRIGGER_ORACLEAGRESSORDIE" active="0">
<event eventid="GE_OBJECT_DIE" ObjName="OracleFlyBoss" />
<script>

CompleteQuest( "r2m1_DeployBloks" )
CompleteQuest( "r1m3_DestroyOracle" )
CompleteQuest( "r4m2_NeutralizePlate" )

SetWeather(0)

PlayCustomMusic("Bio07unloop")

Fly("start_game", CINEMATIC_NO_AIM, 0, 57, 1, 1 )
StartCinematic()

AddCinematicMessage( 77771, 0.1)

TActivate("TRIGGER_ORACLEAGRESSORDIECINEMATIC")

trigger:Deactivate()
</script>
</trigger>

<trigger Name="TRIGGER_ORACLEAGRESSORDIECINEMATIC" active="0">
<event eventid="GE_END_CINEMATIC" ObjName="Player1" />
<event eventid="GE_SKIP_CINEMATIC" ObjName="Player1" />
<script>
StopPlayingCustomMusic()

local rrr = GetEntityByName ("qa1")
if rrr then rrr:Remove() end
local rrr = GetEntityByName ("qa2")
if rrr then rrr:Remove() end
local rrr = GetEntityByName ("qa3")
if rrr then rrr:Remove() end
local rrr = GetEntityByName ("qa4")
if rrr then rrr:Remove() end
local rrr = GetEntityByName ("qa5")
if rrr then rrr:Remove() end

TActivate("TRIGGER_FREEPLAYSTART")

trigger:Deactivate()
</script>
</trigger>

<trigger Name="TRIGGER_FREEPLAYSTART" active="0">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="Player1" />
<script>


local b = SpawnMessageBox( "8801" )
if b == 1 then
PassToMap("r4m2", "FromR1M3", -1 )
else
ShowDeathMenu()
end


local vehPlayer = GetPlayerVehicle()
local camPos = GetCameraPos()
if vehPlayer then
vehPlayer:SetGamePositionOnGround( CVector(2692.094, 274.295, 1836.091))
vehPlayer:SetRotation(Quaternion(0.014, 0.784, -0.039, 0.619))
end


AddHistory( "r1_After_Fight_Oracle" )
AddFadingMsgId( "fm_history_got" )

trigger:Deactivate()
</script>
</trigger>

Бывший Star_Racer
Аватара

"Alexey_70707" писал(а):

Я пытаюсь сделать так, чтобы после битвы с оракулом и после конца скриптогого ролика игрока в зармек перенесло.


Тогда так:
Спойлер
Код: Ctrl+A, Ctrl+C
      <trigger Name="TRIGGER_ORACLEAGRESSORDIE" active="0">
<event eventid="GE_OBJECT_DIE" ObjName="OracleFlyBoss" />
<script>

CompleteQuest( "r2m1_DeployBloks" )
CompleteQuest( "r1m3_DestroyOracle" )
CompleteQuest( "r4m2_NeutralizePlate" )

PassToMap("r4m2", "FromR4M1", -1 )

trigger:Deactivate()
</script>
</trigger>
Аватара
Тоесть перенос нельзя вставить в другой триггер, который бы активировался после остальных?
Пример:
Спойлер
Код: Ctrl+A, Ctrl+C
      
TActivate("TRIGGER_FREEPLAYSTART")

trigger:Deactivate()
</script>
</trigger>

<trigger Name="TRIGGER_FREEPLAYSTART" active="0">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="Player1" />
<script>


PassToMap("r4m2", "FromR1M3", -1 )


local vehPlayer = GetPlayerVehicle()
local camPos = GetCameraPos()
if vehPlayer then
vehPlayer:SetGamePositionOnGround( CVector(2692.094, 274.295, 1836.091))
vehPlayer:SetRotation(Quaternion(0.014, 0.784, -0.039, 0.619))
end

Бывший Star_Racer
Аватара
Хоть куда можно вставить, хоть в диалог в баре. Просто тригер в примере срабатывает на смерть Оракула, и после этого события тут же переносит в Зармек. Вставляй PassToMap в любой триггер по вкусу.
Аватара
Спасибо! :)
Теперь получилось!

Бывший Star_Racer
Аватара
Всем привет! Делаю мод, но явно переборщил с игровой физикой. Творится что -то невероятное! ИП - шников в Крае стало как тараканов! Они просто кишат! Дальше не ездил - тестирую. А если и врагов будет столько же? Игру просто будет не пройти! Не могу пока разобраться, что сделал не так. Может быть оставить для массовки? Ваше мнение?

Cerrone™
Аватара
это тестировать надо. я(как геймер) не против большого кол-ва караванов искателей, но вот если будет такое-же кол-во бандитов и прочих, то надо исправлять....


http://nick-name.ru/forum4t3/KeeperRus.gif
Аватара

"Cerrone" писал(а):

Делаю мод, но явно переборщил с игровой физикой. Творится что -то невероятное! ИП - шников в Крае стало как тараканов! Они просто кишат!

Это ещё от оригинальной игры, просто не все ИП могут покинуть карту вот и накапливаются. Соответственно если увеличить частоту их спавна то так и до пробок недалеко.

P.S. Эта проблема только в Крае, на остальных нормально будет.
Аватара
Я тут с ними случайно врагами стал - так еле до города доехал! 273 HP осталось.

Cerrone™
Аватара
А был на Урале с кабиной Морион....

Cerrone™
Сообщений: 1744 • Страница 45 из 88 1 ... 42434445464748 ... 88