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

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


Halford

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

@SHIZ 

в чистом чн, val_smart_terrain_9_6 рядом с заводом, где вагончик / плиты (в тч там стояла железная хреновина, где бусы с гитарой лежали).

 

Походу, там уже находятся боты, и если они не участвуют в новых уник. квестах из мода, то их можно удалить, очистив смарт:

В ui_main_menu.script, function main_menu:OnKeyboard(dik, keyboard_action)
...
if dik == DIK_keys.DIK_0 then
	if (level.present() and db.actor ~= nil and db.actor:alive()) then
		xr_effects.clear_smart_terrain(nil,nil,{"val_smart_terrain_9_6"})
	end
end

...

Ещё вариант, добавить в faction_freedom.ltx,

[expansion_3]

precondition_actor_in_faction = true ; так в оригинале, движуха начинается только, если актор стал фрименом

...

Можно поискать в папке \configs\scripts (во всех файлах): val_smart_terrain_9_6

Обычно спавн там так выглядит: =create_squad(какой-то_squad:val_smart_terrain_9_6)

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


Ссылка на сообщение
44 минуты назад, SHIZ сказал(а):

По первому способу: сделал так, как под спойлером, толку ноль. Может вставил не туда?

if keyboard_action == ui_events.WINDOW_KEY_PRESSED then

	-- очевидно, что вставить сюда (ведь ниже есть похожие вызовы)

	if dik == DIK_keys.DIK_ESCAPE then

А ещё можно добавить доп.пути для этого смарта, снять координаты в нужных местах, разобрать/собрать all.spawn через ацдц (после правки путей, новая игра не нужна, НО не всегда это работает).

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


Ссылка на сообщение
7 минут назад, SHIZ сказал(а):

@h0N0r Результат тот же. Спасибо за желание помочь.

Так, прояснить архиважный момент: ты клавишу 0 в глав.меню нажимаешь после загрузки сейва или запустил игру, нажал, а дальше загружаешь сейв? Надо первое, ибо вся эта байда работает только при активной игре.

  • Спасибо 1

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


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

Точнее не самим звуком, добавляя / удаляя секции звуков в script_sound_карта.ltx нужна новая игра. Так сделано в xr_sound.script (actor_save / actor_load), что список звук.тем сохраняется в сейв и потом читается (а нужно динамически). Поэтому, после патчей для модов чн/зп с такими правками, всегда нужна новая игра.

  • Полезно 1

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


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

@imcrazyhoudini 

https://disk.yandex.ru/d/Ms2yDm9kpshwVw

Миникарта для теста шейдеров террейна. Может у тебя в них проблема, или в компиляторе, или как с теми лампами на болотах.

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


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

@imcrazyhoudini 

Проще взять часть логики из оригинала, да адаптировать:

в yan_space_restrictor_start_surge.ltx каждый час происходит выброс, выдача флага +start_surge, который проверяется в yan_spawn_zombied_to_sci_base_checker.ltx, там же спавн зомби и сброс флага -start_surge.

 

18.02.2023 в 12:32, ZeeK сказал:

В ЧН в некоторых моментах логика отрядов не объяснима: я поменял порядок захвата точек на Болотах и ЧН перестало атаковать Церковь пока не захватит все остальное.

Давно делал, чтобы ЧН перед мех.двором, захватили все ключевые точки:

Скрытый текст

faction_csky.ltx

Скрытый текст

;####################################################################
; Количество дополнительных отрядов, в зависимости от числа захваченных территориальных точек.
;####################################################################
[settings]
glory_0 = 0
glory_1 = 1
glory_2 = 2
glory_3 = 3
glory_4 = 4
glory_5 = 5


;####################################################################
; Какие профили спавнить в зависимости от уровня ресурсов группировки, с вероятностью в % (общее должно быть = 100)
;####################################################################
[spawn_by_resource]
0 = sim_default_csky_0, 50, sim_default_csky_1, 50
1 = sim_default_csky_1, 60, sim_default_csky_2, 40
2 = sim_default_csky_2, 60, sim_default_csky_3, 40
3 = sim_default_csky_3, 60, sim_default_csky_4, 40


