Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

function car1_spawn (fs, ss)

gen_car_spawn (fs, ss,"vehicle_zaz",vector():set(-208.9,-20.3,-167.8),43917,50,car1_price)

end

Насколько я помню, это из мода "Транспорт от Рулеши". Транспорт там действительно спавнился скриптом. Но чтобы эта функция сработала, нужны все файлы мода. (тема где-то лежала в Мастерской, если не удалили) Проще через all.spawn наспавнить.

Поделиться этим сообщением


Ссылка на сообщение

Big.D, это мод Skunk-а, IMM. Нужно новые костюмы дописать в xrs_armor.script. Вроде бы поэтому.

Hant, в плане заселения или просто тупо скриптом наспавнить?

Поделиться этим сообщением


Ссылка на сообщение

И не получится - Дэн использовал немного другой ACDC, с учётом новой локации. Может у кого и остался. Можно попробовать использовать из темы новых локаций, но он требует Active Perl.

А монстров надо включить в smart_terrain_presets.ltx

Но есть вариант проще - создать псевдогулаг через скрипт (по аналогии AMK, в gamedata\config\scripts\amk\), но без правки all.spawn не обойтись - нужны пути.

В amk_respawns.ltx:

esc_tush1 = true

В escape.ltx:

;тушканы перед насыпью
[esc_tush1]
xyzlg = -114.37,8.63,74.37,140834,81
respawn_section = tushkano_normal
max_count = 4
min_spawn = 3
max_spawn = 4
idle_spawn = 86400
creature_binded_logic = logic\esc_tush1

Где:

xyzlg - координаты

respawn_section - секция нужной живности из папки creatures

max_count - максимальное число живности в "гулаге"

min_spawn - минимальное число живности, которое будет респавниться

idle_spawn - время респавна

creature_binded_logic - ссылка на файл логики (о нём как раз ниже).

 

В папке logic, в esc_tush1.ltx:

[smart_terrains]
none = true

[logic]
active = mob_home

[mob_home]
path_home = esc_tush1
home_min_radius = 5
home_max_radius = 30
aggressive_home
on_signal = sig_attacked | mob_combat

[mob_combat]
on_timer = 30000 | mob_home

Где:

