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

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


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

48 minutes ago, bitreceter said:

hit_probability_gd_novice = 0.30
hit_probability_gd_stalker = 0.35
hit_probability_gd_veteran = 0.45
hit_probability_gd_master = 0.55

Это снова таки от уровня сложности игры, а не от ранга ГГ

2 часа назад, bitreceter сказал:

В каком то туторе читал что достаточно прописать в конфиг оружия строки

Сделал поиск "hit_probability_gd_novice" в исходниках 1.0007rc1 - нет такого. Значит движок такое из конфигов не читает и не использует.

@AndreySol, читает. Там имя параметра динамически генерируется.

Цитата

    // hit probability
    strconcat                        (sizeof(tmp),tmp,"hit_probability_",diff_name);
    m_hit_probability                = pSettings->r_float(*cNameSect(),tmp);

 

  • Полезно 2

Доброго времени суток, в модострое я сравнительно недавно прошу не кидаться кирпичами, возникли такие вопросы по ТЧ.

1. Как реализовать потребность в еде ГГ? Я правильно понимаю что достаточно изменить параметр:

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

satiety_v = 0.000015

Это вроде понятно.

2. Как реализовать потребность в воде для ГГ? Делать какие либо аналогии с потребностью в еде, или сделать через скрипт вызов "жажды" каждые "рандом" время и отнимать выносливость? Думаю это "не торт". Может есть примеры реализации?

3. Как реализовать потребность во сне для ГГ, нашел такие строки:

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

satiety_v_sleep                = 0.00001
radiation_v_sleep            = 0.0003
satiety_power_v_sleep        = 0.0001
satiety_health_v_sleep        = 0.00001
radiation_health_v_sleep    = 0.001

Не могу понять за что именно отвечают данные строки, вроде как воздействие бега, здоровья, сытости и радиации на сон. Что если потребность во сне уже в есть в ТЧ, просто она не активна? 

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

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

hit_probability_gd_novice

Спокойно себе прописано в actor.ltx. Даже судя по тому - где и вместе с чем прописано..

Например там дописано еще -     hit_sounds   = actor_hit_snds

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

То есть, как уже указывалось выше, все эти дела влияют на выживаемость актора, а никак на его суперметкость на мастере..

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

15 часов назад, Charsi сказал:

читает. Там имя параметра динамически генерируется.

Спасибо, буду знать:508:.

Но, относительно сути изначального вопроса - это, опять-же, относится к выбранной при начале НИ сложности, а не к рангу ГГ ?

 

Изменено пользователем AndreySol
9 часов назад, AndrewMor сказал:

ранг Мастер.

Ага... пока воздержусь от погадалок. Попробую на выходных порыться в исходниках и понять, что завязано на ранг ГГ\НПСа.

Есть рюкзак тайник сделанный по тутору из: http://stalkerin.gameru.net/wiki/index.php?title=Пустой_рюкзак_для_создания_своего_тайника

Как забрать рюкзак назад в инвентарь, если тайник нам больше не нужен? Поставил все как надо.

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

function actor_binder:take_item_from_box(box, item)
    local story_id = box:story_id()
    if story_id == nil then
        return
    end

    treasure_manager.take_item_from_box(box, story_id)
--[[    
    local respawner = se_respawn.get_respawner_by_parent(story_id)
    if respawner == nil then
        return
    end
    
    --' Необходимо уменьшить счетчик в респавнере
    respawner:remove_spawned(item:id())

    local smart_terrain = db.strn_by_respawn[respawner:name()]
    if smart_terrain == nil then
        return
    end

    local npc = smart_terrain.gulag:get_nearest_online_obj(db.actor:position())
    if npc ~= nil then
        xr_sound.set_sound_play(npc, "reac_box")
        xr_gulag.setGulagEnemy(smart_terrain:name() , db.actor)        
    end
]]
end

