Removed Unnecessary Mod Files; Updated Mods
This commit is contained in:
parent
7f0caa168b
commit
290378b961
|
@ -3,7 +3,7 @@ gameName=stalkeranomaly
|
||||||
modid=0
|
modid=0
|
||||||
version=d2024.3.19.0
|
version=d2024.3.19.0
|
||||||
newestVersion=
|
newestVersion=
|
||||||
category="-1,"
|
category="15,"
|
||||||
nexusFileStatus=1
|
nexusFileStatus=1
|
||||||
installationFile=Alternate_Fake_Start.rar
|
installationFile=Alternate_Fake_Start.rar
|
||||||
repository=Nexus
|
repository=Nexus
|
||||||
|
|
|
@ -1,524 +0,0 @@
|
||||||
--[[
|
|
||||||
- Remade by Tronex
|
|
||||||
- 2019/4/23
|
|
||||||
|
|
||||||
Edit Log:
|
|
||||||
2020/5/29 - Vintar - added Warfare compatibility
|
|
||||||
|
|
||||||
- Global functions for assault tasks, with support for pre-info before accepting
|
|
||||||
|
|
||||||
Parameters for precondition
|
|
||||||
P[1] = (string) task_id
|
|
||||||
P[2] = (num) scan mode (1 to 5)
|
|
||||||
1 = same level
|
|
||||||
2 = same or nearby levels
|
|
||||||
3 = neaby levels only
|
|
||||||
4 = far levels
|
|
||||||
5 = all levels
|
|
||||||
P[3] = (num) minimum squad members size
|
|
||||||
P[4] = (num) minumum stay time for squad
|
|
||||||
P[5] = (bool) if true, scan will includes scripted squads
|
|
||||||
P[6] = (bool) if true, the factions declared in "status_functor_params" are enemy factions to traget, otherwise script assume they are natural and will search for matual enemies to them. If first faction is "monster" it will be a mutant squad hunt
|
|
||||||
P[7] = (string) specific smart to target
|
|
||||||
|
|
||||||
|
|
||||||
Example of usage in configs:
|
|
||||||
precondition = validate_assault_task( mil_smart_terrain_7_7_freedom_leader_stalker_task_2 : 2 : 1 : nil : false : true : nil )
|
|
||||||
target_functor = assault_task_target_functor
|
|
||||||
status_functor = assault_task_status_functor
|
|
||||||
status_functor_params = dolg
|
|
||||||
on_job_descr = %=setup_assault_task( mil_smart_terrain_7_7_freedom_leader_stalker_task_2 )%
|
|
||||||
|
|
||||||
|
|
||||||
--]]
|
|
||||||
|
|
||||||
-- Cache
|
|
||||||
local cache_assault = {}
|
|
||||||
local cache_assault_func = {}
|
|
||||||
|
|
||||||
local sfind = string.find
|
|
||||||
|
|
||||||
local factions_list = { -- List of allowed factions
|
|
||||||
["stalker"] = true,
|
|
||||||
["dolg"] = true,
|
|
||||||
["freedom"] = true,
|
|
||||||
["csky"] = true,
|
|
||||||
["ecolog"] = true,
|
|
||||||
["killer"] = true,
|
|
||||||
["army"] = true,
|
|
||||||
["bandit"] = true,
|
|
||||||
["monolith"] = true,
|
|
||||||
}
|
|
||||||
|
|
||||||
local blacklisted_maps = { -- List of maps to skip in scans
|
|
||||||
-- North
|
|
||||||
["l13_generators"] = true,
|
|
||||||
["l12_stancia_2"] = true,
|
|
||||||
["l12_stancia"] = true,
|
|
||||||
["l11_pripyat"] = true,
|
|
||||||
["l10_radar"] = true,
|
|
||||||
["l11_hospital"] = true,
|
|
||||||
|
|
||||||
-- Underground
|
|
||||||
["jupiter_underground"] = true,
|
|
||||||
["labx8"] = true,
|
|
||||||
["l03u_agr_underground"] = true,
|
|
||||||
["l04u_labx18"] = true,
|
|
||||||
["l08u_brainlab"] = true,
|
|
||||||
["l10u_bunker"] = true,
|
|
||||||
["l12u_control_monolith"] = true,
|
|
||||||
["l12u_sarcofag"] = true,
|
|
||||||
["l13u_warlab"] = true,
|
|
||||||
|
|
||||||
["fake_start"] = true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
---------------------------< Utility >---------------------------
|
|
||||||
function is_legit_mutant_squad(squad)
|
|
||||||
local section = squad and squad:section_name()
|
|
||||||
return squad and (not sfind(section,"tushkano")) and (not sfind(section,"rat")) and true or false
|
|
||||||
end
|
|
||||||
|
|
||||||
function evaluate_smarts_squads(task_id, tbl, smart, squad_def, faction_def)
|
|
||||||
if (not smart) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local smrt_id = smart.id
|
|
||||||
local smrt_name = smart:name()
|
|
||||||
|
|
||||||
if (simulation_objects.base_smarts[smrt_name] == true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local smrt = smrt_id and SIMBOARD.smarts[smrt_id]
|
|
||||||
if (not smrt) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
--printf("~ %s | scanning smart: %s", task_id, smrt_name)
|
|
||||||
|
|
||||||
for sq_id,_ in pairs(smrt.squads) do
|
|
||||||
--printf("# %s | found squad (%s) in smart: %s", task_id, sq_id, smrt_name)
|
|
||||||
|
|
||||||
-- if warfare, override checks on stay time, default squad stuff
|
|
||||||
-- if smart's squad is on its level + they are targeting it
|
|
||||||
local squad = alife_object(sq_id)
|
|
||||||
if squad and simulation_objects.is_on_the_same_level(squad, smart)
|
|
||||||
and squad.current_target_id and (squad.current_target_id == smrt_id)
|
|
||||||
and (squad.current_action == 1)
|
|
||||||
and (((squad:npc_count() >= squad_def.num)
|
|
||||||
and squad.stay_time
|
|
||||||
and ((not squad_def.stay_time) or (squad_def.stay_time and (game.get_game_time():diffSec(squad.stay_time) <= tonumber(squad_def.stay_time))))
|
|
||||||
and (squad_def.scripted or (not squad:get_script_target())))
|
|
||||||
or (_G.WARFARE and not squad:get_script_target()))
|
|
||||||
then
|
|
||||||
--printf("# %s | smart (%s) [%s] w/ squad (%s) [%s] = Checking", task_id, smrt_id, smrt_name, sq_id, squad.player_id)
|
|
||||||
|
|
||||||
for fac,_ in pairs(faction_def) do
|
|
||||||
|
|
||||||
-- if squad is from enemies table
|
|
||||||
if (is_legit_mutant_squad(squad) and squad.player_id == fac) then
|
|
||||||
--squad.stay_time = game.get_game_time()
|
|
||||||
tbl[sq_id] = smrt_id
|
|
||||||
--printf("- %s | smart (%s) [%s] w/ squad (%s) [%s] = Added", task_id, smrt_id, smrt_name, sq_id, squad.player_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function evaluate_squads_smarts(task_id, var, squad, smart)
|
|
||||||
if squad and simulation_objects.is_on_the_same_level(squad, smart) then
|
|
||||||
if not ( squad.first_update ) then
|
|
||||||
--printf("~ %s | not all squads are loaded yet!", task_id)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
if (var.scripted or (not squad:get_script_target()))
|
|
||||||
and (squad.current_target_id and squad.current_target_id == smart.id and squad.current_action == 1)
|
|
||||||
then
|
|
||||||
--printf("- %s | squad (%s) [%s] is targeting smart (%s)", task_id, squad.id, squad.player_id, smart.id)
|
|
||||||
for i = 1, #cache_assault_func[task_id] do
|
|
||||||
local fac = cache_assault_func[task_id][i]
|
|
||||||
if (is_legit_mutant_squad(squad) and squad.player_id == fac) then
|
|
||||||
-- updating data
|
|
||||||
var.squad_id = squad.id
|
|
||||||
save_var( db.actor, task_id, var )
|
|
||||||
|
|
||||||
-- reset gametime so they don't leave
|
|
||||||
if not _G.WARFARE then
|
|
||||||
squad.stay_time = game.get_game_time()
|
|
||||||
end
|
|
||||||
squad.force_online = true
|
|
||||||
--printf("- %s | squad (%s) [%s] is saved", task_id, squad.id, squad.player_id)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
function postpone_for_next_frame(task_id, squad_id)
|
|
||||||
local is_hostage_task = (task_manager.task_ini:r_string_ex(task_id, "status_functor") == "hostage_task") and true or false
|
|
||||||
local squad = alife_object(squad_id)
|
|
||||||
if (squad) then
|
|
||||||
|
|
||||||
-- Location
|
|
||||||
local location = alife():level_name(game_graph():vertex(squad.m_game_vertex_id):level_id())
|
|
||||||
for k in squad:squad_members() do
|
|
||||||
local se_obj = k.object or alife_object(k.id)
|
|
||||||
if se_obj then
|
|
||||||
location = dynamic_news_helper.GetPointDescription(se_obj)
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local str_location = game.translate_string("st_location") .. " " .. location
|
|
||||||
|
|
||||||
-- Community
|
|
||||||
local str_comm = ""
|
|
||||||
local community = squad.player_id
|
|
||||||
if is_squad_monster[community] then
|
|
||||||
str_comm = game.translate_string("st_sq_type") .. " " .. game.translate_string(community)
|
|
||||||
else
|
|
||||||
str_comm = game.translate_string("st_mm_new_game_faction_2") .. " " .. game.translate_string(community)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Build News
|
|
||||||
local news_caption = game.translate_string(task_manager.task_ini:r_string_ex(task_id, "title")) or "error"
|
|
||||||
|
|
||||||
local news_text, news_ico
|
|
||||||
if is_hostage_task then
|
|
||||||
news_text = str_location
|
|
||||||
news_ico = task_manager.task_ini:r_string_ex(task_id, "icon")
|
|
||||||
else
|
|
||||||
news_text = str_comm .. "\\n " .. str_location
|
|
||||||
news_ico = news_manager.tips_icons[squad.player_id]
|
|
||||||
end
|
|
||||||
if (not news_ico) then
|
|
||||||
news_ico = task_manager.task_ini:r_string_ex(task_id, "icon") or "ui_iconsTotal_mutant"
|
|
||||||
end
|
|
||||||
|
|
||||||
db.actor:give_talk_message2(news_caption, news_text, news_ico, "iconed_answer_item")
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
---------------------------< Target functor >---------------------------
|
|
||||||
task_functor.assault_task_target_functor = function (task_id,field,p,tsk)
|
|
||||||
if (field == "target") then
|
|
||||||
if (tsk and tsk.stage == 1 and tsk.task_giver_id) then
|
|
||||||
return tsk.task_giver_id
|
|
||||||
end
|
|
||||||
|
|
||||||
local actor = db.actor
|
|
||||||
local var = actor and load_var(actor, task_id)
|
|
||||||
if (not var) then
|
|
||||||
printe("! %s | assault_task_target_functor - var is nil", task_id)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local smart = var.smart_id and alife_object(var.smart_id)
|
|
||||||
if (not smart) then
|
|
||||||
printe("! %s | assault_task_target_functor - smart is nil", task_id)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local squad = var.squad_id and alife_object(var.squad_id)
|
|
||||||
|
|
||||||
-- If enemies are more then 50m from target location, then show red (?) near their location
|
|
||||||
if (squad) then
|
|
||||||
if (smart.position:distance_to_sqr(squad.position) > 2500) then
|
|
||||||
if (squad:clsid() == clsid.online_offline_group_s) then
|
|
||||||
if (squad.id and level.map_has_object_spot(squad.id,"red_location") == 0) then
|
|
||||||
level.map_add_object_spot(squad.id, "red_location", "st_ui_pda_task_unknown_enemy")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if (squad:clsid() == clsid.online_offline_group_s) then
|
|
||||||
if (squad.id and level.map_has_object_spot(squad.id,"red_location") == 1) then
|
|
||||||
level.map_remove_object_spot(squad.id, "red_location")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return var.smart_id
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
---------------------------< Status functor >---------------------------
|
|
||||||
task_status_functor.assault_task_status_functor = function (tsk,task_id)
|
|
||||||
if not (db.actor and tsk) then return end
|
|
||||||
|
|
||||||
if (tsk.stage == 1) then return end -- already completed
|
|
||||||
|
|
||||||
local var = load_var(db.actor, task_id) -- check saved data
|
|
||||||
if (not var) then return "fail" end
|
|
||||||
|
|
||||||
local smart_id = var.smart_id -- check smart id
|
|
||||||
if (not smart_id) then return "fail" end
|
|
||||||
|
|
||||||
local smrt = SIMBOARD.smarts[smart_id] -- check smart object (special defines)
|
|
||||||
if (not smrt) then return "fail" end
|
|
||||||
|
|
||||||
local smart = smrt.smrt -- check smart server object
|
|
||||||
if (not smart) then return "fail" end
|
|
||||||
|
|
||||||
-- in case sim_avail is set true during the player's tsk. with simulation_objects.available_by_id[smart.id] nil means unprocess, false is absolutely not avail
|
|
||||||
if (simulation_objects.available_by_id[smart.id] == nil) then
|
|
||||||
return
|
|
||||||
elseif (simulation_objects.available_by_id[smart.id] == false) then
|
|
||||||
printe("! %s | task failed because smart no longer available", task_id)
|
|
||||||
return "fail"
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Store factions parameters for the first time to re-use it
|
|
||||||
if (not cache_assault_func[task_id]) then
|
|
||||||
cache_assault_func[task_id] = {}
|
|
||||||
local params = parse_list(task_manager.task_ini,task_id,"status_functor_params")
|
|
||||||
if var.is_enemy then
|
|
||||||
for i=1,#params do
|
|
||||||
if is_squad_monster[params[i]] or factions_list[params[i]] then
|
|
||||||
cache_assault_func[task_id][i] = params[i]
|
|
||||||
printf("/ %s | Faction [%s] is re-added to cache_assault_func table", task_id, params[i])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif (not is_squad_monster[params[1]]) then
|
|
||||||
for fac,_ in pairs(factions_list) do
|
|
||||||
local cnt = 0
|
|
||||||
local is_enemy_to_actor = true --game_relations.is_factions_enemies(fac, get_actor_true_community())
|
|
||||||
for i=1,#params do
|
|
||||||
if (fac ~= params[i]) and is_enemy_to_actor and game_relations.is_factions_enemies(fac, params[i]) then
|
|
||||||
cnt = cnt + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (cnt == #params) then
|
|
||||||
local idx = #cache_assault_func[task_id] + 1
|
|
||||||
cache_assault_func[task_id][idx] = fac
|
|
||||||
printf("/ %s | Faction [%s] is re-added to cache_assault_func table", task_id, fac)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (#cache_assault_func[task_id] == 0) then
|
|
||||||
printe("! %s | no enemy factions found",task_id)
|
|
||||||
return "fail"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Timer for less pressure
|
|
||||||
local tg = time_global()
|
|
||||||
if (tsk.__check_smart_time and tg < tsk.__check_smart_time) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
tsk.__check_smart_time = tg+3000
|
|
||||||
|
|
||||||
-- cleaning data for re-assign next
|
|
||||||
local squad_id = var.squad_id
|
|
||||||
var.squad_id = nil
|
|
||||||
save_var(db.actor, task_id, var)
|
|
||||||
|
|
||||||
-- Scan saved squad
|
|
||||||
local squad = squad_id and alife_object(squad_id)
|
|
||||||
if squad then
|
|
||||||
local pass_this = evaluate_squads_smarts(task_id, var, squad, smart)
|
|
||||||
if pass_this then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Scan all squads
|
|
||||||
for id,v in pairs( SIMBOARD.squads ) do
|
|
||||||
local squad = alife_object(id)
|
|
||||||
if squad then
|
|
||||||
local pass_this = evaluate_squads_smarts(task_id, var, squad, smart)
|
|
||||||
if pass_this then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- And who to shoot?
|
|
||||||
if (smart.position:distance_to(db.actor:position()) > 15) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- If smart is controllable by factions, player dominate it
|
|
||||||
if (smart.faction_controlled) then
|
|
||||||
local comm = character_community(db.actor):sub(7)
|
|
||||||
smart.faction = factions_list[comm] and comm or smart.faction
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Assuming no squads means that target smart got cleared
|
|
||||||
tsk.stage = 1
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
---------------------------< Precondition >---------------------------
|
|
||||||
xr_conditions.validate_assault_task = function(actor, npc, p)
|
|
||||||
if not (p and #p >= 1) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
local task_id = p[1]
|
|
||||||
|
|
||||||
if (#p < 7) then
|
|
||||||
printe("! %s | not enough parameters", task_id)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
--// Return true if a squad is picked already
|
|
||||||
if cache_assault[task_id] then
|
|
||||||
local c_squad_id = cache_assault[task_id].squad_id
|
|
||||||
local c_smart_id = cache_assault[task_id].smart_id
|
|
||||||
local c_squad = c_squad_id and alife_object(c_squad_id)
|
|
||||||
local c_smart = c_smart_id and alife_object(c_smart_id)
|
|
||||||
if c_squad and c_smart and (c_squad.current_target_id == c_smart_id) then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--// Utilities
|
|
||||||
local sim = alife()
|
|
||||||
local gg = game_graph()
|
|
||||||
local actor_comm = sim:actor():community()
|
|
||||||
local actor_level = level.name()
|
|
||||||
local is_avail = simulation_objects.available_by_id
|
|
||||||
local p_status = parse_list(task_manager.task_ini,task_id,"status_functor_params")
|
|
||||||
local enemy_faction_list = {}
|
|
||||||
if (not p_status[1]) then
|
|
||||||
printe("! %s | status functor parameters are mising!", task_id)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
--// Defines
|
|
||||||
local def = {}
|
|
||||||
def.scan = tonumber(p[2]) or 1
|
|
||||||
def.num = tonumber(p[3]) or 1
|
|
||||||
def.stay_time = (p[4] ~= "nil") and tonumber(p[4])
|
|
||||||
def.scripted = (p[5] == "true") and true or false
|
|
||||||
def.is_enemy = (p[6] == "true") and true or false
|
|
||||||
def.smart = (p[7] ~= "nil") and p_status[1]
|
|
||||||
|
|
||||||
--// Collect enemy factions
|
|
||||||
if def.is_enemy then -- if faction parameters are enemies
|
|
||||||
for i=1,#p_status do
|
|
||||||
if is_squad_monster[p_status[i]] or factions_list[p_status[i]] then
|
|
||||||
--printf("/ %s | Faction [%s] is added to enemy_faction_list table", task_id, p_status[i])
|
|
||||||
enemy_faction_list[p_status[i]] = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif (not is_squad_monster[p_status[1]]) then -- if faction parameters are matutal factions
|
|
||||||
for fac,_ in pairs(factions_list) do
|
|
||||||
local cnt = 0
|
|
||||||
local is_enemy_to_actor = true --game_relations.is_factions_enemies(fac, get_actor_true_community())
|
|
||||||
for i=1,#p_status do
|
|
||||||
if (fac ~= p_status[i]) and is_enemy_to_actor and game_relations.is_factions_enemies(fac, p_status[i]) then
|
|
||||||
cnt = cnt + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (cnt == #p_status) then
|
|
||||||
enemy_faction_list[fac] = true
|
|
||||||
--printf("/ %s | Faction [%s] is added to enemy_faction_list table", task_id, fac)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if is_empty(enemy_faction_list) then
|
|
||||||
printe("! %s | no enemy factions found", task_id)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
--// Search all smarts
|
|
||||||
local targets = {} -- target[squad_id] = smart_id
|
|
||||||
if def.smart then -- search in specific smart
|
|
||||||
local smart = SIMBOARD.smarts_by_names[def.smart]
|
|
||||||
if smart then
|
|
||||||
evaluate_smarts_squads(task_id, targets, smart, def, enemy_faction_list)
|
|
||||||
end
|
|
||||||
|
|
||||||
else -- search all smarts
|
|
||||||
for name,v in pairs(SIMBOARD.smarts_by_names) do
|
|
||||||
|
|
||||||
-- if smart is available
|
|
||||||
if (is_avail[v.id] == true) then
|
|
||||||
|
|
||||||
-- if smart is not in blacklisted location
|
|
||||||
local smart_level = sim:level_name(gg:vertex(v.m_game_vertex_id):level_id())
|
|
||||||
if (not blacklisted_maps[smart_level]) then
|
|
||||||
|
|
||||||
-- if smart location is proper to the parameter
|
|
||||||
local is_online = v.online
|
|
||||||
local is_nearby = sfind(simulation_objects.config:r_value(actor_level, "target_maps", 0, ""), smart_level)
|
|
||||||
if ((def.scan == 1) and is_online) -- same level
|
|
||||||
or ((def.scan == 2) and (is_online or is_nearby)) -- same + nearby level
|
|
||||||
or ((def.scan == 3) and is_nearby) -- nearby levels only
|
|
||||||
or ((def.scan == 4) and (not (is_online or is_nearby))) -- far levels only
|
|
||||||
or (def.scan == 5) -- anywhere
|
|
||||||
then
|
|
||||||
evaluate_smarts_squads(task_id, targets, v, def, enemy_faction_list)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--// Cache results
|
|
||||||
if is_not_empty(targets) then
|
|
||||||
local target_squad = random_key_table(targets)
|
|
||||||
local target_smart = targets[target_squad]
|
|
||||||
|
|
||||||
-- local x = alife_object(target_smart)
|
|
||||||
-- printf('target %s',x and x:name())
|
|
||||||
|
|
||||||
cache_assault[task_id] = {
|
|
||||||
squad_id = target_squad,
|
|
||||||
smart_id = target_smart,
|
|
||||||
is_enemy = def.is_enemy,
|
|
||||||
scripted = def.scripted
|
|
||||||
}
|
|
||||||
|
|
||||||
--printf("- %s | Found %s targets so far", task_id, size_table(targets))
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
--printf("! %s | no targets found", task_id)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
---------------------------< Effects >---------------------------
|
|
||||||
xr_effects.setup_assault_task = function(actor, npc, p)
|
|
||||||
if not (p and p[1]) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
local task_id = p[1]
|
|
||||||
|
|
||||||
--// Read cache
|
|
||||||
if cache_assault[task_id] then
|
|
||||||
local squad_id = cache_assault[task_id].squad_id
|
|
||||||
local smart_id = cache_assault[task_id].smart_id
|
|
||||||
local squad = squad_id and alife_object(squad_id)
|
|
||||||
local smart = smart_id and alife_object(smart_id)
|
|
||||||
if squad and smart then
|
|
||||||
squad.stay_time = game.get_game_time()
|
|
||||||
sim_offline_combat.task_squads[squad_id] = true
|
|
||||||
local tbl = {
|
|
||||||
smart_id = smart_id,
|
|
||||||
squad_id = squad_id,
|
|
||||||
is_enemy = cache_assault[task_id].is_enemy,
|
|
||||||
scripted = cache_assault[task_id].scripted,
|
|
||||||
}
|
|
||||||
save_var(db.actor, task_id, tbl)
|
|
||||||
printdbg("- %s | Cached result = squad_id (%s) [%s] - smart_id(%s) - is_enemy: %s - scripted: %s", task_id, squad_id, squad.player_id, smart_id, tbl.is_enemy, tbl.scripted)
|
|
||||||
|
|
||||||
CreateTimeEvent(0,"setup_assault_task",0,postpone_for_next_frame,task_id, squad_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,44 +0,0 @@
|
||||||
This addon gives speed bonuses and penalties to various outfits.
|
|
||||||
|
|
||||||
There are three parts to this addon.
|
|
||||||
|
|
||||||
1. Outfit Speed
|
|
||||||
Light armors like jackets, Sunrise suits and LC suits receive anywhere from a 5-10% increase in movement speed.
|
|
||||||
Exoskeletons, exosuits and some heavy armors get anywhere from a 5-13% decrease in movement speed.
|
|
||||||
Other armors like SEVA, SSP, SKAT are untouched (they are balanced compared to exos by carryweight, but I can tweak this if desired).
|
|
||||||
This is completely configurable using outfit_speeds.ltx.
|
|
||||||
The speed modifier is displayed in outfit stats.
|
|
||||||
|
|
||||||
2. Active item affects speed (Toggleable)
|
|
||||||
Having a knife, axe, or handgun out confers an 8% sprint speed bonus.
|
|
||||||
Having a submachinegun out confers a 4% bonus.
|
|
||||||
Other weapons or items will either confer no bonus or slow the player down depending on weight, up to -8%.
|
|
||||||
|
|
||||||
3. Encumbrance affects speed (Toggleable)
|
|
||||||
The actor's total encumbrance (carried weight / max possible weight) affects their movespeed, like in Dark Souls.
|
|
||||||
Under 25% total weight, the actor moves 8% faster.
|
|
||||||
Above 70% weight, the actor moves 8% slower.
|
|
||||||
Above 100% weight, the actor moves 16% slower.
|
|
||||||
These bonuses and penalties are halved with exoskeletons.
|
|
||||||
|
|
||||||
|
|
||||||
V1.2.1
|
|
||||||
- Adjusted the formula for encumbrance.
|
|
||||||
V1.2
|
|
||||||
- Mainlined encumbrance as MCM option. Reworked formula for weapon speed (now gives penalty based on weapon weight).
|
|
||||||
V1.1.7
|
|
||||||
- Nerfed exosuit sprint speed (it's heavy after all). Added encumbrance addon as an optional goodie.
|
|
||||||
V1.1.6
|
|
||||||
- Some internal cleanup. Buffed base speed of Nosorog to match that of exoskeletons. Nerfed exo sprint speed by 10%, 20 for Nosorogs.
|
|
||||||
V1.1.5
|
|
||||||
- Monkey patched out dependency on utils_ui. Fixed bugs in speed.script, clamped minimum movement speed to be walking speed.
|
|
||||||
V1.1.4
|
|
||||||
- Small fix for crash on holster.
|
|
||||||
V1.1.3
|
|
||||||
- Refactor to be more modular. Update for 1.5.1.
|
|
||||||
V1.1.2
|
|
||||||
- Fix crash when removing outfits. Added speed reduction to exosuits.
|
|
||||||
V1.1.1
|
|
||||||
- Refactor to remove dependency on modifying outfit.ltx files. Compatibility with speed modification in my Powered Exos addon.
|
|
||||||
V1.1
|
|
||||||
- Pistol and knife make you sprint 10% faster. Patch for exos updated to reflect 1.3.1 changes.
|
|
|
@ -3,7 +3,7 @@ gameName=stalkeranomaly
|
||||||
modid=0
|
modid=0
|
||||||
version=4.0.0.0
|
version=4.0.0.0
|
||||||
newestVersion=
|
newestVersion=
|
||||||
category="-1,"
|
category="16,"
|
||||||
nexusFileStatus=1
|
nexusFileStatus=1
|
||||||
installationFile=Aydins_Grass_Tweaks_4.0.7z
|
installationFile=Aydins_Grass_Tweaks_4.0.7z
|
||||||
repository=Nexus
|
repository=Nexus
|
||||||
|
|
|
@ -3,7 +3,7 @@ gameName=stalkeranomaly
|
||||||
modid=0
|
modid=0
|
||||||
version=1.0.0.0
|
version=1.0.0.0
|
||||||
newestVersion=
|
newestVersion=
|
||||||
category="-1,"
|
category="16,"
|
||||||
nexusFileStatus=1
|
nexusFileStatus=1
|
||||||
installationFile=Aydins_Grass_Tweaks_SSS_Terrain_LOD_compatiblity.rar
|
installationFile=Aydins_Grass_Tweaks_SSS_Terrain_LOD_compatiblity.rar
|
||||||
repository=Nexus
|
repository=Nexus
|
||||||
|
|
|
@ -1,198 +0,0 @@
|
||||||
|
|
||||||
; UNUSED -- it works the same as wpn_binoc_inv and all traders sell that one, so this cannot be obtained normally
|
|
||||||
; since most properties are defined here i'd say in 1.6 to delete the _inv version and keep and use this one instead
|
|
||||||
[wpn_binoc]:identity_immunities,weapon_probability,default_weapon_params,wpn_binoc_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
discovery_dependency =
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\binocular"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
|
|
||||||
class = WP_BINOC
|
|
||||||
slot = 4
|
|
||||||
animation_slot = 13
|
|
||||||
ef_main_weapon_type = 5
|
|
||||||
ef_weapon_type = 0
|
|
||||||
hand_dependence = 2
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = true
|
|
||||||
sprint_allowed = true
|
|
||||||
show_ammo = false
|
|
||||||
show_condition = false
|
|
||||||
|
|
||||||
inv_grid_height = 1
|
|
||||||
inv_grid_width = 2
|
|
||||||
inv_grid_x = 14
|
|
||||||
inv_grid_y = 9
|
|
||||||
inv_name = st_binocular_name
|
|
||||||
inv_name_short = st_binocular_name
|
|
||||||
description = st_binocular_descr
|
|
||||||
highlight_equipped = true
|
|
||||||
anim_item = true
|
|
||||||
|
|
||||||
kind = w_misc
|
|
||||||
inv_weight = 1.0
|
|
||||||
cost = 1580
|
|
||||||
repair_type = lens
|
|
||||||
|
|
||||||
hud = wpn_binoc_hud
|
|
||||||
visual = dynamics\devices\dev_binoculars\dev_binoculars.ogf
|
|
||||||
normal = 0, 1, 0
|
|
||||||
position = -0.08, -0.05, 0.05
|
|
||||||
orientation = 0, -90, 70
|
|
||||||
direction = 0, 0, 1
|
|
||||||
fire_point = 0.0, 0.133, 0.161
|
|
||||||
ph_mass = 1
|
|
||||||
|
|
||||||
attach_bone_name = bip01_r_hand
|
|
||||||
attach_position_offset = 0.080000, 0.021273, 0.100000
|
|
||||||
attach_angle_offset = 3.080506, -1.493053, -1.202040
|
|
||||||
auto_attach = false
|
|
||||||
|
|
||||||
catch_snd = none
|
|
||||||
found_snd = none
|
|
||||||
vis_frame_color = 0.0, 0.0, 0.0, 0.0
|
|
||||||
vis_frame_speed = 0
|
|
||||||
vision_present = true
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 3.0
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_binoc, up_gr_seconab_binoc, up_gr_thirdab_binoc
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_binoculars
|
|
||||||
upgr_icon_x = 300
|
|
||||||
upgr_icon_y = 1950
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
upgr_icon_path = ui\ui_actor_weapons
|
|
||||||
|
|
||||||
ammo_class = ammo_binoc
|
|
||||||
ammo_current = 0
|
|
||||||
ammo_elapsed = 0
|
|
||||||
ammo_limit = 0
|
|
||||||
ammo_mag_size = 0
|
|
||||||
|
|
||||||
scope_status = 1
|
|
||||||
scope_texture = wpn_crosshair_bino
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
|
|
||||||
silencer_status = 0
|
|
||||||
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
|
|
||||||
hit_impulse = 0
|
|
||||||
hit_power = 0
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 0
|
|
||||||
bullet_speed = 0
|
|
||||||
rpm = 0
|
|
||||||
rpm_empty_click = 0
|
|
||||||
|
|
||||||
zoom_enabled = true
|
|
||||||
reload_dof = 0.0, 0.5, 5, 1.7
|
|
||||||
control_inertion_factor = 1.1
|
|
||||||
fire_dispersion_base = 1
|
|
||||||
fire_dispersion_condition_factor = 0
|
|
||||||
|
|
||||||
misfire_start_condition = 0
|
|
||||||
misfire_start_prob = 0.003
|
|
||||||
misfire_end_condition = 0
|
|
||||||
misfire_end_prob = 0.02
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0
|
|
||||||
condition_shot_dec = 0
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 7
|
|
||||||
cam_dispersion = 1.9
|
|
||||||
cam_dispersion_frac = 1.1
|
|
||||||
cam_dispersion_inc = 1.9
|
|
||||||
cam_max_angle = 10.0
|
|
||||||
cam_max_angle_horz = 10.0
|
|
||||||
cam_step_angle_horz = 1.2
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.1
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.1
|
|
||||||
disp_crouch_factor = 0
|
|
||||||
disp_jump_factor = 0
|
|
||||||
disp_vel_factor = 0
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 360
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
|
|
||||||
snd_close = weapons\generic_close
|
|
||||||
snd_on_take = other
|
|
||||||
|
|
||||||
can_be_lowered = false
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_binoc_hud]:hud_base
|
|
||||||
item_visual = dynamics\devices\dev_binoculars\dev_binoculars_hud
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = 0.00064, 0.022937, 0.125213
|
|
||||||
hands_position_16x9 = 0.00064, 0.022937, 0.125213
|
|
||||||
hands_orientation = 0, 0, 0
|
|
||||||
hands_orientation_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
aim_hud_offset_pos = 0.00428, -0.223465, -0.180631
|
|
||||||
aim_hud_offset_pos_16x9 = 0.00428, -0.223465, -0.180631
|
|
||||||
aim_hud_offset_rot = -0.8013, -0.02704, 0.001071
|
|
||||||
aim_hud_offset_rot_16x9 = -0.8013, -0.02704, 0.001071
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = binoc_holster, idle
|
|
||||||
anm_idle = binoc_idle, idle
|
|
||||||
anm_idle_aim = binoc_idle, idle
|
|
||||||
anm_idle_moving = binoc_walk, idle
|
|
||||||
anm_idle_moving_crouch = binoc_walk, idle, 0.75
|
|
||||||
anm_idle_sprint = binoc_sprint, idle, 1.2
|
|
||||||
anm_show = binoc_draw, idle
|
|
||||||
anm_bore = binoc_bore, idle
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.75
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_binoc_inv]:identity_immunities,weapon_probability,default_weapon_params,wpn_binoc
|
|
||||||
animation_slot = 2
|
|
||||||
hand_dependence = 1
|
|
||||||
|
|
||||||
hud = wpn_binoculars_hud
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
scope_dynamic_zoom = off
|
|
||||||
|
|
||||||
control_inertion_factor = 1.28
|
|
||||||
fire_dispersion_base = 1
|
|
||||||
|
|
||||||
holder_fov_modifier = 0.7
|
|
||||||
holder_range_modifier = 2.0
|
|
||||||
|
|
||||||
anim_item = false
|
|
||||||
|
|
||||||
[wpn_binoculars_hud]:wpn_binoc_hud
|
|
||||||
attach_place_idx = 0
|
|
||||||
|
|
|
@ -1,243 +0,0 @@
|
||||||
I always disliked how BHS worked. Where medkits give temporary hp and most random items heal certain parts.
|
|
||||||
|
|
||||||
This mod is my attempt at making BHS fun and immersive instead of just "use a if b, use c if d".
|
|
||||||
|
|
||||||
The github link: <https://github.com/Mirrowel/Mirrowels-BHS-Edits>
|
|
||||||
|
|
||||||
Currently in active development to balance the items and the system.
|
|
||||||
|
|
||||||
MORE UP-TO-DATE Description on Moddb page <https://www.moddb.com/mods/stalker-anomaly/addons/bhs-realistic-overhaul>
|
|
||||||
|
|
||||||
**MOD IS CONSTANTLY BEING DEVELOPED SO EXPECT CHANGES TO HAPPEN FREQUENTLY.**
|
|
||||||
|
|
||||||
# NOW INCLUDES AN EXPERIMENTL TARKOV-LIKE HP SYSTEM. READ 0.8 CHANGELOG FOR MORE INFO
|
|
||||||
|
|
||||||
**An overview of the mod and plans below.**
|
|
||||||
|
|
||||||
# General points:
|
|
||||||
|
|
||||||
## The goals of the mod:
|
|
||||||
|
|
||||||
- Make healing limbs take considerably longer.
|
|
||||||
- Remove temporary HP.
|
|
||||||
- Add painkillers and painkilling properties. Think of tarkov.
|
|
||||||
- Make medkits the main source of healing, like they should be.
|
|
||||||
- Make the system highly configurable.
|
|
||||||
|
|
||||||
## **Stuff that this mod already has:**
|
|
||||||
|
|
||||||
- No temp hp System. Replaced by painkillers instead. Exactly the same purpose as tarkov basically. Allow you to use the destroyed limbs and remove the nasty effects.
|
|
||||||
- To complement painkiller system weapon sway mod is integrated. Painkillers reduce weapon sway like if the limb is healed by that amount.
|
|
||||||
- Medkits either heal all parts at once OR they heal set amount of HP, going one HP at a time for the lowest HP limb(potentially more efficient, which makes a lot of sense).
|
|
||||||
- Broken limb system. If HP of the limb reaches 0 you need to use a surgical kit, then splint with a splint(all configurable and can turn off).
|
|
||||||
- Reworked sleep healing to heal more logically(you heal lowest limbs first). Can disable that.
|
|
||||||
- Health multiplier to enable more gradual healing. Limb HP by default is 11 torso, head; 5 for the rest - kinda low. - Experimental. Realistically would do nothing but increase the number of HP steps so it looks smoother but makes it hard to see real HP -- UNSUPPORTED - TOO MANY PROBLEMS
|
|
||||||
- Weapon sway depending on arms damage and painkiller effect
|
|
||||||
- Slower medkit usage and healing rate.
|
|
||||||
- Campfire heal for limbs(adapting script)
|
|
||||||
- Artefact healing for limbs(same thing)
|
|
||||||
|
|
||||||
## **Stuff i will add:**
|
|
||||||
|
|
||||||
- More effects on limb damage. Instead of instadeath increase received damage, stuff like that - need ideas
|
|
||||||
- Heal limbs one-by-one only like in EFT(maybe)
|
|
||||||
|
|
||||||
All new items are sold by medics. Some new items also added to flea market and butcher's shop.
|
|
||||||
As well as a lot of different traders that don't have medics nearby.
|
|
||||||
|
|
||||||
Keep in mind that in the more-or-less finished version **everything will be optional modules**. While in development i wont split it into modules so my workload is more sane.
|
|
||||||
|
|
||||||
Suggestions and ideas related to BHS are appreciated, as i myself am trying to figure out how to balance things out.
|
|
||||||
|
|
||||||
# Balancing for meds:
|
|
||||||
|
|
||||||
- All medkits heal twice as slow. Overall they heal exactly the same amount, just slower. New time is 66.8 seconds.
|
|
||||||
- Survival kit modified using same logic as medkits, but with radiation and healing boosted to match heal speed of basic medkit. New time is 90 seconds.
|
|
||||||
- Rebirth modded to last twice as long. Same idea as medkits. New time is 14 seconds.
|
|
||||||
- Bandages apply their effect instantly instead of over time.
|
|
||||||
|
|
||||||
## As for limb damage:
|
|
||||||
|
|
||||||
Keep in mind these values: Legs and Arms have 10HP per limb. Torso and Head have 22HP per limb.
|
|
||||||
That is double of what basic BHS has to make 1HP matter less in the system making balancing easier.
|
|
||||||
No, boosting HP does not make limbs survive more damage. Everything is scaled.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- ### Heal One System(Healing one HP at a time for one limb):
|
|
||||||
|
|
||||||
- Basic medkit: 21 HP total over the duration. Can heal two arms/legs to full or torso/head once
|
|
||||||
- Army and Cheese: 42 HP total over the duration. Can heal all arms/legs to full or both torso and head to full.
|
|
||||||
- Stimpacks: Mirror what medkits heal over their duration, but faster.
|
|
||||||
- Survival kit: 63 HP total over 90 seconds.
|
|
||||||
- Coagulant(Vinca/Barvinok): Heals 11 HP over 438 seconds. Cant heal over your HP level. (If you are at 50% then it can only heal limbs to 50%)
|
|
||||||
- Rebirth: 63 HP total over 17 seconds. Cant heal over your HP level. (If you are at 50% then it can only heal limbs to 50%)
|
|
||||||
- Propital: 30 HP total over 180 seconds. Cant heal over your HP level.
|
|
||||||
|
|
||||||
---
|
|
||||||
- ### Heal All System(Healing one HP at a time for all limbs) - LEGACY:
|
|
||||||
|
|
||||||
- Basic medkit: Head/Torso - 11 HP, Legs/Arms - 5 HP total over the duration. Can heal two arms/legs to full or torso/head once
|
|
||||||
- Army and Cheese: Head/Torso - 16 HP, Legs/Arms - 7 HP total over the duration. Can heal all arms/legs to full or both torso and head to full.
|
|
||||||
- Stimpacks: Mirror what medkits heal over their duration, but faster.
|
|
||||||
- Rebirth: Head/Torso - 22 HP, Legs/Arms - 10 HP over 17 seconds. Cant heal over your HP level. (If you are at 50% then it can only heal limbs to 50%)
|
|
||||||
|
|
||||||
---
|
|
||||||
- ### Surgery system and kits(In order to restore a limb to 1 HP surgical tools are required):
|
|
||||||
|
|
||||||
- Surgical tools: Slow use, restores one limb to be splinted in 10 seconds. One use and needs a bandage. Will cause damage on use.
|
|
||||||
- CMS: Slow use, 5 charges. Restores one limb to be splinted in 10 seconds. Can be configured to restore a limb without a splint required. More weight-efficient
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- ### Splints:
|
|
||||||
|
|
||||||
- Splint: Slow use, restores a limb to full 1HP in 10 seconds. One charge.
|
|
||||||
- Aluminium splint: Slow use, restores a limb to full 1HP in 10 seconds. Three charges. More weight-efficient
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- ### Painkillers(**Keep in mind that painkiller system doubles the painkiller power for torso and head because they have double the HP over legs and arms**)
|
|
||||||
|
|
||||||
- Morphine: 9 painkiller power for 305 seconds.
|
|
||||||
- Rebirth: 9 painkiller power for 305 seconds.
|
|
||||||
- Salicidic acid: 7 painkiller power for 180 seconds.
|
|
||||||
- Fentanyl: 4 painkiller power for 202 seconds.
|
|
||||||
- Analgetic(Diclofenac Sodium): 5 painkiller power for 305 seconds.
|
|
||||||
- SJ6 stimulator: 7 painkiller power for 600 seconds.
|
|
||||||
- SJ1 stimulator: 4 painkiller power for 600 seconds.
|
|
||||||
- Analgin painkiller: 2 painkiller power for 180 seconds.
|
|
||||||
- Ibuprofen: 4 painkiller power for 290 seconds.
|
|
||||||
- Yadulin: 4 painkiller power for 505 seconds.
|
|
||||||
- Adrenalin(Epinephrine): 2 painkiller power for 2184 seconds.
|
|
||||||
- Army Medkit: 4 painkiller power for 128 seconds.
|
|
||||||
- Cheese Medkit: 3 painkiller power for 128 seconds.
|
|
||||||
- Stimpack: 2 painkiller power for 128 seconds.
|
|
||||||
- Army Stimpack: 4 painkiller power for 128 seconds.
|
|
||||||
- Sci Stimpack: 3 painkiller power for 128 seconds.
|
|
||||||
- Cocaine: 2 painkiller power for 1644 seconds.
|
|
||||||
- Joint: 1 painkiller power for 420 seconds.
|
|
||||||
- Marijuana: 1 painkiller power for 652 seconds.
|
|
||||||
- Bottled vodkas: 1 painkiller power for 300 seconds.
|
|
||||||
- Quality vodka: 2 painkiller power for 300 seconds.
|
|
||||||
- Zone vodka(bottle_metal): 2 painkiller power for 300 seconds.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Credits:**
|
|
||||||
|
|
||||||
- bvcx for detailed description mod.
|
|
||||||
- ilrathCXV for campfire and artefact healing scripts.
|
|
||||||
- DokBrok for BHS Evolution mod that inspired this one.
|
|
||||||
- TheParaziT - for base injector animation. Extended them to all injectors.
|
|
||||||
- Uknown person who ported all the animations from gunslinger
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Latest changelog:
|
|
||||||
|
|
||||||
## 0.86E Update
|
|
||||||
|
|
||||||
- Actor damage balancer update to match gamma 0.91
|
|
||||||
|
|
||||||
## 0.86D Update
|
|
||||||
|
|
||||||
- Reduced weapon out delay for bandages(Mirror of Enhanced anims - medical)
|
|
||||||
|
|
||||||
## 0.86C Update
|
|
||||||
|
|
||||||
- Skinning without a knife out is done with a hunting knife, always. Fix for gamma tomahawk.
|
|
||||||
|
|
||||||
## 0.86B Update
|
|
||||||
|
|
||||||
- Crafting recipes added
|
|
||||||
|
|
||||||
## 0.86A Update
|
|
||||||
|
|
||||||
- Fomod made to better convey information
|
|
||||||
|
|
||||||
## 0.86 Update
|
|
||||||
|
|
||||||
- New default BHS hud - thanks to chilichocolate
|
|
||||||
- Fix for painkiller effect not being recalculated after healing
|
|
||||||
- Dynamic damage threshold adjustement based on damagescale(no visible effect)
|
|
||||||
- Small fix for torso surgery display
|
|
||||||
- Fomod installer. Yes, it has finally happened, folks.
|
|
||||||
|
|
||||||
## 0.85A Hotfix
|
|
||||||
|
|
||||||
- Fix for leftover variable (gamma users)
|
|
||||||
|
|
||||||
## 0.85 Hotfix
|
|
||||||
|
|
||||||
- Rewritten all mechanics on healing, splinting and surgery to match the quality of the latest additions.
|
|
||||||
- Removed some hard to maintain features.
|
|
||||||
|
|
||||||
## 0.81B(C) Hotfix
|
|
||||||
|
|
||||||
- Fix for missing model crash after removing the mod(nowscript will remove akvatabs and other vanilla changed items too)
|
|
||||||
- Fix for forgotten sounds
|
|
||||||
|
|
||||||
## 0.81 Hotfix
|
|
||||||
|
|
||||||
- Included forgotten .ppe file for latest ADB version.
|
|
||||||
- Updated included FDDA Enhanced Animations mod
|
|
||||||
|
|
||||||
## 0.8 Beta:
|
|
||||||
|
|
||||||
### Additions and rebalancing:
|
|
||||||
|
|
||||||
- **New Experimental BHS mode. Tarkov-like limb system. Vanilla HP only acts as a wellness indicator and cannot be healed with medkits. Only vinca and the usual ways of resting, artefacts,etc. Enables below feature automatically.**
|
|
||||||
- Above can be buggy when the system prevents a death, as a callback fires but is cancelled by the script. Depends on installed mods. An alternative way can be used if this proves too buggy.
|
|
||||||
- **Combined with the above change - damage bleedthrugh from destroyed limbs to every other limb. If you take damage in the destroyed limb the damage is split between all the other limbs. Can be turned on/off**
|
|
||||||
- Limb damage multiplier added to MCM menu.
|
|
||||||
- Small-ish balancing changes to painkillers that are too much to list.
|
|
||||||
- Added bone breaking sound effect and feedback to notify the player when their limb(s) reach 0 HP.
|
|
||||||
- Update/reworked the damage system. Changes should not be noticeable unless you go into code.
|
|
||||||
- Fall damage multiplier added to mcm. Fall damage should be goddamn scary.
|
|
||||||
- Explosives are **VERY** scary and do damage to all limbs. You really dont want to experience it.
|
|
||||||
- Update hit detection to more accurately tell what limb was hit.
|
|
||||||
- Removed legacy features.
|
|
||||||
- Grok's Actor Damage Balancer and Progressive Rad Damages compatibility patches.(Gamma requires both)
|
|
||||||
- Non-medical enhanced animations separated into a sister mod. FDDA enhanced animations.
|
|
||||||
|
|
||||||
### Fixes:
|
|
||||||
|
|
||||||
- Fixed FDDA anims crash. Mod is fully DLTX now.
|
|
||||||
- Fixed arm/legs minimal hp settings to correctly apply.
|
|
||||||
- General bugfixing of everything not touched by changes, which is not much.
|
|
||||||
|
|
||||||
## 0.63 Beta:
|
|
||||||
|
|
||||||
- Dynamic item spawns,item rewards,new game loadouts DLTX item injection
|
|
||||||
- Safe deletion utility to safely delete all new items
|
|
||||||
- Loot injection for new items. Now they can be looted from bodies.
|
|
||||||
|
|
||||||
## Hotfix 0.6A:
|
|
||||||
|
|
||||||
- Fixed mutant harvest animation
|
|
||||||
- Added FDDA MCM unlocker for gamma users
|
|
||||||
|
|
||||||
## 0.6 Beta:
|
|
||||||
|
|
||||||
### Additions and rebalancing:
|
|
||||||
|
|
||||||
- Bandages and tourniquets now work instantly instead of over time.
|
|
||||||
- Vodka's are now painkillers of different power.
|
|
||||||
- To be able to sprint with broken legs you now need painkiller power 3 and above. Vodkas provide up to 2.
|
|
||||||
- Psy mechanics for SJ stims. Now they lower your max psy health but increase resistance and regeneration the lower your psy health is. (EXPERIMENTAL)
|
|
||||||
- A lot more traders sell new items now, and old ones should be fixed, hopefully.
|
|
||||||
- Compatibility patch for Coffee if the zone to use better anims.
|
|
||||||
- Damage to limbs increased by 25%. Hopefully losing limbs will be more frequent.
|
|
||||||
|
|
||||||
### Fixes:
|
|
||||||
|
|
||||||
- Painkillers active time is now tracked a lot better, so level transitions wont extend their duration. Nor saving/loading will extend/decrease it. Deviation will be very small % wise.
|
|
||||||
- Detailed description compatibility now has fixed encoding for dot symbols
|
|
||||||
- Default detailed description script fixes(included by default, not compat)
|
|
||||||
- Artefact healing now wont work if you dont have PBA mod installed. Meaning if you want to use it in base anomaly you need to patch it. I would do that if i had vanilla classnames and values for them - it is not hard at all.
|
|
||||||
- General bugfixing for main script
|
|
||||||
- DLTX bugfixing to make sure included mods are not overwritten by standalone versions of same mods.
|
|
||||||
- Animation files bugfixing to change as little as possible compared to base FDDA + asnen's. Now should be 100% compatible as no old anims are overwritten or deleted.
|
|
||||||
- Damage threshold lowered back to 3% like default. Now consumable items are tracked and wont deal damage to limbs
|
|
||||||
- Renamed Enchaned UI compat to "Enhanced GUI". Got confused about names
|
|
|
@ -1,36 +0,0 @@
|
||||||
A collection of medical item animations, models and textures for FDDA. Sister mod to FDDA Enhanced Animations - Food and drinks.
|
|
||||||
As many items as possible were converted to fancier gunslinger animations.
|
|
||||||
Some items had their use sounds replaced/enhanced.
|
|
||||||
|
|
||||||
There werent many gunslinger medical animations, but this has injector, bandage and exo anims.
|
|
||||||
|
|
||||||
Originally made/adapted for BHS realistic overhaul by me, but separated out into a separate mod. Fully DLTX.
|
|
||||||
|
|
||||||
Goes hand in hand with BHS Realistic Overhaul. This mod was originally a part of it.
|
|
||||||
|
|
||||||
List:
|
|
||||||
Medkits are untouched.
|
|
||||||
Bandage replaced.
|
|
||||||
All the injector animations use the gunslinger injector one.
|
|
||||||
Exo animations added.
|
|
||||||
That is it. There really arent that many of them.
|
|
||||||
|
|
||||||
REQUIRES FDDA(this is an extension to it).
|
|
||||||
Like the original mod, Possibly requires THAP
|
|
||||||
|
|
||||||
Credits:
|
|
||||||
Uknown person who ported all the animations from gunslinger
|
|
||||||
|
|
||||||
## Update 1.1B
|
|
||||||
- Added the MCM unlocker by default to fix the skinning problem. It has everything disabled by default to not mess with gamma and other modpacks.
|
|
||||||
|
|
||||||
## Hotfix to 1.1A
|
|
||||||
- Removed mistakenly included missing animation for a tourniquet
|
|
||||||
|
|
||||||
## Update 1.1
|
|
||||||
|
|
||||||
- Reduced the time between bandage animation finish and weapon pull out
|
|
||||||
|
|
||||||
## Update 13.09.2023
|
|
||||||
|
|
||||||
- Fixed a leftover file i forgot to remove and a scientific medkit in exo had a typo in the config.
|
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version='1.0' encoding="windows-1251"?>
|
|
||||||
<xml>
|
|
||||||
#include "gameplay\character_desc_general_*.xml"
|
|
||||||
|
|
||||||
;#include "gameplay\character_desc_general_actor.xml"
|
|
||||||
;#include "gameplay\character_desc_general_army.xml"
|
|
||||||
;#include "gameplay\character_desc_general_bandit.xml"
|
|
||||||
;#include "gameplay\character_desc_general_csky.xml"
|
|
||||||
;#include "gameplay\character_desc_general_dolg.xml"
|
|
||||||
;#include "gameplay\character_desc_general_ecolog.xml"
|
|
||||||
;#include "gameplay\character_desc_general_freedom.xml"
|
|
||||||
;#include "gameplay\character_desc_general_greh.xml"
|
|
||||||
;#include "gameplay\character_desc_general_isg.xml"
|
|
||||||
;#include "gameplay\character_desc_general_killer.xml"
|
|
||||||
;#include "gameplay\character_desc_general_monolith.xml"
|
|
||||||
;#include "gameplay\character_desc_general_renegade.xml"
|
|
||||||
;#include "gameplay\character_desc_general_stalker.xml"
|
|
||||||
;#include "gameplay\character_desc_general_zombied.xml"
|
|
||||||
</xml>
|
|
|
@ -1,41 +0,0 @@
|
||||||
<specific_character id="sim_default_freedom_0_default_15" team_default = "1">
|
|
||||||
#include "gameplay\profiles\character_desc_freedom_0.xml"
|
|
||||||
<icon>ui_inGame2_Freedom_1</icon>
|
|
||||||
<snd_config>characters_voice\human\freedom_1\</snd_config>
|
|
||||||
<visual>actors\stalker_freedom\stalker_freedom_1a</visual>
|
|
||||||
</specific_character>
|
|
||||||
|
|
||||||
<specific_character id="sim_default_freedom_0_default_16" team_default = "1">
|
|
||||||
#include "gameplay\profiles\character_desc_freedom_0.xml"
|
|
||||||
<icon>ui_inGame2_Freedom_1</icon>
|
|
||||||
<snd_config>characters_voice\human\freedom_1\</snd_config>
|
|
||||||
<visual>actors\stalker_freedom\stalker_freedom_1a_backpack</visual>
|
|
||||||
</specific_character>
|
|
||||||
|
|
||||||
<specific_character id="sim_default_freedom_0_default_17" team_default = "1">
|
|
||||||
#include "gameplay\profiles\character_desc_freedom_0.xml"
|
|
||||||
<icon>ui_inGame2_Freedom_1</icon>
|
|
||||||
<snd_config>characters_voice\human\freedom_3\</snd_config>
|
|
||||||
<visual>actors\stalker_freedom\stalker_freedom_1a_mask</visual>
|
|
||||||
</specific_character>
|
|
||||||
|
|
||||||
<specific_character id="sim_default_freedom_0_default_18" team_default = "1">
|
|
||||||
#include "gameplay\profiles\character_desc_freedom_0.xml"
|
|
||||||
<icon>ui_inGame2_Freedom_1</icon>
|
|
||||||
<snd_config>characters_voice\human\freedom_1\</snd_config>
|
|
||||||
<visual>actors\stalker_freedom\stalker_freedom_1b</visual>
|
|
||||||
</specific_character>
|
|
||||||
|
|
||||||
<specific_character id="sim_default_freedom_0_default_19" team_default = "1">
|
|
||||||
#include "gameplay\profiles\character_desc_freedom_0.xml"
|
|
||||||
<icon>ui_inGame2_Freedom_1</icon>
|
|
||||||
<snd_config>characters_voice\human\freedom_1\</snd_config>
|
|
||||||
<visual>actors\stalker_freedom\stalker_freedom_1b_backpack</visual>
|
|
||||||
</specific_character>
|
|
||||||
|
|
||||||
<specific_character id="sim_default_freedom_0_default_20" team_default = "1">
|
|
||||||
#include "gameplay\profiles\character_desc_freedom_0.xml"
|
|
||||||
<icon>ui_inGame2_Freedom_1</icon>
|
|
||||||
<snd_config>characters_voice\human\freedom_3\</snd_config>
|
|
||||||
<visual>actors\stalker_freedom\stalker_freedom_1b_mask</visual>
|
|
||||||
</specific_character>
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_1a.dds (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_1a.dds (Stored with Git LFS)
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_1b.dds (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_1b.dds (Stored with Git LFS)
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_4.dds (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_4.dds (Stored with Git LFS)
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_4.thm (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/SIN Overhaul/gamedata/textures/act/act_stalker_greh_4.thm (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/UNISG Overhaul/gamedata/textures/act/isg/act_isg_merc_1.dds (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/UNISG Overhaul/gamedata/textures/act/isg/act_isg_merc_1.dds (Stored with Git LFS)
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/UNISG Overhaul/gamedata/textures/act/isg/act_isg_merc_2.dds (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/UNISG Overhaul/gamedata/textures/act/isg/act_isg_merc_2.dds (Stored with Git LFS)
Binary file not shown.
BIN
mods/Fixed Vanilla Models & Textures/addons/UNISG Overhaul/gamedata/textures/act/isg/act_isg_merc_3.dds (Stored with Git LFS)
BIN
mods/Fixed Vanilla Models & Textures/addons/UNISG Overhaul/gamedata/textures/act/isg/act_isg_merc_3.dds (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,35 +0,0 @@
|
||||||
This is a small guide in case you want to modify some things for Glowsticks by yourself, such as to change the color.
|
|
||||||
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
HOW TO CHANGE THE COLOR.
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
|
|
||||||
1. Go to gamedata/configs/items/items and open up "items_glowstick.xml"
|
|
||||||
2. You will find various configs that start with "[glowstick_definition]" and a color, the one without any color in the name is the default green.
|
|
||||||
From here onwards, change the "color" and "color_r2" to whichever you like, the formula is simply a percentage from 0.0 to 1.0.
|
|
||||||
NOTE: Higher numbers are allowed, but these only add a white tint to the color.
|
|
||||||
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
HOW TO MAKE THE GLOWSTICKS EMIT SHADOWS.
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
|
|
||||||
1. Go to gamedata/scripts and open up "zz_glowstick_mcm.script"
|
|
||||||
2. Scroll down from there until you find "data.light_flags", which is roughly line 110.
|
|
||||||
Change the number 45 to 47.
|
|
||||||
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
NOTE TO ADDON AUTHORS REGARDING DEVICES AND DETECTORS
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
|
|
||||||
1. Open your device model in Blender, AXR Tools or OGF Data Changer.
|
|
||||||
2. Make sure the emissive part of your model uses the shader "models\selflight_det"
|
|
||||||
3. Save or re-export your model.
|
|
||||||
|
|
||||||
This way the device's screen won't emit any light once the batteries run out.
|
|
||||||
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
HOW TO CHANGE MOD SETTINGS WITHOUT MCM.
|
|
||||||
______________________________________________________________________________________________________________________________________________________________________________________________________
|
|
||||||
|
|
||||||
1. Go to gamedata/scripts and open up "zz_glowstick_mcm.script"
|
|
||||||
2. Change the settings at the top of the file to your liking.
|
|
|
@ -1,96 +0,0 @@
|
||||||
___________
|
|
||||||
DESCRIPTION
|
|
||||||
___________
|
|
||||||
|
|
||||||
This is a collaboration made by Lucy (r3zy) & Blackgrowl.
|
|
||||||
As the name should imply, this adds glowsticks into Anomaly. Some of the assets are taken from Dead Air, so all credits to them in that regard.
|
|
||||||
It's more than just glowsticks though; many changes have been made to make the Glowsticks more versatile and interesting.
|
|
||||||
How? Well, first of all, there's more than just one variety.
|
|
||||||
They will appear as a "Device", you can use them on hand or drop them. Should be perfect to light up areas that don't have a campfire near, as well.
|
|
||||||
Check out "DETAILS" for more information.
|
|
||||||
Also take a gander at the "MODDING GUIDE" if there is something you want to modify yourself from this mod, like the Glowstick color or how to enable the shadows.
|
|
||||||
|
|
||||||
___________
|
|
||||||
INSTALLATION
|
|
||||||
___________
|
|
||||||
|
|
||||||
Recommended to use Mod Organizer 2 for the FOMOD installer.
|
|
||||||
Otherwise simply extract the "gamedata" to your main Anomaly folder or install with JSGME. And install optional files from the "addons" folder.
|
|
||||||
Remember to clear the shader cache (checkbox in the launcher or delete the anomaly/appdata/shaders_cache folder).
|
|
||||||
|
|
||||||
NOTE: You cannot safely uninstall this mod, since it adds new item sections that remain in the savefile.
|
|
||||||
|
|
||||||
___________
|
|
||||||
PATCHES/ADDONS INFORMATION
|
|
||||||
___________
|
|
||||||
|
|
||||||
- Cr3pis' Icons. Changes the gritty icons into high-quality model-shaded ones.
|
|
||||||
- Briggs' Glowstick mesh. Replacer for the Dead Air models.
|
|
||||||
- Enhanced Shaders (and Color Grading) patch. Fixes glowsticks and screens turning dark if you don't have a device/pda equipped. Overwrite the base files.
|
|
||||||
- Pack of New Devices patch. Makes the device meshes use the correct screen shader.
|
|
||||||
|
|
||||||
___________
|
|
||||||
DETAILS
|
|
||||||
___________
|
|
||||||
|
|
||||||
VARIANTS:
|
|
||||||
- GREEN. The default variant, it has a range of 12 and is good all around.
|
|
||||||
- ORANGE. While offering just a slightly weaker range, about 10 metres, it provides a much more "natural" light.
|
|
||||||
- RED. While offering the weakest illumination, it also has the best range, more than 24 metres. Perfect for the underground or very dark places with no natural light.
|
|
||||||
- CYAN. While having a small range of 6, it offers the best illumination. Best used in the Underground to get surprised, can even be used in daytime to find hard-to-see objects and the like.
|
|
||||||
|
|
||||||
IMPORTANT INFO:
|
|
||||||
- You can press and HOLD the Use key (default "F") to throw the glowstick. (Can be changed to the grenade launcher key in AMCM or by editing the script)
|
|
||||||
- Glowsticks have their own "lifetime", each variants also have their own lasting time.
|
|
||||||
- You can still use a glowstick while aiming a pistol.
|
|
||||||
- CAREFUL! Glowsticks on the ground can be destroyed, in which case you can't use them anymore.
|
|
||||||
|
|
||||||
ACQUISITION:
|
|
||||||
- At new game start (If you have AMCM installed).
|
|
||||||
- From traders.
|
|
||||||
- May be found in some dead STALKERs.
|
|
||||||
- In stashes.
|
|
||||||
|
|
||||||
BONUS:
|
|
||||||
- If you have AMCM, you can make it so the flashlights flicker heavily when you're inside the Brain Scorcher or Miracle Machine while they are still active.
|
|
||||||
This makes Glowsticks a must, just for lore fun.
|
|
||||||
- Broken flashlight draw animation is fixed by this mod.
|
|
||||||
- Screens turning dark if you don't have a device/pda equipped is fixed by this mod.
|
|
||||||
|
|
||||||
___________
|
|
||||||
KNOWN ISSUES
|
|
||||||
___________
|
|
||||||
|
|
||||||
* Animations are a bit "wonky". If any animator wishes to re-animate this, you can go right ahead, you have our full support already.
|
|
||||||
* Glowsticks only wear down when dropped on the ground or equipped in your hand.
|
|
||||||
|
|
||||||
___________
|
|
||||||
COMPATIBILITY
|
|
||||||
___________
|
|
||||||
|
|
||||||
Mods that replace detectors/devices can safely overwrite this mod's meshes.
|
|
||||||
Shader fix won't work though unless the new devices use the "models\selflight_det" shader for their display/light.
|
|
||||||
There's a patch for Pack of New Devices included, otherwise check out the "MODDING GUIDE".
|
|
||||||
|
|
||||||
___________
|
|
||||||
COPYRIGHT/LICENSE
|
|
||||||
___________
|
|
||||||
|
|
||||||
There is none.
|
|
||||||
This is a mod taken from Dead Air, ported to Anomaly, only license that counts is the license Dead Air uses and especially GSCs.
|
|
||||||
(In short; do whatever you want, but don't go selling it anywhere or claiming it is your own creation)
|
|
||||||
The only thing requested is that you acknowledge (credit) the work Blackgrowl and Lucy did to port this into Anomaly.
|
|
||||||
|
|
||||||
___________
|
|
||||||
CREDITS
|
|
||||||
___________
|
|
||||||
|
|
||||||
Dead Air Team for the Glowstick.
|
|
||||||
Lucy for the script and stuff.
|
|
||||||
Blackgrowl for the asset help, including making new assets and art.
|
|
||||||
Thundervision for the Russian translation.
|
|
||||||
Cr3pis for the icons.
|
|
||||||
PYP for fixing smoothing issues on the glowstick mesh.
|
|
||||||
Briggs for the new optional glowstick model.
|
|
||||||
Arti for the trader autoinjeect script.
|
|
||||||
RavenAscendant for the monkey patch tutorial.
|
|
|
@ -1,310 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 0
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 8
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.072000, -0.172, 0.165500
|
|
||||||
hands_position_16x9 = -0.072000, -0.172, 0.165500
|
|
||||||
hands_orientation = 0.55, 2.39, 0.1499993
|
|
||||||
hands_orientation_16x9 = 0.55, 2.39, 0.1499993
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0795, 0.0745, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0795, 0.0745, -0.265
|
|
||||||
aim_hud_offset_rot = 0.0339, 0.0088, -0.0045
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0339, 0.0088, -0.0045
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle_2, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle_2, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 2
|
|
||||||
inv_grid_y = 2
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.07895, 0.06025, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.07895, 0.06025, -0.265
|
|
||||||
aim_hud_offset_rot = 0.038, 0.0075, -0.0018
|
|
||||||
aim_hud_offset_rot_16x9 = 0.038, 0.0075, -0.0018
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 4
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.08025, 0.0565, -0.235
|
|
||||||
aim_hud_offset_pos_16x9 = -0.08025, 0.0565, -0.235
|
|
||||||
aim_hud_offset_rot = 0.0485, 0.01, -0.004
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0485, 0.01, -0.004
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 0
|
|
||||||
inv_grid_y = 2
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.081, 0.0634, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.081, 0.0634, -0.265
|
|
||||||
aim_hud_offset_rot = 0.0455, 0.0111, 0.0
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0455, 0.0111, 0.0
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 2
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.07925, 0.0525, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.07925, 0.0525, -0.265
|
|
||||||
aim_hud_offset_rot = 0.048, 0.008, -0.004
|
|
||||||
aim_hud_offset_rot_16x9 = 0.048, 0.008, -0.004
|
|
|
@ -1,303 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
inv_grid_x = 48
|
|
||||||
inv_grid_y = 61
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 7
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.072000, -0.172, 0.165500
|
|
||||||
hands_position_16x9 = -0.072000, -0.172, 0.165500
|
|
||||||
hands_orientation = 0.55, 2.39, 0.1499993
|
|
||||||
hands_orientation_16x9 = 0.55, 2.39, 0.1499993
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0795, 0.0745, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0795, 0.0745, -0.265
|
|
||||||
aim_hud_offset_rot = 0.0339, 0.0088, -0.0045
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0339, 0.0088, -0.0045
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle_2, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle_2, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
1icon_layer = ac10632
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -10
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.07895, 0.06025, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.07895, 0.06025, -0.265
|
|
||||||
aim_hud_offset_rot = 0.038, 0.0075, -0.0018
|
|
||||||
aim_hud_offset_rot_16x9 = 0.038, 0.0075, -0.0018
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
1icon_layer = acog
|
|
||||||
1icon_layer_x = 10
|
|
||||||
1icon_layer_y = -9
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.08025, 0.0565, -0.235
|
|
||||||
aim_hud_offset_pos_16x9 = -0.08025, 0.0565, -0.235
|
|
||||||
aim_hud_offset_rot = 0.0485, 0.01, -0.004
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0485, 0.01, -0.004
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
1icon_layer = c-more
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.081, 0.0634, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.081, 0.0634, -0.265
|
|
||||||
aim_hud_offset_rot = 0.0455, 0.0111, 0.0
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0455, 0.0111, 0.0
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
1icon_layer = eot
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.07925, 0.0525, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.07925, 0.0525, -0.265
|
|
||||||
aim_hud_offset_rot = 0.048, 0.008, -0.004
|
|
||||||
aim_hud_offset_rot_16x9 = 0.048, 0.008, -0.004
|
|
|
@ -1,306 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
inv_grid_x = 48
|
|
||||||
inv_grid_y = 61
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 7
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
hud_fov = 0.70
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.082, -0.14, -0.11
|
|
||||||
hands_position_16x9 = -0.082, -0.14, -0.11
|
|
||||||
hands_orientation = 0.0, 0.0, -2
|
|
||||||
hands_orientation_16x9 = 0.0, 0.0, -2
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_rot = -0.0072,-0.0007,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = -0.0072,-0.0007,-0.0404
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle_2, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle_2, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
1icon_layer = ac10632
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -10
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_rot = 0.019,-0.0016,-0.040
|
|
||||||
aim_hud_offset_rot_16x9 = 0.019,-0.0016,-0.040
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
1icon_layer = acog
|
|
||||||
1icon_layer_x = 10
|
|
||||||
1icon_layer_y = -9
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
scope_texture = wpn_crosshair_acog
|
|
||||||
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_rot = 0.007,0.0002,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.007,0.0002,-0.0404
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
1icon_layer = c-more
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_rot = 0.0120,0.0,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0120,0.0,-0.0404
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
1icon_layer = eot
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_rot = 0.005,0.0,-0.0425
|
|
||||||
aim_hud_offset_rot_16x9 = 0.005,0.0,-0.0425
|
|
|
@ -1,4 +0,0 @@
|
||||||
this is a patch if you are using
|
|
||||||
https://www.moddb.com/mods/stalker-anomaly/addons/position-and-view-v21-release
|
|
||||||
|
|
||||||
copy and paste over gamedata after position and view
|
|
|
@ -1,313 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 0
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 8
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
hud_fov = 0.70
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.082, -0.14, -0.11
|
|
||||||
hands_position_16x9 = -0.082, -0.14, -0.11
|
|
||||||
hands_orientation = 0.0, 0.0, -2
|
|
||||||
hands_orientation_16x9 = 0.0, 0.0, -2
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_rot = -0.0072,-0.0007,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = -0.0072,-0.0007,-0.0404
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle_2, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle_2, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 2
|
|
||||||
inv_grid_y = 2
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_rot = 0.019,-0.0016,-0.040
|
|
||||||
aim_hud_offset_rot_16x9 = 0.019,-0.0016,-0.040
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 4
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
scope_texture = wpn_crosshair_acog
|
|
||||||
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_rot = 0.007,0.0002,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.007,0.0002,-0.0404
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 0
|
|
||||||
inv_grid_y = 2
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_rot = 0.0120,0.0,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0120,0.0,-0.0404
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 2
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_rot = 0.005,0.0,-0.0425
|
|
||||||
aim_hud_offset_rot_16x9 = 0.005,0.0,-0.0425
|
|
|
@ -1,322 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
inv_grid_x = 48
|
|
||||||
inv_grid_y = 61
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 7
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.072000, -0.172, 0.165500
|
|
||||||
hands_position_16x9 = -0.072000, -0.172, 0.165500
|
|
||||||
hands_orientation = 0.55, 2.39, 0.1499993
|
|
||||||
hands_orientation_16x9 = 0.55, 2.39, 0.1499993
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0795, 0.0745, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0795, 0.0745, -0.265
|
|
||||||
aim_hud_offset_rot = 0.0339, 0.0088, -0.0045
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0339, 0.0088, -0.0045
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster
|
|
||||||
anm_idle = lancew_mp7_idle
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint
|
|
||||||
anm_reload = lancew_mp7_reload, reload
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
anm_show = lancew_mp7_draw
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
1icon_layer = ac10632
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -10
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.07895, 0.06025, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.07895, 0.06025, -0.265
|
|
||||||
aim_hud_offset_rot = 0.038, 0.0075, -0.0018
|
|
||||||
aim_hud_offset_rot_16x9 = 0.038, 0.0075, -0.0018
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
1icon_layer = acog
|
|
||||||
1icon_layer_x = 10
|
|
||||||
1icon_layer_y = -9
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.08025, 0.0565, -0.235
|
|
||||||
aim_hud_offset_pos_16x9 = -0.08025, 0.0565, -0.235
|
|
||||||
aim_hud_offset_rot = 0.0485, 0.01, -0.004
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0485, 0.01, -0.004
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
1icon_layer = c-more
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.081, 0.0634, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.081, 0.0634, -0.265
|
|
||||||
aim_hud_offset_rot = 0.0455, 0.0111, 0.0
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0455, 0.0111, 0.0
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
1icon_layer = eot
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.07925, 0.0525, -0.265
|
|
||||||
aim_hud_offset_pos_16x9 = -0.07925, 0.0525, -0.265
|
|
||||||
aim_hud_offset_rot = 0.048, 0.008, -0.004
|
|
||||||
aim_hud_offset_rot_16x9 = 0.048, 0.008, -0.004
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
|
@ -1,325 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
inv_grid_x = 48
|
|
||||||
inv_grid_y = 61
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 7
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
hud_fov = 0.70
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.082, -0.14, -0.11
|
|
||||||
hands_position_16x9 = -0.082, -0.14, -0.11
|
|
||||||
hands_orientation = 0.0, 0.0, -2
|
|
||||||
hands_orientation_16x9 = 0.0, 0.0, -2
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_rot = -0.0072,-0.0007,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = -0.0072,-0.0007,-0.0404
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster
|
|
||||||
anm_idle = lancew_mp7_idle
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint
|
|
||||||
anm_reload = lancew_mp7_reload, reload
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
anm_show = lancew_mp7_draw
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
1icon_layer = ac10632
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -10
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_rot = 0.019,-0.0016,-0.040
|
|
||||||
aim_hud_offset_rot_16x9 = 0.019,-0.0016,-0.040
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
1icon_layer = acog
|
|
||||||
1icon_layer_x = 10
|
|
||||||
1icon_layer_y = -9
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
scope_texture = wpn_crosshair_acog
|
|
||||||
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_rot = 0.007,0.0002,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.007,0.0002,-0.0404
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
1icon_layer = c-more
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_rot = 0.0120,0.0,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0120,0.0,-0.0404
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
1icon_layer = eot
|
|
||||||
1icon_layer_x = 16
|
|
||||||
1icon_layer_y = -6
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_rot = 0.005,0.0,-0.0425
|
|
||||||
aim_hud_offset_rot_16x9 = 0.005,0.0,-0.0425
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
this is a patch if you are using
|
|
||||||
https://www.moddb.com/mods/stalker-anomaly/addons/position-and-view-v21-release
|
|
||||||
|
|
||||||
copy and paste over gamedata after position and view
|
|
|
@ -1,332 +0,0 @@
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7]:identity_immunities,weapon_probability,default_weapon_params,wpn_mp7_sounds
|
|
||||||
GroupControlSection = spawn_group
|
|
||||||
$npc = on
|
|
||||||
$prefetch = 8
|
|
||||||
$spawn = "weapons\mp5"
|
|
||||||
scheduled = off
|
|
||||||
cform = skeleton
|
|
||||||
parent_section = wpn_mp7
|
|
||||||
|
|
||||||
class = WP_LR300
|
|
||||||
slot = 2
|
|
||||||
animation_slot = 8
|
|
||||||
ef_main_weapon_type = 2
|
|
||||||
ef_weapon_type = 6
|
|
||||||
hand_dependence = 1
|
|
||||||
single_handed = 0
|
|
||||||
|
|
||||||
default_to_ruck = false
|
|
||||||
sprint_allowed = true
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 0
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_grid_height = 2
|
|
||||||
inv_grid_width = 2
|
|
||||||
|
|
||||||
inv_name = st_wpn_mp7
|
|
||||||
inv_name_short = st_wpn_mp7
|
|
||||||
description = st_wpn_mp7_descr
|
|
||||||
|
|
||||||
kind = w_smg ;w_pistol
|
|
||||||
inv_weight = 2.1
|
|
||||||
cost = 23300
|
|
||||||
repair_type = pistol
|
|
||||||
weapon_class = assault_rifle
|
|
||||||
|
|
||||||
hud = wpn_mp7_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7.ogf
|
|
||||||
position = -0.015, -0.120, -0.010
|
|
||||||
orientation = 3, -6, -1
|
|
||||||
|
|
||||||
fire_point = 0.0, 0.155, 0.225
|
|
||||||
fire_point2 = 0.0, 0.188, 0.392
|
|
||||||
strap_bone0 = bip01_spine2
|
|
||||||
strap_bone1 = bip01_spine1
|
|
||||||
strap_position = -0.16, -0.36, 0.15
|
|
||||||
strap_orientation = -10, -5, 10
|
|
||||||
ph_mass = 3
|
|
||||||
|
|
||||||
flame_particles = weapons\generic_weapon05
|
|
||||||
smoke_particles = weapons\generic_shoot_00
|
|
||||||
grenade_flame_particles = weapons\generic_weapon01
|
|
||||||
|
|
||||||
shell_point = 0.0, 0.125, -0.050
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_particles = weapons\9x19
|
|
||||||
|
|
||||||
light_disabled = false
|
|
||||||
light_color = 0.6, 0.5, 0.3
|
|
||||||
light_range = 5
|
|
||||||
light_time = 0.2
|
|
||||||
light_var_color = 0.05
|
|
||||||
light_var_range = 0.5
|
|
||||||
|
|
||||||
upgrades = up_gr_firstab_mp5, up_gr_seconab_mp5, up_gr_thirdab_mp5, up_gr_fourtab_mp5, up_gr_fifthab_mp5
|
|
||||||
installed_upgrades =
|
|
||||||
upgrade_scheme = upgrade_scheme_mp5_nimble
|
|
||||||
upgr_icon_x = 1900
|
|
||||||
upgr_icon_y = 1350
|
|
||||||
upgr_icon_width = 150
|
|
||||||
upgr_icon_height = 100
|
|
||||||
|
|
||||||
fire_modes = 1, -1
|
|
||||||
ammo_class = ammo_9x19_fmj, ammo_9x19_fmj_bad, ammo_9x19_fmj_verybad, ammo_9x19_pbp, ammo_9x19_pbp_bad, ammo_9x19_pbp_verybad, ammo_9x19_ap, ammo_9x19_ap_bad, ammo_9x19_ap_verybad
|
|
||||||
ammo_elapsed = 40
|
|
||||||
ammo_mag_size = 40
|
|
||||||
startup_ammo = 90
|
|
||||||
|
|
||||||
scopes = acog, eot, ac10632, c-more
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 0
|
|
||||||
|
|
||||||
silencer_name = wpn_sil_9mm
|
|
||||||
silencer_status = 2
|
|
||||||
silencer_x = 85
|
|
||||||
silencer_y = 8
|
|
||||||
silencer_light_color = 0.6, 0.5, 0.3
|
|
||||||
silencer_light_range = 0.01
|
|
||||||
silencer_light_time = 0.2
|
|
||||||
silencer_light_var_color = 0.05
|
|
||||||
silencer_light_var_range = 0.5
|
|
||||||
silencer_smoke_particles = weapons\generic_shoot_00
|
|
||||||
|
|
||||||
grenade_class = ammo_vog-25, ammo_vog-25_bad, ammo_vog-25_verybad
|
|
||||||
grenade_launcher_name = wpn_addon_grenade_launcher
|
|
||||||
grenade_launcher_status = 0
|
|
||||||
grenade_launcher_x = 126
|
|
||||||
grenade_launcher_y = 24
|
|
||||||
launch_speed = 0
|
|
||||||
|
|
||||||
hit_impulse = 50
|
|
||||||
hit_power = 0.47, 0.47, 0.47, 0.47
|
|
||||||
hit_type = fire_wound
|
|
||||||
fire_distance = 400
|
|
||||||
bullet_speed = 400
|
|
||||||
rpm = 950
|
|
||||||
rpm_empty_click = 200
|
|
||||||
ap_modifier = 1.1
|
|
||||||
|
|
||||||
use_aim_bullet = false
|
|
||||||
time_to_aim = 0.0 ; 3.0
|
|
||||||
zoom_dof = 0.5, 1.0, 180
|
|
||||||
zoom_enabled = true
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
reload_dof = 0.0, 0.5, 5, 2
|
|
||||||
control_inertion_factor = 1.0f
|
|
||||||
crosshair_inertion = 4.35
|
|
||||||
fire_dispersion_base = 0.24
|
|
||||||
fire_dispersion_condition_factor = 0.001
|
|
||||||
inertion_origin_aim_offset = -0.03
|
|
||||||
inertion_origin_offset = -0.05
|
|
||||||
inertion_tendto_aim_speed = 8
|
|
||||||
inertion_tendto_speed = 5
|
|
||||||
|
|
||||||
misfire_probability = 0.005
|
|
||||||
misfire_start_condition = 0.7 ; 0.8
|
|
||||||
misfire_start_prob = 0.005
|
|
||||||
misfire_end_condition = 0.1
|
|
||||||
misfire_end_prob = 0.09
|
|
||||||
|
|
||||||
condition_queue_shot_dec = 0.0014
|
|
||||||
condition_shot_dec = 0.0012
|
|
||||||
|
|
||||||
cam_return = 0
|
|
||||||
cam_relax_speed = 5
|
|
||||||
cam_dispersion = 0.8
|
|
||||||
cam_dispersion_frac = 1.0
|
|
||||||
cam_dispersion_inc = 0.0475
|
|
||||||
cam_max_angle = 50.0
|
|
||||||
cam_max_angle_horz = 50.0
|
|
||||||
cam_step_angle_horz = 1.5
|
|
||||||
zoom_cam_relax_speed = 10
|
|
||||||
zoom_cam_dispersion = 0.55
|
|
||||||
zoom_cam_dispersion_frac = 1.0
|
|
||||||
zoom_cam_dispersion_inc = 0.0375
|
|
||||||
zoom_cam_max_angle = 50.0
|
|
||||||
zoom_cam_max_angle_horz = 50.0
|
|
||||||
zoom_cam_step_angle_horz = 1.5
|
|
||||||
|
|
||||||
PDM_disp_accel_factor = 1.5
|
|
||||||
PDM_disp_base = 0.5
|
|
||||||
PDM_disp_crouch = 1.0
|
|
||||||
PDM_disp_crouch_no_acc = 1.0
|
|
||||||
PDM_disp_vel_factor = 1.5
|
|
||||||
|
|
||||||
cam_relax_speed_ai = 120.75
|
|
||||||
zoom_cam_relax_speed_ai = 120.75
|
|
||||||
holder_fov_modifier = 1.0
|
|
||||||
holder_range_modifier = 1.0
|
|
||||||
min_radius = 0
|
|
||||||
max_radius = 500
|
|
||||||
hit_probability_gd_novice = 1.00
|
|
||||||
hit_probability_gd_stalker = 1.00
|
|
||||||
hit_probability_gd_veteran = 1.00
|
|
||||||
hit_probability_gd_master = 1.00
|
|
||||||
|
|
||||||
kill_msg_x = 72
|
|
||||||
kill_msg_y = 82
|
|
||||||
kill_msg_width = 56
|
|
||||||
kill_msg_height = 23
|
|
||||||
|
|
||||||
hud_fov = 0.70
|
|
||||||
|
|
||||||
[wpn_mp7_hud]:hud_base
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_hud.ogf
|
|
||||||
attach_place_idx = 0
|
|
||||||
zoom_hide_crosshair = true
|
|
||||||
|
|
||||||
item_position = 0, 0, 0
|
|
||||||
item_orientation = 0, 0, 0
|
|
||||||
|
|
||||||
hands_position = -0.082, -0.14, -0.11
|
|
||||||
hands_position_16x9 = -0.082, -0.14, -0.11
|
|
||||||
hands_orientation = 0.0, 0.0, -2
|
|
||||||
hands_orientation_16x9 = 0.0, 0.0, -2
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.0345,-0.05
|
|
||||||
aim_hud_offset_rot = -0.0072,-0.0007,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = -0.0072,-0.0007,-0.0404
|
|
||||||
|
|
||||||
gl_hud_offset_pos = 0, 0, 0
|
|
||||||
gl_hud_offset_pos_16x9 = 0, 0, 0
|
|
||||||
gl_hud_offset_rot = 0, 0, 0
|
|
||||||
gl_hud_offset_rot_16x9 = 0, 0, 0
|
|
||||||
|
|
||||||
lean_hud_offset_pos = 0, 0, 0
|
|
||||||
lean_hud_offset_rot = 0, 0, 0
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster
|
|
||||||
anm_idle = lancew_mp7_idle
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_idle_aim_moving = lancew_mp7_moving, idle, 0.75
|
|
||||||
anm_idle_aim_moving_crouch = lancew_mp7_moving, idle, 0.7
|
|
||||||
anm_idle_moving = lancew_mp7_moving
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint
|
|
||||||
anm_reload = lancew_mp7_reload, reload
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
anm_show = lancew_mp7_draw
|
|
||||||
|
|
||||||
shell_bone = wpn_body
|
|
||||||
shell_dir = 0.0, 1.0, 0.0
|
|
||||||
shell_point = 0.02, 0.06, -0.019
|
|
||||||
|
|
||||||
fire_bone = wpn_body
|
|
||||||
fire_bone2 = wpn_body
|
|
||||||
fire_point = 0, 0.037504, 0.269238
|
|
||||||
fire_point2 = 0.0, -0.029, 0.525
|
|
||||||
|
|
||||||
freelook_z_offset_mul = 0.3
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_ac10632]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 2
|
|
||||||
inv_grid_y = 2
|
|
||||||
|
|
||||||
inv_weight = 2.215
|
|
||||||
|
|
||||||
hud = wpn_mp7_ac10632_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_ac10632
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_ac10632_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_ac10632_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0630,0.025,-0.06
|
|
||||||
aim_hud_offset_rot = 0.019,-0.0016,-0.040
|
|
||||||
aim_hud_offset_rot_16x9 = 0.019,-0.0016,-0.040
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_acog]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 4
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_weight = 2.45
|
|
||||||
|
|
||||||
hud = wpn_mp7_acog_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_acog
|
|
||||||
|
|
||||||
scope_status = 0
|
|
||||||
scope_zoom_factor = 20
|
|
||||||
scope_texture = wpn_crosshair_acog
|
|
||||||
|
|
||||||
|
|
||||||
zoom_rotate_time = 0.25
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_acog_hud]:wpn_mp7_hud,hud_low_interia
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_acog_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0635,0.0125,-0.05
|
|
||||||
aim_hud_offset_rot = 0.007,0.0002,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.007,0.0002,-0.0404
|
|
||||||
|
|
||||||
anm_hide = lancew_mp7_holster, idle_2
|
|
||||||
anm_idle = lancew_mp7_idle, idle_2
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim_2
|
|
||||||
anm_idle_moving = lancew_mp7_moving, idle_2
|
|
||||||
anm_idle_sprint = lancew_mp7_sprint, idle_2
|
|
||||||
anm_reload = lancew_mp7_reload, reload_2
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot_2
|
|
||||||
anm_show = lancew_mp7_draw, idle_2
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_c-more]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 0
|
|
||||||
inv_grid_y = 2
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_c-more_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_c-more
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_c-more_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_c-more_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.0633,0.0225,-0.06
|
|
||||||
aim_hud_offset_rot = 0.0120,0.0,-0.0404
|
|
||||||
aim_hud_offset_rot_16x9 = 0.0120,0.0,-0.0404
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------------------------
|
|
||||||
[wpn_mp7_eot]:wpn_mp7
|
|
||||||
|
|
||||||
icons_texture = ui\mp7_icons
|
|
||||||
inv_grid_x = 2
|
|
||||||
inv_grid_y = 0
|
|
||||||
|
|
||||||
inv_weight = 2.4
|
|
||||||
|
|
||||||
hud = wpn_mp7_eot_hud
|
|
||||||
visual = dynamics\weapons\wpn_mp7\wpn_mp7_eotech
|
|
||||||
|
|
||||||
|
|
||||||
[wpn_mp7_eot_hud]:wpn_mp7_hud
|
|
||||||
item_visual = anomaly_weapons\wpn_mp7\wpn_mp7_eotech_hud.ogf
|
|
||||||
|
|
||||||
aim_hud_offset_pos = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_pos_16x9 = -0.06335,0.008,-0.06
|
|
||||||
aim_hud_offset_rot = 0.005,0.0,-0.0425
|
|
||||||
aim_hud_offset_rot_16x9 = 0.005,0.0,-0.0425
|
|
||||||
|
|
||||||
anm_idle_aim = lancew_mp7_idle_aim, idle_aim
|
|
||||||
anm_shots = lancew_mp7_shoot, shoot
|
|
||||||
|
|
|
@ -1,451 +0,0 @@
|
||||||
local AlwaysDetectDistance, StateWalk, StateRun, MonsterLootCommunities
|
|
||||||
|
|
||||||
function xr_corpse_detection.evaluator_corpse:evaluate()
|
|
||||||
if not (self.object:alive()) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (xr_danger.has_danger(self.object)) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (xr_conditions.surge_started() == true) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local npc = self.object
|
|
||||||
if (IsWounded(npc) or npc:best_enemy())then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local st = db.storage[npc:id()]
|
|
||||||
if (st) and ((st.active_scheme == "camper") or (st.help_wounded and st.help_wounded.selected_id ~= nil) or (st.gather_items and st.gather_items.selected_id ~= nil)) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
self.a.analse_mode = xr_logic.pick_section_from_condlist(db.actor, self.object, self.a.mutant_corpse_analysis)
|
|
||||||
self.a.enabled = xr_logic.pick_section_from_condlist(db.actor, self.object, self.a.corpse_detection_enabled)
|
|
||||||
if (self.a.analse_mode == "false" and self.a.enabled == "false") then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (self:find_valid_target()) then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local rank_coeffs_table = {
|
|
||||||
novice = 20,
|
|
||||||
trainee = 20,
|
|
||||||
experienced = 25,
|
|
||||||
professional = 35,
|
|
||||||
veteran = 40,
|
|
||||||
expert = 50,
|
|
||||||
master = 55,
|
|
||||||
legend = 60
|
|
||||||
}
|
|
||||||
|
|
||||||
function xr_corpse_detection.get_all_from_corpse(npc)
|
|
||||||
if not (db.actor) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local id = npc:id()
|
|
||||||
local st = db.storage[id] and db.storage[id].corpse_detection
|
|
||||||
|
|
||||||
-- sanity check, this should never happen
|
|
||||||
if not (st) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local corpse_npc_id = st.selected_corpse_id
|
|
||||||
local corpse_npc = corpse_npc_id and db.storage[corpse_npc_id] and db.storage[corpse_npc_id].object or corpse_npc_id and level.object_by_id(corpse_npc_id)
|
|
||||||
|
|
||||||
-- reset all scheme dependent variables
|
|
||||||
if (st.selected_corpse_id) then
|
|
||||||
if (db.storage[st.selected_corpse_id]) then
|
|
||||||
db.storage[st.selected_corpse_id].corpse_already_selected = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
st.__stimer = nil
|
|
||||||
st.mutant_analysed = nil
|
|
||||||
st.vertex_id = nil
|
|
||||||
st.vertex_position = nil
|
|
||||||
st.selected_corpse_id = nil
|
|
||||||
st.state = nil
|
|
||||||
st.index = 1
|
|
||||||
st.nearest_corpse_dist = nil
|
|
||||||
st.nearest_corpse_vertex = nil
|
|
||||||
st.nearest_corpse_position = nil
|
|
||||||
st.nearest_id = nil
|
|
||||||
|
|
||||||
if (corpse_npc == nil or corpse_npc:alive() == true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if not(IsStalker(corpse_npc)) then
|
|
||||||
|
|
||||||
if (get_story_object("yan_ecolog_semenov")) then
|
|
||||||
local need = load_var(db.actor,"yan_ecolog_semenov_task_1_tissue_need") or 0
|
|
||||||
if (need > 0) then
|
|
||||||
local count = load_var(db.actor,"yan_ecolog_semenov_task_1_tissue_count") or 0
|
|
||||||
save_var(db.actor,"yan_ecolog_semenov_task_1_tissue_count",count + 1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local looted = se_load_var(corpse_npc:id(),corpse_npc:name(),"looted") == "true"
|
|
||||||
if (not looted) and ui_mutant_loot then
|
|
||||||
local loot = {}
|
|
||||||
ui_mutant_loot.loot_mutant(corpse_npc:section(),corpse_npc:clsid(),loot,npc,nil,corpse_npc)
|
|
||||||
|
|
||||||
local is_there_loot
|
|
||||||
for sec,t in pairs(loot) do
|
|
||||||
is_there_loot = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
|
|
||||||
if (is_there_loot) then
|
|
||||||
xr_sound.set_sound_play(id,"corpse_loot_good")
|
|
||||||
else
|
|
||||||
xr_sound.set_sound_play(id,"corpse_loot_bad")
|
|
||||||
end
|
|
||||||
se_save_var(corpse_npc:id(),corpse_npc:name(),"looted","true")
|
|
||||||
game_statistics.increment_npc_statistic(npc,"field_dressings")
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local item_value = 0
|
|
||||||
local npc_rank = ranks.get_obj_rank_name(npc)
|
|
||||||
local inv_weight = npc:get_total_weight()
|
|
||||||
local max_weight = rank_coeffs_table[npc_rank] / 1.5
|
|
||||||
local function get_item(corpse,item)
|
|
||||||
if (xr_corpse_detection.lootable_table[item:section()] ~= nil) then
|
|
||||||
if (IsItem("money", item:section())) then
|
|
||||||
alife_release(item)
|
|
||||||
else
|
|
||||||
item_value = item:cost() * item:condition() / (rank_coeffs_table[npc_rank] * (item:weight() + 0.1))
|
|
||||||
|
|
||||||
if (inv_weight + item:weight() > max_weight) then
|
|
||||||
if (not IsArtefact(item)) then
|
|
||||||
item_value = item_value / inv_weight
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (item_value > 99 or math.random(item_value) > 5) then
|
|
||||||
corpse:transfer_item(item,npc)
|
|
||||||
inv_weight = inv_weight + item:weight()
|
|
||||||
SendScriptCallback("npc_on_get_all_from_corpse",npc,corpse_npc,item,xr_corpse_detection.lootable_table[item:section()])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
corpse_npc:iterate_inventory(get_item,corpse_npc)
|
|
||||||
|
|
||||||
if item_money then
|
|
||||||
item_money.npc_on_loot_money(npc, corpse_npc)
|
|
||||||
end
|
|
||||||
|
|
||||||
if (item_value > rank_coeffs_table[npc_rank] * 10) then
|
|
||||||
xr_sound.set_sound_play(id,"corpse_loot_good")
|
|
||||||
elseif (math.random(1,100)/100 < 0.5) then
|
|
||||||
xr_sound.set_sound_play(id,"corpse_loot_bad")
|
|
||||||
end
|
|
||||||
|
|
||||||
local count = load_var(npc,"s_loot_count") or 0
|
|
||||||
if (count >= 255) then
|
|
||||||
count = 254
|
|
||||||
end
|
|
||||||
save_var(npc,"s_loot_count",count+1)
|
|
||||||
|
|
||||||
game_statistics.increment_npc_statistic(npc,"corpse_looted")
|
|
||||||
se_save_var(corpse_npc:id(),corpse_npc:name(),npc:id(),"true")
|
|
||||||
end
|
|
||||||
|
|
||||||
function xr_corpse_detection.evaluator_corpse:find_valid_target()
|
|
||||||
if (self.a.cstackprevent) then
|
|
||||||
printf("C Stack Overflow Prevention: warning xr_corpse_detection scheme making repeated calls without return; save now and reload!")
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (self.a.selected_corpse_id) then -- looting process
|
|
||||||
local corpse = db.storage[self.a.selected_corpse_id] and db.storage[self.a.selected_corpse_id].object or level.object_by_id(self.a.selected_corpse_id)
|
|
||||||
local state = state_mgr.get_state(self.object)
|
|
||||||
|
|
||||||
-- Code demonized - add check for looting state so the npc wont stop looting if actor is near a corpse
|
|
||||||
if corpse and (state == "search_corpse" or state == "field_dress" or state == "scaner_crouch" or not xr_corpse_detection.near_actor(corpse)) then
|
|
||||||
return true
|
|
||||||
elseif (db.storage[self.a.selected_corpse_id]) then
|
|
||||||
db.storage[self.a.selected_corpse_id].corpse_already_selected = nil
|
|
||||||
end
|
|
||||||
-- code end
|
|
||||||
end
|
|
||||||
|
|
||||||
local tg = time_global()
|
|
||||||
self.a.__dtimer = not self.a.__dtimer and tg + 250 or self.a.__dtimer
|
|
||||||
if (tg < self.a.__dtimer) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
self.a.__dtimer = nil
|
|
||||||
|
|
||||||
if not (self.a.index) then
|
|
||||||
self.a.index = 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if not (self.a.memory) then
|
|
||||||
self.a.memory = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local npc = self.object
|
|
||||||
|
|
||||||
local size = #self.a.memory
|
|
||||||
if (size == 0) then
|
|
||||||
self.a.cstackprevent = true
|
|
||||||
|
|
||||||
for o in npc:memory_visible_objects() do
|
|
||||||
local obj = o and o:object()
|
|
||||||
if (obj and (IsStalker(obj) or IsMonster(obj)) and obj:alive() ~= true and not xr_corpse_detection.near_actor(obj)) then
|
|
||||||
size = size + 1
|
|
||||||
self.a.memory[size] = obj:id()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
self.a.cstackprevent = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
if (size == 0 or self.a.index > size) then
|
|
||||||
if (self.a.nearest_id and db.storage[self.a.nearest_id] and db.storage[self.a.nearest_id].corpse_already_selected == nil) then
|
|
||||||
if (self.a.selected_corpse_id and db.storage[self.a.selected_corpse_id]) then
|
|
||||||
db.storage[self.a.selected_corpse_id].corpse_already_selected = nil
|
|
||||||
end
|
|
||||||
self.a.vertex_id = self.a.nearest_corpse_vertex
|
|
||||||
self.a.vertex_position = self.a.nearest_corpse_position
|
|
||||||
self.a.selected_corpse_id = self.a.nearest_id
|
|
||||||
self.a.state = self.a.nearest_state
|
|
||||||
|
|
||||||
db.storage[self.a.selected_corpse_id].corpse_already_selected = npc:id() -- current looter
|
|
||||||
|
|
||||||
self.a.index = 1
|
|
||||||
self.a.nearest_corpse_dist = nil
|
|
||||||
self.a.nearest_corpse_vertex = nil
|
|
||||||
self.a.nearest_corpse_position = nil
|
|
||||||
self.a.nearest_id = nil
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
self.a.index = 1
|
|
||||||
self.a.nearest_corpse_dist = nil
|
|
||||||
self.a.nearest_corpse_vertex = nil
|
|
||||||
self.a.nearest_corpse_position = nil
|
|
||||||
self.a.nearest_id = nil
|
|
||||||
empty_table(self.a.memory)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local id = self.a.memory[self.a.index]
|
|
||||||
local corpse_npc = id and db.storage[id] and db.storage[id].object
|
|
||||||
|
|
||||||
if (corpse_npc and corpse_npc:alive() ~= true and db.storage[id] and not db.storage[self.a.selected_corpse_id] and not se_load_var(corpse_npc:id(),corpse_npc:name(),npc:id())) then
|
|
||||||
if (db.storage[id].corpse_already_selected == nil) then
|
|
||||||
local is_stalker = IsStalker(corpse_npc)
|
|
||||||
local can_loot_mutants = not is_stalker and not se_load_var(corpse_npc:id(),corpse_npc:name(),"looted") and (self.a.analse_mode == "true" or self.a.enabled == "true" and MonsterLootCommunities[character_community(npc)])
|
|
||||||
|
|
||||||
if (self.a.enabled == "true" and is_stalker or can_loot_mutants) then
|
|
||||||
local corpse_pos = utils_obj.safe_bone_pos(corpse_npc,"bip01_spine")
|
|
||||||
local dist = npc:position():distance_to_sqr(corpse_pos)
|
|
||||||
|
|
||||||
if (dist < AlwaysDetectDistance) and (self.a.nearest_corpse_dist == nil or dist <= self.a.nearest_corpse_dist) then
|
|
||||||
local corpse_vertex = level.vertex_id(corpse_pos)
|
|
||||||
if level.vertex_position(corpse_vertex):distance_to_sqr(corpse_pos) > 16 then
|
|
||||||
corpse_vertex = corpse_npc:level_vertex_id()
|
|
||||||
end
|
|
||||||
if (npc:accessible(corpse_vertex) and level.vertex_position(corpse_vertex):distance_to_sqr(corpse_pos) <= 15) then
|
|
||||||
self.a.nearest_corpse_dist = dist
|
|
||||||
self.a.nearest_corpse_vertex = corpse_vertex
|
|
||||||
self.a.nearest_corpse_position = corpse_pos
|
|
||||||
self.a.nearest_id = id
|
|
||||||
self.a.nearest_state = dist < math.random(5,30) and StateWalk or StateRun
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif math.random(4) > 1 then
|
|
||||||
se_save_var(corpse_npc:id(),corpse_npc:name(),npc:id(),"true")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
self.a.index = self.a.index + 1
|
|
||||||
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
function xr_corpse_detection.on_game_start()
|
|
||||||
local ini = ini_file("ai_tweaks\\xr_corpse_detection.ltx")
|
|
||||||
AlwaysDetectDistance = 1500
|
|
||||||
StateWalk = ini:r_string_ex("settings","state_walk") or "walk_noweap"
|
|
||||||
StateRun = ini:r_string_ex("settings","state_run") or "rush"
|
|
||||||
MonsterLootCommunities = utils_data.collect_section(ini,"loot_mutant_communities",true)
|
|
||||||
xr_corpse_detection.lootable_table = xr_corpse_detection.get_loot_table(ini)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- not used
|
|
||||||
function xr_corpse_detection.has_valuable_loot() end
|
|
||||||
function xr_corpse_detection.set_valuable_loot() end
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
local Items = {}
|
|
||||||
|
|
||||||
function xr_gather_items.eva_gather_itm:find_valid_item()
|
|
||||||
if (self.st.cstackprevent) then
|
|
||||||
printf("C Stack Overflow Prevention: warning xr_gather_items scheme making repeated calls without return; save now and reload!")
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (self.st.selected_id) then
|
|
||||||
local se_itm = self.st.selected_id ~= 0 and self.st.selected_id ~= 65535 and alife_object(self.st.selected_id)
|
|
||||||
if (se_itm and se_itm.parent_id == 65535) then
|
|
||||||
local itm = level.object_by_id(se_itm.id)
|
|
||||||
if (itm) then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Items[self.st.selected_id] = nil
|
|
||||||
self.st.selected_id = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
local tg = time_global()
|
|
||||||
self.st.__dtimer = not self.st.__dtimer and tg + 250 or self.st.__dtimer
|
|
||||||
if (tg < self.st.__dtimer) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
self.st.__dtimer = nil
|
|
||||||
|
|
||||||
local loot_table = xr_corpse_detection.lootable_table or utils_data.collect_section(ini,"lootable",true)
|
|
||||||
if not (loot_table) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if not (self.st.index) then
|
|
||||||
self.st.index = 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if not (self.st.memory) then
|
|
||||||
self.st.memory = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local npc = self.object
|
|
||||||
|
|
||||||
local size = #self.st.memory
|
|
||||||
if (size == 0) then
|
|
||||||
local obj_id
|
|
||||||
|
|
||||||
self.st.cstackprevent = true
|
|
||||||
for o in npc:memory_visible_objects() do
|
|
||||||
local obj = o and o:object()
|
|
||||||
if (obj) then
|
|
||||||
obj_id = obj:id()
|
|
||||||
if (loot_table[obj:section()] ~= nil) then
|
|
||||||
size = size + 1
|
|
||||||
table.insert(self.st.memory,obj_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
self.st.cstackprevent = nil
|
|
||||||
|
|
||||||
if (size == 0) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (size == 0 or self.st.index > size) then
|
|
||||||
if (self.st.nearest_id and Items[self.st.nearest_id] == nil and (not game_setup.is_world_item(self.st.nearest_id))) then
|
|
||||||
if (self.st.selected_id and Items[self.st.selected_id]) then
|
|
||||||
Items[self.st.selected_id] = nil
|
|
||||||
end
|
|
||||||
self.st.selected_id = self.st.nearest_id
|
|
||||||
self.st.vid = self.st.nearest_vid
|
|
||||||
self.st.vid_pos = self.st.nearest_pos
|
|
||||||
Items[self.st.selected_id] = npc:id()
|
|
||||||
self.st.stage = 1
|
|
||||||
|
|
||||||
self.st.nearest_dist = nil
|
|
||||||
self.st.nearest_vid = nil
|
|
||||||
self.st.nearest_pos = nil
|
|
||||||
self.st.nearest_id = nil
|
|
||||||
|
|
||||||
self.st.index = 1
|
|
||||||
|
|
||||||
local be = npc:best_enemy()
|
|
||||||
local dist = npc:position():distance_to(self.st.vid_pos)
|
|
||||||
if (be or dist < 3) then
|
|
||||||
self.st.state = "patrol"
|
|
||||||
else
|
|
||||||
self.st.state = "rush"
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
self.st.index = 1
|
|
||||||
self.st.nearest_dist = nil
|
|
||||||
self.st.nearest_vid = nil
|
|
||||||
self.st.nearest_pos = nil
|
|
||||||
self.st.nearest_id = nil
|
|
||||||
|
|
||||||
empty_table(self.st.memory)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local itm_id = self.st.memory[self.st.index]
|
|
||||||
self.st.index = self.st.index + 1
|
|
||||||
|
|
||||||
local itm = itm_id and itm_id ~= 0 and itm_id ~= 65535 and level.object_by_id(itm_id)
|
|
||||||
local se_itm = itm and loot_table[itm:section()] and Items[itm_id] == nil and alife_object(itm_id)
|
|
||||||
|
|
||||||
if not (se_itm and se_itm.parent_id == 65535) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (get_object_story_id(itm_id)) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
if (IsArtefact(nil,se_itm:clsid())) then
|
|
||||||
if (xr_logic.pick_section_from_condlist(db.actor, npc, self.st.gather_artefact_items_enabled) == "false") then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if not (npc:see(itm)) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if (npc:best_enemy()) then
|
|
||||||
if not (IsWeapon(itm)) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
if (IsWeapon(npc:active_item())) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if (itm:condition() < 0.44) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local itm_pos = itm:position()
|
|
||||||
local dist = npc:position():distance_to_sqr(itm_pos)
|
|
||||||
if (self.st.nearest_dist == nil or dist < self.st.nearest_dist) and (dist < 1225) then -- 1225 is MaxDetectDistance
|
|
||||||
local vid = level.vertex_id(itm_pos)
|
|
||||||
if (level.vertex_position(vid):distance_to_sqr(itm_pos) > 16) then
|
|
||||||
vid = itm:level_vertex_id()
|
|
||||||
end
|
|
||||||
|
|
||||||
if (npc:accessible(vid) and level.vertex_position(vid):distance_to_sqr(itm_pos) <= 15) then
|
|
||||||
self.st.nearest_dist = dist
|
|
||||||
self.st.nearest_vid = vid
|
|
||||||
self.st.nearest_pos = itm_pos
|
|
||||||
self.st.nearest_id = itm_id
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return false
|
|
||||||
end
|
|
|
@ -172,12 +172,15 @@ function xr_corpse_detection.evaluator_corpse:find_valid_target()
|
||||||
|
|
||||||
if (self.a.selected_corpse_id) then -- looting process
|
if (self.a.selected_corpse_id) then -- looting process
|
||||||
local corpse = db.storage[self.a.selected_corpse_id] and db.storage[self.a.selected_corpse_id].object or level.object_by_id(self.a.selected_corpse_id)
|
local corpse = db.storage[self.a.selected_corpse_id] and db.storage[self.a.selected_corpse_id].object or level.object_by_id(self.a.selected_corpse_id)
|
||||||
|
local state = state_mgr.get_state(self.object)
|
||||||
|
|
||||||
if corpse and not xr_corpse_detection.near_actor(corpse) then
|
-- Code demonized - add check for looting state so the npc wont stop looting if actor is near a corpse
|
||||||
|
if corpse and (state == "search_corpse" or state == "field_dress" or state == "scaner_crouch" or not xr_corpse_detection.near_actor(corpse)) then
|
||||||
return true
|
return true
|
||||||
elseif (db.storage[self.a.selected_corpse_id]) then
|
elseif (db.storage[self.a.selected_corpse_id]) then
|
||||||
db.storage[self.a.selected_corpse_id].corpse_already_selected = nil
|
db.storage[self.a.selected_corpse_id].corpse_already_selected = nil
|
||||||
end
|
end
|
||||||
|
-- code end
|
||||||
end
|
end
|
||||||
|
|
||||||
local tg = time_global()
|
local tg = time_global()
|
||||||
|
|
|
@ -6,7 +6,7 @@ newestVersion=
|
||||||
category="7,"
|
category="7,"
|
||||||
nexusFileStatus=1
|
nexusFileStatus=1
|
||||||
installationFile=NPC_Looting_Fix_1.5.rar
|
installationFile=NPC_Looting_Fix_1.5.rar
|
||||||
repository=Nexus
|
repository=
|
||||||
ignoredVersion=
|
ignoredVersion=
|
||||||
comments=
|
comments=
|
||||||
notes=
|
notes=
|
||||||
|
|
|
@ -26,4 +26,5 @@ bwhr_warn
|
||||||
bwhr_rad
|
bwhr_rad
|
||||||
bwhr_bio
|
bwhr_bio
|
||||||
bwhr_info
|
bwhr_info
|
||||||
bwhr_magn
|
bwhr_magn
|
||||||
|
bwhr_stash
|
|
@ -27,4 +27,6 @@ bwhr_magn
|
||||||
diamond_friendly
|
diamond_friendly
|
||||||
redround32
|
redround32
|
||||||
stalker
|
stalker
|
||||||
stash_green
|
stash_green
|
||||||
|
stash_backpack
|
||||||
|
bwhr_stash
|
|
@ -1,6 +1,6 @@
|
||||||
[iconset_npcs]
|
[iconset_npcs]
|
||||||
name = ui_mcm_lst_pawsys_pg_npcs
|
name = ui_mcm_lst_pawsys_pg_npcs
|
||||||
default = diamond_friendly
|
default = bwhr_tag
|
||||||
|
|
||||||
[npcs_icons]
|
[npcs_icons]
|
||||||
; It's best to leave the default groups
|
; It's best to leave the default groups
|
||||||
|
@ -34,3 +34,4 @@ npc_medic
|
||||||
sleep_zone
|
sleep_zone
|
||||||
obj_briefcase
|
obj_briefcase
|
||||||
obj_lock
|
obj_lock
|
||||||
|
bwhr_tag
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue