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

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

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

Перенёс аномалию "Газировка" из ЗП в ТЧ... Всё работает, постопроцесс и партиклы, звук, но! ГГ не дамажит. Делал конфиг по аналогии с "Холодцом":

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

[zone_mine_acidic]
GroupControlSection    = spawn_group_zone
$spawn             = "zones\acid"
$prefetch         = 16
class            = ZS_BUZZ

hit_impulse_scale    = 0.3
effective_radius    = 2.0 ;размер радиуса в процентах от оригинального, где действует зона

ef_anomaly_type        = 1
ef_weapon_type        = 13

sound            = 
postprocess        = postprocess_acidic_mine
artefacts        = 
BirthProbability     = 0.0

;----------- Anomaly settings -----------------------
min_start_power        = 0.99
max_start_power        = 1.00
attenuation        = 1
period            = 1
min_artefact_count    = 0
max_artefact_count    = 0

idle_particles            = zones_mine\zone_acidic_mine_idle
blowout_particles        = zones_mine\zone_acidic_mine_hit

hit_small_particles        = zones_mine\zone_acidic_mine_hit
hit_big_particles        = zones_mine\zone_acidic_mine_hit
idle_small_particles        = zones_mine\zone_acidic_mine_idle
idle_big_particles        = zones_mine\zone_acidic_mine_idle

idle_sound            = anomaly\buzz_idle; bfuzz_blowout    ;постоянный звук
blowout_sound            = anomaly\buzz_hit; bfuzz_hit        ;во время выброса(удара) в центре аномалии
hit_sound            = anomaly\buzz_hit; bfuzz_hit        ;на персонаже, когда тот получает хит
entrance_sound            = anomaly\buzz_hit; bfuzz_hit        ;при попадании объекта в аномалию

hit_type            = chemical_burn

disable_time            = 10000    ;время игнорирования неживого объекта в зоне (-1 если не нужно)
disable_time_small        = -1    ;время игнорирования маленького неживого объекта в зоне (-1 если не нужно)
disable_idle_time        = 50000    ;время отключения idle партиклов

ignore_nonalive            = false
ignore_small            = false
ignore_artefacts        = true

blowout_light            = on
light_color                = 1.1,1.7,1.4
light_animation                 = light_green_01
light_range                = 7
light_time                 = 0.35
light_height            = 0.75            ;подъем источника света на высоту

idle_light            = off
idle_light_range        = 3.0
idle_light_range_delta         = 0.25
idle_light_anim            = light_green_02
idle_light_height        = 0.70            ;подъем источника света на высоту

awaking_time            = 100
blowout_time            = 1400
accamulate_time            = 300

visible_by_detector         = on
blowout_wind            = off

blowout_wind_time_start     = 0
blowout_wind_time_peak      = 600
blowout_wind_time_end        = 899
blowout_wind_power        = 0.5            ;сила поднимаего ветра (от 0 до 1), в момент blowout_wind_time_peak

spawn_blowout_artefacts = off

[zone_mine_acidic_weak]:zone_mine_acidic
$spawn                 = "zones\acid weak"

;----------- Anomaly settings -----------------------
min_start_power        = 0.14
max_start_power        = 0.15
attenuation        = 1
period            = 1

[zone_mine_acidic_average]:zone_mine_acidic
$spawn             = "zones\acid average"

;----------- Anomaly settings -----------------------
min_start_power        = 0.49
max_start_power        = 0.50
attenuation        = 1
period            = 1

[zone_mine_acidic_strong]:zone_mine_acidic
$spawn             = "zones\acid strong"

;----------- Anomaly settings -----------------------
min_start_power        = 0.99
max_start_power        = 1.00
attenuation        = 1
period            = 1

В чём кроется подвох?

Ссылка на комментарий

@Капрал Хикс а почему у тебя газировка на классе ZS_BUZZ - это же жгучий пух, а он баговано в ТЧ работает, "Холодец" же сделан на классе обычной аномалии  типа Трамплин ZS_MBALD, смотри оригинальные конфиги.

  • Полезно 1
Ссылка на комментарий
9 часов назад, CiberZold сказал:

ZS_BUZZ - это же жгучий пух

Да не, у пуха class = ZS_BFUZZ.

У меня холодец работает (корректно) тоже на ZS_BUZZ, чтобы детектор корректно иконку отрисовывал. Пробовал поставить ZS_MBALD, толку никакого.

Изменено пользователем Капрал Хикс
  • Полезно 1
Ссылка на комментарий

@Капрал Хикс фиг знает, от класса трамплина урон точно должен быть, может где накосячил с иммунитетами ГГ или поставил большую защиту на кость к которой приходит урон аномалии, в ТЧ движке хим. урон не так в ЗП работает и не наносит как-такового демеджа, а вызывает кровотёк, а от него уже понижается здоровье, думаю в этом направлении надо копать.

Ссылка на комментарий
12 минут назад, CiberZold сказал:

в ТЧ движке хим. урон не так в ЗП работает и не наносит как-такового демеджа, а вызывает кровотёк, а от него уже понижается здоровье, думаю в этом направлении надо копать.

Я уже всё перепробовал... И класс менял и тип урона и даже сделал подвид обычного "Холодца" с другим постэффектом - 0 дамага...

Ссылка на комментарий
1 час назад, Капрал Хикс сказал:

Я уже всё перепробовал.

поверь ты далеко не всё перепробовал) тут ещё вопрос как ты спавнишь аномалию, какой-там скрипт, когда спавнится аномалия через алл-спавн там указываются её свойства радиус, значение урона в том числе, и там можно поставить 0 и отключить урон от аномалии, смысл в том что аномалия это рестриктор определённого радиуса и формы -сфера, и на ней ест некие шейпы ,которыми аномалия какбэ определяет свои границы, и когда грубо говоря эти шейпы стыкуются с моделькой ГГ или других объектов в игре, движок это регистрирует понимает что-то коснулось аномалии и запускает хит по объекту, так что тут не только конфиги могут быть, но и неправильный спавн аномалии.

Ссылка на комментарий

Какой шейдер подойдёт для динамической модели, дабы она нормально отображалась и одновременно не отбрасывала тень?

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

Ссылка на комментарий
19 часов назад, CiberZold сказал:

но и неправильный спавн аномалии.

Спавнил скриптом, попробовал заспавнить через оллспавн, при попадании в зону ГГ вылет без лога... В acdc.pl:

     zone_acid                    => 'se_zone_anom',
    zone_acid_weak                    => 'se_zone_anom',
    zone_acid_average            => 'se_zone_anom',
    zone_acid_strong                => 'se_zone_anom',

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

; cse_abstract properties
section_name = zone_acid
name = esc_zone_acid_average
position = -245.712,-19.546,-129.017
direction = -0.0288772452622652,-0.181127727031708,-0.0857146307826042

; cse_alife_object properties
game_vertex_id = 8
distance = 5.59999990463257
level_vertex_id = 12082
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.42839860916138

; cse_alife_space_restrictor properties
restrictor_type = 3

; cse_alife_custom_zone properties
max_power = 0.990000009536743

; cse_alife_anomalous_zone properties
offline_interactive_radius = 30
artefact_spawn_count = 32
artefact_position_offset = 0x46c4

; se_zone_anom properties

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

[zone_acid]
GroupControlSection    = spawn_group_zone
$spawn             = "zones\acid"
$prefetch         = 16
class            = Z_MBALD

hit_impulse_scale    = 0.3
effective_radius    = 2.0 ;размер радиуса в процентах от оригинального, где действует зона

ef_anomaly_type        = 1
ef_weapon_type        = 13

sound            = 
postprocess        = postprocess_acidic_mine
artefacts        = 
BirthProbability     = 0.0

