Added, Updated and Removed Mods; Updated Readme
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
![stalker_loadout]
|
||||
grenade_rgd2 = true,1,80,1
|
||||
|
||||
![dolg_loadout]
|
||||
grenade_rgd2 = true,1,80,1
|
||||
|
||||
![army_loadout]
|
||||
grenade_rgd2 = true,1,80,1
|
||||
|
||||
![renegade_loadout]
|
||||
grenade_rgd2 = true,1,80,1
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
;====
|
||||
![extras_veteran]
|
||||
grenade_rgd2:0:1
|
||||
|
||||
;====
|
||||
![extras_master]
|
||||
grenade_rgd2:0:1
|
||||
|
||||
;====
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_2]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_2]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_1]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_1]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_1]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_3]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
;====
|
||||
![supplies_2]
|
||||
grenade_rgd2 = 1, 0.88
|
||||
|
||||
;====
|
||||
@@ -0,0 +1,129 @@
|
||||
;------------------------------------------------------------------------------------------------
|
||||
[grenade_rgd2]:identity_immunities,weapon_probability,default_weapon_params
|
||||
GroupControlSection = spawn_group
|
||||
discovery_dependency =
|
||||
$prefetch = 128
|
||||
$spawn = "weapons\grenades\gd-05"
|
||||
cform = skeleton
|
||||
parent_section = grenade_rgd2
|
||||
|
||||
class = G_F1
|
||||
slot = 3
|
||||
animation_slot = 7
|
||||
ef_weapon_type = 4
|
||||
single_handed = 1
|
||||
|
||||
default_to_ruck = false
|
||||
sprint_allowed = true
|
||||
|
||||
icons_texture = ui\rgd2_icon
|
||||
inv_grid_height = 2
|
||||
inv_grid_width = 1
|
||||
inv_grid_x = 0
|
||||
inv_grid_y = 0
|
||||
inv_name = st_grenade_rgd2
|
||||
inv_name_short = st_grenade_rgd2
|
||||
description = st_grenade_rgd2_descr
|
||||
highlight_equipped = true
|
||||
|
||||
kind = w_explosive
|
||||
inv_weight = 0.21
|
||||
cost = 500
|
||||
|
||||
hud = grenade_rgd2_hud
|
||||
visual = dynamics\weapons\wpn_rdg2\wpn_rgd2_world.ogf
|
||||
|
||||
attach_bone_name =
|
||||
attach_position_offset = -0.053, -0.089, 0.0
|
||||
attach_angle_offset = 0, 0, 0
|
||||
bone_name = bip01_r_hand
|
||||
position_offset = 0.0, 0.0, 0.0
|
||||
angle_offset = 1.570790, 1.570790, 3.92699
|
||||
|
||||
third_person_throw_point_offset = -0.05, 0.848, 0.706
|
||||
throw_dir = 0, 0, 1
|
||||
throw_point = 0.4, 0.3, 0.1
|
||||
up_throw_factor = 0
|
||||
|
||||
force_min = 10
|
||||
force_const = 25
|
||||
force_max = 30
|
||||
force_grow_speed = 15
|
||||
destroy_time = 2500
|
||||
grenade_remove_time = 80000
|
||||
detonation_threshold_hit = 200
|
||||
|
||||
light_color = 0.9, 0.6, 0.5
|
||||
light_range = 2.0
|
||||
light_time = 2.85
|
||||
|
||||
wallmark_section = explosion_marks
|
||||
wm_size = 0.1
|
||||
|
||||
hit_type_blast = strike
|
||||
hit_type_frag = fire_wound
|
||||
|
||||
blast = 0
|
||||
blast_r = 0
|
||||
blast_impulse = 0
|
||||
blast_impulse_factor = 0
|
||||
|
||||
frag_hit = 0
|
||||
frag_hit_impulse = 0
|
||||
frags = 0
|
||||
frags_r = 0
|
||||
fragment_speed = 38
|
||||
explode_duration = 20
|
||||
explode_particles = explosions\explosion_dym
|
||||
|
||||
zoom_dof = 0.5, 1.0, 180
|
||||
reload_dof = 0.0, 0.5, 5, 1.7
|
||||
control_inertion_factor = 1
|
||||
|
||||
snd_checkout = weapons\rgd6\rgd6_set, 3.0, 0.4
|
||||
snd_explode = weapons\grenade_gd05
|
||||
snd_on_take = grenade
|
||||
|
||||
kill_msg_x = 240
|
||||
kill_msg_y = 123
|
||||
kill_msg_width = 14
|
||||
kill_msg_height = 23
|
||||
|
||||
|
||||
[grenade_rgd2_hud]:hud_base
|
||||
item_visual = anomaly_weapons\wpn_rdg2\wpn_rdg2_hud.ogf
|
||||
attach_place_idx = 0
|
||||
|
||||
item_position = -0.001, 0.004, 0.0
|
||||
item_orientation = 18.5, 1.5, 0.0
|
||||
|
||||
hands_position = -0.103, 0.03, -0.055
|
||||
hands_position_16x9 = -0.103, 0.03, -0.055
|
||||
hands_orientation = -4.4, 1.0, -2.0
|
||||
hands_orientation_16x9 = -4.4, 1.0, -2.0
|
||||
|
||||
aim_hud_offset_pos = 0, 0, 0
|
||||
aim_hud_offset_rot = 0, 0, 0
|
||||
|
||||
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 = rgd2_holdster
|
||||
anm_idle = rgd2_idle, idle
|
||||
anm_idle_moving = rgd2_walk, idle, 1.8
|
||||
anm_idle_sprint = rgd2_runnn, idle, 1.9
|
||||
anm_show = rgd2_draw
|
||||
anm_throw = rgd2_throw, throw
|
||||
anm_throw_begin = rgd2_throwbegin, throw_beginning
|
||||
anm_throw_idle = rgd2_throwidle, throw_idle
|
||||
|
||||
fire_bone = wpn_body
|
||||
fire_point = 0, 0, 0
|
||||
|
||||
throw_dir = 0, 0, 1
|
||||
throw_point = 0.0, 0.4, 0.3
|
||||
|
||||
freelook_z_offset_mul = 0.3
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<string_table>
|
||||
|
||||
<string id="st_grenade_rgd2">
|
||||
<text>RGD-2</text>
|
||||
</string>
|
||||
<string id="st_grenade_rgd2_descr">
|
||||
<text>The RGD-2 smoke grenade is a cylindrical, handheld device used for generating a dense cloud of smoke for tactical purposes. It is typically used in military and law enforcement operations to provide cover, concealment, or signaling. The grenade is activated by pulling a pin and releasing a safety lever, which ignites a fuse. Upon ignition, the grenade emits a colored smoke, depending on its intended use, which can last for several minutes, obscuring visibility and providing a tactical advantage to the user. The RGD-6 smoke grenade is known for its reliability, ease of use, and effectiveness in various operational environments. Once the grenade is thrown it takes 10 seconds for the smoke screen to expand. \n \n
|
||||
</text>
|
||||
</string>
|
||||
|
||||
</string_table>
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,156 @@
|
||||
local enable_debug = false
|
||||
local function printf(...)
|
||||
if enable_debug then
|
||||
_G.printf(...)
|
||||
end
|
||||
end
|
||||
|
||||
loadouts = {
|
||||
["duty_novice"] = {
|
||||
["extra"] = {"grenade_rgd2:0:1:25"},
|
||||
},
|
||||
}
|
||||
loadouts.stalker_trainee = loadouts.duty_novice
|
||||
loadouts.stalker_experienced = loadouts.duty_novice
|
||||
loadouts.stalker_professional = loadouts.duty_novice
|
||||
loadouts.stalker_novice = loadouts.duty_novice
|
||||
loadouts.bandit_novice = loadouts.duty_novice
|
||||
loadouts.bandit_experienced = loadouts.duty_novice
|
||||
loadouts.csky_novice = loadouts.duty_novice
|
||||
loadouts.csky_trainee = loadouts.duty_novice
|
||||
loadouts.monolith_trainee = loadouts.duty_novice
|
||||
loadouts.monolith_experienced = loadouts.duty_novice
|
||||
loadouts.monolith_professional = loadouts.duty_novice
|
||||
loadouts.monolith_novice = loadouts.duty_novice
|
||||
loadouts.duty_trainee = loadouts.duty_novice
|
||||
loadouts.duty_experienced = loadouts.duty_novice
|
||||
loadouts.duty_professional = loadouts.duty_novice
|
||||
loadouts.army_experienced = loadouts.duty_novice
|
||||
loadouts.army_trainee = loadouts.duty_novice
|
||||
loadouts.army_professional = loadouts.duty_novice
|
||||
loadouts.freedom_experienced = loadouts.duty_novice
|
||||
loadouts.renegade_novice = loadouts.duty_novice
|
||||
|
||||
function parse_loadout_item(item)
|
||||
local t = str_explode(item, ':')
|
||||
return {
|
||||
section = t[1],
|
||||
attachment_flag = t[2] and tonumber(t[2]) or 0,
|
||||
ammo_type = t[3] and tonumber(t[3]) or 0,
|
||||
chance = t[4] and tonumber(t[4]) or 50,
|
||||
}
|
||||
end
|
||||
|
||||
function concat_loadout_item(t)
|
||||
return string.format("%s:%s:%s:%s", t.section, t.attachment_flag, t.ammo_type, t.chance)
|
||||
end
|
||||
|
||||
create_item_on_npc = xrs_rnd_npc_loadout.create_item_on_npc
|
||||
xrs_rnd_npc_loadout.create_item_on_npc = function(se_npc, squad_name, comm, rank, visual, player_id, slot_type, ...)
|
||||
create_item_on_npc(se_npc, squad_name, comm, rank, visual, player_id, slot_type, ...)
|
||||
|
||||
local sec = comm .. "_" .. rank
|
||||
if is_empty(loadouts[sec]) then
|
||||
printf("cant find loadout items for %s", sec)
|
||||
return
|
||||
end
|
||||
if is_empty(loadouts[sec][slot_type]) then
|
||||
printf("cant find loadout items for %s, slot %s", sec, slot_type)
|
||||
return
|
||||
end
|
||||
|
||||
local items = loadouts[sec][slot_type]
|
||||
|
||||
shuffle_table(items)
|
||||
local pick
|
||||
for i, v in ipairs(items) do
|
||||
local t = parse_loadout_item(v)
|
||||
if math.random(100) <= t.chance then
|
||||
pick = t
|
||||
printf("picked item %s for %s, slot %s", concat_loadout_item(pick), sec, slot_type)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
-- Pick first gun if chance based pick failed and slot is primary
|
||||
if not pick and slot_type == "primary" then
|
||||
pick = parse_loadout_item(items[1])
|
||||
if pick then
|
||||
printf("picked default item %s for %s, slot %s", concat_loadout_item(pick), sec, slot_type)
|
||||
end
|
||||
end
|
||||
|
||||
if not pick then
|
||||
printf("failed to pick item for %s, slot %s", sec, slot_type)
|
||||
return
|
||||
end
|
||||
|
||||
-- Give it to NPC based on data
|
||||
local section = pick.section
|
||||
local ammo_typ = pick.ammo_type
|
||||
local attachment = pick.attachment_flag
|
||||
printf("NPC Loadouts | END | %s | %s - %s - [%s]", se_npc:name(), slot_type, sec, section)
|
||||
|
||||
-- Items
|
||||
if (slot_type == "extra") then
|
||||
return alife_create_item(section, se_npc)
|
||||
|
||||
-- Weapons
|
||||
else
|
||||
-- Add random scope
|
||||
local cha = game_difficulties.get_eco_factor("scope_chance")
|
||||
cha = cha * 100
|
||||
if ini_sys:line_exist(section,"scopes") and (math.random(100) <= cha) then
|
||||
local scopes = parse_list(ini_sys, section, "scopes")
|
||||
if scopes and (#scopes > 0) then
|
||||
local pick_scope = scopes[math.random(#scopes)]
|
||||
if pick_scope and ini_sys:section_exist(section .. "_" .. pick_scope) then
|
||||
section = section .. "_" .. pick_scope
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local se_wpn = alife_create_item(section, se_npc)
|
||||
if (se_wpn) then
|
||||
local ammos = parse_list(ini_sys, section, "ammo_class")
|
||||
|
||||
local ct = ammos and #ammos
|
||||
local ammo_type = (ammos and ammo_typ and ammo_typ == "r" and ct and math.random(0,ct-1)) or (ammos and ammo_typ and tonumber(ammo_typ)) or 0
|
||||
local ammo_section = ammo_type and ammos[ammo_type+1]
|
||||
|
||||
if not (ammo_section) then
|
||||
ammo_type = 0
|
||||
ammo_section = ammo_type and ammos[ammo_type+1]
|
||||
printe("! ERROR: NPC Loadouts | wrong ammo_type set for [%s], missing value in ammo_class", section)
|
||||
end
|
||||
|
||||
|
||||
if (attachment or ammo_typ) then
|
||||
local data = utils_stpk.get_weapon_data(se_wpn)
|
||||
|
||||
local flag = tonumber(attachment) or 0
|
||||
if (attachment == "r") then
|
||||
flag = 0
|
||||
if (utils_data.read_from_ini(nil,section,"scope_status","float",nil)) then
|
||||
flag = flag + 1
|
||||
end
|
||||
|
||||
if (utils_data.read_from_ini(nil,section,"grenade_launcher_status","float",nil)) then
|
||||
flag = flag + 2
|
||||
end
|
||||
|
||||
if (utils_data.read_from_ini(nil,section,"silencer_status","float",nil)) then
|
||||
flag = flag + 4
|
||||
end
|
||||
|
||||
flag = math.random(0,flag)
|
||||
end
|
||||
|
||||
data.addon_flags = flag
|
||||
data.ammo_type = ammo_type
|
||||
utils_stpk.set_weapon_data(data,se_wpn)
|
||||
end
|
||||
return se_wpn
|
||||
end
|
||||
end
|
||||
end
|
||||
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.
@@ -0,0 +1,28 @@
|
||||
[General]
|
||||
gameName=stalkeranomaly
|
||||
modid=0
|
||||
version=d2024.3.31.0
|
||||
newestVersion=
|
||||
category="-1,"
|
||||
nexusFileStatus=1
|
||||
installationFile=RGD-2_Smoke_Grenade.7z
|
||||
repository=Nexus
|
||||
ignoredVersion=
|
||||
comments=
|
||||
notes=
|
||||
nexusDescription=
|
||||
url=
|
||||
hasCustomURL=false
|
||||
lastNexusQuery=
|
||||
lastNexusUpdate=
|
||||
nexusLastModified=2024-04-01T01:35:27Z
|
||||
nexusCategory=0
|
||||
converted=false
|
||||
validated=false
|
||||
color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
|
||||
tracked=0
|
||||
|
||||
[installedFiles]
|
||||
1\modid=0
|
||||
1\fileid=0
|
||||
size=1
|
||||
Reference in New Issue
Block a user