diff --git a/mods/Correct Weapon Distance/gamedata/configs/mod_system_weapon_distance.ltx b/mods/Correct Weapon Distance/gamedata/configs/mod_system_weapon_distance.ltx new file mode 100644 index 00000000..05e74755 --- /dev/null +++ b/mods/Correct Weapon Distance/gamedata/configs/mod_system_weapon_distance.ltx @@ -0,0 +1,296 @@ +Vanlla Weapon + +![wpn_9a91] +max_radius = 200 + +![wpn_apb] +max_radius = 125 + +![wpn_aps] +max_radius = 125 + +![wpn_beretta] +max_radius = 125 + +![wpn_bizon] +max_radius = 125 + +![wpn_bm16] +max_radius = 75 + +![wpn_colt1911] +max_radius = 125 + +![wpn_cz52] +max_radius = 125 + +![wpn_cz75] +max_radius = 125 + +![wpn_desert_eagle] +max_radius = 125 + +![wpn_fn57] +max_radius = 125 + +![wpn_fnp45] +max_radius = 125 + +![wpn_fort] +max_radius = 125 + +![wpn_fort500] +max_radius = 75 + +![wpn_glock] +max_radius = 125 + +![wpn_grach] +max_radius = 125 + +![wpn_groza] +max_radius = 200 + +![wpn_gsh18] +max_radius = 125 + +![wpn_hpsa] +max_radius = 125 + +![wpn_kiparis] +max_radius = 125 + +![wpn_mosberg590] +max_radius = 75 + +![wpn_mp5] +max_radius = 125 + +![wpn_mp7] +max_radius = 125 + +![wpn_mp133] +max_radius = 75 + +![wpn_mp153] +max_radius = 75 + +![wpn_mp412] +max_radius = 125 + +![wpn_oc33] +max_radius = 125 + +![wpn_p90] +max_radius = 125 + +![wpn_pb] +max_radius = 125 + +![wpn_pm] +max_radius = 125 + +![wpn_pp2000] +max_radius = 125 + +![wpn_ppsh41] +max_radius = 125 + +![wpn_protecta] +max_radius = 75 + +![wpn_remington870] +max_radius = 75 + +![wpn_saiga] +max_radius = 75 + +![wpn_spas12] +max_radius = 75 + +![wpn_toz34] +max_radius = 75 + +![wpn_toz194] +max_radius = 75 + +![wpn_tt33] +max_radius = 125 + +![wpn_ump45] +max_radius = 125 + +![wpn_val] +max_radius = 200 + +![wpn_vepr12] +max_radius = 75 + +![wpn_vihr] +max_radius = 200 + +![wpn_vintorez] +max_radius = 200 + +![wpn_vityaz] +max_radius = 125 + +![wpn_vsk94] +max_radius = 200 + +![wpn_vz61] +max_radius = 125 + +![wpn_walther] +max_radius = 125 + +BaS + +![wpn_aps_bas] +max_radius = 125 + +![wpn_colt1911_n] +max_radius = 125 + +![wpn_fn57_bas] +max_radius = 125 + +![wpn_glock17] +max_radius = 125 + +![wpn_glock17_m1] +max_radius = 125 + +![wpn_kiparis_m1] +max_radius = 125 + +![wpn_kiparis_m2] +max_radius = 125 + +![wpn_kiparis_m3] +max_radius = 125 + +![wpn_kiparis_s] +max_radius = 125 + +![wpn_korth] +max_radius = 125 + +![wpn_korth_custom] +max_radius = 125 + +![wpn_ks23] +max_radius = 75 + +![wpn_mp133_bas] +max_radius = 75 + +![wpn_mp153_bas] +max_radius = 75 + +![wpn_mp153_m1] +max_radius = 75 + +![wpn_pb_bas] +max_radius = 125 + +![wpn_pl15] +max_radius = 125 + +![wpn_pl15_tan] +max_radius = 125 + +![wpn_pm_bas] +max_radius = 125 + +![wpn_ppsh_bas] +max_radius = 125 + +![wpn_saiga12s_isg] +max_radius = 75 + +![wpn_saiga12s_m1] +max_radius = 75 + +![wpn_saiga12s_m2] +max_radius = 75 + +![wpn_sig220_n] +max_radius = 125 + +![wpn_sig226] +max_radius = 125 + +![wpn_sr1m] +max_radius = 125 + +![wpn_sr2_m1] +max_radius = 125 + +![wpn_sr2_m2] +max_radius = 125 + +![wpn_sr2_veresk] +max_radius = 125 + +![wpn_toz106] +max_radius = 75 + +![wpn_toz106_m1] +max_radius = 75 + +![wpn_usp_tac] +max_radius = 125 + +![wpn_val_tac] +max_radius = 200 + +![wpn_vintorez_isg] +max_radius = 200 + +![wpn_vintorez_m1] +max_radius = 200 + +![wpn_vintorez_m2] +max_radius = 200 + +![wpn_vintorez_n1] +max_radius = 200 + +![wpn_vz61_scorpion] +max_radius = 125 + +![wpn_vz61_scorpion_m1] +max_radius = 125 + +![wpn_vz61_scorpion_m2] +max_radius = 125 + +![wpn_walther_p99] +max_radius = 125 + +AUGmented + +![wpn_aug_freedom] +max_radius = 125 + +Explosive + +![grenade_f1] +min_radius = 10 + +![grenade_rgd5] +min_radius = 10 + +!grenade_gd-05] +min_radius = 10 + +![wpn_rg6] +min_radius = 15 + +![wpn_m79] +min_radius = 15 + +![wpn_rpg7] +min_radius = 20 + diff --git a/mods/Correct Weapon Distance/meta.ini b/mods/Correct Weapon Distance/meta.ini new file mode 100644 index 00000000..17825ff2 --- /dev/null +++ b/mods/Correct Weapon Distance/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.18.0 +newestVersion= +category="6," +nexusFileStatus=1 +installationFile=Correct_Weapon_Distance.2.rar +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-18T07:38:19Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Gear Rustle Redone/meta.ini b/mods/Gear Rustle Redone/meta.ini index 931f58da..d0ae43f4 100644 --- a/mods/Gear Rustle Redone/meta.ini +++ b/mods/Gear Rustle Redone/meta.ini @@ -1,12 +1,12 @@ [General] gameName=stalkeranomaly modid=0 -version=d2024.3.16.0 +version=d2024.3.18.0 newestVersion= -category="-1," +category="12," nexusFileStatus=1 -installationFile=Gear_Rustle_Redone.rar -repository=Nexus +installationFile=Gear_Rustle_Redone.1.rar +repository= ignoredVersion= comments= notes= @@ -22,7 +22,10 @@ validated=false color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) tracked=0 +[Plugins] +BAIN%20Installer\option0=Gear Rustle Redone normal version + [installedFiles] 1\modid=0 -1\fileid=0 size=1 +1\fileid=0 diff --git a/mods/Meadow Terrain Material Mask Fix/gamedata/textures/terrain/terrain_pole_mask.dds b/mods/Meadow Terrain Material Mask Fix/gamedata/textures/terrain/terrain_pole_mask.dds new file mode 100644 index 00000000..b5c0d0e4 --- /dev/null +++ b/mods/Meadow Terrain Material Mask Fix/gamedata/textures/terrain/terrain_pole_mask.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c57ba2c3d2b90ed8a7b9e7858ce038dd75b4b337359a340f3a1d2de939707d3 +size 16777344 diff --git a/mods/Meadow Terrain Material Mask Fix/meta.ini b/mods/Meadow Terrain Material Mask Fix/meta.ini new file mode 100644 index 00000000..f4fb12d6 --- /dev/null +++ b/mods/Meadow Terrain Material Mask Fix/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.18.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=meadow_terrain_material_mask_fix_by_zorius.1.7z +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-18T07:42:40Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/NPC Dont Attack Boxes/gamedata/scripts/axr_npc_vs_box.script b/mods/NPC Dont Attack Boxes/gamedata/scripts/axr_npc_vs_box.script new file mode 100644 index 00000000..bcf917d9 --- /dev/null +++ b/mods/NPC Dont Attack Boxes/gamedata/scripts/axr_npc_vs_box.script @@ -0,0 +1,217 @@ +--[[ + scheme_type: generic + author: Alundaio +--]] +-------------------------------------- +actid = 188120 +evaid = 188120 +-------------------------------------- + +local is_box = { + --["dynamics\\box\\box_1a"] = false, + --["dynamics\\box\\box_1b"] = false, + --["dynamics\\box\\box_1c"] = false, + ["dynamics\\box\\box_wood_01"] = false, + --["dynamics\\box\\box_wood_02"] = false +} +selected = {} +----------------------------------------------------------------------------------------- +-- EVALUATOR NPC vs BOX +----------------------------------------------------------------------------------------- +class "evaluator_npc_vs_box" (property_evaluator) +function evaluator_npc_vs_box:__init(npc,name,storage) super (nil, name) + self.st = storage +end + +function evaluator_npc_vs_box:evaluate() + --utils_data.debug_write("eva_npc_vs_box") + local npc = self.object + + if not (npc:alive()) then + return false + end + + if (IsWounded(npc)) then + return false + end + + if not (npc:active_item()) then + return false + end + + local ret = false + local itr = function(id) + if not (ret) then + local obj = id and db.storage[id] and db.storage[id].object + if (obj and is_box[obj:get_visual_name()] and obj:position():distance_to_sqr(npc:position()) < 2) then + ret = true + end + end + end + npc:iterate_feel_touch(itr) + + return ret +end + +----------------------------------------------------------------------------------------- +-- ACTION NPC vs BOX +----------------------------------------------------------------------------------------- +class "action_npc_vs_box" (action_base) +function action_npc_vs_box:__init (npc,name,storage) super (nil,name) + self.st = storage +end +function action_npc_vs_box:initialize() + action_base.initialize(self) + local npc = self.object + npc:set_desired_position() + npc:set_desired_direction() + local bw = self.object:best_weapon() + if (bw) then + self.object:set_item(object.aim1,bw) + end +end + +function action_npc_vs_box:execute() + action_base.execute(self) + local obj + local itr = function(id) + if not (obj) then + local o = id and db.storage[id] and db.storage[id].object + if (o and is_box[o:get_visual_name()]) then + obj = o + end + end + end + self.object:iterate_feel_touch(itr) + + if not (obj) then + return + end + + self.st.__tmr = self.st.__tmr or time_global()+8000 + if (time_global() > self.st.__tmr) then + alife_release_id(obj:id()) + self.st.__tmr = nil + end + + local pos = vector():set(obj:position()) + pos.y = pos.y + 0.4 + + local st = db.storage[self.object:id()].state_mgr + self.object:clear_animations() + st:set_state("idle", nil, nil, nil, {fast_set = true}) + st.animation:set_state(nil, true) + st.animation:set_control() + + self.object:set_mental_state(anim.danger) + --self.object:set_body_state(move.crouch) + self.object:set_movement_type(move.stand) + self.object:set_sight(look.fire_point,pos) + local bw = self.object:best_weapon() + if (bw) then + if (self.object:is_body_turning()) then + self.object:set_item(object.aim1,bw) + else + self.object:set_item(object.fire1,bw,1,30) + end + end +end + +function action_npc_vs_box:finalize() + action_base.finalize(self) + local bw = self.object:best_weapon() + if (bw) then + self.object:set_item(object.idle,bw) + end + self.st.__tmr = nil + self.object:set_sight(look.direction, self.object:direction() , 0) + self.object:set_desired_position() + self.object:set_desired_direction() +end + +--------------------------------------------------------- +---------------------- binder --------------------------- +function setup_generic_scheme(npc,ini,scheme,section,stype,temp) + local st = xr_logic.assign_storage_and_bind(npc,ini,"npc_vs_box",section,temp) +end + +function add_to_binder(npc,ini,scheme,section,storage,temp) + if not npc then return end + local manager = npc:motivation_action_manager() + if not manager then return end + + if (not npc:alive()) or (character_community(npc) == "zombied" or npc:section() == "actor_visual_stalker") then + manager:add_evaluator(evaid,property_evaluator_const(false)) + temp.needs_configured = false + return + end + + local evaluator = evaluator_npc_vs_box(npc,"eva_npc_vs_box",storage) + temp.action = action_npc_vs_box(npc,"act_npc_vs_box",storage) + + if not evaluator or not temp.action then return end + manager:add_evaluator(evaid,evaluator) + + temp.action:add_precondition(world_property(stalker_ids.property_alive,true)) + temp.action:add_precondition(world_property(stalker_ids.property_danger, false)) + temp.action:add_precondition(world_property(evaid,true)) + + temp.action:add_effect(world_property(evaid,false)) + + manager:add_action(actid,temp.action) +end + +function configure_actions(npc,ini,scheme,section,stype,temp) + if not npc then return end + local manager = npc:motivation_action_manager() + if not manager or not temp.action then return end + + --temp.action:add_precondition(world_property(xr_evaluators_id.state_mgr + 1,true)) + temp.action:add_precondition(world_property(xr_evaluators_id.sidor_wounded_base,false)) + temp.action:add_precondition(world_property(xr_evaluators_id.wounded_exist,false)) + + --[[ + if (_G.schemes["rx_ff"]) then + temp.action:add_precondition(world_property(rx_ff.evaid,false)) + end + --]] + + if (_G.schemes["gl"]) then + temp.action:add_precondition(world_property(rx_gl.evid_gl_reload,false)) + end + + --[[ + if (_G.schemes["facer"]) then + temp.action:add_precondition(world_property(xrs_facer.evid_facer,false)) + temp.action:add_precondition(world_property(xrs_facer.evid_steal_up_facer,false)) + end + --]] + + local action + local p = { + stalker_ids.action_combat_planner, + --xr_actions_id.state_mgr + 1, + xr_actions_id.state_mgr + 2, + xr_actions_id.alife + } + + for i=1,#p do + --printf("ACTION_ALIFE_ID(axr_npc_vs_box.configure_actions): " .. tostring(p[i])) + action = manager:action(p[i]) + if (action) then + action:add_precondition(world_property(evaid,false)) + end + end +end + +function disable_generic_scheme(npc,scheme,stype) + local st = db.storage[npc:id()][scheme] + if st then + st.enabled = false + end +end + +function npc_add_precondition(action) + if not action then return end + action:add_precondition(world_property(evaid,false)) +end diff --git a/mods/NPC Dont Attack Boxes/meta.ini b/mods/NPC Dont Attack Boxes/meta.ini new file mode 100644 index 00000000..7e8f20bf --- /dev/null +++ b/mods/NPC Dont Attack Boxes/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.18.0 +newestVersion= +category="7," +nexusFileStatus=1 +installationFile=NPC_Dont_Attack_Boxes.rar +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-18T07:38:07Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/profiles/Default/modlist.txt b/profiles/Default/modlist.txt index 2cb37985..d50dbcc4 100644 --- a/profiles/Default/modlist.txt +++ b/profiles/Default/modlist.txt @@ -100,6 +100,7 @@ -New Weapons and Items_separator +HIP HD Model -Character and NPC Visuals_separator ++NPC Dont Attack Boxes +And Who To Shoot +Higher Rank NPC Disable Headlights +NPCs Die in Anomalies @@ -121,6 +122,7 @@ +NPC Close Combat Enhanced +AI Combat Pack -AI and NPC Tweaks_separator ++Correct Weapon Distance +Anomaly Speed +Gotta Go Fast Extended +Grok Gotta Go Fast @@ -252,6 +254,7 @@ +Utjans Item UI Improvements +Portraits Overhaul -Interface and HUD_separator ++Meadow Terrain Material Mask Fix +Long Repair Fix +Fixed Artefact Collision and Visuals +Fixed Vanilla Models & Textures diff --git a/profiles/Development/modlist.txt b/profiles/Development/modlist.txt index 7b95aa04..68cae380 100644 --- a/profiles/Development/modlist.txt +++ b/profiles/Development/modlist.txt @@ -99,6 +99,7 @@ -New Weapons and Items_separator -HIP HD Model -Character and NPC Visuals_separator +-NPC Dont Attack Boxes -And Who To Shoot -Higher Rank NPC Disable Headlights -NPCs Die in Anomalies @@ -120,6 +121,7 @@ -NPC Close Combat Enhanced -AI Combat Pack -AI and NPC Tweaks_separator +-Correct Weapon Distance -Anomaly Speed -Gotta Go Fast Extended -Grok Gotta Go Fast @@ -251,6 +253,7 @@ -Utjans Item UI Improvements -Portraits Overhaul -Interface and HUD_separator ++Meadow Terrain Material Mask Fix +Long Repair Fix +Fixed Artefact Collision and Visuals +Fixed Vanilla Models & Textures