;----------- Anomaly settings -----------------------
min_start_power        = 0.99
max_start_power        = 1.00
attenuation        = 1
period            = 1
min_artefact_count    = 0
max_artefact_count    = 0

idle_particles            = zones_mine\zone_acidic_mine_idle
blowout_particles        = zones_mine\zone_acidic_mine_hit

hit_small_particles        = zones_mine\zone_acidic_mine_hit
hit_big_particles        = zones_mine\zone_acidic_mine_hit
idle_small_particles        = zones_mine\zone_acidic_mine_idle
idle_big_particles        = zones_mine\zone_acidic_mine_idle

idle_sound            = anomaly\buzz_idle; bfuzz_blowout    ;постоянный звук
blowout_sound            = anomaly\buzz_hit; bfuzz_hit        ;во время выброса(удара) в центре аномалии
hit_sound            = anomaly\buzz_hit; bfuzz_hit        ;на персонаже, когда тот получает хит
entrance_sound            = anomaly\buzz_hit; bfuzz_hit        ;при попадании объекта в аномалию

hit_type                = burn

disable_time            = 10000    ;время игнорирования неживого объекта в зоне (-1 если не нужно)
disable_time_small        = -1    ;время игнорирования маленького неживого объекта в зоне (-1 если не нужно)
disable_idle_time        = 50000    ;время отключения idle партиклов

ignore_nonalive            = false
ignore_small            = false
ignore_artefacts        = true

blowout_light            = on
light_color                = 1.1,1.7,1.4
light_animation                 = light_green_01
light_range                = 7
light_time                 = 0.35
light_height            = 0.75            ;подъем источника света на высоту

idle_light            = off
idle_light_range        = 3.0
idle_light_range_delta         = 0.25
idle_light_anim            = light_green_02
idle_light_height        = 0.70            ;подъем источника света на высоту

awaking_time            = 100
blowout_time            = 1400
accamulate_time            = 300

visible_by_detector         = on
blowout_wind            = off

blowout_wind_time_start     = 0
blowout_wind_time_peak      = 600
blowout_wind_time_end        = 899
blowout_wind_power        = 0.5            ;сила поднимаего ветра (от 0 до 1), в момент blowout_wind_time_peak

spawn_blowout_artefacts = off

[zone_acid_weak]:zone_acid
$spawn             = "zones\acid weak"

;----------- Anomaly settings -----------------------
min_start_power        = 0.14
max_start_power        = 0.15
attenuation        = 1
period            = 1

[zone_acid_average]:zone_acid
$spawn             = "zones\acid average"

;----------- Anomaly settings -----------------------
min_start_power        = 0.49
max_start_power        = 0.50
attenuation        = 1
period            = 1

[zone_acid_strong]:zone_acid
$spawn             = "zones\acid strong"

;----------- Anomaly settings -----------------------
min_start_power        = 0.99
max_start_power        = 1.00
attenuation        = 1
period            = 1

 

Ссылка на комментарий
36 минут назад, Капрал Хикс сказал:

при попадании в зону ГГ вылет без лога.

ну вот видишь вылет значит что-то явно не так в конструкции аномалии.

 

этот случай мне напомнил ,как на другом сайте у чела была проблема - он сделал монстра нового, и в игре тот агрился на ГГ бил его, но урон не проходил и там все уже, в том числе и лучшие эксперты по Сталкеру вместе с ним ломали голову, начали с ликбеза по хитбоксам и шейпам и дошли уже в конце к общей теории о нанесение и регистрации хитов в игровых движках) но тот чел также говорил ,что "всё уже перепробовал" и потом все сошлись, и в том числе подал идею, ну раз"всё попробовал" то зачем этого монстра делать врагом? пусть будет мирным к ГГ:) похоже и тебе раз "всё попробовал" по твоим словам, придётся отказаться от этой аномалии.

Ссылка на комментарий