;####################################################################
; Какие профили спавнить в зависимости от уровня, с вероятностью в % (общее должно быть = 100)
;####################################################################
[spawn_by_level]
marsh        = sim_default_csky_0, 40, sim_default_csky_1, 30, sim_default_csky_2, 15, sim_default_csky_3, 10, sim_default_csky_4, 5
escape        = sim_default_csky_0, 40, sim_default_csky_1, 30, sim_default_csky_2, 15, sim_default_csky_3, 10, sim_default_csky_4, 5
garbage        = sim_default_csky_0, 30, sim_default_csky_1, 40, sim_default_csky_2, 15, sim_default_csky_3, 10, sim_default_csky_4, 5
darkvalley    = sim_default_csky_0, 20, sim_default_csky_1, 30, sim_default_csky_2, 30, sim_default_csky_3, 10, sim_default_csky_4, 10
agroprom    = sim_default_csky_0, 10, sim_default_csky_1, 20, sim_default_csky_2, 40, sim_default_csky_3, 20, sim_default_csky_4, 10
yantar        = sim_default_csky_0, 10, sim_default_csky_1, 15, sim_default_csky_2, 30, sim_default_csky_3, 45, sim_default_csky_4, 20
red_forest    = sim_default_csky_0,  5, sim_default_csky_1, 10, sim_default_csky_2, 15, sim_default_csky_3, 30, sim_default_csky_4, 40
military    = sim_default_csky_0,  5, sim_default_csky_1, 10, sim_default_csky_2, 15, sim_default_csky_3, 30, sim_default_csky_4, 40


;####################################################################
; Накопить сил (уничтожая и захватывая вражеские смарты, автовыдача заданий при приближении к ним, расстояние регулируется в sim_faction_brain_human.script, TASK_DISTANCE)
; При precondition_power = 0.50 достаточно 2-3 смартов
;####################################################################
[expansion_0]
base_squad_number        = 15
respawn_idle_time        = 120

 

war_stage_icon            = st_stage_icon_csky_power_no
war_stage_icon_complete        = st_stage_icon_csky_power_yes
war_stage_icon_hint        = st_stage_icon_csky_power_no
war_stage_icon_hint_complete    = st_stage_icon_csky_power_yes

war_target_title        = st_faction_war_csky_need_more_power
level_up_snd            = mar_csky_expansion_0_up

 

; Условия перехода
precondition_cond        = {=smart_captured_by_faction(mar_smart_terrain_8_11:csky) =smart_captured_by_faction(mar_smart_terrain_5_8:csky) =smart_captured_by_faction(mar_smart_terrain_8_8:csky) =smart_captured_by_faction(mar_smart_terrain_3_3:csky) =smart_captured_by_faction(mar_smart_terrain_4_5:csky) =smart_captured_by_faction(mar_smart_terrain_7_3:csky)} true, false

precondition_target_optional    = mar_smart_terrain_8_11, mar_smart_terrain_5_8, mar_smart_terrain_8_8, mar_smart_terrain_3_3, mar_smart_terrain_4_5, mar_smart_terrain_7_3
precondition_target_order    = free ;В какой последовательности захватывать цели. В свободной(free) или в порядке перечисления(order).

 

; отключено, т.к. переход в след. фазу только при захвате указ.смартов выше
;precondition_power        = 0.50 ;Прекондишн левелапа группировки. Задается относительно силы противников. При левелапе берется следущая секция.


;####################################################################
; Захватить Механизаторский двор (База Ренегатов)
;####################################################################
[expansion_1]
base_squad_number        = 20
respawn_idle_time        = 120

 

war_stage_icon            = st_stage_icon_csky_capture_base_no
war_stage_icon_complete        = st_stage_icon_csky_capture_base_yes
war_stage_icon_hint        = st_stage_icon_csky_capture_base_no
war_stage_icon_hint_complete    = st_stage_icon_csky_capture_base_yes

war_target_title        = st_faction_war_csky_capture_enemy_base
level_up_snd            = mar_csky_expansion_1_up
level_down_snd            = mar_csky_expansion_1_down

 

; Условия перехода
precondition_cond        = {=smart_captured_by_faction(mar_smart_terrain_10_5:csky) =smart_captured_by_faction(mar_smart_terrain_12_2:csky)} true, false
precondition_target        = mar_smart_terrain_10_5
precondition_target_optional    = mar_smart_terrain_12_2


;####################################################################
; Захватить Южный / Северный хутор, Стоянка под насыпью
;####################################################################
[expansion_2]
base_squad_number        = 20
respawn_idle_time        = 120

 

war_stage_icon            = st_stage_icon_csky_secure_marsh_no
war_stage_icon_complete        = st_stage_icon_csky_secure_marsh_yes
war_stage_icon_hint        = st_stage_icon_csky_secure_marsh_no
war_stage_icon_hint_complete    = st_stage_icon_csky_secure_marsh_yes

war_target_title        = st_faction_war_csky_secure_level ; Спецэффекты перехода на текущую стадию с более низкой
level_up_snd            = mar_csky_expansion_2_up ; Спецэффекты перехода на предыдущую стадию
level_down_snd            = mar_csky_expansion_2_down

 

; Условия перехода
precondition_cond        = {=smart_captured_by_faction(mar_smart_terrain_7_3:csky) =smart_captured_by_faction(mar_smart_terrain_11_11:csky) =smart_captured_by_faction(mar_smart_terrain_12_2:csky)} true, false
precondition_target        = mar_smart_terrain_11_11 ;Цели, захват которых переводит на след уровень.


