mta-resources/[insanity]/insanity-weapons/server.lua

71 lines
3.4 KiB
Lua

local weaponBlacklist = {"grenade","teargas","molotov","sniper","rocket launcher","rocket launcher hs","flamethrower","satchel","bomb","spraycan","fire extinguisher","camera"}
local weaponBlacklistDualWield = {"minigun","rifle"}
local weapons = {"grenade","teargas","molotov","colt 45","silenced","deagle","shotgun","sawed-off","combat shotgun","uzi","mp5","ak-47","m4","tec-9","rifle","sniper","rocket launcher","rocket launcher hs","flamethrower","minigun","satchel","bomb","spraycan","fire extinguisher","camera"}
local weaponDefaultDualWield = {"colt 45","sawed-off","uzi","tec-9"}
local weaponSkills = {"poor","std","pro"}
local weaponProperties = {"weapon_range","target_range","accuracy","damage","maximum_clip_ammo","move_speed","anim_loop_start","anim_loop_stop","anim_loop_bullet_fire","anim2_loop_start","anim2_loop_stop","anim2_loop_bullet_fire","anim_breakout_time","flag_aim_no_auto","flag_aim_arm","flag_aim_1st_person","flag_aim_free","flag_move_and_aim","flag_move_and_shoot","flag_type_throw","flag_type_heavy","flag_type_constant","flag_type_dual","flag_anim_reload","flag_anim_crouch","flag_anim_reload_loop","flag_anim_reload_long","flag_shot_slows","flag_shot_rand_speed","flag_shot_anim_abrupt","flag_shot_expands"}
function isInList(haystack,needle)
for _,i in ipairs(haystack) do
if i == needle then return true end
end
return false
end
for _,weapon in ipairs(weapons) do
if not isInList(weaponBlacklist,weapon) then
setJetpackWeaponEnabled(weapon,true)
for _,property in ipairs(weaponProperties) do
for _,skill in ipairs(weaponSkills) do
setWeaponProperty(weapon,skill,property,getOriginalWeaponProperty(weapon,"pro",property))
end
end
for _,skill in ipairs(weaponSkills) do
setWeaponProperty(weapon,skill,"flag_aim_arm",true)
end
if not isInList(weaponBlacklistDualWield,weapon) then
setWeaponProperty(weapon,"pro","flag_type_dual",true)
setWeaponProperty(weapon,"pro","accuracy",getOriginalWeaponProperty(
weapon,"pro","accuracy") * 1.5)
setWeaponProperty(weapon,"pro","maximum_clip_ammo",getOriginalWeaponProperty(
weapon,"pro","maximum_clip_ammo") * 2)
end
end
for _,skill in ipairs(weaponSkills) do
setWeaponProperty(weapon,skill,"flag_move_and_aim",true)
setWeaponProperty(weapon,skill,"flag_move_and_shoot",true)
setWeaponProperty(weapon,skill,"flag_type_heavy",false)
end
end
for _,skill in ipairs(weaponSkills) do
setWeaponProperty("sniper",skill,"flag_type_heavy",true)
setWeaponProperty("rocket launcher",skill,"flag_type_heavy",true)
setWeaponProperty("rocket launcher hs",skill,"flag_type_heavy",true)
end
for _,weapon in ipairs(weaponDefaultDualWield) do
setWeaponProperty(weapon,"poor","flag_type_dual",false)
setWeaponProperty(weapon,"std","flag_type_dual",false)
setWeaponProperty(weapon,"poor","maximum_clip_ammo",getOriginalWeaponProperty(
weapon,"std","maximum_clip_ammo"))
setWeaponProperty(weapon,"std","maximum_clip_ammo",getOriginalWeaponProperty(
weapon,"std","maximum_clip_ammo"))
setWeaponProperty(weapon,"pro","maximum_clip_ammo",getOriginalWeaponProperty(
weapon,"pro","maximum_clip_ammo"))
end
addEventHandler("onResourceStop",resourceRoot,function()
for _,weapon in ipairs(weapons) do
if not isInList(weaponBlacklist,weapon) then
for _,property in ipairs(weaponProperties) do
for _,skill in ipairs(weaponSkills) do
setWeaponProperty(weapon,skill,property,getOriginalWeaponProperty(weapon,skill,property))
end
end
end
end
end)