@Капрал Хикс, ты пробовал просто перенести параметры газировки (партиклы, тип урона) в копию конфига ТЧшного трамплина?
Может, и в скриптовом способе спавна проблема. Я пользовался таким кодом:

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

----------------------------------------------------------------------------------------------
-- спавн аномалии
----------------------------------------------------------------------------------------------
function get_story_id_not_replay()
local ST
ST = xr_logic.pstor_retrieve(act, "ScriptAnomId", 0)
if type(ST) ~= "number" or ST == nil then
ST = 9000
xr_logic.pstor_store(act, "ScriptAnomId", ST)
end
if type(ST) == "number" or ST ~= nil then
ST = ST + 1
xr_logic.pstor_store(act, "ScriptAnomId", ST)
end
return tonumber(ST)
end

function create_anom(name_anom, posit_anom, lvid_anom, gvid_anom, radius_anom, power_anom)
local obj = alife():create(name_anom, posit_anom, lvid_anom, gvid_anom)

-----------------------write----------------------
local packet = net_packet()
obj:STATE_Write(packet)

-----------------------load-----------------------
-- cse_alife_object
local game_vertex_id = packet:r_u16()
local distance = packet:r_float()
local direct_control = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()

-- cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local box = packet:r_matrix()
end
end

-- cse_alife_space_restrictor
local restrictor_type = packet:r_u8()

-- cse_alife_custom_zone
local max_power = packet:r_float()
local owner_id = packet:r_u32()
local enabled_time = packet:r_u32()
local disabled_time = packet:r_u32()
local start_time_shift = packet:r_u32()

-- cse_alife_anomalous_zone
local offline_interactive_radius = packet:r_float()
local artefact_spawn_count = packet:r_u16()
local artefact_position_offset = packet:r_u32()

-- se_zone_anom
local last_spawn_time_present = packet:r_u8()

if (string.find (name_anom, 'zone_zharka_static') ~= nil
or string.find (name_anom, 'zone_witches_galantine') ~= nil
or string.find (name_anom, 'zone_mosquito_bald') ~= nil
or string.find (name_anom, 'zone_mincer') ~= nil
or string.find (name_anom, 'zone_gravi_zone') ~= nil
or string.find (name_anom, 'zone_buzz') ~= nil )
and packet:r_elapsed() ~= 0 then
abort("left=%d", left)
end

---------------------------save--------------------
-- cse_alife_object
packet:w_begin(game_vertex_id)
packet:w_float(distance)
packet:w_u32(direct_control)
packet:w_u32(level_vertex_id)
object_flags = bit_not(193)
packet:w_u32(object_flags)
packet:w_stringZ(custom_data)
packet:w_u32(get_story_id_not_replay())
packet:w_u32(get_story_id_not_replay())

-- cse_shape
packet:w_u8(1) -- количество фигур
packet:w_u8(0) -- тип фигуры: сфера
packet:w_vec3(vector():set(0, 0, 0))
if radius_anom ~= nil then
packet:w_float(radius_anom)
else
packet:w_float(1.0)
end

-- cse_alife_space_restrictor
packet:w_u8(restrictor_type)

-- cse_alife_custom_zone
if power_anom ~= nil then
packet:w_float(power_anom)
else
packet:w_float(max_power)
end
packet:w_u32(owner_id)
packet:w_u32(enabled_time)
packet:w_u32(disabled_time)
packet:w_u32(start_time_shift)

-- cse_alife_anomalous_zone
packet:w_float(offline_interactive_radius)
packet:w_u16(artefact_spawn_count)
packet:w_u32(artefact_position_offset)

-- se_zone_anom
packet:w_u8(last_spawn_time_present)

------------------------read------------------------
packet:r_seek(0)
obj:STATE_Read (packet, packet:w_tell())

end

 

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

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий
1 час назад, Jekyll сказал:

ты пробовал просто перенести параметры газировки (партиклы, тип урона) в копию конфига ТЧшного трамплина?