path_home - пути, прописанные в all.spawn (в данном случае, путь имет название [esc_tush1]

min_radius и max_radius - радиус охраняемой зоны (вроде бы)

on_signal = sig_attacked - здесь, в случае, опасности (атаки, проникновения на территорию), переходят в боевое состояние на 30 секунд. И если всё утихло, через это время, вернутся на место, в свой home.

 

Пути в all.spawn, в way_l01_escape.ltx:

[esc_tush1]
points = p0
p0:name = wp00
p0:position = -114.370002746582,8.63000011444092,74.370002746582
p0:game_vertex_id = 81
p0:level_vertex_id = 140834

 

 

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

GraffyM, в файле news_main.script, функции: on_weather_change и on_daytime.

plusquam, так есть же бессмертие у секции stalker_sakharov. А вылет скорее всего, именно из этого. То, что доктор тупит, видимо, не везде прописана новая локация - не во всех скриптах. И ещё, на какой логике "держится" Док?

Изменено пользователем WAWKA

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
логика новая амкшная в папке logic_npc
То есть? Как я понимаю, ему создан псевдогулаг и подключён в amk_respawns.ltx? Опять же, если локация прописана не везде, то вполне возможно, этот вариант не работает.

Через скрипт:

function spawn_npc() 
local obj=alife():create("имя_секции_в_spawn_sections.ltx",vector():set(-244.288,-24.790,-134.595),12816,4)
local params=amk.read_stalker_params(obj)
params.custom="[logic]\ncfg = scripts\\файл_логики.ltx"
params.sid=его_стори_айди
amk.write_stalker_params(params,obj)
end

Либо, через all.spawn, где надо добавить кастом дату (сразу после строки object_flags = *******):

custom_data = <<END
[smart_terrains]
none = true

[logic]
cfg = scripts\файл_логики.ltx
END

Ну и сам файл разместить в gamedata\config\scripts\файл_логики.ltx

В этом случае, 100% гарантия, что не будет тупить. Если, конечно, логика заполнена без ошибок и пути mar_doctor_walk и mar_doctor_look прописаны там, где надо (к слову, не обязательно создавать новый файл way_локация.ltx - можно хоть в way_l01_escape.ltx добавить).

 

Изменено пользователем WAWKA

Поделиться этим сообщением


Ссылка на сообщение
название секции взрывающегося зомби?
zombie_blow, в m_zombie.ltx

Поделиться этим сообщением


Ссылка на сообщение
объясните знающие люди-зачем спавн дублирован в папке левел(левел спавн)?Просто не получается с помощью ал.спавн изменить стартовые координаты ГГ
Ну level.spawn никак не влияет на появление ГГ. К примеру, в NLC, ГГ появляется не в подвале Сидоровича. Для этого, координаты менять необходимо не только в position =, game_vertex_id = и level_vertex_id =, но и в upd:position = (в нём прописать те же координаты, что и в position =).

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

Поделиться этим сообщением


Ссылка на сообщение
WAWKA я уже объяснял -для остальных суть проблемы- прописал координаты старта актера в двух секциях с вертексами

вроде все правильно но актер упорно появляется в бункере(координаты менял в левел префикс актор)

В НЛС, ГГ преспокойно появляется не в бункере Сидора. И единственное отличие от оригинала - это координаты. Да и я сам заспавнил ГГ в другом месте - заспавнился именно там, где я и хотел. Мало того, можно не только место поменять, но и локацию - да хоть у ног о-сознанца заспавнить. Раз не получается, значит ошибка где-то в другом... При компиляции\декомпиляции ошибок не появляется? Или же пользуешься xr_Spawner-ом? Других причин не вижу.

Поделиться этим сообщением


Ссылка на сообщение

В файле user.ltx, имеющуюся строку cam_inert 0.7, заменить на cam_inert 0.

Поделиться этим сообщением


Ссылка на сообщение

Да, она "уникальна" тем, что является, по сути, квестовым предметом, но с параметрами артефакта. Находится в quest_items.ltx и использует параметры оригинальной ночной звезды, без изменений. Её секция называется af_blood_tutorial

Поделиться этим сообщением


Ссылка на сообщение
А по поводу обыска трупов (мой вопрос выше) не подскажешь, где в файлах АМК зашито?
Я там уже давно ковырял, так что не могу точно вспомнить. Но, насколько мне не изменяет память, шмон трупов, находится в watcher_act.script. Там есть возможность добавить в исключения определённых НеПиСей\группировки. Или наоборот, убрать уже существующие.

Поделиться этим сообщением


Ссылка на сообщение

Zeka1996Korneev, уже вижу ошибку в [test_sidor_guard_walk]:

p0:links = p1(1) -- link ставится только в том случае, если в пути несколько точек. Эту строку надо убрать вообще. И добавить строку p0:flags = 0x1, после строки p0:name = name00 (то есть, в данном случае, и walk и look должны иметь одинаковое строение, но само собой, разные координаты):

[test_sidor_guard_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -251.39,-19.31,-124.92
p0:game_vertex_id = 8
p0:level_vertex_id = 9551


[test_sidor_guard_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -243.40,-19.48,-125.75
p0:game_vertex_id = 8
p0:level_vertex_id = 13196

 

А через all.spawn спавнить не сложнее, чем через скрипт. Нужно убрать функцию spawn_guard и вместо неё, добавить:

В alife_l01_escape.ltx, в самом низу добавь секцию:

[777]
; cse_abstract properties
section_name = stalker
name = esc_sidor_guard
position = -251.39,-19.31,-124.92
direction = 0,0,0

; cse_alife_trader_abstract properties
character_profile = Sidr_guard

; cse_alife_object properties
game_vertex_id = 8
distance = 9.80000019073486
level_vertex_id = 9551
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
none = true

[logic]
cfg = scripts\sidr_guard_logic.ltx
END

; cse_visual properties

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions = 
dynamic_in_restrictions = 

upd:health = 1
upd:timestamp = 0x6d6d695f
upd:creature_flags = 0x75
upd:position = -251.39,-19.31,-124.92
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 2,0,2,1,1
predicate4 = 2,2,2,0

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties

Единственное, замени порядковый номер, который в [777] на следующий после номера последней (самой нижней) записи в alife_l01_escape.ltx. Ну то есть, продолжи счёт. В остальном же, всё как и при спавне скриптом - файл логики, профиль в character_desc_*.xml и в npc_profile.xml.

 

Поделиться этим сообщением


Ссылка на сообщение

quest, это, наверное, я выкладывал.

1. Для начала, в gamedata\sounds\characters_voice\scenario\ создать папку, например, esc_mafon.

И в получившуюся директорию: gamedata\sounds\characters_voice\scenario\esc_mafon\ положить музыку с названием day_music_1.ogg, day_music_2.ogg и т.д. (будет играть днём). И в эту же папку добавляем night_music_1.ogg, night_music_2.ogg, ... (будет играть ночью).

2. В файл sound_theme.script (gamedata\scripts\) добавить:

ph_snd_themes["day_music"] = {"characters_voice\\scenario\\esc_mafon\\day_music_1",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_2",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_3",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_4",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_5",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_6",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_7",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_8",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_9",
                                    "characters_voice\\scenario\\esc_mafon\\day_music_10"
                                    }

ph_snd_themes["night_music"] = {"characters_voice\\scenario\\esc_mafon\\night_music_1",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_2",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_3",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_4",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_5",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_6",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_7",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_8",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_9",
                                    "characters_voice\\scenario\\esc_mafon\\night_music_10"
                                    }

Я довёл счёт до 10-ти файлов. Можно продолжить - зависит от того, сколько песен планируется добавить.

3. Распаковать all.spawn и в в файл alife_l01_escape.ltx добавить в конце:

[888]
; cse_abstract properties
section_name = physic_object
name = esc_mafon
position = -212.976898193359,-22.2855587005615,-127.408164978027
direction = 0,2.40000009536743,0

; cse_alife_object properties
game_vertex_id = 59
distance = 0.400000005960464
level_vertex_id = 41277
object_flags = 0xffffff3a
custom_data = <<END
[logic]
cfg = scripts\esc_mafon.ltx
END

; cse_visual properties
visual_name = equipments\mafon

; cse_ph_skeleton properties
skeleton_flags = 1

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10
fixed_bones = link

4. Теперь сама логика. В gamedata\config\scripts\, создать файл esc_mafon.ltx и заполнить:

[logic]
active = ph_sound@day

[ph_sound@day]
snd = day_music
on_info = {!is_day} ph_sound@night

[ph_sound@night]
snd = night_music
on_info = {=is_day} ph_sound@day

Либо:

[logic]
active = ph_sound@day

[ph_sound@day]
snd = day_music
on_signal = sound_end| {!is_day} ph_sound@night

[ph_sound@night]
snd = night_music
on_signal = sound_end| {=is_day} ph_sound@day

В первом варианте, музыка с дневной на ночную, переключится сразу, как наступит ночь.

Во втором варианте, музыка так же переключится с наступлением ночи, но песня не прервётся, а доиграется до конца. Второй вариант, так скажем, по красивее будет.

 

Поделиться этим сообщением


Ссылка на сообщение
НО, нужно будет начинать новую игру...
Вовсе не обязательно. Такие изменения втсупают в силу сразу же, нужно только сохраниться-загрузиться.

И не обязательно прописывать им meet = meet, достаточно просто удалить или закомментировать (знаком ; не путайте с --) строку meet = no_meet

Поделиться этим сообщением


Ссылка на сообщение
Т.е. и подставлять секцию не нужно ?
Не нужно. По-умолчанию, у гулаговых неписей имеется настроенный meet.

Но если хочется специфический, то можно и самому прописать.

Поделиться этим сообщением


Ссылка на сообщение

Технически - достаточно изменить time_factor.

Но нужно учесть и некоторые другие вещи - например, частоту показа новостей, сообщений по сталкерской сети и т.д.

Поделиться этим сообщением


Ссылка на сообщение

Slonyash, у гулага mil_freedom (свободовцев, на базе АС - Лукаша, охранников и прочих) 4 состояния - насколько я понял, правки делал в gulag_mil_freedom1.ltx? Посмотри в распаковке ресурсов игры файлы gulag_mil_freedom2.ltx, gulag_mil_freedom3.ltx и gulag_mil_freedom4.ltx - скорее всего, гулаг перешёл в одно из 4-х других состояний и пользует логику одного из этих файлов.

То, что не смог поговорить с идущими к костру - это нормально - у них meet отключается, когда они собираются играть на гитаре\губной гармошке и что-то ещё...

WAWKA, а у тя в солянке time_factor какой стоит? В 2.2.1.
Такой же, как и в НЛС.

убрал респавн некоторых мобов
А что за мобы? Какое у них коммьюнити? Спавнятся респавнером или скриптом? Или прямиком через all.spawn? Что у них за логика? Или они приписаны к гулагу? Косяк может быть где угодно.

Поделиться этим сообщением


Ссылка на сообщение

d.mazai, неужели так принципиально, что игровые сутки стали длиннее? Как по мне, наоборот, так интереснее.

В news_main.script, в самом верху можно менять частоту показа новостей. Там комменатрии написаны по-русски - экспериментируй.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Чтобы ГГ появился в другом месте, необходимо прописать другие координаты.

1. С помощью эффектов (либо вызвать функцию через диалог, либо прописать в логике, либо поставить рестриктор);

2. Тут тоже несколько вариантов - либо используя схему поведения remark, либо через эффекты (xr_effects.script);

3. Если спавнить через скрипт, то можно опять же вызвать функцию спавна через диалог с неписем, либо использовать рестриктор, если же через all.spawn, то поставить условие появления;

4. Самый простой вариант в данном случае, использовать рестриктор - схему sr_tip, но есть куча других вариаций.

Я дал лишь поверхностный ответ, потому что это уже обсуждалось и далеко не один раз. В архиве имеется старая тема "Ковыряемся в файлах" - там точно можно найти ответы на все эти вопросы. Для каждого из вышеуказанных четырёх случаев, имеется как минимум по два-три варианта решения. Минимум. Какой использовать - зависит от ситуации. Где-то может быть удобней один вариант, где-то другой.

Чтобы получить многие ответы, советую почитать все четыре части "Настройки логики".

Изменено пользователем WAWKA

Поделиться этим сообщением


Ссылка на сообщение

plusquam, у вертолёта в качестве цели может быть только ГГ, либо story_id (неважно чему присвоенное - хоть бинту).

По поводу логики... Она одинакова и для заспавненных через скрипт, и через all.spawn. Просто, если спавнить через скрипт, всю логику можно прописать непосредственно в функции. Если через all.spawn, то так же, можно непосредственно в файле all.spawn, Так же можно (а в некоторых случаях и проще) вынести логику "наружу", в config\scripts\.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...