;####################################################################
; Нет активных целей
;####################################################################
[expansion_3]
base_squad_number        = 20

war_target_title        = st_faction_war_csky_relax
level_down_snd            = mar_csky_expansion_3_down


;####################################################################
; Дополнительные цели, выдаются игроку при приближении к ним, расстояние регулируется в sim_faction_brain_human.script, TASK_DISTANCE. Если отряд направляется в данный смарт (не зависит есть у игрока задание на данный смарт или нет), то тип задания будет "Захватить", иначе "Уничтожить".
;####################################################################
; Отключено, т.к. в 1-й фазе войны нужно захватить большинство смартов
;[secondary_targets]
; Лодочная станция
;mar_smart_terrain_3_3 = {=smart_captured_by_faction(mar_smart_terrain_3_3:renegade)} true, false
; Руины деревни
;mar_smart_terrain_4_5 = {=smart_captured_by_faction(mar_smart_terrain_4_5:renegade)} true, false
; Стоянка под насыпью
;mar_smart_terrain_7_3 = {=smart_captured_by_faction(mar_smart_terrain_7_3:renegade)} true, false
; Северный хутор
;mar_smart_terrain_12_2 = {=smart_captured_by_faction(mar_smart_terrain_12_2:renegade)} true, false


;####################################################################
; Стартовое расположения отрядов группировки на момент начала игры.
;####################################################################
[start_position]
; Три сквада на Рыбацком хуторе
mar_csky_general_weak = mar_smart_terrain_5_12, mar_smart_terrain_5_12, mar_smart_terrain_5_12
; Три на базе ЧН
mar_csky_base_1 = mar_smart_terrain_csky_base, mar_smart_terrain_csky_base, mar_smart_terrain_csky_base
; Один в Лиманске
lim_csky_storm_troops = lim_smart_terrain_1
 

 

faction_renegade.ltx

Скрытый текст

[expansion_0]
base_squad_number        = 10
respawn_idle_time        = 120
respawn_hours            = 6,7

 

; Условия перехода
precondition_power        = 1
precondition_target        = mar_smart_terrain_10_5

 

[start_position]

; сквады на основе mar_renegade_generic с явным target_smart
mar_renegade_sm_3_3 = mar_smart_terrain_3_3
mar_renegade_sm_4_5 = mar_smart_terrain_4_5
mar_renegade_sm_5_8 = mar_smart_terrain_5_8
mar_renegade_sm_6_11 = mar_smart_terrain_6_11
mar_renegade_sm_7_3 = mar_smart_terrain_7_3
mar_renegade_sm_8_8 = mar_smart_terrain_8_8
mar_renegade_sm_8_11 = mar_smart_terrain_8_11
mar_renegade_sm_10_5 = mar_smart_terrain_10_5, mar_smart_terrain_10_5, mar_smart_terrain_10_5
mar_renegade_sm_11_11 = mar_smart_terrain_11_11
mar_renegade_sm_12_2 = mar_smart_terrain_12_2

;
red_bandit_compass_groop_1 = red_smart_terrain_3_2
red_bandit_compass_groop_2 = red_smart_terrain_3_2

 

И в смартах, где есть респ ренегатов, добавить: respawn_sector = {!spawn_smart_captured_by_faction(csky)} renegade, чтобы после победы, они больше на болотах не появлялись.

 

  • Полезно 1

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


Ссылка на сообщение
1 час назад, imcrazyhoudini сказал:

Подскажите, как сфотографировать локацию сверху без теней?

Если снимать на р1, то очистить альфаканал лайтмапы террейна; на р2 и выше, то сперва выключить солнце: r2_sun off. Можно поиграть значениями r2_sun_lumscale_amb / _hemi, чтобы посветлее было или обработать в фш (HDR Toning).

 

  • Спасибо 1

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


Ссылка на сообщение
16 часов назад, imcrazyhoudini сказал:

Может кто правил стейтменеджер?

не было нужды, когда и так работает: пример переноса под ТЧ на основе probe_stand из ЗП:

    probe_stand = { prop = { maxidle = 5, sumidle = 10, rnd = 100 }, -- пауза между анимками в rnd, в ней играет idle
                    into = { [0] = {"metering_0_draw_0", {a="kruglov_flash"}, "metering_0_draw_1"} },
                    out  = { [0] = {"metering_0_hide_0", {d="kruglov_flash"}, "metering_0_hide_1"} },
                    idle = { [0] = "metering_0_idle_0" },
                    rnd  = { [0] = { "metering_0_idle_11", "metering_0_idle_12"} } },

[walker@ai2_zamer]
path_walk = ai2_zamer_walk
path_look = ai2_zamer_look
meet = no_meet
on_info = {=dist_to_actor_le(2)} walker@ai2_zamer_go
on_info2 = {!npc_has_item(kruglov_flash)} %=give_item(kruglov_flash)%

 