if box:section() == "active_ruck" and box:is_inv_box_empty() then
   level.start_stop_menu(level.main_input_receiver(), true)   -- закрываем окно "обыскивания тайника"
   level.map_remove_object_spot(box:id(), "red_location")    -- убираем с тайника метку
   alife():release(alife():object(box:id()), true)    -- удаляем тайник
   alife():create("item_rukzak", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

Теперь если использовать рюкзак то он исчезает из инвентаря, его нет под ногами. Куда исчезает нычка?

Или есть косяк в:

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

if box:section() == "active_ruck" and box:is_inv_box_empty() then
   level.start_stop_menu(level.main_input_receiver(), true)   -- закрываем окно "обыскивания тайника"
   level.map_remove_object_spot(box:id(), "red_location")    -- убираем с тайника метку
   alife():release(alife():object(box:id()), true)    -- удаляем тайник
   alife():create("item_rukzak", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

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

Вот секция в device.

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

[item_rukzak]:identity_immunities
GroupControlSection = spawn_group 
discovery_dependency = 
$spawn = "food and drugs\antirad"
$prefetch = 32
class = II_ANTIR
cform = skeleton
visual = equipments\item_rukzak
description = enc_equipment_rukzak_descr

inv_weight = 0.3
inv_name = enc_equipment_rukzak
inv_name_short = enc_equipment_rukzak

inv_grid_width    = 2
inv_grid_height    = 2
inv_grid_x    = 14
inv_grid_y    = 29
cost = 500

eatable item
eat_health = 0
eat_satiety = 0
eat_power = 0
eat_radiation = 0
eat_alcohol = 0
wounds_heal_perc = 0
eat_portions_num = 1

food item
animation_slot = 4

hud item
hud = wpn_vodka_hud

 

[active_ruck]:inventory_box 
visual = equipments\item_rukzak
custom_data = scripts\treasure_inventory_box.ltx
radius = 1

В чем собственно может быть проблема? Ведь все точно по тутору.

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

@bitreceter, в конце функции ещё один end не поставил

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Может, меня клинит, но у @bitreceter в указанной функции не будет читаться нужный код, т.к. он вписан вне функции. Или я что-то упустил?

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

function actor_binder:take_item_from_box(box, item)
    local story_id = box:story_id()
    if story_id == nil then
        return
    end

    treasure_manager.take_item_from_box(box, story_id)
--[[    
    local respawner = se_respawn.get_respawner_by_parent(story_id)
    if respawner == nil then
        return
    end
    
    --' Необходимо уменьшить счетчик в респавнере
    respawner:remove_spawned(item:id())

    local smart_terrain = db.strn_by_respawn[respawner:name()]
    if smart_terrain == nil then
        return
    end

    local npc = smart_terrain.gulag:get_nearest_online_obj(db.actor:position())
    if npc ~= nil then
        xr_sound.set_sound_play(npc, "reac_box")
        xr_gulag.setGulagEnemy(smart_terrain:name() , db.actor)        
    end
]]

end

if box:section() == "active_ruck" and box:is_inv_box_empty() then
   level.start_stop_menu(level.main_input_receiver(), true)   -- закрываем окно "обыскивания тайника"
   level.map_remove_object_spot(box:id(), "red_location")    -- убираем с тайника метку
   alife():release(alife():object(box:id()), true)    -- удаляем тайник
   alife():create("item_rukzak", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

 

  • Согласен 1

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

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

Всем привет Господа.

Подскажите, как поставить метку на карте, и можно ли это сделать по координатам с помощью Position Informer 

(Ну тайники по координатам с нее (утилитки) работают так что думаю тут тоже может быть.)

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

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

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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BINOCULARS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[wpn_binoc]:identity_immunities
GroupControlSection                = spawn_group
discovery_dependency                = 
$spawn                        = "weapons\binocular"
$npc                        = on
$prefetch                     = 8
scheduled                    = off
cform                        = skeleton
class                        = WP_BINOC
hud                        = wpn_binoc_hud

ef_main_weapon_type                = 5
ef_weapon_type                    = 0


flame_particles                       = weapons\generic_weapon05
smoke_particles                       = weapons\generic_shoot_00

fire_point                           = 0.0, 0.133, 0.161
shell_point                     = 0.0, 0.133, 0.047
shell_particles                     = weapons\generic_shells

position                    = -0.08 , -0.05 , 0.05 
normal                        = 0, 1, 0
direction                    = 0, 0, 1
orientation                    = 0 , -90, 70

attach_angle_offset                = 3.080506,-1.493053,-1.202040 
attach_position_offset                = 0.080000,0.021273,0.100000
attach_bone_name                = bip01_r_hand
auto_attach                    = false

visual                        = weapons\binoculars\wpn_binoculars.ogf
description                    = enc_equipment_devic_binocul1
hand_dependence                     = 1
single_handed                    = 0

slot                          = 4
animation_slot                    = 13

ammo_limit                     = 0
ammo_current                     = 0
ammo_elapsed                     = 0

ammo_mag_size                     = 0
ammo_class                     = ammo_9x19_fmj

inv_name                     = binocular
inv_name_short                    = binocular
inv_weight                     = 1.0

show_ammo                    = false

inv_grid_width                    = 2
inv_grid_height                    = 1
inv_grid_x                    = 16
inv_grid_y                    = 8

min_radius                    = 100
max_radius                    = 150

cost                        = 200

cam_relax_speed                    = 5.5
cam_dispersion                    = 2
cam_max_angle                    = 5
cam_max_angle_horz                = 5.0
cam_step_angle_horz                = 0.5

disp_vel_factor                    = 0.1
disp_crouch_factor                = 0.75
disp_jump_factor                = 3

ph_mass                        = 1

scope_status                    = 1
silencer_status                    = 0
grenade_launcher_status                = 0

zoom_enabled                    = true
scope_texture                    = wpn\wpn_crosshair_bino
scope_zoom_factor                = 7.5


fire_dispersion_base                = 0.1

cam_relax_speed                     = 1.5    
cam_dispersion                      = 1.5    
cam_max_angle                    = 7        
cam_max_angle_horz                = 10.0    
cam_step_angle_horz                = 1.5    

fire_dispersion_condition_factor         = 5
misfire_probability                 = 0.0001
condition_shot_dec                 = 0.00003

hit_power                            = 1
hit_impulse                      = 1
hit_type                    = fire_wound    

fire_distance                        = 1
bullet_speed                      = 1        
rpm                                  = 1

light_color                     = 0.6,0.5,0.3
light_range                     = 3.0
light_var_color                     = 0.05
light_var_range                     = 0.5
light_time                      = 0.2

snd_draw                    = weapons\generic_draw
snd_holster                    = weapons\generic_holster
snd_gyro                    = weapons\binoculars_gyro
snd_zoomin                    = weapons\binoculars_zoomin
snd_zoomout                    = weapons\binoculars_zoomout
snd_shoot                    = weapons\walther_p99_shoot
snd_empty                    = weapons\pistol_empty
snd_reload                    = weapons\pm_reload, 0.8
snd_close                    = weapons\generic_close

vision_present                    = true
vis_frame_speed                    = 4    
vis_frame_color                    = 0.7,0.7,0.7,1.0
found_snd                    = detectors\DA-2_beep1


[wpn_binoc_hud]

shell_point                    = 0.0, 0.0, 0.0

fire_point                          = 0.05, 0.0, 0.1
fire_bone                           = wpn_body

position                    = -0.0085,-0.2,0.2
orientation                    = 5.85,5.45,-0.95

visual                              = weapons\binoculars\wpn_binoculars_hud.ogf

zoom_offset                    = 0.0,0.022,-0.05
zoom_rotate_x                    = 0
zoom_rotate_y                    = 0

anim_idle                    = idle
anim_reload                    = idle
anim_draw                    = draw
anim_holster                    = holster
anim_shoot                    = aim
anim_idle_aim                    = aim
anim_idle_sprint                = sprint

collide_hud                     = false

Это лечится?

3 часа назад, bitreceter сказал:

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

  Показать

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BINOCULARS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[wpn_binoc]:identity_immunities
GroupControlSection                = spawn_group
discovery_dependency                = 
$spawn                        = "weapons\binocular"
$npc                        = on
$prefetch                     = 8
scheduled                    = off
cform                        = skeleton
class                        = WP_BINOC
hud                        = wpn_binoc_hud

ef_main_weapon_type                = 5
ef_weapon_type                    = 0


flame_particles                       = weapons\generic_weapon05
smoke_particles                       = weapons\generic_shoot_00

fire_point                           = 0.0, 0.133, 0.161
shell_point                     = 0.0, 0.133, 0.047
shell_particles                     = weapons\generic_shells

position                    = -0.08 , -0.05 , 0.05 
normal                        = 0, 1, 0
direction                    = 0, 0, 1
orientation                    = 0 , -90, 70

attach_angle_offset                = 3.080506,-1.493053,-1.202040 
attach_position_offset                = 0.080000,0.021273,0.100000
attach_bone_name                = bip01_r_hand
auto_attach                    = false

visual                        = weapons\binoculars\wpn_binoculars.ogf
description                    = enc_equipment_devic_binocul1
hand_dependence                     = 1
single_handed                    = 0

slot                          = 4
animation_slot                    = 13

ammo_limit                     = 0
ammo_current                     = 0
ammo_elapsed                     = 0

ammo_mag_size                     = 0
ammo_class                     = ammo_9x19_fmj

inv_name                     = binocular
inv_name_short                    = binocular
inv_weight                     = 1.0

show_ammo                    = false

inv_grid_width                    = 2
inv_grid_height                    = 1
inv_grid_x                    = 16
inv_grid_y                    = 8

min_radius                    = 100
max_radius                    = 150

cost                        = 200

cam_relax_speed                    = 5.5
cam_dispersion                    = 2
cam_max_angle                    = 5
cam_max_angle_horz                = 5.0
cam_step_angle_horz                = 0.5

disp_vel_factor                    = 0.1
disp_crouch_factor                = 0.75
disp_jump_factor                = 3

ph_mass                        = 1

scope_status                    = 1
silencer_status                    = 0
grenade_launcher_status                = 0

zoom_enabled                    = true
scope_texture                    = wpn\wpn_crosshair_bino
scope_zoom_factor                = 7.5


fire_dispersion_base                = 0.1

cam_relax_speed                     = 1.5    
cam_dispersion                      = 1.5    
cam_max_angle                    = 7        
cam_max_angle_horz                = 10.0    
cam_step_angle_horz                = 1.5    

fire_dispersion_condition_factor         = 5
misfire_probability                 = 0.0001
condition_shot_dec                 = 0.00003

hit_power                            = 1
hit_impulse                      = 1
hit_type                    = fire_wound    

fire_distance                        = 1
bullet_speed                      = 1        
rpm                                  = 1

light_color                     = 0.6,0.5,0.3
light_range                     = 3.0
light_var_color                     = 0.05
light_var_range                     = 0.5
light_time                      = 0.2

snd_draw                    = weapons\generic_draw
snd_holster                    = weapons\generic_holster
snd_gyro                    = weapons\binoculars_gyro
snd_zoomin                    = weapons\binoculars_zoomin
snd_zoomout                    = weapons\binoculars_zoomout
snd_shoot                    = weapons\walther_p99_shoot
snd_empty                    = weapons\pistol_empty
snd_reload                    = weapons\pm_reload, 0.8
snd_close                    = weapons\generic_close

vision_present                    = true
vis_frame_speed                    = 4    
vis_frame_color                    = 0.7,0.7,0.7,1.0
found_snd                    = detectors\DA-2_beep1


[wpn_binoc_hud]

shell_point                    = 0.0, 0.0, 0.0

fire_point                          = 0.05, 0.0, 0.1
fire_bone                           = wpn_body

position                    = -0.0085,-0.2,0.2
orientation                    = 5.85,5.45,-0.95

visual                              = weapons\binoculars\wpn_binoculars_hud.ogf

zoom_offset                    = 0.0,0.022,-0.05
zoom_rotate_x                    = 0
zoom_rotate_y                    = 0

anim_idle                    = idle
anim_reload                    = idle
anim_draw                    = draw
anim_holster                    = holster
anim_shoot                    = aim
anim_idle_aim                    = aim
anim_idle_sprint                = sprint

collide_hud                     = false

Это лечится?

Причина была в движковой правке.

 

Вопрос по ТЧ, в каких файлах хранятся личные записи ГГ? Нашел только файлы описания квестов и энциклопедию.

3 часа назад, bitreceter сказал:

в каких файлах хранятся личные записи ГГ?

Имеются ввиду личные заметки, из раздела "Дневник"? Тогда посмотри файлы типа stable_storyline_info_???.xml

  • Спасибо 1

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

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

17 часов назад, EggIeRar(V.N.S.L) сказал:

как поставить метку на карте

level.map_add_object_spot(id, 'spot_name', 'hint')

Или

level.map_add_object_spot_ser(id, 'spot_name', 'hint')

Первый вариант - метка пропадет после перезагрузки игры, второй - метка постоянная. id - id объекта, на который ставим метку, spot_name - тип метки, hint - всплывающая подсказка.

17 часов назад, EggIeRar(V.N.S.L) сказал:

можно ли это сделать по координатам

Нет, метка ставится только на объект. Можно по координатам заспавнить, например, рестриктор, а на него уже поставить метку.

Изменено пользователем naxac
Дополнил
  • Согласен 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Есть такая штука как однотипные квесты.
Как их привязать к определённой локации?

Все знают такую фигню: комбинезон увеличивает переносимый вес, но не увеличивает максимальную выносливость, чтобы нормально бегать
думал, как бы это поправить... и придумал такое:
Так как жажды нет(мб где-то есть, ибо сколько ищу - рабочей ни одной), будем юзать сытость:
Максимальный вес, после которого будет быстро тратится энергия:70.
Максимальный вес после которого быстро тратится энергия при высокой сытости(зелёный значок): 60.
Максимальный вес после которого быстро тратится энергия при средней сытости(желтый значок): 40.
Максимальный вес после которого быстро тратится энергия при низкой сытости(красный значок): 30.

Тут функция, типо:
Уровень сытости: 100% прибавка к силам = 100% = первое значение и т.д.

Вот, как такое сделать? Либо подсмотреть где можно...

Как сделать, чтобы на мини-карте, вместе с картой локации показывалась ещё глобальная?(ибо когда идёшь в конец, видно чёрное на мини-карте, тобишь текстура карты закончилась)

Нужно, что бы при загрузке сейва\перезагрузки его, убирался bolt и выдавался wpn_bolt, тобишь функции должны быть на update

Кто может показать такие функции?(обычные по удалению и по спавну(create) не подходят, все диалоги с нпс пропадают)

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

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

16 часов назад, naxac сказал:

Нет, метка ставится только на объект.

Т.е я правильно понимаю, что если я спавню обьект (например ящик) по координатам, то потом я могу на него метку поставить.

Верно?

Подскажи пожалуйста, как это сделать.

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

Мне нужно взять "level.map_add_object_spot_ser(id, 'spot_name', 'hint')" и сделать из этого примерно следущее:

level.map_add_object_spot_ser(id, 'crc_big', 'anom_near_sidr') , так? 

А что дальше с этой ф-цией делать?

В 11.09.2018 в 20:17, Houdini_one сказал:

Все знают такую фигню

Не совсем так, есть параметр для пиджаков, который нивелирует ваше заблуждение.:

power_loss = значение (скорее всего 0.001 будет порог, после чего параметр будет считаться нулем. Не проверенно)

Можно подглядеть в файле config\misc\outfit.ltx\секции [stalker_outfit]:outfit_base, [svoboda_light_outfit]:outfit_base, а как это будет сочетаться с артефактами и тд и тп, как сочтете нужным.

В 11.09.2018 в 23:03, EggIeRar(V.N.S.L) сказал:

А что дальше с этой ф-цией делать?

Вызови ее в диалоге/инфопоршне/другой функции

Самый некомпетентный на форуме.

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

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

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

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

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

Войти

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

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

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