Не... Пробовал на основе сильной аномалии "Холодец", заменил только постпроцесс и партиклы - не работает урон...

Ссылка на комментарий

Какой шейдер для динамической модели не будет менять вид её и при этом не будет отбрасываться тень?

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

Ссылка на комментарий

Заменяя старые модели НПС на новые HD  заметил прикол, которого раньше в модах не особо замечал, что некоторые трупы после загрузке сейва превращаются в рюкзаки, думаю с какой стати полез в файл конфига сталкеров и там действительно ПЫСы прописали

corpse_visual         = equipments\item_rukzak.ogf:blink:

отчего это происходит не понятно и виноваты ли HD модели, большинство моделей даже спавненные по скрипту сохраняют свой визуал, а отдельные же пару раз такое встречал - не сохраняют свой визуал и при загрузке откатываются к дефолтному виду то бишь к рюкзаку:)

  • Смешно 1
Ссылка на комментарий
10 часов назад, imcrazyhoudini сказал:

Какой шейдер для динамической модели не будет менять вид её и при этом не будет отбрасываться тень?

Нет такого, уже всякие варианты тестил. Более-менее (с частичной прозрачностью), в ShaderEditor сделать копию шейдера model с такими параметрами:

Priority: 2
Strict sorting: on

  • Спасибо 1
  • Полезно 1
Ссылка на комментарий
5 часов назад, CiberZold сказал:

отчего это происходит не понятно и виноваты ли HD модели, большинство моделей даже спавненные по скрипту сохраняют свой визуал, а отдельные же пару раз такое встречал - не сохраняют свой визуал и при загрузке откатываются к дефолтному виду то бишь к рюкзаку:)

Так запрограммировано. Все трупики через corpse_remove_game_time_interval должны превращаться в corpse_visual.

Ссылка на комментарий

У меня что у сталкеров, что у монстров

corpse_remove_game_time_interval    = 2 ; in hours

Трупы пропадают при релоаде локации(ушёл на другую, вернулся, вышел из игры, зашёл...).

Но... Иногда, крайне редко, вижу рюкзаки... Не задавался вопросом, из-за чего.

Ссылка на комментарий

@abramcumner запрограммировано и задумка была видимо такая, но фишка в том, что похоже что-то багует в этом, может лежать несколько трупов рядом убитых одновременно ,и один сохраняет визуал ,а другой превратился ,уже при следующей загрузке сейва.

 

имхо, вообще не особо нужная фича, сейчас почти в каждом моде есть уборщик трупов, трупы все равно убираются, а не лежат превращённые, а те которые в исключении у уборщика, они не разу не превращались в рюкзаки, всю игру пролежали целыми так сказать:)

Изменено пользователем CiberZold
Ссылка на комментарий

@h0N0r в ShaderEditor нельзя создавать шейдер свой? Или отключить тень имеющемся?

В шейдерах не разбираешься случайно?

Вот есть такой шейдер который под запросы подходит, но под DX9 не подходит, сможешь попробовать адаптировать?

Вылет такой:
 

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

[20.04.24 19:37:26.470] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
...pe for life\gamedata\shaders\r2\models_selflight_det_3.s:7: loop in gettable
stack traceback:
    [C]: in function '__index'
    ...pe for life\gamedata\shaders\r2\models_selflight_det_3.s:7: in function <...pe for life\gamedata\shaders\r2\models_selflight_det_3.s:1>
[20.04.24 19:37:26.470] *********************************************************************************
[20.04.24 19:37:26.470]
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : E:\OGSR-Engine-dev\Perimetr\ogsr_engine\COMMON_AI\script_engine.cpp
[error]Line          : 52
[error]Description   : [CScriptEngine::lua_pcall_failed]: ...pe for life\gamedata\shaders\r2\models_selflight_det_3.s:7: loop in gettable



https://drive.google.com/file/d/1FmPBe5hjte_MBxji1aelycWk7Mk0uJWb/view?usp=sharing
 

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

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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