[walker@ai2_zamer_go]
path_walk = ai2_zamer_work_walk
path_look = ai2_zamer_work_look
meet = no_meet
def_state_standing = probe_stand
on_timer = 20000 | walker@ai2_zamer ; 20 сек стоит замеряет

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


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

@imcrazyhoudini 

никаких чудес, просто делай блок анимаций по примерам оригинала: binocular, probe_crouch, и ещё масса других.

 

то, что выше кидал, но без рандомных анимок, достал детектор и держит в руках в течении on_timer в секции логики:

    probe_stand = { prop = { maxidle = 1, sumidle = 1, rnd = 0 },
                    into = { [0] = {"metering_0_draw_0", {a="kruglov_flash"}, "metering_0_draw_1"} },
                    out  = { [0] = {"metering_0_hide_0", {d="kruglov_flash"}, "metering_0_hide_1"} },
                    idle = { [0] = "metering_0_idle_0" },
                    rnd  = nil },

 

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


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

@imcrazyhoudini 

Проверил анимки с детектором/пда на чистом ЧН, всё работает. И через def_state_standing в логике, и через пути. Новые предметы для аттача нужно добавить в attachable_items (m_stalker.ltx) и attach_items (state_mgr_animation.script).

 

А где сталкер на стуле, работает только так:

    sit_stul = { prop = { maxidle = 1, sumidle = 1, rnd = 100 },
                      into = { [0] = "lead_0_sit_down_0" },
                      out  = { [0] = "lead_0_stand_up_0" },
                      idle = { [0] = "lead_0_idle_0" },
                      rnd  = { [0] = {"lead_0_idle_0"} } },

в state_lib.script
	sit_stul = {		weapon = "strapped",
				movement = move.stand,
				mental = anim.free,
				bodystate = move.standing,
				animstate = "stand",
				animation = "sit_stul"
			},

 

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


Ссылка на сообщение
4 часа назад, imcrazyhoudini сказал:

туторов про апгрейды в инете нет

Есть Upgrades Editor

https://ap-pro.ru/forums/topic/3028-gunslingers-tools/

Как советует автор, заходишь на https://github.com/gunslingermod , выкачиваешь репо compiled_toolz и upgrades_editor (документация).

 

Там не сложно, но есть недоработки:
нет возможности сразу указать scheme_index, после экспорта придётся править, и также не разбивает на <column> (в inventory_upgrade.xml) согласно схеме, фигачит всё в одну.


Отдельно прога + пример схемы для комбеза:

https://drive.google.com/file/d/1_6KSd2KzpTOejuUP7iw9FjA0nEKDSR-h/view?usp=share_link

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


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

@imcrazyhoudini 

На кровососе работает, но в ЧН он сделан так, что его нужно заменить кодом из ЗП, чтобы не делать такое:

[logic]
active = mob_walker@m1

[mob_walker@m1]
path_walk = mil_mob_walk1
path_look = mil_mob_look1
; combat_ignore_cond = true ; для ЧН-кровососа не работает
friendly = true ; аналог combat_ignore
state = vis ; не переводит в видимое состояние, но без этой строки не будет переключение в след.схему
on_info = {=dist_to_actor_le(20)} mob_jump@go

[mob_jump@go]
path_jump = mil_mob_jump_1
ph_jump_factor = 0.6 ; прыгнет в небо аки Нео
offset = 0,0,0
on_signal = jumped | mob_walker@m2

[mob_walker@m2]
path_walk = mil_mob_walk2
path_look = mil_mob_look2
friendly = true
state = vis

 

  • Спасибо 1

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


Ссылка на сообщение
22 часа назад, imcrazyhoudini сказал:

Есть вариант сделать действительно видимым?

Берёшь исходники ЗП, что касается bloodsucker адаптируешь под ЧН.

 

У монстров есть mob_remark, примеры ищи по имени схемы в папках configs/scripts.

  • Спасибо 1

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


Ссылка на сообщение
16 часов назад, imcrazyhoudini сказал:

Есть варианты?

Забить или экспериментировать. Например, в ТЧ, вместо анимки stand_threaten_0 играется sit_eat_0 для кровососа в ремарке, но удалив в его конфиге строку berserk_always = true, оно работает нормально. Даже его вампирский поцелуй на чистом ТЧ иногда срабатывает, но что-то мешает ему продолжать анимации, и он просто убегает от игрока.

 

Или проиграть нужную анимку функцией (add_animation), да и звук (play_no_feedback), через bind_monster для уник.секции или по стори_ид.

 

Звуки добавлять в mob_sound.script, там просто. К примеру, Сидорович тоже mob, и его реплики там же.

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


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

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