convert line endings back to crlf

This commit is contained in:
blut
2024-10-10 22:23:36 +02:00
parent ba53e653ee
commit e0049de379
55 changed files with 6126 additions and 6126 deletions

@ -1,6 +1,6 @@
# rangedweapons
A direct clone of https://github.com/daviddoesminetest/rangedweapons. ALL CREDIT GOES THERE!
See also: https://forum.minetest.net/viewtopic.php?f=9&t=15173
See list of commits for improvements.
# rangedweapons
A direct clone of https://github.com/daviddoesminetest/rangedweapons. ALL CREDIT GOES THERE!
See also: https://forum.minetest.net/viewtopic.php?f=9&t=15173
See list of commits for improvements.

148
aa12.lua

@ -1,74 +1,74 @@
minetest.register_tool("rangedweapons:aa12_r", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "",
rw_next_reload = "rangedweapons:aa12_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_aa12_rld.png",
})
minetest.register_tool("rangedweapons:aa12_rr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "",
rw_next_reload = "rangedweapons:aa12_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_aa12.png",
})
minetest.register_tool("rangedweapons:aa12_rrr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "",
rw_next_reload = "rangedweapons:aa12",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_aa12.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:aa12", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "" ..core.colorize("#35cdff","AA-12\n") ..core.colorize("#FFFFFF", "Ranged damage: 1\n") ..core.colorize("#FFFFFF", "projectiles: 5\n") ..core.colorize("#FFFFFF", "Gun gravity: 4\n") ..core.colorize("#FFFFFF", "accuracy: 40%\n") ..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Reload delay: 1.5\n") ..core.colorize("#FFFFFF", "Clip size: 20\n") ..core.colorize("#FFFFFF", "Critical chance: 5%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shell\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.2 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_aa12.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=5},
gun_crit = 5,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:shell",20}},
gun_skill = {"shotgun_skill",40},
gun_magazine = "rangedweapons:drum_mag",
gun_unloaded = "rangedweapons:aa12_r",
gun_velocity = 25,
gun_accuracy = 40,
gun_cooldown = 0.2,
gun_reload = 1.5/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 750,
gun_smokeSize = 8,
gun_door_breaking = 1,
gun_projectiles = 5,
gun_gravity = 4,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_shotgun_shot",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:aa12_r", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "",
rw_next_reload = "rangedweapons:aa12_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_aa12_rld.png",
})
minetest.register_tool("rangedweapons:aa12_rr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "",
rw_next_reload = "rangedweapons:aa12_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_aa12.png",
})
minetest.register_tool("rangedweapons:aa12_rrr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "",
rw_next_reload = "rangedweapons:aa12",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_aa12.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:aa12", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.4},
description = "" ..core.colorize("#35cdff","AA-12\n") ..core.colorize("#FFFFFF", "Ranged damage: 1\n") ..core.colorize("#FFFFFF", "projectiles: 5\n") ..core.colorize("#FFFFFF", "Gun gravity: 4\n") ..core.colorize("#FFFFFF", "accuracy: 40%\n") ..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Reload delay: 1.5\n") ..core.colorize("#FFFFFF", "Clip size: 20\n") ..core.colorize("#FFFFFF", "Critical chance: 5%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shell\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.2 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_aa12.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=5},
gun_crit = 5,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:shell",20}},
gun_skill = {"shotgun_skill",40},
gun_magazine = "rangedweapons:drum_mag",
gun_unloaded = "rangedweapons:aa12_r",
gun_velocity = 25,
gun_accuracy = 40,
gun_cooldown = 0.2,
gun_reload = 1.5/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 750,
gun_smokeSize = 8,
gun_door_breaking = 1,
gun_projectiles = 5,
gun_gravity = 4,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_shotgun_shot",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

150
ak47.lua

@ -1,75 +1,75 @@
minetest.register_tool("rangedweapons:ak47_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:ak47_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ak47_rld.png",
})
minetest.register_tool("rangedweapons:ak47_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:ak47_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ak47.png",
})
minetest.register_tool("rangedweapons:ak47_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:ak47",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ak47.png",
})
minetest.register_tool("rangedweapons:ak47", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","AK-47\n") ..core.colorize("#FFFFFF", "Gun damage: 7\n") ..core.colorize("#FFFFFF", "accuracy: 77%\n") ..core.colorize("#FFFFFF", "Gun knockback: 5\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 12%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.9x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.4\n") ..core.colorize("#FFFFFF", "Clip size: 30\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.10(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: assault rifle\n") ..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 15%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 40"),
range = 0,
inventory_image = "rangedweapons_ak47.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=7,knockback=5},
gun_crit = 12,
gun_critEffc = 2.9,
suitable_ammo = {{"rangedweapons:762mm",30}},
gun_skill = {"arifle_skill",50},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:ak47_r",
gun_velocity = 40,
gun_accuracy = 77,
gun_cooldown = 0.1,
gun_reload = 1.4/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1200,
gun_smokeSize = 5,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_ak",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_ak47.png",
})
minetest.register_tool("rangedweapons:ak47_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:ak47_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ak47_rld.png",
})
minetest.register_tool("rangedweapons:ak47_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:ak47_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ak47.png",
})
minetest.register_tool("rangedweapons:ak47_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:ak47",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ak47.png",
})
minetest.register_tool("rangedweapons:ak47", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","AK-47\n") ..core.colorize("#FFFFFF", "Gun damage: 7\n") ..core.colorize("#FFFFFF", "accuracy: 77%\n") ..core.colorize("#FFFFFF", "Gun knockback: 5\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 12%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.9x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.4\n") ..core.colorize("#FFFFFF", "Clip size: 30\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.10(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: assault rifle\n") ..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 15%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 40"),
range = 0,
inventory_image = "rangedweapons_ak47.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=7,knockback=5},
gun_crit = 12,
gun_critEffc = 2.9,
suitable_ammo = {{"rangedweapons:762mm",30}},
gun_skill = {"arifle_skill",50},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:ak47_r",
gun_velocity = 40,
gun_accuracy = 77,
gun_cooldown = 0.1,
gun_reload = 1.4/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1200,
gun_smokeSize = 5,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_ak",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_ak47.png",
})

1592
ammo.lua

File diff suppressed because it is too large Load Diff

202
awp.lua

@ -1,101 +1,101 @@
minetest.register_tool("rangedweapons:awp_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","A.W.P. \n") ..core.colorize("#FFFFFF", "Ranged damage:18 + 35/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 15\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round/308.Winchester rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 12x\n") ..core.colorize("#be0d00", "Right-click to eject empty bullet shell\n") ..core.colorize("#FFFFFF", "Clip size: 10/10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp.png",
weapon_zoom = 7.5,
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:awp_rld",1.0,"rangedweapons_rifle_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:awp_r", {
rw_next_reload = "rangedweapons:awp_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp_noclip.png",
})
minetest.register_tool("rangedweapons:awp_rr", {
rw_next_reload = "rangedweapons:awp_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp.png",
})
minetest.register_tool("rangedweapons:awp_rrr", {
rw_next_reload = "rangedweapons:awp",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp_rld.png",
})
minetest.register_tool("rangedweapons:awp_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:awp",
loaded_sound = "rangedweapons_rifle_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp_rld.png",
})
minetest.register_tool("rangedweapons:awp", {
description = "" ..core.colorize("#35cdff","A.W.P. \n") ..core.colorize("#FFFFFF", "Ranged damage:18 + 35/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 15\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round/308.Winchester rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 12x\n") ..core.colorize("#27a600", "The gun is loaded!\n") ..core.colorize("#FFFFFF", "Clip size: 10/10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
range = 0,
weapon_zoom = 7.5,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_awp.png",
RW_gun_capabilities = {
gun_damage = {fleshy=18,knockback=15},
gun_crit = 30,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",10},{"rangedweapons:308winchester",10}},
gun_skill = {"rifle_skill",20},
gun_magazine = "rangedweapons:rifle_mag",
gun_unloaded = "rangedweapons:awp_r",
gun_cooling = "rangedweapons:awp_uld",
gun_velocity = 75,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 2.0/4,
gun_projectiles = 1,
has_shell = 0,
gun_durability = 700,
gun_smokeSize = 8,
gun_dps = 35,
gun_mob_penetration = 30,
gun_node_penetration = 10,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_rifle_b",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:awp_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","A.W.P. \n") ..core.colorize("#FFFFFF", "Ranged damage:18 + 35/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 15\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round/308.Winchester rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 12x\n") ..core.colorize("#be0d00", "Right-click to eject empty bullet shell\n") ..core.colorize("#FFFFFF", "Clip size: 10/10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp.png",
weapon_zoom = 7.5,
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:awp_rld",1.0,"rangedweapons_rifle_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:awp_r", {
rw_next_reload = "rangedweapons:awp_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp_noclip.png",
})
minetest.register_tool("rangedweapons:awp_rr", {
rw_next_reload = "rangedweapons:awp_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp.png",
})
minetest.register_tool("rangedweapons:awp_rrr", {
rw_next_reload = "rangedweapons:awp",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp_rld.png",
})
minetest.register_tool("rangedweapons:awp_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:awp",
loaded_sound = "rangedweapons_rifle_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_awp_rld.png",
})
minetest.register_tool("rangedweapons:awp", {
description = "" ..core.colorize("#35cdff","A.W.P. \n") ..core.colorize("#FFFFFF", "Ranged damage:18 + 35/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 15\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round/308.Winchester rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 12x\n") ..core.colorize("#27a600", "The gun is loaded!\n") ..core.colorize("#FFFFFF", "Clip size: 10/10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
range = 0,
weapon_zoom = 7.5,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_awp.png",
RW_gun_capabilities = {
gun_damage = {fleshy=18,knockback=15},
gun_crit = 30,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",10},{"rangedweapons:308winchester",10}},
gun_skill = {"rifle_skill",20},
gun_magazine = "rangedweapons:rifle_mag",
gun_unloaded = "rangedweapons:awp_r",
gun_cooling = "rangedweapons:awp_uld",
gun_velocity = 75,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 2.0/4,
gun_projectiles = 1,
has_shell = 0,
gun_durability = 700,
gun_smokeSize = 8,
gun_dps = 35,
gun_mob_penetration = 30,
gun_node_penetration = 10,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_rifle_b",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,62 +1,62 @@
minetest.register_tool("rangedweapons:benelli_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:benelli",
loaded_sound = "rangedweapons_shotgun_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_benelli_rld.png",
})
minetest.register_tool("rangedweapons:benelli", {
description = "" ..core.colorize("#35cdff","benelli m3\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "projectiles: 5\n") ..core.colorize("#FFFFFF", "Gun gravity: 4\n") ..core.colorize("#FFFFFF", "Accuracy: 48%\n")..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#27a600", "Gun is ready to fire!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 26"),
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_benelli.png",
RW_gun_capabilities = {
gun_damage = {fleshy=2,knockback=6},
gun_crit = 6,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:shell",7}},
gun_skill = {"shotgun_skill",20},
gun_unloaded = "rangedweapons:benelli_rld",
gun_cooling = "rangedweapons:benelli_uld",
gun_velocity = 25,
gun_accuracy = 48,
gun_cooldown = 0.6,
gun_gravity = 4,
gun_reload = 0.25,
gun_projectiles = 5,
has_shell = 0,
gun_durability = 325,
gun_smokeSize = 14,
gun_door_breaking = 1,
gun_sound = "rangedweapons_shotgun_shot",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user, "")
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:benelli_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","benelli m3\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "projectiles: 5\n") ..core.colorize("#FFFFFF", "Gun gravity: 4\n") ..core.colorize("#FFFFFF", "Accuracy: 48%\n")..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#be0d00", "Right-click, to eject the empty shell!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
inventory_image = "rangedweapons_benelli.png",
groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:benelli_rld",0.6,"rangedweapons_shotgun_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:benelli_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:benelli",
loaded_sound = "rangedweapons_shotgun_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_benelli_rld.png",
})
minetest.register_tool("rangedweapons:benelli", {
description = "" ..core.colorize("#35cdff","benelli m3\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "projectiles: 5\n") ..core.colorize("#FFFFFF", "Gun gravity: 4\n") ..core.colorize("#FFFFFF", "Accuracy: 48%\n")..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#27a600", "Gun is ready to fire!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 26"),
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_benelli.png",
RW_gun_capabilities = {
gun_damage = {fleshy=2,knockback=6},
gun_crit = 6,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:shell",7}},
gun_skill = {"shotgun_skill",20},
gun_unloaded = "rangedweapons:benelli_rld",
gun_cooling = "rangedweapons:benelli_uld",
gun_velocity = 25,
gun_accuracy = 48,
gun_cooldown = 0.6,
gun_gravity = 4,
gun_reload = 0.25,
gun_projectiles = 5,
has_shell = 0,
gun_durability = 325,
gun_smokeSize = 14,
gun_door_breaking = 1,
gun_sound = "rangedweapons_shotgun_shot",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user, "")
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:benelli_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","benelli m3\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "projectiles: 5\n") ..core.colorize("#FFFFFF", "Gun gravity: 4\n") ..core.colorize("#FFFFFF", "Accuracy: 48%\n")..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#be0d00", "Right-click, to eject the empty shell!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
inventory_image = "rangedweapons_benelli.png",
groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:benelli_rld",0.6,"rangedweapons_shotgun_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})

@ -1,57 +1,57 @@
minetest.register_tool("rangedweapons:beretta_rld", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
range = 0,
loaded_gun = "rangedweapons:beretta",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_beretta_rld.png",
})
minetest.register_tool("rangedweapons:beretta_r", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:beretta",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_beretta_rld.png",
})
minetest.register_tool("rangedweapons:beretta", {
description = "" ..core.colorize("#35cdff","Beretta M9\n") ..core.colorize("#FFFFFF", "Gun damage: 4\n")..core.colorize("#FFFFFF", "Accuracy: 94%\n") ..core.colorize("#FFFFFF", "gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun crit chance: 13%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.5\n")..core.colorize("#FFFFFF", "Clip size: 15\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm Parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.4\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
wield_scale = {x=1.1,y=1.1,z=1.05},
range = 0,
inventory_image = "rangedweapons_beretta.png",
RW_gun_capabilities = {
gun_damage = {fleshy=4,knockback=4},
gun_crit = 15,
gun_critEffc = 2.1,
suitable_ammo = {{"rangedweapons:9mm",15}},
gun_skill = {"handgun_skill",43},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:beretta_r",
gun_cooling = "rangedweapons:beretta_rld",
gun_velocity = 25,
gun_accuracy = 94,
gun_cooldown = 0.4,
gun_reload = 0.5,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1150,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_beretta",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:beretta_rld", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
range = 0,
loaded_gun = "rangedweapons:beretta",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_beretta_rld.png",
})
minetest.register_tool("rangedweapons:beretta_r", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:beretta",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_beretta_rld.png",
})
minetest.register_tool("rangedweapons:beretta", {
description = "" ..core.colorize("#35cdff","Beretta M9\n") ..core.colorize("#FFFFFF", "Gun damage: 4\n")..core.colorize("#FFFFFF", "Accuracy: 94%\n") ..core.colorize("#FFFFFF", "gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun crit chance: 13%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.5\n")..core.colorize("#FFFFFF", "Clip size: 15\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm Parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.4\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
wield_scale = {x=1.1,y=1.1,z=1.05},
range = 0,
inventory_image = "rangedweapons_beretta.png",
RW_gun_capabilities = {
gun_damage = {fleshy=4,knockback=4},
gun_crit = 15,
gun_critEffc = 2.1,
suitable_ammo = {{"rangedweapons:9mm",15}},
gun_skill = {"handgun_skill",43},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:beretta_r",
gun_cooling = "rangedweapons:beretta_rld",
gun_velocity = 25,
gun_accuracy = 94,
gun_cooldown = 0.4,
gun_reload = 0.5,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1150,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_beretta",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,15 +1,15 @@
function projectile_kb(victim,projectile,kbamount)
if victim:get_pos() and projectile:get_pos() then
rw_proj_kb_pos_x = victim:get_pos().x - projectile:get_pos().x
rw_proj_kb_pos_y = victim:get_pos().y - projectile:get_pos().y
rw_proj_kb_pos_z = victim:get_pos().z - projectile:get_pos().z
else
rw_proj_kb_pos_x = 1
rw_proj_kb_pos_y = 1
rw_proj_kb_pos_z = 1
end
victim:add_player_velocity({x=kbamount*(rw_proj_kb_pos_x*2),y= kbamount*(math.abs(rw_proj_kb_pos_y)/2), z=kbamount*(rw_proj_kb_pos_z*2)})
end
function projectile_kb(victim,projectile,kbamount)
if victim:get_pos() and projectile:get_pos() then
rw_proj_kb_pos_x = victim:get_pos().x - projectile:get_pos().x
rw_proj_kb_pos_y = victim:get_pos().y - projectile:get_pos().y
rw_proj_kb_pos_z = victim:get_pos().z - projectile:get_pos().z
else
rw_proj_kb_pos_x = 1
rw_proj_kb_pos_y = 1
rw_proj_kb_pos_z = 1
end
victim:add_player_velocity({x=kbamount*(rw_proj_kb_pos_x*2),y= kbamount*(math.abs(rw_proj_kb_pos_y)/2), z=kbamount*(rw_proj_kb_pos_z*2)})
end

@ -1,102 +1,102 @@
minetest.register_globalstep(function(dtime, player)
for _, player in pairs(minetest.get_connected_players()) do
local w_item = player:get_wielded_item()
local controls = player:get_player_control()
if w_item:get_definition().weapon_zoom ~= nil then
if controls.zoom then
player:hud_change(scope_hud, "text", "rangedweapons_scopehud.png")
else
player:hud_change(scope_hud, "text", "rangedweapons_empty_icon.png")
end
local wpn_zoom = w_item:get_definition().weapon_zoom
if player:get_properties().zoom_fov ~= wpn_zoom then
player:set_properties({zoom_fov = wpn_zoom})
end
end
if w_item:get_definition().weapon_zoom == nil then
player:hud_change(scope_hud, "text", "rangedweapons_empty_icon.png")
if player:get_inventory():contains_item(
"main", "binoculars:binoculars") then
local new_zoom_fov = 10
if player:get_properties().zoom_fov ~= new_zoom_fov then
player:set_properties({zoom_fov = new_zoom_fov})
end
else
local new_zoom_fov = 0
if player:get_properties().zoom_fov ~= new_zoom_fov then
player:set_properties({zoom_fov = new_zoom_fov})
end
end
end
local u_meta = player:get_meta()
local cool_down = u_meta:get_float("rw_cooldown") or 0
if u_meta:get_float("rw_cooldown") > 0 then
u_meta:set_float("rw_cooldown", cool_down - dtime)
end
local itemstack = player:get_wielded_item()
if controls.LMB then
if player:get_wielded_item():get_definition().RW_gun_capabilities then
if
player:get_wielded_item():get_definition().RW_gun_capabilities.automatic_gun and player:get_wielded_item():get_definition().RW_gun_capabilities.automatic_gun > 0 then
rangedweapons_shoot_gun(itemstack, player)
player:set_wielded_item(itemstack)
end end
if player:get_wielded_item():get_definition().RW_powergun_capabilities then
if player:get_wielded_item():get_definition().RW_powergun_capabilities.automatic_gun and player:get_wielded_item():get_definition().RW_powergun_capabilities.automatic_gun > 0 then
rangedweapons_shoot_powergun(itemstack, player)
player:set_wielded_item(itemstack)
end end
end
--minetest.chat_send_all(u_meta:get_float("rw_cooldown"))
if u_meta:get_float("rw_cooldown") <= 0 then
if player:get_wielded_item():get_definition().loaded_gun ~= nil then
local itemstack = player:get_wielded_item()
if player:get_wielded_item():get_definition().loaded_sound ~= nil then
minetest.sound_play(itemstack:get_definition().loaded_sound, {pos = player:get_pos()})
end
itemstack:set_name(player:get_wielded_item():get_definition().loaded_gun)
player:set_wielded_item(itemstack)
end
if player:get_wielded_item():get_definition().rw_next_reload ~= nil then
local itemstack = player:get_wielded_item()
if itemstack:get_definition().load_sound ~= nil then
minetest.sound_play(itemstack:get_definition().load_sound, {pos = player:get_pos()})
end
local gunMeta = itemstack:get_meta()
u_meta:set_float("rw_cooldown",gunMeta:get_float("RW_reload_delay"))
itemstack:set_name(player:get_wielded_item():get_definition().rw_next_reload)
player:set_wielded_item(itemstack)
end
end
end end)
minetest.register_globalstep(function(dtime, player)
for _, player in pairs(minetest.get_connected_players()) do
local w_item = player:get_wielded_item()
local controls = player:get_player_control()
if w_item:get_definition().weapon_zoom ~= nil then
if controls.zoom then
player:hud_change(scope_hud, "text", "rangedweapons_scopehud.png")
else
player:hud_change(scope_hud, "text", "rangedweapons_empty_icon.png")
end
local wpn_zoom = w_item:get_definition().weapon_zoom
if player:get_properties().zoom_fov ~= wpn_zoom then
player:set_properties({zoom_fov = wpn_zoom})
end
end
if w_item:get_definition().weapon_zoom == nil then
player:hud_change(scope_hud, "text", "rangedweapons_empty_icon.png")
if player:get_inventory():contains_item(
"main", "binoculars:binoculars") then
local new_zoom_fov = 10
if player:get_properties().zoom_fov ~= new_zoom_fov then
player:set_properties({zoom_fov = new_zoom_fov})
end
else
local new_zoom_fov = 0
if player:get_properties().zoom_fov ~= new_zoom_fov then
player:set_properties({zoom_fov = new_zoom_fov})
end
end
end
local u_meta = player:get_meta()
local cool_down = u_meta:get_float("rw_cooldown") or 0
if u_meta:get_float("rw_cooldown") > 0 then
u_meta:set_float("rw_cooldown", cool_down - dtime)
end
local itemstack = player:get_wielded_item()
if controls.LMB then
if player:get_wielded_item():get_definition().RW_gun_capabilities then
if
player:get_wielded_item():get_definition().RW_gun_capabilities.automatic_gun and player:get_wielded_item():get_definition().RW_gun_capabilities.automatic_gun > 0 then
rangedweapons_shoot_gun(itemstack, player)
player:set_wielded_item(itemstack)
end end
if player:get_wielded_item():get_definition().RW_powergun_capabilities then
if player:get_wielded_item():get_definition().RW_powergun_capabilities.automatic_gun and player:get_wielded_item():get_definition().RW_powergun_capabilities.automatic_gun > 0 then
rangedweapons_shoot_powergun(itemstack, player)
player:set_wielded_item(itemstack)
end end
end
--minetest.chat_send_all(u_meta:get_float("rw_cooldown"))
if u_meta:get_float("rw_cooldown") <= 0 then
if player:get_wielded_item():get_definition().loaded_gun ~= nil then
local itemstack = player:get_wielded_item()
if player:get_wielded_item():get_definition().loaded_sound ~= nil then
minetest.sound_play(itemstack:get_definition().loaded_sound, {pos = player:get_pos()})
end
itemstack:set_name(player:get_wielded_item():get_definition().loaded_gun)
player:set_wielded_item(itemstack)
end
if player:get_wielded_item():get_definition().rw_next_reload ~= nil then
local itemstack = player:get_wielded_item()
if itemstack:get_definition().load_sound ~= nil then
minetest.sound_play(itemstack:get_definition().load_sound, {pos = player:get_pos()})
end
local gunMeta = itemstack:get_meta()
u_meta:set_float("rw_cooldown",gunMeta:get_float("RW_reload_delay"))
itemstack:set_name(player:get_wielded_item():get_definition().rw_next_reload)
player:set_wielded_item(itemstack)
end
end
end end)

File diff suppressed because it is too large Load Diff

@ -1,119 +1,119 @@
minetest.register_tool("rangedweapons:deagle_rld", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
loaded_gun = "rangedweapons:deagle",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_deagle_rld.png",
})
minetest.register_tool("rangedweapons:deagle_r", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:deagle",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_deagle_rld.png",
})
minetest.register_tool("rangedweapons:deagle", {
description = "" ..core.colorize("#35cdff","Desert Eagle\n")..core.colorize("#FFFFFF", "Ranged damage: 11\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 20%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3x\n")..core.colorize("#FFFFFF", "Reload delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 9/8/7\n") ..core.colorize("#FFFFFF", "Ammunition: .357 Magnum rounds/.44 magnum rounds/.50AE catridges\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.7\n") ..core.colorize("#FFFFFF", "Gun type: Magnum\n") ..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "penetration: 15%\n")..core.colorize("#FFFFFF", "Bullet velocity: 50"),
wield_scale = {x=1.25,y=1.25,z=1.5},
range = 0,
inventory_image = "rangedweapons_deagle.png",
RW_gun_capabilities = {
gun_damage = {fleshy=11,knockback=6},
gun_crit = 20,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:357",9},{"rangedweapons:44",8},{"rangedweapons:50ae",7}},
gun_skill = {"revolver_skill",40},
gun_magazine = "rangedweapons:handgun_mag_white",
gun_unloaded = "rangedweapons:deagle_r",
gun_cooling = "rangedweapons:deagle_rld",
gun_velocity = 50,
gun_accuracy = 85,
gun_cooldown = 0.7,
gun_reload = 0.6/1,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 900,
gun_smokeSize = 7,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_deagle",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:golden_deagle_rld", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
loaded_gun = "rangedweapons:golden_deagle",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_golden_deagle_rld.png",
})
minetest.register_tool("rangedweapons:golden_deagle_r", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:golden_deagle",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_golden_deagle_rld.png",
})
minetest.register_tool("rangedweapons:golden_deagle", {
description = "" ..core.colorize("#35cdff","Golden Desert Eagle\n")..core.colorize("#FFFFFF", "Ranged damage: 14\n") ..core.colorize("#FFFFFF", "Accuracy: 90%\n") ..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 23%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3x\n")..core.colorize("#FFFFFF", "Reload delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 9/8/7\n") ..core.colorize("#FFFFFF", "Ammunition: .357 Magnum rounds/.44 magnum rounds/.50AE catridges\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.75\n") ..core.colorize("#FFFFFF", "Gun type: Magnum\n") ..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "penetration: 15%\n")..core.colorize("#FFFFFF", "Bullet velocity: 50"),
wield_scale = {x=1.25,y=1.25,z=1.5},
range = 0,
inventory_image = "rangedweapons_golden_deagle.png",
RW_gun_capabilities = {
gun_damage = {fleshy=14,knockback=6},
gun_crit = 23,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:357",9},{"rangedweapons:44",8},{"rangedweapons:50ae",7}},
gun_skill = {"revolver_skill",38},
gun_magazine = "rangedweapons:handgun_mag_white",
gun_unloaded = "rangedweapons:golden_deagle_r",
gun_cooling = "rangedweapons:golden_deagle_rld",
gun_velocity = 50,
gun_accuracy = 90,
gun_cooldown = 0.75,
gun_reload = 0.6/1,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1000,
gun_smokeSize = 7,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_deagle",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:deagle_rld", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
loaded_gun = "rangedweapons:deagle",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_deagle_rld.png",
})
minetest.register_tool("rangedweapons:deagle_r", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:deagle",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_deagle_rld.png",
})
minetest.register_tool("rangedweapons:deagle", {
description = "" ..core.colorize("#35cdff","Desert Eagle\n")..core.colorize("#FFFFFF", "Ranged damage: 11\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 20%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3x\n")..core.colorize("#FFFFFF", "Reload delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 9/8/7\n") ..core.colorize("#FFFFFF", "Ammunition: .357 Magnum rounds/.44 magnum rounds/.50AE catridges\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.7\n") ..core.colorize("#FFFFFF", "Gun type: Magnum\n") ..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "penetration: 15%\n")..core.colorize("#FFFFFF", "Bullet velocity: 50"),
wield_scale = {x=1.25,y=1.25,z=1.5},
range = 0,
inventory_image = "rangedweapons_deagle.png",
RW_gun_capabilities = {
gun_damage = {fleshy=11,knockback=6},
gun_crit = 20,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:357",9},{"rangedweapons:44",8},{"rangedweapons:50ae",7}},
gun_skill = {"revolver_skill",40},
gun_magazine = "rangedweapons:handgun_mag_white",
gun_unloaded = "rangedweapons:deagle_r",
gun_cooling = "rangedweapons:deagle_rld",
gun_velocity = 50,
gun_accuracy = 85,
gun_cooldown = 0.7,
gun_reload = 0.6/1,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 900,
gun_smokeSize = 7,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_deagle",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:golden_deagle_rld", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
loaded_gun = "rangedweapons:golden_deagle",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_golden_deagle_rld.png",
})
minetest.register_tool("rangedweapons:golden_deagle_r", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:golden_deagle",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_golden_deagle_rld.png",
})
minetest.register_tool("rangedweapons:golden_deagle", {
description = "" ..core.colorize("#35cdff","Golden Desert Eagle\n")..core.colorize("#FFFFFF", "Ranged damage: 14\n") ..core.colorize("#FFFFFF", "Accuracy: 90%\n") ..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 23%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3x\n")..core.colorize("#FFFFFF", "Reload delay: 0.6\n")..core.colorize("#FFFFFF", "Clip size: 9/8/7\n") ..core.colorize("#FFFFFF", "Ammunition: .357 Magnum rounds/.44 magnum rounds/.50AE catridges\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.75\n") ..core.colorize("#FFFFFF", "Gun type: Magnum\n") ..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "penetration: 15%\n")..core.colorize("#FFFFFF", "Bullet velocity: 50"),
wield_scale = {x=1.25,y=1.25,z=1.5},
range = 0,
inventory_image = "rangedweapons_golden_deagle.png",
RW_gun_capabilities = {
gun_damage = {fleshy=14,knockback=6},
gun_crit = 23,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:357",9},{"rangedweapons:44",8},{"rangedweapons:50ae",7}},
gun_skill = {"revolver_skill",38},
gun_magazine = "rangedweapons:handgun_mag_white",
gun_unloaded = "rangedweapons:golden_deagle_r",
gun_cooling = "rangedweapons:golden_deagle_rld",
gun_velocity = 50,
gun_accuracy = 90,
gun_cooldown = 0.75,
gun_reload = 0.6/1,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1000,
gun_smokeSize = 7,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_deagle",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,203 +1,203 @@
local he_boom = {
name = "rangedweapons:he_explosion",
--description = "DuN mInD mEh...",
radius = 2,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
tnt.register_tnt(he_boom)
local rocket_boom = {
name = "rangedweapons:rocket_explosion",
--description = "DuN mInD mEh...",
radius = 3,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
tnt.register_tnt(rocket_boom)
local rangedweapons_rocket = {
physical = false,
timer = 0,
visual = "sprite",
visual_size = {x=0.0, y=0.0},
textures = {"rangedweapons_invisible.png"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_rocket.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local tiem = 0.002
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if self.timer >= 0.002 then
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=0, z=0},
expirationtime = 0.04,
size = 7,
collisiondetection = false,
vertical = false,
texture = "rangedweapons_rocket_fly.png",
glow = 15,
})
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=6, z=0},
expirationtime = 0.4,
size = 4,
collisiondetection = false,
vertical = false,
texture = "tnt_smoke.png",
glow = 5,
})
tiem = tiem + 0.002
end
if self.timer >= 0.375 then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1.5)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "rangedweapons:rocket" and obj:get_luaentity().name ~= "__builtin:item" then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
end
end
end
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
if self.timer >= 7.5 then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:rocket", rangedweapons_rocket)
local rangedweapons_he_grenade = {
physical = false,
timer = 0,
visual = "sprite",
visual_size = {x=0.0, y=0.0},
textures = {"rangedweapons_invisible.png"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_he_grenade.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local tiem = 0.002
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if self.timer >= 0.002 then
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=0, z=0},
expirationtime = 0.04,
size = 7,
collisiondetection = false,
vertical = false,
texture = "rangedweapons_rocket_fly.png",
glow = 15,
})
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=16, z=0},
expirationtime = 0.4,
size = 4,
collisiondetection = false,
vertical = false,
texture = "tnt_smoke.png",
glow = 5,
})
tiem = tiem + 0.002
end
if self.timer >= 0.4 then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1.5)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "rangedweapons:he_grenade" and obj:get_luaentity().name ~= "__builtin:item" then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
end
end
end
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
tnt.boom(pos, he_boom)
self.object:remove()
end
if self.timer >= 7.5 then
tnt.boom(pos, he_boom)
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:he_grenade", rangedweapons_he_grenade)
local barrel_boom = {
name = "rangedweapons:explosion",
--description = "DuN mInD mEh...",
radius = 3,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
tnt.register_tnt(barrel_boom)
minetest.register_node("rangedweapons:barrel", {
description = "" ..core.colorize("#35cdff","Explosive barrel\n")..core.colorize("#FFFFFF", "It will explode if shot by gun"),
tiles = {
"rangedweapons_barrel_top.png",
"rangedweapons_barrel_top.png",
"rangedweapons_barrel_side.png",
"rangedweapons_barrel_side.png",
"rangedweapons_barrel_side.png",
"rangedweapons_barrel_side.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {choppy = 3, oddly_breakable_by_hand = 3},
on_blast = function(pos)
tnt.boom(pos, {radius = 3})
end,
sounds = default.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.5, 0.1875, 0.5, 0.5}, -- NodeBox1
{-0.5, -0.5, -0.1875, 0.5, 0.5, 0.1875}, -- NodeBox2
{-0.4375, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox3
{-0.3125, -0.5, -0.4375, 0.3125, 0.5, 0.4375}, -- NodeBox4
{-0.375, -0.5, -0.375, 0.375, 0.5, 0.375}, -- NodeBox5
}
}
})
local he_boom = {
name = "rangedweapons:he_explosion",
--description = "DuN mInD mEh...",
radius = 2,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
tnt.register_tnt(he_boom)
local rocket_boom = {
name = "rangedweapons:rocket_explosion",
--description = "DuN mInD mEh...",
radius = 3,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
tnt.register_tnt(rocket_boom)
local rangedweapons_rocket = {
physical = false,
timer = 0,
visual = "sprite",
visual_size = {x=0.0, y=0.0},
textures = {"rangedweapons_invisible.png"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_rocket.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local tiem = 0.002
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if self.timer >= 0.002 then
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=0, z=0},
expirationtime = 0.04,
size = 7,
collisiondetection = false,
vertical = false,
texture = "rangedweapons_rocket_fly.png",
glow = 15,
})
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=6, z=0},
expirationtime = 0.4,
size = 4,
collisiondetection = false,
vertical = false,
texture = "tnt_smoke.png",
glow = 5,
})
tiem = tiem + 0.002
end
if self.timer >= 0.375 then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1.5)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "rangedweapons:rocket" and obj:get_luaentity().name ~= "__builtin:item" then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
end
end
end
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
if self.timer >= 7.5 then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:rocket", rangedweapons_rocket)
local rangedweapons_he_grenade = {
physical = false,
timer = 0,
visual = "sprite",
visual_size = {x=0.0, y=0.0},
textures = {"rangedweapons_invisible.png"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_he_grenade.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local tiem = 0.002
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if self.timer >= 0.002 then
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=0, z=0},
expirationtime = 0.04,
size = 7,
collisiondetection = false,
vertical = false,
texture = "rangedweapons_rocket_fly.png",
glow = 15,
})
minetest.add_particle({
pos = pos,
velocity = 0,
acceleration = {x=0, y=16, z=0},
expirationtime = 0.4,
size = 4,
collisiondetection = false,
vertical = false,
texture = "tnt_smoke.png",
glow = 5,
})
tiem = tiem + 0.002
end
if self.timer >= 0.4 then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 1.5)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "rangedweapons:he_grenade" and obj:get_luaentity().name ~= "__builtin:item" then
tnt.boom(pos, rocket_boom)
self.object:remove()
end
end
end
end
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
tnt.boom(pos, he_boom)
self.object:remove()
end
if self.timer >= 7.5 then
tnt.boom(pos, he_boom)
self.object:remove()
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:he_grenade", rangedweapons_he_grenade)
local barrel_boom = {
name = "rangedweapons:explosion",
--description = "DuN mInD mEh...",
radius = 3,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
tnt.register_tnt(barrel_boom)
minetest.register_node("rangedweapons:barrel", {
description = "" ..core.colorize("#35cdff","Explosive barrel\n")..core.colorize("#FFFFFF", "It will explode if shot by gun"),
tiles = {
"rangedweapons_barrel_top.png",
"rangedweapons_barrel_top.png",
"rangedweapons_barrel_side.png",
"rangedweapons_barrel_side.png",
"rangedweapons_barrel_side.png",
"rangedweapons_barrel_side.png"
},
drawtype = "nodebox",
paramtype = "light",
groups = {choppy = 3, oddly_breakable_by_hand = 3},
on_blast = function(pos)
tnt.boom(pos, {radius = 3})
end,
sounds = default.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.5, 0.1875, 0.5, 0.5}, -- NodeBox1
{-0.5, -0.5, -0.1875, 0.5, 0.5, 0.1875}, -- NodeBox2
{-0.4375, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox3
{-0.3125, -0.5, -0.4375, 0.3125, 0.5, 0.4375}, -- NodeBox4
{-0.375, -0.5, -0.375, 0.375, 0.5, 0.375}, -- NodeBox5
}
}
})

@ -1,150 +1,150 @@
local proj_dir
minetest.register_tool("rangedweapons:forcegun", {
description = "" ..core.colorize("#35cdff","Force gun\n") ..core.colorize("#FFFFFF", "Completelly harmless... by itself...\n")..core.colorize("#FFFFFF", "It's projectile will push either the entity it hits directly, or everyone near the node it collides with far away.\n") ..core.colorize("#FFFFFF", "Perfect for rocket-jumping or YEETing enemies away.\n")..core.colorize("#FFFFFF", "Power usage: 40\n")..core.colorize("#FFFFFF", "Gun type:Power Special-gun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 60"),
range = 0,
wield_scale = {x=2.0,y=2.0,z=1.75},
inventory_image = "rangedweapons_forcegun.png",
on_use = function(itemstack, user, pointed_thing)
local pos = user:get_pos()
local dir = user:get_look_dir()
local yaw = user:get_look_horizontal()
local inv = user:get_inventory()
if inv:contains_item("main", "rangedweapons:power_particle 40") then
if pos and dir then
inv:remove_item("main", "rangedweapons:power_particle 25")
pos.y = pos.y + 1.5
local obj = minetest.add_entity(pos, "rangedweapons:forceblast")
if obj then
minetest.sound_play("rangedweapons_rocket", {object=obj})
obj:set_velocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60})
obj:set_yaw(yaw - math.pi/2)
proj_dir = dir
local ent = obj:get_luaentity()
if ent then
ent.player = ent.player or user
end
end
end
end
end,
})
local rangedweapons_forceblast = {
timer = 0,
initial_properties = {
physical = true,
hp_max = 420,
glow = 30,
visual = "sprite",
visual_size = {x=0.4, y=0.4,},
textures = {"rangedweapons_force_bullet.png"},
lastpos = {},
collide_with_objects = false,
collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
},
}
rangedweapons_forceblast.on_step = function(self, dtime, moveresult)
self.timer = self.timer + dtime
local pos = self.object:get_pos()
proj_dir = proj_dir or ({x=0,y=0,z=0})
if self.timer > 10 then
self.object:remove()
end
if self.timer > 0.05 then
self.object:set_properties({collide_with_objects = true})
end
if moveresult.collides == true then
if moveresult.collisions[1] ~= nil then
if moveresult.collisions[1].type == "object" then
if moveresult.collisions[1].object:is_player() then
moveresult.collisions[1].object:add_player_velocity({x=proj_dir.x * 20, y=5+ (proj_dir.y * 20), z=proj_dir.z * 20})
else
moveresult.collisions[1].object:add_velocity({x=proj_dir.x * 20, y=5+ (proj_dir.y * 20), z=proj_dir.z * 20})
end
minetest.add_particle({
pos = ({x = pos.x, y = pos.y, z = pos.z}),
velocity ={x=0,y=0,z=0},
acceleration ={x=0,y=0,z=0},
expirationtime = 0.20,
size = 16,
collisiondetection = true,
collision_removal = false,
vertical = false,
texture = "rangedweapons_force_blast.png",
glow = 20,
animation = {type="vertical_frames", aspect_w=64, aspect_h=64, length = 0.20,},
})
self.object:remove()
end
if moveresult.collisions[1].type == "node" then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 7)
for k, obj in pairs(objs) do
local posd_x = 1
local posd_y = 1
local posd_z = 1
if obj:get_pos() then
posd_x = pos.x - obj:get_pos().x
posd_y = pos.y - obj:get_pos().y
posd_z = pos.z - obj:get_pos().z
end
if posd_y < 0 and posd_y > -1 then posd_y = -1 end
if posd_y > 0 and posd_y < 1 then posd_y = 1 end
if posd_y > 0 then posd_y=posd_y*3 end
posd_y = (posd_y + 0.5) * (((math.abs(posd_x)+0.5)+(math.abs(posd_z)+0.5))/2)
if posd_y > -1.0 and posd_y < 0 then posd_y = -1.0 end
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "rangedweapons:forceblast" then
obj:add_velocity({x=10*(-posd_x), y=30*(-1/posd_y), z=10*(-posd_z)})
self.object:remove()
end
else
obj:add_player_velocity({x=30*((-posd_x)/(1+math.abs(posd_x))), y=25*(-1/posd_y), z=30*((-posd_z)/(1+math.abs(posd_z)))})
self.object:remove()
end
end
minetest.add_particle({
pos = ({x = pos.x, y = pos.y, z = pos.z}),
velocity ={x=0,y=0,z=0},
acceleration ={x=0,y=0,z=0},
expirationtime = 0.20,
size = 128,
collisiondetection = true,
collision_removal = false,
vertical = false,
texture = "rangedweapons_force_blast.png",
glow = 20,
animation = {type="vertical_frames", aspect_w=64, aspect_h=64, length = 0.20,},
})
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
end
end
minetest.register_entity("rangedweapons:forceblast", rangedweapons_forceblast)
local proj_dir
minetest.register_tool("rangedweapons:forcegun", {
description = "" ..core.colorize("#35cdff","Force gun\n") ..core.colorize("#FFFFFF", "Completelly harmless... by itself...\n")..core.colorize("#FFFFFF", "It's projectile will push either the entity it hits directly, or everyone near the node it collides with far away.\n") ..core.colorize("#FFFFFF", "Perfect for rocket-jumping or YEETing enemies away.\n")..core.colorize("#FFFFFF", "Power usage: 40\n")..core.colorize("#FFFFFF", "Gun type:Power Special-gun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 60"),
range = 0,
wield_scale = {x=2.0,y=2.0,z=1.75},
inventory_image = "rangedweapons_forcegun.png",
on_use = function(itemstack, user, pointed_thing)
local pos = user:get_pos()
local dir = user:get_look_dir()
local yaw = user:get_look_horizontal()
local inv = user:get_inventory()
if inv:contains_item("main", "rangedweapons:power_particle 40") then
if pos and dir then
inv:remove_item("main", "rangedweapons:power_particle 25")
pos.y = pos.y + 1.5
local obj = minetest.add_entity(pos, "rangedweapons:forceblast")
if obj then
minetest.sound_play("rangedweapons_rocket", {object=obj})
obj:set_velocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60})
obj:set_yaw(yaw - math.pi/2)
proj_dir = dir
local ent = obj:get_luaentity()
if ent then
ent.player = ent.player or user
end
end
end
end
end,
})
local rangedweapons_forceblast = {
timer = 0,
initial_properties = {
physical = true,
hp_max = 420,
glow = 30,
visual = "sprite",
visual_size = {x=0.4, y=0.4,},
textures = {"rangedweapons_force_bullet.png"},
lastpos = {},
collide_with_objects = false,
collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
},
}
rangedweapons_forceblast.on_step = function(self, dtime, moveresult)
self.timer = self.timer + dtime
local pos = self.object:get_pos()
proj_dir = proj_dir or ({x=0,y=0,z=0})
if self.timer > 10 then
self.object:remove()
end
if self.timer > 0.05 then
self.object:set_properties({collide_with_objects = true})
end
if moveresult.collides == true then
if moveresult.collisions[1] ~= nil then
if moveresult.collisions[1].type == "object" then
if moveresult.collisions[1].object:is_player() then
moveresult.collisions[1].object:add_player_velocity({x=proj_dir.x * 20, y=5+ (proj_dir.y * 20), z=proj_dir.z * 20})
else
moveresult.collisions[1].object:add_velocity({x=proj_dir.x * 20, y=5+ (proj_dir.y * 20), z=proj_dir.z * 20})
end
minetest.add_particle({
pos = ({x = pos.x, y = pos.y, z = pos.z}),
velocity ={x=0,y=0,z=0},
acceleration ={x=0,y=0,z=0},
expirationtime = 0.20,
size = 16,
collisiondetection = true,
collision_removal = false,
vertical = false,
texture = "rangedweapons_force_blast.png",
glow = 20,
animation = {type="vertical_frames", aspect_w=64, aspect_h=64, length = 0.20,},
})
self.object:remove()
end
if moveresult.collisions[1].type == "node" then
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 7)
for k, obj in pairs(objs) do
local posd_x = 1
local posd_y = 1
local posd_z = 1
if obj:get_pos() then
posd_x = pos.x - obj:get_pos().x
posd_y = pos.y - obj:get_pos().y
posd_z = pos.z - obj:get_pos().z
end
if posd_y < 0 and posd_y > -1 then posd_y = -1 end
if posd_y > 0 and posd_y < 1 then posd_y = 1 end
if posd_y > 0 then posd_y=posd_y*3 end
posd_y = (posd_y + 0.5) * (((math.abs(posd_x)+0.5)+(math.abs(posd_z)+0.5))/2)
if posd_y > -1.0 and posd_y < 0 then posd_y = -1.0 end
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "rangedweapons:forceblast" then
obj:add_velocity({x=10*(-posd_x), y=30*(-1/posd_y), z=10*(-posd_z)})
self.object:remove()
end
else
obj:add_player_velocity({x=30*((-posd_x)/(1+math.abs(posd_x))), y=25*(-1/posd_y), z=30*((-posd_z)/(1+math.abs(posd_z)))})
self.object:remove()
end
end
minetest.add_particle({
pos = ({x = pos.x, y = pos.y, z = pos.z}),
velocity ={x=0,y=0,z=0},
acceleration ={x=0,y=0,z=0},
expirationtime = 0.20,
size = 128,
collisiondetection = true,
collision_removal = false,
vertical = false,
texture = "rangedweapons_force_blast.png",
glow = 20,
animation = {type="vertical_frames", aspect_w=64, aspect_h=64, length = 0.20,},
})
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
end
end
minetest.register_entity("rangedweapons:forceblast", rangedweapons_forceblast)

146
g36.lua

@ -1,73 +1,73 @@
minetest.register_tool("rangedweapons:g36_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:g36_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_g36_rld.png",
})
minetest.register_tool("rangedweapons:g36_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:g36_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_g36.png",
})
minetest.register_tool("rangedweapons:g36_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:g36",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_g36.png",
})
minetest.register_tool("rangedweapons:g36", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","g36\n") ..core.colorize("#FFFFFF", "Gun damage: 7\n") ..core.colorize("#FFFFFF", "accuracy: 80%\n") ..core.colorize("#FFFFFF", "Gun knockback: 5\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 12%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.9x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.2\n") ..core.colorize("#FFFFFF", "Clip size: 30\n") ..core.colorize("#FFFFFF", "Ammunition: 5.56mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.08(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: assault rifle\n") ..core.colorize("#FFFFFF", "Block penetration: 6%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 17%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 40"),
range = 0,
inventory_image = "rangedweapons_g36.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=7,knockback=5},
gun_crit = 12,
gun_critEffc = 2.9,
suitable_ammo = {{"rangedweapons:556mm",30}},
gun_skill = {"arifle_skill",55},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:g36_r",
gun_velocity = 40,
gun_accuracy = 80,
gun_cooldown = 0.08,
gun_reload = 1.2/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 5,
gun_mob_penetration = 17,
gun_node_penetration = 6,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_g36.png",
})
minetest.register_tool("rangedweapons:g36_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:g36_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_g36_rld.png",
})
minetest.register_tool("rangedweapons:g36_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:g36_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_g36.png",
})
minetest.register_tool("rangedweapons:g36_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:g36",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_g36.png",
})
minetest.register_tool("rangedweapons:g36", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","g36\n") ..core.colorize("#FFFFFF", "Gun damage: 7\n") ..core.colorize("#FFFFFF", "accuracy: 80%\n") ..core.colorize("#FFFFFF", "Gun knockback: 5\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 12%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.9x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.2\n") ..core.colorize("#FFFFFF", "Clip size: 30\n") ..core.colorize("#FFFFFF", "Ammunition: 5.56mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.08(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: assault rifle\n") ..core.colorize("#FFFFFF", "Block penetration: 6%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 17%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 40"),
range = 0,
inventory_image = "rangedweapons_g36.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=7,knockback=5},
gun_crit = 12,
gun_critEffc = 2.9,
suitable_ammo = {{"rangedweapons:556mm",30}},
gun_skill = {"arifle_skill",55},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:g36_r",
gun_velocity = 40,
gun_accuracy = 80,
gun_cooldown = 0.08,
gun_reload = 1.2/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 5,
gun_mob_penetration = 17,
gun_node_penetration = 6,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_g36.png",
})

@ -1,39 +1,39 @@
minetest.register_node("rangedweapons:generator", {
description = "" ..core.colorize("#35cdff","Power particle generator\n")..core.colorize("#FFFFFF", "generates 1 power particle every 3 seconds (can hold up to 200). Punch to harvest them"),
tiles = {
"rangedweapons_generator_top.png",
"rangedweapons_generator_bottom.png",
"rangedweapons_generator_side.png",
"rangedweapons_generator_side.png",
"rangedweapons_generator_side.png",
"rangedweapons_generator_side.png"
},
paramtype = "light",
light_source = 9,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
on_timer = function(pos, elapsed)
minetest.get_node_timer(pos):start(3)
local nodemeta = minetest.get_meta(pos)
if nodemeta:get_int("power_generated") < 200 then
nodemeta:set_int("power_generated",nodemeta:get_int("power_generated")+1)
nodemeta:set_string("infotext", "currently generated power:"..nodemeta:get_int("power_generated"))
end
end,
on_punch = function(pos, node, puncher)
local nodemeta = minetest.get_meta(pos)
local inv = puncher:get_inventory()
inv:add_item("main", "rangedweapons:power_particle "..nodemeta:get_int("power_generated"))
nodemeta:set_int("power_generated",0)
nodemeta:set_string("infotext", "currently generated power:"..nodemeta:get_int("power_generated"))
end,
on_construct = function(pos)
minetest.get_node_timer(pos):start(3)
end,
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("rangedweapons:generator", {
description = "" ..core.colorize("#35cdff","Power particle generator\n")..core.colorize("#FFFFFF", "generates 1 power particle every 3 seconds (can hold up to 200). Punch to harvest them"),
tiles = {
"rangedweapons_generator_top.png",
"rangedweapons_generator_bottom.png",
"rangedweapons_generator_side.png",
"rangedweapons_generator_side.png",
"rangedweapons_generator_side.png",
"rangedweapons_generator_side.png"
},
paramtype = "light",
light_source = 9,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
on_timer = function(pos, elapsed)
minetest.get_node_timer(pos):start(3)
local nodemeta = minetest.get_meta(pos)
if nodemeta:get_int("power_generated") < 200 then
nodemeta:set_int("power_generated",nodemeta:get_int("power_generated")+1)
nodemeta:set_string("infotext", "currently generated power:"..nodemeta:get_int("power_generated"))
end
end,
on_punch = function(pos, node, puncher)
local nodemeta = minetest.get_meta(pos)
local inv = puncher:get_inventory()
inv:add_item("main", "rangedweapons:power_particle "..nodemeta:get_int("power_generated"))
nodemeta:set_int("power_generated",0)
nodemeta:set_string("infotext", "currently generated power:"..nodemeta:get_int("power_generated"))
end,
on_construct = function(pos)
minetest.get_node_timer(pos):start(3)
end,
sounds = default.node_sound_wood_defaults(),
})

@ -1,20 +1,20 @@
minetest.register_node("rangedweapons:broken_glass", {
description = "Broken glass",
drawtype = "glasslike",
tiles = {
"rangedweapons_broken_glass.png"
},
paramtype = "light",
walkable = false,
is_ground_content = false,
liquidtype = "source",
liquid_alternative_flowing = "rangedweapons:broken_glass",
liquid_alternative_source = "rangedweapons:broken_glass",
liquid_viscosity = 7,
alpha = 160,
liquid_range= 0,
liquid_renewable = false,
damage_per_second = 2,
groups = {oddly_breakable_by_hand = 3},
})
minetest.register_node("rangedweapons:broken_glass", {
description = "Broken glass",
drawtype = "glasslike",
tiles = {
"rangedweapons_broken_glass.png"
},
paramtype = "light",
walkable = false,
is_ground_content = false,
liquidtype = "source",
liquid_alternative_flowing = "rangedweapons:broken_glass",
liquid_alternative_source = "rangedweapons:broken_glass",
liquid_viscosity = 7,
alpha = 160,
liquid_range= 0,
liquid_renewable = false,
damage_per_second = 2,
groups = {oddly_breakable_by_hand = 3},
})

@ -1,83 +1,83 @@
minetest.register_tool("rangedweapons:glock17_rld", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
loaded_gun = "rangedweapons:glock17",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17_rld.png",
})
minetest.register_tool("rangedweapons:glock17_r", {
stack_max= 1,
wield_scale = {x=1.2,y=1.2,z=1.2},
description = "",
rw_next_reload = "rangedweapons:glock17_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17.png",
})
minetest.register_tool("rangedweapons:glock17_rr", {
stack_max= 1,
wield_scale = {x=1.2,y=1.2,z=1.2},
description = "",
rw_next_reload = "rangedweapons:glock17_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17.png",
})
minetest.register_tool("rangedweapons:glock17_rrr", {
stack_max= 1,
wield_scale = {x=1.2,y=1.2,z=1.2},
description = "",
rw_next_reload = "rangedweapons:glock17",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17_rld.png",
})
minetest.register_tool("rangedweapons:glock17", {
description = "" ..core.colorize("#35cdff","Glock 17\n") ..core.colorize("#FFFFFF", "Gun damage: 5\n") ..core.colorize("#FFFFFF", "Accuracy: 96%\n") ..core.colorize("#FFFFFF", "Gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 15%\n") ..core.colorize("#FFFFFF", "Gun Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.9\n")..core.colorize("#FFFFFF", "Clip size: 17/17/17\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm Parabellum/10mm Auto/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.35\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
wield_scale = {x=1.2,y=1.2,z=1.2},
range = 0,
inventory_image = "rangedweapons_glock17.png",
RW_gun_capabilities = {
gun_damage = {fleshy=5,knockback=4},
gun_crit = 15,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:9mm",17},{"rangedweapons:10mm",17},{"rangedweapons:45acp",17}},
gun_skill = {"handgun_skill",45},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:glock17_r",
gun_cooling = "rangedweapons:glock17_rld",
gun_velocity = 30,
gun_accuracy = 96,
gun_cooldown = 0.35,
gun_reload = 0.9/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1400,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_glock",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:glock17_rld", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
loaded_gun = "rangedweapons:glock17",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17_rld.png",
})
minetest.register_tool("rangedweapons:glock17_r", {
stack_max= 1,
wield_scale = {x=1.2,y=1.2,z=1.2},
description = "",
rw_next_reload = "rangedweapons:glock17_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17.png",
})
minetest.register_tool("rangedweapons:glock17_rr", {
stack_max= 1,
wield_scale = {x=1.2,y=1.2,z=1.2},
description = "",
rw_next_reload = "rangedweapons:glock17_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17.png",
})
minetest.register_tool("rangedweapons:glock17_rrr", {
stack_max= 1,
wield_scale = {x=1.2,y=1.2,z=1.2},
description = "",
rw_next_reload = "rangedweapons:glock17",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_glock17_rld.png",
})
minetest.register_tool("rangedweapons:glock17", {
description = "" ..core.colorize("#35cdff","Glock 17\n") ..core.colorize("#FFFFFF", "Gun damage: 5\n") ..core.colorize("#FFFFFF", "Accuracy: 96%\n") ..core.colorize("#FFFFFF", "Gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 15%\n") ..core.colorize("#FFFFFF", "Gun Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.9\n")..core.colorize("#FFFFFF", "Clip size: 17/17/17\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm Parabellum/10mm Auto/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.35\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
wield_scale = {x=1.2,y=1.2,z=1.2},
range = 0,
inventory_image = "rangedweapons_glock17.png",
RW_gun_capabilities = {
gun_damage = {fleshy=5,knockback=4},
gun_crit = 15,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:9mm",17},{"rangedweapons:10mm",17},{"rangedweapons:45acp",17}},
gun_skill = {"handgun_skill",45},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:glock17_r",
gun_cooling = "rangedweapons:glock17_rld",
gun_velocity = 30,
gun_accuracy = 96,
gun_cooldown = 0.35,
gun_reload = 0.9/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1400,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_glock",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,149 +1,149 @@
minetest.register_craftitem("rangedweapons:pin", {
wield_scale = {x=2.5,y=2.5,z=1.0},
inventory_image = "rangedweapons_pin.png",
})
local rangedweapons_grenade_pin = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.15, y=0.15},
textures = {"rangedweapons:pin"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_grenade_pin.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
self.object:remove()
minetest.sound_play("rangedweapons_bulletdrop", {pos = self.lastpos, gain = 0.8})
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:grenade_pin", rangedweapons_grenade_pin)
local grenade_boom = {
name = "rangedweapons:grenade_explosion",
--description = "DuN mInD mEh...",
radius = 3,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
local gtimer = 0
minetest.register_craftitem("rangedweapons:hand_grenade", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "" ..core.colorize("#35cdff","Hand grenade\n") ..core.colorize("#FFFFFF", "Explosion radius: 3\n")..core.colorize("#FFFFFF", "Throw force: 12\n") ..core.colorize("#FFFFFF", "Grenade gravitational pull: 6\n") ..core.colorize("#ffc000", "Right-click to unpin, Left click to throw after unpinning\n") ..core.colorize("#ffc000", "Thrown or not, it will explode after 3 secons from unpinning, be careful!"),
range = 0,
inventory_image = "rangedweapons_hand_grenade.png",
on_secondary_use = function(itemstack, user, pointed_thing)
if minetest.find_node_near(user:get_pos(), 10,"rangedweapons:antigun_block")
then
minetest.chat_send_player(user:get_player_name(), "" ..core.colorize("#ff0000","Grenades are prohibited in this area!"))
return itemstack
end
gtimer = 0
minetest.sound_play("rangedweapons_reload_a", {pos = user:get_pos()})
itemstack = "rangedweapons:hand_grenade_nopin"
local pos = user:get_pos()
pos.y = pos.y + 1.5
local pinEnt = minetest.add_entity(pos, "rangedweapons:grenade_pin")
if pinEnt then
local dir = user:get_look_dir()
local yaw = user:get_look_horizontal()
local svertical = user:get_look_vertical()
pinEnt:set_velocity({x=dir.x * -10, y=dir.y * -10, z=dir.z * -10})
pinEnt:set_acceleration({x=dir.x * -5, y= -10, z=dir.z * -5})
pinEnt:set_rotation({x=0,y=yaw - math.pi/2,z=-svertical})
end
return itemstack end,
})
minetest.register_craftitem("rangedweapons:hand_grenade_nopin", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "***HURRY UP AND THROW IT!!!***",
range = 0,
inventory_image = "rangedweapons_hand_grenade_nopin.png",
groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user, pointed_thing)
local pos = user:get_pos()
local dir = user:get_look_dir()
local yaw = user:get_look_horizontal()
if pos and dir and yaw then
pos.y = pos.y + 1.6
local obj = minetest.add_entity(pos, "rangedweapons:grenade")
if obj then
obj:set_velocity({x=dir.x * 12, y=dir.y * 12, z=dir.z * 12})
obj:set_acceleration({x=0, y=-6, z=0})
obj:set_yaw(yaw - math.pi/2)
btimer = gtimer
local ent = obj:get_luaentity()
if ent then
ent.player = ent.player or user
itemstack = ""
end
end
end
return itemstack
end,
})
tnt.register_tnt(grenade_boom)
minetest.register_globalstep(function(dtime, player, pos)
gtimer = gtimer + dtime;
if gtimer >= 3.0 then
for _, player in pairs(minetest.get_connected_players()) do
local pos = player:get_pos()
if player:get_wielded_item():get_name() == "rangedweapons:hand_grenade_nopin" then
player:set_wielded_item("")
gtimer = 0
tnt.boom(pos, grenade_boom)
end end end end)
local rangedweapons_grenade = {
physical = true,
btimer = 0,
timer = 0,
hp_max = 420,
visual = "sprite",
visual_size = {x=0.5, y=0.5},
textures = {"rangedweapons_hand_grenade_nopin.png"},
lastpos= {},
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
}
rangedweapons_grenade.on_step = function(self, dtime, pos)
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
local btimer = btimer or 0
self.timer = self.timer + dtime
if self.timer > (3.0 - btimer) then
tnt.boom(pos, grenade_boom)
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:grenade", rangedweapons_grenade)
minetest.register_craftitem("rangedweapons:pin", {
wield_scale = {x=2.5,y=2.5,z=1.0},
inventory_image = "rangedweapons_pin.png",
})
local rangedweapons_grenade_pin = {
physical = false,
timer = 0,
visual = "wielditem",
visual_size = {x=0.15, y=0.15},
textures = {"rangedweapons:pin"},
lastpos= {},
collisionbox = {0, 0, 0, 0, 0, 0},
}
rangedweapons_grenade_pin.on_step = function(self, dtime, pos)
self.timer = self.timer + dtime
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
if self.lastpos.x ~= nil then
if minetest.registered_nodes[node.name].walkable then
self.object:remove()
minetest.sound_play("rangedweapons_bulletdrop", {pos = self.lastpos, gain = 0.8})
end
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:grenade_pin", rangedweapons_grenade_pin)
local grenade_boom = {
name = "rangedweapons:grenade_explosion",
--description = "DuN mInD mEh...",
radius = 3,
tiles = {
side = "rangedweapons_invisible.png",
top = "rangedweapons_invisible.png",
bottom = "rangedweapons_invisible.png",
burning = "rangedweapons_invisible.png"
},
}
local gtimer = 0
minetest.register_craftitem("rangedweapons:hand_grenade", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "" ..core.colorize("#35cdff","Hand grenade\n") ..core.colorize("#FFFFFF", "Explosion radius: 3\n")..core.colorize("#FFFFFF", "Throw force: 12\n") ..core.colorize("#FFFFFF", "Grenade gravitational pull: 6\n") ..core.colorize("#ffc000", "Right-click to unpin, Left click to throw after unpinning\n") ..core.colorize("#ffc000", "Thrown or not, it will explode after 3 secons from unpinning, be careful!"),
range = 0,
inventory_image = "rangedweapons_hand_grenade.png",
on_secondary_use = function(itemstack, user, pointed_thing)
if minetest.find_node_near(user:get_pos(), 10,"rangedweapons:antigun_block")
then
minetest.chat_send_player(user:get_player_name(), "" ..core.colorize("#ff0000","Grenades are prohibited in this area!"))
return itemstack
end
gtimer = 0
minetest.sound_play("rangedweapons_reload_a", {pos = user:get_pos()})
itemstack = "rangedweapons:hand_grenade_nopin"
local pos = user:get_pos()
pos.y = pos.y + 1.5
local pinEnt = minetest.add_entity(pos, "rangedweapons:grenade_pin")
if pinEnt then
local dir = user:get_look_dir()
local yaw = user:get_look_horizontal()
local svertical = user:get_look_vertical()
pinEnt:set_velocity({x=dir.x * -10, y=dir.y * -10, z=dir.z * -10})
pinEnt:set_acceleration({x=dir.x * -5, y= -10, z=dir.z * -5})
pinEnt:set_rotation({x=0,y=yaw - math.pi/2,z=-svertical})
end
return itemstack end,
})
minetest.register_craftitem("rangedweapons:hand_grenade_nopin", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "***HURRY UP AND THROW IT!!!***",
range = 0,
inventory_image = "rangedweapons_hand_grenade_nopin.png",
groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user, pointed_thing)
local pos = user:get_pos()
local dir = user:get_look_dir()
local yaw = user:get_look_horizontal()
if pos and dir and yaw then
pos.y = pos.y + 1.6
local obj = minetest.add_entity(pos, "rangedweapons:grenade")
if obj then
obj:set_velocity({x=dir.x * 12, y=dir.y * 12, z=dir.z * 12})
obj:set_acceleration({x=0, y=-6, z=0})
obj:set_yaw(yaw - math.pi/2)
btimer = gtimer
local ent = obj:get_luaentity()
if ent then
ent.player = ent.player or user
itemstack = ""
end
end
end
return itemstack
end,
})
tnt.register_tnt(grenade_boom)
minetest.register_globalstep(function(dtime, player, pos)
gtimer = gtimer + dtime;
if gtimer >= 3.0 then
for _, player in pairs(minetest.get_connected_players()) do
local pos = player:get_pos()
if player:get_wielded_item():get_name() == "rangedweapons:hand_grenade_nopin" then
player:set_wielded_item("")
gtimer = 0
tnt.boom(pos, grenade_boom)
end end end end)
local rangedweapons_grenade = {
physical = true,
btimer = 0,
timer = 0,
hp_max = 420,
visual = "sprite",
visual_size = {x=0.5, y=0.5},
textures = {"rangedweapons_hand_grenade_nopin.png"},
lastpos= {},
collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
}
rangedweapons_grenade.on_step = function(self, dtime, pos)
local pos = self.object:get_pos()
local node = minetest.get_node(pos)
local btimer = btimer or 0
self.timer = self.timer + dtime
if self.timer > (3.0 - btimer) then
tnt.boom(pos, grenade_boom)
self.object:remove()
end
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
end
minetest.register_entity("rangedweapons:grenade", rangedweapons_grenade)

1808
init.lua

File diff suppressed because it is too large Load Diff

@ -1,68 +1,68 @@
minetest.register_tool("rangedweapons:jackhammer_r", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "",
rw_next_reload = "rangedweapons:jackhammer_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_jackhammer_rld.png",
})
minetest.register_tool("rangedweapons:jackhammer_rr", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "",
rw_next_reload = "rangedweapons:jackhammer_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_jackhammer.png",
})
minetest.register_tool("rangedweapons:jackhammer_rrr", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "",
rw_next_reload = "rangedweapons:jackhammer",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_jackhammer.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:jackhammer", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "" ..core.colorize("#35cdff","Jackhammer\n") ..core.colorize("#FFFFFF", "Ranged damage: 3\n") ..core.colorize("#FFFFFF", "projectiles: 8\n") ..core.colorize("#FFFFFF", "Gun gravity: 3\n") ..core.colorize("#FFFFFF", "accuracy: 35%\n") ..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Reload delay: 1.6\n") ..core.colorize("#FFFFFF", "Clip size: 10\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shell\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.25 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
range = 0,
inventory_image = "rangedweapons_jackhammer.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=3,knockback=6},
gun_crit = 7,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:shell",10}},
gun_skill = {"shotgun_skill",35},
gun_magazine = "rangedweapons:drum_mag",
gun_unloaded = "rangedweapons:jackhammer_r",
gun_velocity = 30,
gun_accuracy = 35,
gun_cooldown = 0.25,
gun_reload = 1.6/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 825,
gun_smokeSize = 9,
gun_door_breaking = 1,
gun_projectiles = 8,
gun_gravity = 3,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_shotgun_shot",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:jackhammer_r", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "",
rw_next_reload = "rangedweapons:jackhammer_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_jackhammer_rld.png",
})
minetest.register_tool("rangedweapons:jackhammer_rr", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "",
rw_next_reload = "rangedweapons:jackhammer_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_jackhammer.png",
})
minetest.register_tool("rangedweapons:jackhammer_rrr", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "",
rw_next_reload = "rangedweapons:jackhammer",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_jackhammer.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:jackhammer", {
stack_max= 1,
wield_scale = {x=2.6,y=2.6,z=1.8},
description = "" ..core.colorize("#35cdff","Jackhammer\n") ..core.colorize("#FFFFFF", "Ranged damage: 3\n") ..core.colorize("#FFFFFF", "projectiles: 8\n") ..core.colorize("#FFFFFF", "Gun gravity: 3\n") ..core.colorize("#FFFFFF", "accuracy: 35%\n") ..core.colorize("#FFFFFF", "knockback: 6\n") ..core.colorize("#FFFFFF", "Reload delay: 1.6\n") ..core.colorize("#FFFFFF", "Clip size: 10\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shell\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.25 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
range = 0,
inventory_image = "rangedweapons_jackhammer.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=3,knockback=6},
gun_crit = 7,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:shell",10}},
gun_skill = {"shotgun_skill",35},
gun_magazine = "rangedweapons:drum_mag",
gun_unloaded = "rangedweapons:jackhammer_r",
gun_velocity = 30,
gun_accuracy = 35,
gun_cooldown = 0.25,
gun_reload = 1.6/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 825,
gun_smokeSize = 9,
gun_door_breaking = 1,
gun_projectiles = 8,
gun_gravity = 3,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_shotgun_shot",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

@ -1,58 +1,58 @@
minetest.register_craftitem("rangedweapons:thrown_javelin", {
wield_scale = {x=2.0,y=2.0,z=1.0},
inventory_image = "rangedweapons_thrown_javelin.png",
})
minetest.register_tool("rangedweapons:javelin", {
description = "" ..core.colorize("#35cdff","Javelin\n") ..core.colorize("#FFFFFF", "Melee damage: 8\n") ..core.colorize("#FFFFFF", "Melee range: 4.5\n")..core.colorize("#FFFFFF", "Full punch interval: 1.25\n") ..core.colorize("#FFFFFF", "Ranged damage: 9\n") ..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "knockback: 10\n") ..core.colorize("#FFFFFF", "Critical chance: 11%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.5x\n") ..core.colorize("#FFFFFF", "Projectile gravity: 6\n") ..core.colorize("#FFFFFF", "Projectile velocity: 35\n") ..core.colorize("#FFFFFF", "Enemy penetration: 50%\n") ..core.colorize("#ffc000", "Right-click to throw, Left-click to stab\n")..core.colorize("#ffc000", "Throwing wears the javelin out 5x faster than stabbing.") ,
wield_scale = {x=2.0,y=2.0,z=1.0},
range = 4.5,
inventory_image = "rangedweapons_javelin.png",
tool_capabilities = {
full_punch_interval = 1.25,
max_drop_level = 0,
groupcaps = {
stabby = {times={[1]=0.25, [2]=0.50, [3]=0.75}, uses=66.6, maxlevel=2},
},
damage_groups = {fleshy=8,knockback=10},
},
RW_throw_capabilities = {
throw_damage = {fleshy=9,knockback=10},
throw_crit = 11,
throw_critEffc = 2.5,
throw_skill = {"throw_skill",20},
throw_velocity = 40,
throw_accuracy = 92,
throw_cooldown = 0.0,
throw_projectiles = 1,
throw_gravity = 6,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 50,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:thrown_javelin",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
local throwDur = 40
if bullet.wear+(65535/throwDur) < 65535 then
javStack = {name="rangedweapons:javelin",wear=(bullet.wear)+(65535/throwDur)}
minetest.add_item(bullet.object:get_pos(),javStack) end end,
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:thrown_javelin", {
wield_scale = {x=2.0,y=2.0,z=1.0},
inventory_image = "rangedweapons_thrown_javelin.png",
})
minetest.register_tool("rangedweapons:javelin", {
description = "" ..core.colorize("#35cdff","Javelin\n") ..core.colorize("#FFFFFF", "Melee damage: 8\n") ..core.colorize("#FFFFFF", "Melee range: 4.5\n")..core.colorize("#FFFFFF", "Full punch interval: 1.25\n") ..core.colorize("#FFFFFF", "Ranged damage: 9\n") ..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "knockback: 10\n") ..core.colorize("#FFFFFF", "Critical chance: 11%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.5x\n") ..core.colorize("#FFFFFF", "Projectile gravity: 6\n") ..core.colorize("#FFFFFF", "Projectile velocity: 35\n") ..core.colorize("#FFFFFF", "Enemy penetration: 50%\n") ..core.colorize("#ffc000", "Right-click to throw, Left-click to stab\n")..core.colorize("#ffc000", "Throwing wears the javelin out 5x faster than stabbing.") ,
wield_scale = {x=2.0,y=2.0,z=1.0},
range = 4.5,
inventory_image = "rangedweapons_javelin.png",
tool_capabilities = {
full_punch_interval = 1.25,
max_drop_level = 0,
groupcaps = {
stabby = {times={[1]=0.25, [2]=0.50, [3]=0.75}, uses=66.6, maxlevel=2},
},
damage_groups = {fleshy=8,knockback=10},
},
RW_throw_capabilities = {
throw_damage = {fleshy=9,knockback=10},
throw_crit = 11,
throw_critEffc = 2.5,
throw_skill = {"throw_skill",20},
throw_velocity = 40,
throw_accuracy = 92,
throw_cooldown = 0.0,
throw_projectiles = 1,
throw_gravity = 6,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 50,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:thrown_javelin",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
local throwDur = 40
if bullet.wear+(65535/throwDur) < 65535 then
javStack = {name="rangedweapons:javelin",wear=(bullet.wear)+(65535/throwDur)}
minetest.add_item(bullet.object:get_pos(),javStack) end end,
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})

@ -1,67 +1,67 @@
minetest.register_tool("rangedweapons:kriss_sv_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "",
rw_next_reload = "rangedweapons:kriss_sv_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_kriss_sv_rld.png",
})
minetest.register_tool("rangedweapons:kriss_sv_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "",
rw_next_reload = "rangedweapons:kriss_sv_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_kriss_sv.png",
})
minetest.register_tool("rangedweapons:kriss_sv_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "",
rw_next_reload = "rangedweapons:kriss_sv",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_kriss_sv.png",
})
minetest.register_tool("rangedweapons:kriss_sv", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "" ..core.colorize("#35cdff","Kriss Super V\n") ..core.colorize("#FFFFFF", "Gun damage: 1\n") ..core.colorize("#FFFFFF", "accuracy: 60%\n") ..core.colorize("#FFFFFF", "Gun knockback: 0\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 1.85x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.9\n") ..core.colorize("#FFFFFF", "Clip size: 33/33/13\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/10mm auto/.45 acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.05\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
inventory_image = "rangedweapons_kriss_sv.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=0},
gun_crit = 6,
gun_critEffc = 1.95,
suitable_ammo = {{"rangedweapons:9mm",33},{"rangedweapons:10mm",33},{"rangedweapons:45acp",13}},
gun_skill = {"mp_skill",90},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:kriss_sv_r",
gun_velocity = 20,
gun_accuracy = 60,
gun_cooldown = 0.05,
gun_reload = 0.9/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1750,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:kriss_sv_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "",
rw_next_reload = "rangedweapons:kriss_sv_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_kriss_sv_rld.png",
})
minetest.register_tool("rangedweapons:kriss_sv_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "",
rw_next_reload = "rangedweapons:kriss_sv_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_kriss_sv.png",
})
minetest.register_tool("rangedweapons:kriss_sv_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "",
rw_next_reload = "rangedweapons:kriss_sv",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_kriss_sv.png",
})
minetest.register_tool("rangedweapons:kriss_sv", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.15},
description = "" ..core.colorize("#35cdff","Kriss Super V\n") ..core.colorize("#FFFFFF", "Gun damage: 1\n") ..core.colorize("#FFFFFF", "accuracy: 60%\n") ..core.colorize("#FFFFFF", "Gun knockback: 0\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 1.85x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.9\n") ..core.colorize("#FFFFFF", "Clip size: 33/33/13\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/10mm auto/.45 acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.05\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
inventory_image = "rangedweapons_kriss_sv.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=0},
gun_crit = 6,
gun_critEffc = 1.95,
suitable_ammo = {{"rangedweapons:9mm",33},{"rangedweapons:10mm",33},{"rangedweapons:45acp",13}},
gun_skill = {"mp_skill",90},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:kriss_sv_r",
gun_velocity = 20,
gun_accuracy = 60,
gun_cooldown = 0.05,
gun_reload = 0.9/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1750,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

@ -1,46 +1,46 @@
minetest.register_craftitem("rangedweapons:blue_ray_visual", {
wield_scale = {x=1.75,y=1.75,z=1.75},
inventory_image = "rangedweapons_blue_ray.png",
})
minetest.register_tool("rangedweapons:laser_blaster", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "" ..core.colorize("#35cdff","Laser blaster\n") ..core.colorize("#FFFFFF", "Ranged damage: 15\n") ..core.colorize("#FFFFFF", "accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Critical chance: 10%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Power usage: 10\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.3\n") ..core.colorize("#FFFFFF", "Enemy penetration: 50%\n") ..core.colorize("#FFFFFF", "Gun type: power pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 65"),
range = 0,
inventory_image = "rangedweapons_laser_blaster.png",
RW_powergun_capabilities = {
power_damage = {fleshy=15,knockback=0},
power_crit = 10,
power_critEffc = 2.0,
power_skill = {"",1},
power_cooling = "rangedweapons:laser_blaster",
power_velocity = 65,
power_accuracy = 100,
power_cooldown = 0.3,
power_projectiles = 1,
power_durability = 5000,
power_sound = "rangedweapons_laser",
power_glass_breaking = 1,
power_door_breaking = 1,
power_dps = 0,
power_mob_penetration = 50,
power_node_penetration = 0,
power_dps = 0,
power_consumption = 10,
power_entity = "rangedweapons:shot_bullet",
power_visual = "wielditem",
power_texture = "rangedweapons:blue_ray_visual",
power_projectile_size = 0.1,
has_sparks = 0,
ignites_explosives = 1,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_powergun(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:blue_ray_visual", {
wield_scale = {x=1.75,y=1.75,z=1.75},
inventory_image = "rangedweapons_blue_ray.png",
})
minetest.register_tool("rangedweapons:laser_blaster", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "" ..core.colorize("#35cdff","Laser blaster\n") ..core.colorize("#FFFFFF", "Ranged damage: 15\n") ..core.colorize("#FFFFFF", "accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Critical chance: 10%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Power usage: 10\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.3\n") ..core.colorize("#FFFFFF", "Enemy penetration: 50%\n") ..core.colorize("#FFFFFF", "Gun type: power pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 65"),
range = 0,
inventory_image = "rangedweapons_laser_blaster.png",
RW_powergun_capabilities = {
power_damage = {fleshy=15,knockback=0},
power_crit = 10,
power_critEffc = 2.0,
power_skill = {"",1},
power_cooling = "rangedweapons:laser_blaster",
power_velocity = 65,
power_accuracy = 100,
power_cooldown = 0.3,
power_projectiles = 1,
power_durability = 5000,
power_sound = "rangedweapons_laser",
power_glass_breaking = 1,
power_door_breaking = 1,
power_dps = 0,
power_mob_penetration = 50,
power_node_penetration = 0,
power_dps = 0,
power_consumption = 10,
power_entity = "rangedweapons:shot_bullet",
power_visual = "wielditem",
power_texture = "rangedweapons:blue_ray_visual",
power_projectile_size = 0.1,
has_sparks = 0,
ignites_explosives = 1,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_powergun(itemstack, user)
return itemstack
end,
})

@ -1,38 +1,38 @@
minetest.register_craftitem("rangedweapons:red_ray_visual", {
wield_scale = {x=1.5,y=1.5,z=2.0},
inventory_image = "rangedweapons_red_ray.png",
})
minetest.register_tool("rangedweapons:laser_rifle", {
wield_scale = {x=1.9,y=1.9,z=2.5},
description = "" ..core.colorize("#35cdff","Laser rifle\n") ..core.colorize("#FFFFFF", "Ranged damage: 12\n") ..core.colorize("#FFFFFF", "accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Power usage: 8\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.1 (full-auto)\n") ..core.colorize("#FFFFFF", "Enemy penetration: 40%\n") ..core.colorize("#FFFFFF", "Gun type: power assault rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 60"),
range = 0,
RW_powergun_capabilities = {
automatic_gun = 1,
power_damage = {fleshy=12,knockback=0},
power_crit = 9,
power_critEffc = 2.0,
power_skill = {"",1},
power_cooling = "rangedweapons:laser_rifle",
power_velocity = 60,
power_accuracy = 100,
power_cooldown = 0.1,
power_projectiles = 1,
power_durability = 12500,
power_sound = "rangedweapons_laser",
power_glass_breaking = 1,
power_door_breaking = 1,
power_dps = 0,
power_mob_penetration = 40,
power_node_penetration = 0,
power_dps = 0,
power_consumption = 8,
power_entity = "rangedweapons:shot_bullet",
power_visual = "wielditem",
power_texture = "rangedweapons:red_ray_visual",
power_projectile_size = 0.075,
has_sparks = 0,
ignites_explosives = 1,
},
inventory_image = "rangedweapons_laser_rifle.png",
})
minetest.register_craftitem("rangedweapons:red_ray_visual", {
wield_scale = {x=1.5,y=1.5,z=2.0},
inventory_image = "rangedweapons_red_ray.png",
})
minetest.register_tool("rangedweapons:laser_rifle", {
wield_scale = {x=1.9,y=1.9,z=2.5},
description = "" ..core.colorize("#35cdff","Laser rifle\n") ..core.colorize("#FFFFFF", "Ranged damage: 12\n") ..core.colorize("#FFFFFF", "accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Power usage: 8\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.1 (full-auto)\n") ..core.colorize("#FFFFFF", "Enemy penetration: 40%\n") ..core.colorize("#FFFFFF", "Gun type: power assault rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 60"),
range = 0,
RW_powergun_capabilities = {
automatic_gun = 1,
power_damage = {fleshy=12,knockback=0},
power_crit = 9,
power_critEffc = 2.0,
power_skill = {"",1},
power_cooling = "rangedweapons:laser_rifle",
power_velocity = 60,
power_accuracy = 100,
power_cooldown = 0.1,
power_projectiles = 1,
power_durability = 12500,
power_sound = "rangedweapons_laser",
power_glass_breaking = 1,
power_door_breaking = 1,
power_dps = 0,
power_mob_penetration = 40,
power_node_penetration = 0,
power_dps = 0,
power_consumption = 8,
power_entity = "rangedweapons:shot_bullet",
power_visual = "wielditem",
power_texture = "rangedweapons:red_ray_visual",
power_projectile_size = 0.075,
has_sparks = 0,
ignites_explosives = 1,
},
inventory_image = "rangedweapons_laser_rifle.png",
})

@ -1,39 +1,39 @@
minetest.register_tool("rangedweapons:laser_shotgun", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=1.75},
description = "" ..core.colorize("#35cdff","Laser shotgun\n") ..core.colorize("#FFFFFF", "Ranged damage: 10\n") ..core.colorize("#FFFFFF", "accuracy: 40%\n") ..core.colorize("#FFFFFF", "projectiles: 6\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Power usage: 30\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.5\n") ..core.colorize("#FFFFFF", "Enemy penetration: 40%\n") ..core.colorize("#FFFFFF", "Gun type: power pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 55"),
range = 0,
inventory_image = "rangedweapons_laser_shotgun.png",
RW_powergun_capabilities = {
power_damage = {fleshy=10,knockback=0},
power_crit = 8,
power_critEffc = 2.2,
power_skill = {"",1},
power_cooling = "rangedweapons:laser_shotgun",
power_velocity = 55,
power_accuracy = 40,
power_cooldown = 0.5,
power_projectiles = 1,
power_durability = 2000,
power_sound = "rangedweapons_laser",
power_glass_breaking = 1,
power_door_breaking = 1,
power_dps = 0,
power_mob_penetration = 40,
power_node_penetration = 0,
power_dps = 0,
power_consumption = 30,
power_entity = "rangedweapons:shot_bullet",
power_visual = "sprite",
power_texture = "rangedweapons_green_ray.png",
power_projectile_size = 0.005,
power_projectiles = 6,
has_sparks = 0,
ignites_explosives = 1,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_powergun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:laser_shotgun", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=1.75},
description = "" ..core.colorize("#35cdff","Laser shotgun\n") ..core.colorize("#FFFFFF", "Ranged damage: 10\n") ..core.colorize("#FFFFFF", "accuracy: 40%\n") ..core.colorize("#FFFFFF", "projectiles: 6\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Power usage: 30\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.5\n") ..core.colorize("#FFFFFF", "Enemy penetration: 40%\n") ..core.colorize("#FFFFFF", "Gun type: power pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 55"),
range = 0,
inventory_image = "rangedweapons_laser_shotgun.png",
RW_powergun_capabilities = {
power_damage = {fleshy=10,knockback=0},
power_crit = 8,
power_critEffc = 2.2,
power_skill = {"",1},
power_cooling = "rangedweapons:laser_shotgun",
power_velocity = 55,
power_accuracy = 40,
power_cooldown = 0.5,
power_projectiles = 1,
power_durability = 2000,
power_sound = "rangedweapons_laser",
power_glass_breaking = 1,
power_door_breaking = 1,
power_dps = 0,
power_mob_penetration = 40,
power_node_penetration = 0,
power_dps = 0,
power_consumption = 30,
power_entity = "rangedweapons:shot_bullet",
power_visual = "sprite",
power_texture = "rangedweapons_green_ray.png",
power_projectile_size = 0.005,
power_projectiles = 6,
has_sparks = 0,
ignites_explosives = 1,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_powergun(itemstack, user)
return itemstack
end,
})

@ -1 +1 @@
cc-by-sa 4.0
cc-by-sa 4.0

154
luger.lua

@ -1,77 +1,77 @@
------------reload--------------------
minetest.register_tool("rangedweapons:luger_r", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:luger_rr",
load_sound = "rangedweapons_handgun_mag_in",
inventory_image = "rangedweapons_luger.png",
})
minetest.register_tool("rangedweapons:luger_rr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:luger_rrr",
load_sound = "rangedweapons_reload_a",
inventory_image = "rangedweapons_luger.png",
})
minetest.register_tool("rangedweapons:luger_rrr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:luger",
load_sound = "rangedweapons_reload_b",
inventory_image = "rangedweapons_luger_rld.png",
})
minetest.register_tool("rangedweapons:luger_rld", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
loaded_gun = "rangedweapons:luger",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_luger_rld.png",
})
-----------------gun--------------
minetest.register_tool("rangedweapons:luger", {
description = "" ..core.colorize("#35cdff","Luger P08\n") ..core.colorize("#FFFFFF", "Ranged damage: 4\n")..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "Gun knockback: 3\n") ..core.colorize("#FFFFFF", "Critical chance: 10%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n")..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.625\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
wield_scale = {x=0.9,y=0.9,z=1.0},
inventory_image = "rangedweapons_luger.png",
RW_gun_capabilities = {
gun_damage = {fleshy=4,knockback=3},
gun_crit = 10,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",8}},
gun_skill = {"handgun_skill",40},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:luger_r",
gun_cooling = "rangedweapons:luger_rld",
gun_velocity = 20,
gun_accuracy = 92,
gun_cooldown = 0.625,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 600,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_glock",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
------------reload--------------------
minetest.register_tool("rangedweapons:luger_r", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:luger_rr",
load_sound = "rangedweapons_handgun_mag_in",
inventory_image = "rangedweapons_luger.png",
})
minetest.register_tool("rangedweapons:luger_rr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:luger_rrr",
load_sound = "rangedweapons_reload_a",
inventory_image = "rangedweapons_luger.png",
})
minetest.register_tool("rangedweapons:luger_rrr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:luger",
load_sound = "rangedweapons_reload_b",
inventory_image = "rangedweapons_luger_rld.png",
})
minetest.register_tool("rangedweapons:luger_rld", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
loaded_gun = "rangedweapons:luger",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_luger_rld.png",
})
-----------------gun--------------
minetest.register_tool("rangedweapons:luger", {
description = "" ..core.colorize("#35cdff","Luger P08\n") ..core.colorize("#FFFFFF", "Ranged damage: 4\n")..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "Gun knockback: 3\n") ..core.colorize("#FFFFFF", "Critical chance: 10%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n")..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.625\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
wield_scale = {x=0.9,y=0.9,z=1.0},
inventory_image = "rangedweapons_luger.png",
RW_gun_capabilities = {
gun_damage = {fleshy=4,knockback=3},
gun_crit = 10,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",8}},
gun_skill = {"handgun_skill",40},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:luger_r",
gun_cooling = "rangedweapons:luger_rld",
gun_velocity = 20,
gun_accuracy = 92,
gun_cooldown = 0.625,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 600,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_glock",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

144
m16.lua

@ -1,72 +1,72 @@
minetest.register_tool("rangedweapons:m16_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:m16_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m16_rld.png",
})
minetest.register_tool("rangedweapons:m16_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:m16_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m16.png",
})
minetest.register_tool("rangedweapons:m16_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:m16",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m16.png",
})
minetest.register_tool("rangedweapons:m16", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","m16\n") ..core.colorize("#FFFFFF", "Gun damage: 6\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "Gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 11%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.75x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 20\n") ..core.colorize("#FFFFFF", "Ammunition: 5.56mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.067(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: assault rifle\n")
..core.colorize("#FFFFFF", "Enemy penetration: 10%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 35"),
range = 0,
inventory_image = "rangedweapons_m16.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=6,knockback=4},
gun_crit = 11,
gun_critEffc = 2.75,
suitable_ammo = {{"rangedweapons:556mm",20}},
gun_skill = {"arifle_skill",55},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:m16_r",
gun_velocity = 35,
gun_accuracy = 75,
gun_cooldown = 0.067,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1350,
gun_smokeSize = 5,
gun_mob_penetration = 10,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_m16.png",
})
minetest.register_tool("rangedweapons:m16_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:m16_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m16_rld.png",
})
minetest.register_tool("rangedweapons:m16_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:m16_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m16.png",
})
minetest.register_tool("rangedweapons:m16_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:m16",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m16.png",
})
minetest.register_tool("rangedweapons:m16", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","m16\n") ..core.colorize("#FFFFFF", "Gun damage: 6\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "Gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 11%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.75x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 20\n") ..core.colorize("#FFFFFF", "Ammunition: 5.56mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.067(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: assault rifle\n")
..core.colorize("#FFFFFF", "Enemy penetration: 10%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 35"),
range = 0,
inventory_image = "rangedweapons_m16.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=6,knockback=4},
gun_crit = 11,
gun_critEffc = 2.75,
suitable_ammo = {{"rangedweapons:556mm",20}},
gun_skill = {"arifle_skill",55},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:m16_r",
gun_velocity = 35,
gun_accuracy = 75,
gun_cooldown = 0.067,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1350,
gun_smokeSize = 5,
gun_mob_penetration = 10,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_m16.png",
})

154
m1991.lua

@ -1,77 +1,77 @@
minetest.register_tool("rangedweapons:m1991_rld", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
range = 0,
loaded_gun = "rangedweapons:m1991",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991_rld.png",
})
minetest.register_tool("rangedweapons:m1991_r", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:m1991_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991.png",
})
minetest.register_tool("rangedweapons:m1991_rr", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:m1991_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991.png",
})
minetest.register_tool("rangedweapons:m1991_rrr", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:m1991",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991_rld.png",
})
minetest.register_tool("rangedweapons:m1991", {
description = "" ..core.colorize("#35cdff","m1991\n") ..core.colorize("#FFFFFF", "Gun damage: 4\n")..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun crit chance: 13%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#FFFFFF", "Ammunition: .45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.4\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
wield_scale = {x=1.1,y=1.1,z=1.05},
range = 0,
inventory_image = "rangedweapons_m1991.png",
RW_gun_capabilities = {
gun_damage = {fleshy=4,knockback=4},
gun_crit = 15,
gun_critEffc = 2.1,
suitable_ammo = {{"rangedweapons:45acp",8}},
gun_skill = {"handgun_skill",40},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:m1991_r",
gun_cooling = "rangedweapons:m1991_rld",
gun_velocity = 25,
gun_accuracy = 92,
gun_cooldown = 0.4,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1000,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_beretta",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:m1991_rld", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
range = 0,
loaded_gun = "rangedweapons:m1991",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991_rld.png",
})
minetest.register_tool("rangedweapons:m1991_r", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:m1991_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991.png",
})
minetest.register_tool("rangedweapons:m1991_rr", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:m1991_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991.png",
})
minetest.register_tool("rangedweapons:m1991_rrr", {
stack_max= 1,
wield_scale = {x=1.1,y=1.1,z=1.05},
description = "",
rw_next_reload = "rangedweapons:m1991",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m1991_rld.png",
})
minetest.register_tool("rangedweapons:m1991", {
description = "" ..core.colorize("#35cdff","m1991\n") ..core.colorize("#FFFFFF", "Gun damage: 4\n")..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "gun knockback: 4\n") ..core.colorize("#FFFFFF", "Gun crit chance: 13%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#FFFFFF", "Ammunition: .45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.4\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
wield_scale = {x=1.1,y=1.1,z=1.05},
range = 0,
inventory_image = "rangedweapons_m1991.png",
RW_gun_capabilities = {
gun_damage = {fleshy=4,knockback=4},
gun_crit = 15,
gun_critEffc = 2.1,
suitable_ammo = {{"rangedweapons:45acp",8}},
gun_skill = {"handgun_skill",40},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:m1991_r",
gun_cooling = "rangedweapons:m1991_rld",
gun_velocity = 25,
gun_accuracy = 92,
gun_cooldown = 0.4,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_durability = 1000,
gun_smokeSize = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_beretta",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

204
m200.lua

@ -1,102 +1,102 @@
minetest.register_tool("rangedweapons:m200_uld", {
stack_max= 1,
wield_scale = {x=2.1,y=2.1,z=1.2},
range = 0,
description = "" ..core.colorize("#35cdff","m200 intervention \n") ..core.colorize("#FFFFFF", "Ranged damage:22 + 75/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 20\n") ..core.colorize("#FFFFFF", "Critical chance: 33%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3.25\n") ..core.colorize("#FFFFFF", "Ammunition: .408 chey tac\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.5\n") ..core.colorize("#FFFFFF", "Reload time: 2.5\n") ..core.colorize("#FFFFFF", "Zoom: 15x\n") ..core.colorize("#be0d00", "Right-click to eject empty bullet shell\n") ..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#FFFFFF", "Enemy penetration:45%\n") ..core.colorize("#FFFFFF", "Block penetration:15%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 80"),
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200.png",
weapon_zoom = 7.5,
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:m200_rld",1.0,"rangedweapons_rifle_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:m200_r", {
rw_next_reload = "rangedweapons:m200_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200_noclip.png",
})
minetest.register_tool("rangedweapons:m200_rr", {
rw_next_reload = "rangedweapons:m200_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200.png",
})
minetest.register_tool("rangedweapons:m200_rrr", {
rw_next_reload = "rangedweapons:m200",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200_rld.png",
})
minetest.register_tool("rangedweapons:m200_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
loaded_gun = "rangedweapons:m200",
loaded_sound = "rangedweapons_rifle_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200_rld.png",
})
minetest.register_tool("rangedweapons:m200", {
description = "" ..core.colorize("#35cdff","m200 intervention \n") ..core.colorize("#FFFFFF", "Ranged damage:22 + 75/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 20\n") ..core.colorize("#FFFFFF", "Critical chance: 33%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3.25\n") ..core.colorize("#FFFFFF", "Ammunition: .408 chey tac\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.5\n") ..core.colorize("#FFFFFF", "Reload time: 2.5\n") ..core.colorize("#FFFFFF", "Zoom: 15x\n") ..core.colorize("#27a600", "The gun is loaded!\n") ..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#FFFFFF", "Enemy penetration:45%\n") ..core.colorize("#FFFFFF", "Block penetration:15%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 80"),
range = 0,
weapon_zoom = 6,
wield_scale = {x=2.1,y=2.1,z=1.2},
inventory_image = "rangedweapons_m200.png",
RW_gun_capabilities = {
gun_damage = {fleshy=22,knockback=20},
gun_crit = 33,
gun_critEffc = 3.25,
suitable_ammo = {{"rangedweapons:408cheytac",7}},
gun_skill = {"rifle_skill",12},
gun_magazine = "rangedweapons:rifle_mag",
gun_unloaded = "rangedweapons:m200_r",
gun_cooling = "rangedweapons:m200_uld",
gun_velocity = 80,
gun_accuracy = 100,
gun_cooldown = 1.5,
gun_reload = 2.5/4,
gun_projectiles = 1,
has_shell = 0,
gun_durability = 900,
gun_smokeSize = 8,
gun_dps = 75,
gun_mob_penetration = 45,
gun_node_penetration = 15,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_rifle_b",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:m200_uld", {
stack_max= 1,
wield_scale = {x=2.1,y=2.1,z=1.2},
range = 0,
description = "" ..core.colorize("#35cdff","m200 intervention \n") ..core.colorize("#FFFFFF", "Ranged damage:22 + 75/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 20\n") ..core.colorize("#FFFFFF", "Critical chance: 33%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3.25\n") ..core.colorize("#FFFFFF", "Ammunition: .408 chey tac\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.5\n") ..core.colorize("#FFFFFF", "Reload time: 2.5\n") ..core.colorize("#FFFFFF", "Zoom: 15x\n") ..core.colorize("#be0d00", "Right-click to eject empty bullet shell\n") ..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#FFFFFF", "Enemy penetration:45%\n") ..core.colorize("#FFFFFF", "Block penetration:15%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 80"),
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200.png",
weapon_zoom = 7.5,
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:m200_rld",1.0,"rangedweapons_rifle_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:m200_r", {
rw_next_reload = "rangedweapons:m200_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200_noclip.png",
})
minetest.register_tool("rangedweapons:m200_rr", {
rw_next_reload = "rangedweapons:m200_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200.png",
})
minetest.register_tool("rangedweapons:m200_rrr", {
rw_next_reload = "rangedweapons:m200",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200_rld.png",
})
minetest.register_tool("rangedweapons:m200_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=2.1,y=2.1,z=1.2},
description = "",
loaded_gun = "rangedweapons:m200",
loaded_sound = "rangedweapons_rifle_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m200_rld.png",
})
minetest.register_tool("rangedweapons:m200", {
description = "" ..core.colorize("#35cdff","m200 intervention \n") ..core.colorize("#FFFFFF", "Ranged damage:22 + 75/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 20\n") ..core.colorize("#FFFFFF", "Critical chance: 33%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3.25\n") ..core.colorize("#FFFFFF", "Ammunition: .408 chey tac\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.5\n") ..core.colorize("#FFFFFF", "Reload time: 2.5\n") ..core.colorize("#FFFFFF", "Zoom: 15x\n") ..core.colorize("#27a600", "The gun is loaded!\n") ..core.colorize("#FFFFFF", "Clip size: 7\n") ..core.colorize("#FFFFFF", "Enemy penetration:45%\n") ..core.colorize("#FFFFFF", "Block penetration:15%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 80"),
range = 0,
weapon_zoom = 6,
wield_scale = {x=2.1,y=2.1,z=1.2},
inventory_image = "rangedweapons_m200.png",
RW_gun_capabilities = {
gun_damage = {fleshy=22,knockback=20},
gun_crit = 33,
gun_critEffc = 3.25,
suitable_ammo = {{"rangedweapons:408cheytac",7}},
gun_skill = {"rifle_skill",12},
gun_magazine = "rangedweapons:rifle_mag",
gun_unloaded = "rangedweapons:m200_r",
gun_cooling = "rangedweapons:m200_uld",
gun_velocity = 80,
gun_accuracy = 100,
gun_cooldown = 1.5,
gun_reload = 2.5/4,
gun_projectiles = 1,
has_shell = 0,
gun_durability = 900,
gun_smokeSize = 8,
gun_dps = 75,
gun_mob_penetration = 45,
gun_node_penetration = 15,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_rifle_b",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

104
m60.lua

@ -1,52 +1,52 @@
minetest.register_tool("rangedweapons:m60_r", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=1.4},
description = "",
rw_next_reload = "rangedweapons:m60",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m60_rld.png",
})
minetest.register_tool("rangedweapons:m60", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=1.4},
description = "" ..core.colorize("#35cdff","m60\n") ..core.colorize("#FFFFFF", "Gun damage: 9\n") ..core.colorize("#FFFFFF", "accuracy: 65%\n") ..core.colorize("#FFFFFF", "Gun knockback: 7\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 13%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 100\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.09(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: heavy machinegun\n") ..core.colorize("#FFFFFF", "Block penetration: 12%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 27%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 64"),
range = 0,
inventory_image = "rangedweapons_m60.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=9,knockback=7},
gun_crit = 13,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",100}},
gun_skill = {"heavy_skill",60},
gun_unloaded = "rangedweapons:m60_r",
gun_velocity = 64,
gun_accuracy = 65,
gun_cooldown = 0.09,
gun_reload = 1.0,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 2750,
gun_smokeSize = 5,
gun_mob_penetration = 27,
gun_node_penetration = 12,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_machinegun",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_m60.png",
})
minetest.register_tool("rangedweapons:m60_r", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=1.4},
description = "",
rw_next_reload = "rangedweapons:m60",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_m60_rld.png",
})
minetest.register_tool("rangedweapons:m60", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=1.4},
description = "" ..core.colorize("#35cdff","m60\n") ..core.colorize("#FFFFFF", "Gun damage: 9\n") ..core.colorize("#FFFFFF", "accuracy: 65%\n") ..core.colorize("#FFFFFF", "Gun knockback: 7\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 13%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 100\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.09(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: heavy machinegun\n") ..core.colorize("#FFFFFF", "Block penetration: 12%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 27%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 64"),
range = 0,
inventory_image = "rangedweapons_m60.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=9,knockback=7},
gun_crit = 13,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",100}},
gun_skill = {"heavy_skill",60},
gun_unloaded = "rangedweapons:m60_r",
gun_velocity = 64,
gun_accuracy = 65,
gun_cooldown = 0.09,
gun_reload = 1.0,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 2750,
gun_smokeSize = 5,
gun_mob_penetration = 27,
gun_node_penetration = 12,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_machinegun",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_m60.png",
})

100
m79.lua

@ -1,50 +1,50 @@
minetest.register_tool("rangedweapons:m79_r", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=2.5},
range = 0,
description = "",
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:m79",
load_sound = "rangedweapons_reload_a",
inventory_image = "rangedweapons_m79_rld.png",
})
minetest.register_tool("rangedweapons:m79", {
description = "" ..core.colorize("#35cdff","m79\n") ..core.colorize("#FFFFFF", "Direct contact damage: 10\n")..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "direct contact knockback: 25\n") ..core.colorize("#FFFFFF", "Gun crit chance: 8%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.9\n")..core.colorize("#FFFFFF", "Clip size: 1\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n")..core.colorize("#FFFFFF", "Ammunition: 40mm grenades\n")..core.colorize("#FFFFFF", "Gun type: grenade launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
wield_scale = {x=2.0,y=2.0,z=2.5},
inventory_image = "rangedweapons_m79.png",
RW_gun_capabilities = {
gun_damage = {fleshy=10,knockback=25},
gun_crit = 8,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:40mm",1}},
gun_skill = {"",1},
gun_magazine = "rangedweapons:shell_grenadedrop",
gun_unloaded = "rangedweapons:m79_r",
gun_cooling = "rangedweapons:m79",
gun_velocity = 20,
gun_accuracy = 92,
gun_cooldown = 0.0,
gun_reload = 0.9,
gun_projectiles = 1,
gun_smokeSize = 15,
gun_durability = 100,
gun_gravity = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_rocket",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:m79_r", {
stack_max= 1,
wield_scale = {x=2.0,y=2.0,z=2.5},
range = 0,
description = "",
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:m79",
load_sound = "rangedweapons_reload_a",
inventory_image = "rangedweapons_m79_rld.png",
})
minetest.register_tool("rangedweapons:m79", {
description = "" ..core.colorize("#35cdff","m79\n") ..core.colorize("#FFFFFF", "Direct contact damage: 10\n")..core.colorize("#FFFFFF", "Accuracy: 92%\n") ..core.colorize("#FFFFFF", "direct contact knockback: 25\n") ..core.colorize("#FFFFFF", "Gun crit chance: 8%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3x\n") ..core.colorize("#FFFFFF", "Reload delay: 0.9\n")..core.colorize("#FFFFFF", "Clip size: 1\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n")..core.colorize("#FFFFFF", "Ammunition: 40mm grenades\n")..core.colorize("#FFFFFF", "Gun type: grenade launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
wield_scale = {x=2.0,y=2.0,z=2.5},
inventory_image = "rangedweapons_m79.png",
RW_gun_capabilities = {
gun_damage = {fleshy=10,knockback=25},
gun_crit = 8,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:40mm",1}},
gun_skill = {"",1},
gun_magazine = "rangedweapons:shell_grenadedrop",
gun_unloaded = "rangedweapons:m79_r",
gun_cooling = "rangedweapons:m79",
gun_velocity = 20,
gun_accuracy = 92,
gun_cooldown = 0.0,
gun_reload = 0.9,
gun_projectiles = 1,
gun_smokeSize = 15,
gun_durability = 100,
gun_gravity = 5,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_rocket",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,81 +1,81 @@
minetest.register_tool("rangedweapons:makarov_rld", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
loaded_gun = "rangedweapons:makarov",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_makarov_rld.png",
})
minetest.register_tool("rangedweapons:makarov_r", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
rw_next_reload = "rangedweapons:makarov_rr",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_makarov.png",
})
minetest.register_tool("rangedweapons:makarov_rr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
rw_next_reload = "rangedweapons:makarov_rrr",
load_sound = "rangedweapons_reload_a",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_makarov.png",
})
minetest.register_tool("rangedweapons:makarov_rrr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:makarov",
load_sound = "rangedweapons_reload_b",
inventory_image = "rangedweapons_makarov_rld.png",
})
minetest.register_tool("rangedweapons:makarov", {
description = "" ..core.colorize("#35cdff","Makarov pistol\n") ..core.colorize("#FFFFFF", "Gun damage: 3\n")..core.colorize("#FFFFFF", "Accuracy: 90%\n") ..core.colorize("#FFFFFF", "gun knockback: 3\n") ..core.colorize("#FFFFFF", "Gun crit chance: 10%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.1\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm Parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.5\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
wield_scale = {x=0.9,y=0.9,z=1.0},
inventory_image = "rangedweapons_makarov.png",
RW_gun_capabilities = {
gun_damage = {fleshy=3,knockback=3},
gun_crit = 10,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",8}},
gun_skill = {"handgun_skill",40},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:makarov_r",
gun_cooling = "rangedweapons:makarov_rld",
gun_velocity = 20,
gun_accuracy = 90,
gun_cooldown = 0.5,
gun_reload = 1.1/4,
gun_projectiles = 1,
gun_smokeSize = 5,
has_shell = 1,
gun_durability = 450,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_glock",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:makarov_rld", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
loaded_gun = "rangedweapons:makarov",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_makarov_rld.png",
})
minetest.register_tool("rangedweapons:makarov_r", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
rw_next_reload = "rangedweapons:makarov_rr",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_makarov.png",
})
minetest.register_tool("rangedweapons:makarov_rr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
rw_next_reload = "rangedweapons:makarov_rrr",
load_sound = "rangedweapons_reload_a",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_makarov.png",
})
minetest.register_tool("rangedweapons:makarov_rrr", {
stack_max= 1,
wield_scale = {x=0.9,y=0.9,z=1.0},
description = "",
range = 0,
groups = {not_in_creative_inventory = 1},
rw_next_reload = "rangedweapons:makarov",
load_sound = "rangedweapons_reload_b",
inventory_image = "rangedweapons_makarov_rld.png",
})
minetest.register_tool("rangedweapons:makarov", {
description = "" ..core.colorize("#35cdff","Makarov pistol\n") ..core.colorize("#FFFFFF", "Gun damage: 3\n")..core.colorize("#FFFFFF", "Accuracy: 90%\n") ..core.colorize("#FFFFFF", "gun knockback: 3\n") ..core.colorize("#FFFFFF", "Gun crit chance: 10%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.1\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm Parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.5\n") ..core.colorize("#FFFFFF", "Gun type: Handgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
wield_scale = {x=0.9,y=0.9,z=1.0},
inventory_image = "rangedweapons_makarov.png",
RW_gun_capabilities = {
gun_damage = {fleshy=3,knockback=3},
gun_crit = 10,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",8}},
gun_skill = {"handgun_skill",40},
gun_magazine = "rangedweapons:handgun_mag_black",
gun_unloaded = "rangedweapons:makarov_r",
gun_cooling = "rangedweapons:makarov_rld",
gun_velocity = 20,
gun_accuracy = 90,
gun_cooldown = 0.5,
gun_reload = 1.1/4,
gun_projectiles = 1,
gun_smokeSize = 5,
has_shell = 1,
gun_durability = 450,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_glock",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,46 +1,46 @@
minetest.register_tool("rangedweapons:milkor_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.75,y=1.75,z=2.0},
description = "",
loaded_gun = "rangedweapons:milkor",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_milkor_rld.png",
})
minetest.register_tool("rangedweapons:milkor", {
description = "" ..core.colorize("#35cdff","Milkor MGL\n") ..core.colorize("#FFFFFF", "Direct contact damage: 15\n")..core.colorize("#FFFFFF", "Accuracy: 96%\n") ..core.colorize("#FFFFFF", "Direct contact knockback: 25\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 40mm grenades\n") ..core.colorize("#FFFFFF", "Reload time: 0.75\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.35\n") ..core.colorize("#FFFFFF", "Gun gravity: 1\n") ..core.colorize("#FFFFFF", "Clip Size: 6\n")..core.colorize("#FFFFFF", "Gun type: grenade launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
range = 0,
wield_scale = {x=1.75,y=1.75,z=2.0},
inventory_image = "rangedweapons_milkor.png",
RW_gun_capabilities = {
gun_damage = {fleshy=15,knockback=25},
gun_crit = 9,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:40mm",6}},
gun_skill = {"",1},
gun_magazine = "rangedweapons:shell_grenadedrop",
gun_unloaded = "rangedweapons:milkor_rld",
gun_cooling = "rangedweapons:milkor",
gun_velocity = 30,
gun_accuracy = 96,
gun_cooldown = 0.35,
gun_reload = 0.75,
gun_projectiles = 1,
gun_durability = 225,
gun_smokeSize = 15,
gun_gravity = 1,
gun_unload_sound = "rangedweapons_shell_insert",
gun_sound = "rangedweapons_rocket",
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:milkor_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.75,y=1.75,z=2.0},
description = "",
loaded_gun = "rangedweapons:milkor",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_milkor_rld.png",
})
minetest.register_tool("rangedweapons:milkor", {
description = "" ..core.colorize("#35cdff","Milkor MGL\n") ..core.colorize("#FFFFFF", "Direct contact damage: 15\n")..core.colorize("#FFFFFF", "Accuracy: 96%\n") ..core.colorize("#FFFFFF", "Direct contact knockback: 25\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 40mm grenades\n") ..core.colorize("#FFFFFF", "Reload time: 0.75\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.35\n") ..core.colorize("#FFFFFF", "Gun gravity: 1\n") ..core.colorize("#FFFFFF", "Clip Size: 6\n")..core.colorize("#FFFFFF", "Gun type: grenade launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
range = 0,
wield_scale = {x=1.75,y=1.75,z=2.0},
inventory_image = "rangedweapons_milkor.png",
RW_gun_capabilities = {
gun_damage = {fleshy=15,knockback=25},
gun_crit = 9,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:40mm",6}},
gun_skill = {"",1},
gun_magazine = "rangedweapons:shell_grenadedrop",
gun_unloaded = "rangedweapons:milkor_rld",
gun_cooling = "rangedweapons:milkor",
gun_velocity = 30,
gun_accuracy = 96,
gun_cooldown = 0.35,
gun_reload = 0.75,
gun_projectiles = 1,
gun_durability = 225,
gun_smokeSize = 15,
gun_gravity = 1,
gun_unload_sound = "rangedweapons_shell_insert",
gun_sound = "rangedweapons_rocket",
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user)
return itemstack
end,
})

@ -1,51 +1,51 @@
if minetest.settings:get_bool("minigun_aswell") then
minetest.register_tool("rangedweapons:minigun_r", {
stack_max= 1,
wield_scale = {x=3.0,y=3.0,z=3.0},
description = "",
rw_next_reload = "rangedweapons:minigun",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_minigun_rld.png",
})
minetest.register_tool("rangedweapons:minigun", {
stack_max= 1,
wield_scale = {x=3.0,y=3.0,z=3.0},
description = "" ..core.colorize("#35cdff","minigun\n") ..core.colorize("#FFFFFF", "Gun damage: 10\n") ..core.colorize("#FFFFFF", "accuracy: 50%\n") ..core.colorize("#FFFFFF", "Gun knockback: 8\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 14%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 2.0\n") ..core.colorize("#FFFFFF", "Clip size: 100\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.04(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: heavy machinegun\n") ..core.colorize("#FFFFFF", "Block penetration: 15%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 33%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 70"),
range = 0,
inventory_image = "rangedweapons_minigun.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=10,knockback=8},
gun_crit = 14,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",200}},
gun_skill = {"heavy_skill",100},
gun_unloaded = "rangedweapons:minigun_r",
gun_velocity = 70,
gun_accuracy = 50,
gun_cooldown = 0.04,
gun_reload = 2.0,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 4000,
gun_smokeSize = 5,
gun_mob_penetration = 33,
gun_node_penetration = 15,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_machinegun",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_minigun.png",
})
end
if minetest.settings:get_bool("minigun_aswell") then
minetest.register_tool("rangedweapons:minigun_r", {
stack_max= 1,
wield_scale = {x=3.0,y=3.0,z=3.0},
description = "",
rw_next_reload = "rangedweapons:minigun",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_minigun_rld.png",
})
minetest.register_tool("rangedweapons:minigun", {
stack_max= 1,
wield_scale = {x=3.0,y=3.0,z=3.0},
description = "" ..core.colorize("#35cdff","minigun\n") ..core.colorize("#FFFFFF", "Gun damage: 10\n") ..core.colorize("#FFFFFF", "accuracy: 50%\n") ..core.colorize("#FFFFFF", "Gun knockback: 8\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 14%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 2.0\n") ..core.colorize("#FFFFFF", "Clip size: 100\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.04(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: heavy machinegun\n") ..core.colorize("#FFFFFF", "Block penetration: 15%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 33%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 70"),
range = 0,
inventory_image = "rangedweapons_minigun.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=10,knockback=8},
gun_crit = 14,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",200}},
gun_skill = {"heavy_skill",100},
gun_unloaded = "rangedweapons:minigun_r",
gun_velocity = 70,
gun_accuracy = 50,
gun_cooldown = 0.04,
gun_reload = 2.0,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 4000,
gun_smokeSize = 5,
gun_mob_penetration = 33,
gun_node_penetration = 15,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_machinegun",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_minigun.png",
})
end

100
misc.lua

@ -1,50 +1,50 @@
minetest.register_craftitem("rangedweapons:shell_shotgundrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop_shotgun.png",
})
minetest.register_craftitem("rangedweapons:shell_whitedrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop_white.png",
})
minetest.register_craftitem("rangedweapons:shell_grenadedrop", {
wield_scale = {x=2.5,y=1.5,z=3.0},
inventory_image = "rangedweapons_shelldrop_grenade.png",
})
minetest.register_craftitem("rangedweapons:shelldrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop.png",
})
minetest.register_craftitem("rangedweapons:plastic_sheet", {
description = "" ..core.colorize("#35cdff","Black plastic sheet\n")..core.colorize("#FFFFFF", "Used in guncraft"),
inventory_image = "rangedweapons_plastic_sheet.png",
})
minetest.register_craftitem("rangedweapons:gunsteel_ingot", {
description = "" ..core.colorize("#35cdff","GunSteel ingot\n")..core.colorize("#FFFFFF", "A strong, but light alloy, used in guncraft"),
inventory_image = "rangedweapons_gunsteel_ingot.png",
})
minetest.register_craftitem("rangedweapons:ultra_gunsteel_ingot", {
description = "" ..core.colorize("#35cdff","Ultra-GunSteel ingot\n")..core.colorize("#FFFFFF", "A even stronger alloy, for even stronger guns."),
inventory_image = "rangedweapons_ultra_gunsteel_ingot.png",
})
minetest.register_craftitem("rangedweapons:gun_power_core", {
description = "" ..core.colorize("#35cdff","Gun Power Core\n")..core.colorize("#FFFFFF", "A powerful core, for making the most powerful weapons"),
inventory_image = "rangedweapons_gun_power_core.png",
})
minetest.register_craftitem("rangedweapons:power_particle", {
description = "" ..core.colorize("#35cdff","Power Particle\n")..core.colorize("#FFFFFF", "A power unit, that strangelly can be carryed arround with no vessel, used by power guns"),
stack_max = 10000,
inventory_image = "rangedweapons_power_particle.png",
})
minetest.register_craftitem("rangedweapons:shell_shotgundrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop_shotgun.png",
})
minetest.register_craftitem("rangedweapons:shell_whitedrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop_white.png",
})
minetest.register_craftitem("rangedweapons:shell_grenadedrop", {
wield_scale = {x=2.5,y=1.5,z=3.0},
inventory_image = "rangedweapons_shelldrop_grenade.png",
})
minetest.register_craftitem("rangedweapons:shelldrop", {
wield_scale = {x=2.5,y=1.5,z=1.0},
inventory_image = "rangedweapons_shelldrop.png",
})
minetest.register_craftitem("rangedweapons:plastic_sheet", {
description = "" ..core.colorize("#35cdff","Black plastic sheet\n")..core.colorize("#FFFFFF", "Used in guncraft"),
inventory_image = "rangedweapons_plastic_sheet.png",
})
minetest.register_craftitem("rangedweapons:gunsteel_ingot", {
description = "" ..core.colorize("#35cdff","GunSteel ingot\n")..core.colorize("#FFFFFF", "A strong, but light alloy, used in guncraft"),
inventory_image = "rangedweapons_gunsteel_ingot.png",
})
minetest.register_craftitem("rangedweapons:ultra_gunsteel_ingot", {
description = "" ..core.colorize("#35cdff","Ultra-GunSteel ingot\n")..core.colorize("#FFFFFF", "A even stronger alloy, for even stronger guns."),
inventory_image = "rangedweapons_ultra_gunsteel_ingot.png",
})
minetest.register_craftitem("rangedweapons:gun_power_core", {
description = "" ..core.colorize("#35cdff","Gun Power Core\n")..core.colorize("#FFFFFF", "A powerful core, for making the most powerful weapons"),
inventory_image = "rangedweapons_gun_power_core.png",
})
minetest.register_craftitem("rangedweapons:power_particle", {
description = "" ..core.colorize("#35cdff","Power Particle\n")..core.colorize("#FFFFFF", "A power unit, that strangelly can be carryed arround with no vessel, used by power guns"),
stack_max = 10000,
inventory_image = "rangedweapons_power_particle.png",
})

@ -1,5 +1,5 @@
name = rangedweapons
description = A mod that adds guns and throwable weapons
depends = default, tnt
optional_depends = doors, xpanes, vessels, moreores, 3d_armor
min_minetest_version = 5.8
name = rangedweapons
description = A mod that adds guns and throwable weapons
depends = default, tnt
optional_depends = doors, xpanes, vessels, moreores, 3d_armor
min_minetest_version = 5.8

124
mp40.lua

@ -1,62 +1,62 @@
minetest.register_tool("rangedweapons:mp40_r", {
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:mp40_rr",
load_sound = "rangedweapons_handgun_mag_in",
inventory_image = "rangedweapons_mp40_rld.png",
groups = {not_in_creative_inventory = 1},
})
minetest.register_tool("rangedweapons:mp40_rr", {
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:mp40_rrr",
load_sound = "rangedweapons_reload_a",
inventory_image = "rangedweapons_mp40.png",
groups = {not_in_creative_inventory = 1},
})
minetest.register_tool("rangedweapons:mp40_rrr", {
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "",
range = 0,
inventory_image = "rangedweapons_mp40.png",
rw_next_reload = "rangedweapons:mp40",
load_sound = "rangedweapons_reload_b",
groups = {not_in_creative_inventory = 1},
})
minetest.register_tool("rangedweapons:mp40", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "" ..core.colorize("#35cdff","MP-40\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "Gun knockback: 1\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n") ..core.colorize("#FFFFFF", "Clip size: 32\n") ..core.colorize("#FFFFFF", "Reload delay: 1.3\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.14\n") ..core.colorize("#FFFFFF", "Gun type: sub-machinegun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_mp40.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=2,knockback=1},
gun_crit = 8,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",32}},
gun_skill = {"smg_skill",75},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:mp40_r",
gun_velocity = 25,
gun_accuracy = 75,
gun_cooldown = 0.14,
gun_reload = 1.3/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:mp40_r", {
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:mp40_rr",
load_sound = "rangedweapons_handgun_mag_in",
inventory_image = "rangedweapons_mp40_rld.png",
groups = {not_in_creative_inventory = 1},
})
minetest.register_tool("rangedweapons:mp40_rr", {
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "",
range = 0,
rw_next_reload = "rangedweapons:mp40_rrr",
load_sound = "rangedweapons_reload_a",
inventory_image = "rangedweapons_mp40.png",
groups = {not_in_creative_inventory = 1},
})
minetest.register_tool("rangedweapons:mp40_rrr", {
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "",
range = 0,
inventory_image = "rangedweapons_mp40.png",
rw_next_reload = "rangedweapons:mp40",
load_sound = "rangedweapons_reload_b",
groups = {not_in_creative_inventory = 1},
})
minetest.register_tool("rangedweapons:mp40", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.5},
description = "" ..core.colorize("#35cdff","MP-40\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "Gun knockback: 1\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n") ..core.colorize("#FFFFFF", "Clip size: 32\n") ..core.colorize("#FFFFFF", "Reload delay: 1.3\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.14\n") ..core.colorize("#FFFFFF", "Gun type: sub-machinegun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_mp40.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=2,knockback=1},
gun_crit = 8,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",32}},
gun_skill = {"smg_skill",75},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:mp40_r",
gun_velocity = 25,
gun_accuracy = 75,
gun_cooldown = 0.14,
gun_reload = 1.3/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

134
mp5.lua

@ -1,67 +1,67 @@
minetest.register_tool("rangedweapons:mp5_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "",
rw_next_reload = "rangedweapons:mp5_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_mp5_rld.png",
})
minetest.register_tool("rangedweapons:mp5_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "",
rw_next_reload = "rangedweapons:mp5_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_mp5.png",
})
minetest.register_tool("rangedweapons:mp5_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "",
rw_next_reload = "rangedweapons:mp5",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_mp5.png",
})
minetest.register_tool("rangedweapons:mp5", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "" ..core.colorize("#35cdff","MP5\n") ..core.colorize("#FFFFFF", "Gun damage: 3\n") ..core.colorize("#FFFFFF", "accuracy: 74%\n") ..core.colorize("#FFFFFF", "Gun knockback: 1\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 7%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 40/40\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/10mm auto\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.075(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: sub-machinegun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_mp5.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=3,knockback=1},
gun_crit = 7,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",40},{"rangedweapons:10mm",40}},
gun_skill = {"smg_skill",75},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:mp5_r",
gun_velocity = 25,
gun_accuracy = 74,
gun_cooldown = 0.075,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1600,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:mp5_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "",
rw_next_reload = "rangedweapons:mp5_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_mp5_rld.png",
})
minetest.register_tool("rangedweapons:mp5_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "",
rw_next_reload = "rangedweapons:mp5_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_mp5.png",
})
minetest.register_tool("rangedweapons:mp5_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "",
rw_next_reload = "rangedweapons:mp5",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_mp5.png",
})
minetest.register_tool("rangedweapons:mp5", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.20},
description = "" ..core.colorize("#35cdff","MP5\n") ..core.colorize("#FFFFFF", "Gun damage: 3\n") ..core.colorize("#FFFFFF", "accuracy: 74%\n") ..core.colorize("#FFFFFF", "Gun knockback: 1\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 7%\n")..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 40/40\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/10mm auto\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.075(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: sub-machinegun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_mp5.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=3,knockback=1},
gun_crit = 7,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",40},{"rangedweapons:10mm",40}},
gun_skill = {"smg_skill",75},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:mp5_r",
gun_velocity = 25,
gun_accuracy = 74,
gun_cooldown = 0.075,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1600,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

@ -1,51 +1,51 @@
minetest.register_tool("rangedweapons:python_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
description = "",
loaded_gun = "rangedweapons:python",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_python_rld.png",
})
minetest.register_tool("rangedweapons:python", {
description = "" ..core.colorize("#35cdff","Colt Python \n") ..core.colorize("#FFFFFF", "Ranged damage: 10\n")..core.colorize("#FFFFFF", "Accuracy: 95%\n") ..core.colorize("#FFFFFF", "Gun knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 19%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.5x\n") ..core.colorize("#FFFFFF", "Ammunition: .357 Magnum rounds\n") ..core.colorize("#FFFFFF", "Reload time: 0.25\n") ..core.colorize("#FFFFFF", "Clip Size: 6\n")..core.colorize("#FFFFFF", "Gun type: Revolver\n")..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "penetration: 15%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 55"),
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
inventory_image = "rangedweapons_python.png",
RW_gun_capabilities = {
gun_damage = {fleshy=10,knockback=6},
gun_crit = 19,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:357",6}},
gun_skill = {"revolver_skill",40},
gun_unloaded = "rangedweapons:python_rld",
gun_cooling = "rangedweapons:python",
gun_velocity = 55,
gun_accuracy = 95,
gun_cooldown = 0.2,
gun_reload = 0.4,
gun_projectiles = 1,
gun_durability = 1000,
gun_smokeSize = 7,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_shell_insert",
gun_sound = "rangedweapons_deagle",
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:python_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
description = "",
loaded_gun = "rangedweapons:python",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_python_rld.png",
})
minetest.register_tool("rangedweapons:python", {
description = "" ..core.colorize("#35cdff","Colt Python \n") ..core.colorize("#FFFFFF", "Ranged damage: 10\n")..core.colorize("#FFFFFF", "Accuracy: 95%\n") ..core.colorize("#FFFFFF", "Gun knockback: 6\n") ..core.colorize("#FFFFFF", "Critical chance: 19%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.5x\n") ..core.colorize("#FFFFFF", "Ammunition: .357 Magnum rounds\n") ..core.colorize("#FFFFFF", "Reload time: 0.25\n") ..core.colorize("#FFFFFF", "Clip Size: 6\n")..core.colorize("#FFFFFF", "Gun type: Revolver\n")..core.colorize("#FFFFFF", "Block penetration: 5%\n")
..core.colorize("#FFFFFF", "penetration: 15%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 55"),
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
inventory_image = "rangedweapons_python.png",
RW_gun_capabilities = {
gun_damage = {fleshy=10,knockback=6},
gun_crit = 19,
gun_critEffc = 2.2,
suitable_ammo = {{"rangedweapons:357",6}},
gun_skill = {"revolver_skill",40},
gun_unloaded = "rangedweapons:python_rld",
gun_cooling = "rangedweapons:python",
gun_velocity = 55,
gun_accuracy = 95,
gun_cooldown = 0.2,
gun_reload = 0.4,
gun_projectiles = 1,
gun_durability = 1000,
gun_smokeSize = 7,
gun_mob_penetration = 15,
gun_node_penetration = 5,
gun_unload_sound = "rangedweapons_shell_insert",
gun_sound = "rangedweapons_deagle",
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user)
return itemstack
end,
})

@ -1,63 +1,63 @@
minetest.register_tool("rangedweapons:remington_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:remington",
loaded_sound = "rangedweapons_shotgun_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_remington_rld.png",
})
minetest.register_tool("rangedweapons:remington", {
description = "" ..core.colorize("#35cdff","Remington 870\n") ..core.colorize("#FFFFFF", "Ranged damage: 1\n") ..core.colorize("#FFFFFF", "projectiles: 4\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n") ..core.colorize("#FFFFFF", "Accuracy: 40%\n")..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Critical chance: 4%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.8\n")..core.colorize("#FFFFFF", "Clip size: 4\n") ..core.colorize("#27a600", "Gun is ready to fire!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 18"),
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_remington.png",
RW_gun_capabilities = {
gun_damage = {fleshy=1,knockback=5},
gun_crit = 4,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:shell",4}},
gun_skill = {"shotgun_skill",20},
gun_unloaded = "rangedweapons:remington_rld",
gun_cooling = "rangedweapons:remington_uld",
gun_velocity = 18,
gun_accuracy = 40,
gun_cooldown = 0.8,
gun_gravity = 5,
gun_reload = 0.25,
gun_projectiles = 4,
has_shell = 0,
gun_durability = 275,
gun_smokeSize = 14,
gun_door_breaking = 1,
gun_sound = "rangedweapons_shotgun_shot",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user, "")
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:remington_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","Remington 870\n") ..core.colorize("#FFFFFF", "Ranged damage: 1\n") ..core.colorize("#FFFFFF", "projectiles: 4\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n") ..core.colorize("#FFFFFF", "Accuracy: 40%\n")..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Critical chance: 4%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.8\n")..core.colorize("#FFFFFF", "Clip size: 4\n") ..core.colorize("#be0d00", "Right-click, to eject the empty shell!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
inventory_image = "rangedweapons_remington.png",
groups = {not_in_creative_inventory = 1},
on_use = function(user)
minetest.sound_play("rangedweapons_empty", {user})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:remington_rld",0.8,"rangedweapons_shotgun_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:remington_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:remington",
loaded_sound = "rangedweapons_shotgun_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_remington_rld.png",
})
minetest.register_tool("rangedweapons:remington", {
description = "" ..core.colorize("#35cdff","Remington 870\n") ..core.colorize("#FFFFFF", "Ranged damage: 1\n") ..core.colorize("#FFFFFF", "projectiles: 4\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n") ..core.colorize("#FFFFFF", "Accuracy: 40%\n")..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Critical chance: 4%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.8\n")..core.colorize("#FFFFFF", "Clip size: 4\n") ..core.colorize("#27a600", "Gun is ready to fire!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 18"),
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_remington.png",
RW_gun_capabilities = {
gun_damage = {fleshy=1,knockback=5},
gun_crit = 4,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:shell",4}},
gun_skill = {"shotgun_skill",20},
gun_unloaded = "rangedweapons:remington_rld",
gun_cooling = "rangedweapons:remington_uld",
gun_velocity = 18,
gun_accuracy = 40,
gun_cooldown = 0.8,
gun_gravity = 5,
gun_reload = 0.25,
gun_projectiles = 4,
has_shell = 0,
gun_durability = 275,
gun_smokeSize = 14,
gun_door_breaking = 1,
gun_sound = "rangedweapons_shotgun_shot",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user, "")
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:remington_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","Remington 870\n") ..core.colorize("#FFFFFF", "Ranged damage: 1\n") ..core.colorize("#FFFFFF", "projectiles: 4\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n") ..core.colorize("#FFFFFF", "Accuracy: 40%\n")..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Critical chance: 4%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.8\n")..core.colorize("#FFFFFF", "Clip size: 4\n") ..core.colorize("#be0d00", "Right-click, to eject the empty shell!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
inventory_image = "rangedweapons_remington.png",
groups = {not_in_creative_inventory = 1},
on_use = function(user)
minetest.sound_play("rangedweapons_empty", {user})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:remington_rld",0.8,"rangedweapons_shotgun_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})

144
rpg.lua

@ -1,72 +1,72 @@
minetest.register_tool("rangedweapons:rpg_rld", {
description = "" ..core.colorize("#35cdff","rpg7\n") ..core.colorize("#FFFFFF", "Direct contact damage: 20\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "direct contact knockback: 35\n") ..core.colorize("#FFFFFF", "Gun crit chance: 10%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 1\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n")..core.colorize("#FFFFFF", "Ammunition: rockets\n")..core.colorize("#FFFFFF", "Gun type: rocket launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
wield_scale = {x=2.5,y=2.5,z=3.75},
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpg_rld.png",
RW_gun_capabilities = {
gun_damage = {fleshy=20,knockback=35},
gun_crit = 10,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:rocket",1}},
gun_skill = {"",1},
gun_unloaded = "rangedweapons:rpg_rld",
gun_cooling = "rangedweapons:rpg",
gun_velocity = 25,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 1.0,
gun_projectiles = 1,
gun_smokeSize = 15,
gun_durability = 150,
gun_unload_sound = "",
gun_sound = "rangedweapons_rocket",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:rpg", {
description = "" ..core.colorize("#35cdff","rpg7\n") ..core.colorize("#FFFFFF", "Direct contact damage: 20\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "direct contact knockback: 35\n") ..core.colorize("#FFFFFF", "Gun crit chance: 10%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 1\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n")..core.colorize("#FFFFFF", "Ammunition: rockets\n")..core.colorize("#FFFFFF", "Gun type: rocket launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
wield_scale = {x=2.5,y=2.5,z=3.75},
inventory_image = "rangedweapons_rpg.png",
RW_gun_capabilities = {
gun_damage = {fleshy=20,knockback=35},
gun_crit = 10,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:rocket",1}},
gun_skill = {"",1},
gun_unloaded = "rangedweapons:rpg_rld",
gun_cooling = "rangedweapons:rpg",
gun_velocity = 25,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 1.0,
gun_projectiles = 1,
gun_smokeSize = 15,
gun_durability = 150,
gun_unload_sound = "",
gun_sound = "rangedweapons_rocket",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:rpg_rld", {
description = "" ..core.colorize("#35cdff","rpg7\n") ..core.colorize("#FFFFFF", "Direct contact damage: 20\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "direct contact knockback: 35\n") ..core.colorize("#FFFFFF", "Gun crit chance: 10%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 1\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n")..core.colorize("#FFFFFF", "Ammunition: rockets\n")..core.colorize("#FFFFFF", "Gun type: rocket launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
wield_scale = {x=2.5,y=2.5,z=3.75},
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpg_rld.png",
RW_gun_capabilities = {
gun_damage = {fleshy=20,knockback=35},
gun_crit = 10,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:rocket",1}},
gun_skill = {"",1},
gun_unloaded = "rangedweapons:rpg_rld",
gun_cooling = "rangedweapons:rpg",
gun_velocity = 25,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 1.0,
gun_projectiles = 1,
gun_smokeSize = 15,
gun_durability = 150,
gun_unload_sound = "",
gun_sound = "rangedweapons_rocket",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:rpg", {
description = "" ..core.colorize("#35cdff","rpg7\n") ..core.colorize("#FFFFFF", "Direct contact damage: 20\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "direct contact knockback: 35\n") ..core.colorize("#FFFFFF", "Gun crit chance: 10%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n")..core.colorize("#FFFFFF", "Clip size: 1\n") ..core.colorize("#FFFFFF", "Gun gravity: 5\n")..core.colorize("#FFFFFF", "Ammunition: rockets\n")..core.colorize("#FFFFFF", "Gun type: rocket launcher\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
wield_scale = {x=2.5,y=2.5,z=3.75},
inventory_image = "rangedweapons_rpg.png",
RW_gun_capabilities = {
gun_damage = {fleshy=20,knockback=35},
gun_crit = 10,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:rocket",1}},
gun_skill = {"",1},
gun_unloaded = "rangedweapons:rpg_rld",
gun_cooling = "rangedweapons:rpg",
gun_velocity = 25,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 1.0,
gun_projectiles = 1,
gun_smokeSize = 15,
gun_durability = 150,
gun_unload_sound = "",
gun_sound = "rangedweapons_rocket",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

150
rpk.lua

@ -1,75 +1,75 @@
minetest.register_tool("rangedweapons:rpk_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:rpk_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpk_rld.png",
})
minetest.register_tool("rangedweapons:rpk_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:rpk_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpk.png",
})
minetest.register_tool("rangedweapons:rpk_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:rpk",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpk.png",
})
minetest.register_tool("rangedweapons:rpk", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","rpk\n") ..core.colorize("#FFFFFF", "Gun damage: 7\n") ..core.colorize("#FFFFFF", "accuracy: 60%\n") ..core.colorize("#FFFFFF", "Gun knockback: 6\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 12%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 2.0\n") ..core.colorize("#FFFFFF", "Clip size: 75\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.10(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: heavy machinegun\n") ..core.colorize("#FFFFFF", "Block penetration: 10%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 25%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 55"),
range = 0,
inventory_image = "rangedweapons_rpk.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=7,knockback=6},
gun_crit = 12,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",75}},
gun_skill = {"heavy_skill",55},
gun_magazine = "rangedweapons:drum_mag",
gun_unloaded = "rangedweapons:rpk_r",
gun_velocity = 55,
gun_accuracy = 70,
gun_cooldown = 0.1,
gun_reload = 2.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 2250,
gun_smokeSize = 5,
gun_mob_penetration = 25,
gun_node_penetration = 10,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_ak",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_rpk.png",
})
minetest.register_tool("rangedweapons:rpk_r", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:rpk_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpk_rld.png",
})
minetest.register_tool("rangedweapons:rpk_rr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:rpk_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpk.png",
})
minetest.register_tool("rangedweapons:rpk_rrr", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "",
rw_next_reload = "rangedweapons:rpk",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_rpk.png",
})
minetest.register_tool("rangedweapons:rpk", {
stack_max= 1,
wield_scale = {x=1.75,y=1.75,z=1.3},
description = "" ..core.colorize("#35cdff","rpk\n") ..core.colorize("#FFFFFF", "Gun damage: 7\n") ..core.colorize("#FFFFFF", "accuracy: 60%\n") ..core.colorize("#FFFFFF", "Gun knockback: 6\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 12%\n")..core.colorize("#FFFFFF", "Critical efficiency: 3.0x\n") ..core.colorize("#FFFFFF", "Reload delay: 2.0\n") ..core.colorize("#FFFFFF", "Clip size: 75\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.10(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: heavy machinegun\n") ..core.colorize("#FFFFFF", "Block penetration: 10%\n")
..core.colorize("#FFFFFF", "Enemy penetration: 25%\n") ..core.colorize("#FFFFFF", "Bullet velocity: 55"),
range = 0,
inventory_image = "rangedweapons_rpk.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=7,knockback=6},
gun_crit = 12,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",75}},
gun_skill = {"heavy_skill",55},
gun_magazine = "rangedweapons:drum_mag",
gun_unloaded = "rangedweapons:rpk_r",
gun_velocity = 55,
gun_accuracy = 70,
gun_cooldown = 0.1,
gun_reload = 2.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 2250,
gun_smokeSize = 5,
gun_mob_penetration = 25,
gun_node_penetration = 10,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_ak",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_rpk.png",
})

148
scar.lua

@ -1,74 +1,74 @@
minetest.register_tool("rangedweapons:scar_r", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "",
rw_next_reload = "rangedweapons:scar_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_scar_rld.png",
})
minetest.register_tool("rangedweapons:scar_rr", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "",
rw_next_reload = "rangedweapons:scar_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_scar.png",
})
minetest.register_tool("rangedweapons:scar_rrr", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "",
rw_next_reload = "rangedweapons:scar",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_scar.png",
})
minetest.register_tool("rangedweapons:scar", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "" ..core.colorize("#35cdff","FN SCAR 16\n") ..core.colorize("#FFFFFF", "Ranged damage: 9\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "Gun knockback: 6\n")..core.colorize("#FFFFFF", "Critical chance: 11%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.75x\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds/5.56mm rounds\n") ..core.colorize("#FFFFFF", "Reload delay: 1.2\n") ..core.colorize("#FFFFFF", "Clip size: 20/30\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.15\n") ..core.colorize("#FFFFFF", "Block penetration: 7%\n")
..core.colorize("#FFFFFF", "penetration: 20%\n") ..core.colorize("#FFFFFF", "Gun type: Assault rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 45"),
range = 0,
inventory_image = "rangedweapons_scar.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=9,knockback=6},
gun_crit = 11,
gun_critEffc = 2.75,
suitable_ammo = {{"rangedweapons:762mm",20},{"rangedweapons:556mm",30}},
gun_skill = {"arifle_skill",50},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:scar_r",
gun_velocity = 45,
gun_accuracy = 85,
gun_cooldown = 0.15,
gun_reload = 1.2/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1600,
gun_smokeSize = 5,
gun_mob_penetration = 20,
gun_node_penetration = 7,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_ak",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_scar.png",
})
minetest.register_tool("rangedweapons:scar_r", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "",
rw_next_reload = "rangedweapons:scar_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_scar_rld.png",
})
minetest.register_tool("rangedweapons:scar_rr", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "",
rw_next_reload = "rangedweapons:scar_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_scar.png",
})
minetest.register_tool("rangedweapons:scar_rrr", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "",
rw_next_reload = "rangedweapons:scar",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_scar.png",
})
minetest.register_tool("rangedweapons:scar", {
stack_max= 1,
wield_scale = {x=1.7,y=1.7,z=1.25},
description = "" ..core.colorize("#35cdff","FN SCAR 16\n") ..core.colorize("#FFFFFF", "Ranged damage: 9\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "Gun knockback: 6\n")..core.colorize("#FFFFFF", "Critical chance: 11%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.75x\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm rounds/5.56mm rounds\n") ..core.colorize("#FFFFFF", "Reload delay: 1.2\n") ..core.colorize("#FFFFFF", "Clip size: 20/30\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.15\n") ..core.colorize("#FFFFFF", "Block penetration: 7%\n")
..core.colorize("#FFFFFF", "penetration: 20%\n") ..core.colorize("#FFFFFF", "Gun type: Assault rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 45"),
range = 0,
inventory_image = "rangedweapons_scar.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=9,knockback=6},
gun_crit = 11,
gun_critEffc = 2.75,
suitable_ammo = {{"rangedweapons:762mm",20},{"rangedweapons:556mm",30}},
gun_skill = {"arifle_skill",50},
gun_magazine = "rangedweapons:assaultrifle_mag",
gun_unloaded = "rangedweapons:scar_r",
gun_velocity = 45,
gun_accuracy = 85,
gun_cooldown = 0.15,
gun_reload = 1.2/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1600,
gun_smokeSize = 5,
gun_mob_penetration = 20,
gun_node_penetration = 7,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_ak",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
inventory_image = "rangedweapons_scar.png",
})

@ -1,82 +1,82 @@
# If true, a guns will wear off with use
rangedweapons_gun_wear (Gun Usage-Wear) bool true
# If true, guns can be crafted
rangedweapons_gun_crafting (Gun Crafting) bool true
# If true, items can be crafted
rangedweapons_item_crafting (Item Crafting) bool true
# If true, ammonition can be crafted
rangedweapons_ammo_crafting (Ammonition Crafting) bool true
# If true, other weapons can be crafted
rangedweapons_other_weapon_crafting (Other Weapon Crafting) bool true
# If true, a gun can always be reloaded (just need at least one matching bullet in the inventory)
rangedweapons_infinite_ammo (Inifinite Ammo) bool false
# Maximum lifetime of a bullet (or rocket)
rangedweapons_bullet_lifetime (Bullet Lifetime) int 10
# Damage multiplier for hits on other players
rangedweapons_player_dmg_multiplier (Player Damage Multiplier) float 1.0
# Damage multiplier for head shots
rangedweapons_headshot_dmg_multiplier (Headshot Damage Multiplier) float 1.75
# Damage multiplier for hits on mobs
rangedweapons_mob_dmg_multiplier (Mob Damage Multiplier) float 1.0
# Amount of blood (0 to disable)
rangedweapons_bloodyness (Bloodyness) int 10
# Whether skill system is enabled
rangedweapons.skill_system (Skill System) bool true
# Maximum Gun Skill (set to 100 to disable gaining skill)
rangedweapons_max_gun_efficiency (Maximum Gun Skill) int 300
# Minimum Gun Skill (set to 100 to disable loosing skill)
rangedweapons_min_gun_efficiency (Minimum Gun Skill) int 40
# Use particles on bullet impact (disabling can improve server lag)
rangedweapons_impact_particles (Particles on impact) bool true
# Animate Empty Shells as Entities (disabling can improve server lag)
rangedweapons_animate_empty_shells (Animate Empty Shells) bool true
# Bullet ricochet (disabling can improve server lag)
rangedweapons_bullet_ricochet (Bullets Ricocet) bool true
rangedweapons_shurikens (Enable Shurikens) bool true
rangedweapons_handguns (Enable Handgus) bool true
rangedweapons_forceguns (Enable Force-Guns) bool true
rangedweapons_javelins (Enable Javelins) bool true
rangedweapons_power_weapons (Enable Power-Weapons) bool true
rangedweapons_machine_pistols (Enable Pistols) bool true
rangedweapons_shotguns (Enable Shotguns) bool true
rangedweapons_auto_shotguns (Enable Auto-Shotguns) bool true
rangedweapons_smgs (Enable Submachine Guns) bool true
rangedweapons_rifles (Enable Rifles) bool true
rangedweapons_assault_rifles (Enable Assault-Rifles) bool true
rangedweapons_heavy_machineguns (Enable Heavy Machineguns) bool true
rangedweapons_revolvers (Enable Revolvers) bool true
rangedweapons_explosives (Enable Explosives) bool true
rangedweapons_glass_breaking (Breaking Glass) bool true
rangedweapons_door_breaking (Breaking Doors) bool true
# If true, a guns will wear off with use
rangedweapons_gun_wear (Gun Usage-Wear) bool true
# If true, guns can be crafted
rangedweapons_gun_crafting (Gun Crafting) bool true
# If true, items can be crafted
rangedweapons_item_crafting (Item Crafting) bool true
# If true, ammonition can be crafted
rangedweapons_ammo_crafting (Ammonition Crafting) bool true
# If true, other weapons can be crafted
rangedweapons_other_weapon_crafting (Other Weapon Crafting) bool true
# If true, a gun can always be reloaded (just need at least one matching bullet in the inventory)
rangedweapons_infinite_ammo (Inifinite Ammo) bool false
# Maximum lifetime of a bullet (or rocket)
rangedweapons_bullet_lifetime (Bullet Lifetime) int 10
# Damage multiplier for hits on other players
rangedweapons_player_dmg_multiplier (Player Damage Multiplier) float 1.0
# Damage multiplier for head shots
rangedweapons_headshot_dmg_multiplier (Headshot Damage Multiplier) float 1.75
# Damage multiplier for hits on mobs
rangedweapons_mob_dmg_multiplier (Mob Damage Multiplier) float 1.0
# Amount of blood (0 to disable)
rangedweapons_bloodyness (Bloodyness) int 10
# Whether skill system is enabled
rangedweapons.skill_system (Skill System) bool true
# Maximum Gun Skill (set to 100 to disable gaining skill)
rangedweapons_max_gun_efficiency (Maximum Gun Skill) int 300
# Minimum Gun Skill (set to 100 to disable loosing skill)
rangedweapons_min_gun_efficiency (Minimum Gun Skill) int 40
# Use particles on bullet impact (disabling can improve server lag)
rangedweapons_impact_particles (Particles on impact) bool true
# Animate Empty Shells as Entities (disabling can improve server lag)
rangedweapons_animate_empty_shells (Animate Empty Shells) bool true
# Bullet ricochet (disabling can improve server lag)
rangedweapons_bullet_ricochet (Bullets Ricocet) bool true
rangedweapons_shurikens (Enable Shurikens) bool true
rangedweapons_handguns (Enable Handgus) bool true
rangedweapons_forceguns (Enable Force-Guns) bool true
rangedweapons_javelins (Enable Javelins) bool true
rangedweapons_power_weapons (Enable Power-Weapons) bool true
rangedweapons_machine_pistols (Enable Pistols) bool true
rangedweapons_shotguns (Enable Shotguns) bool true
rangedweapons_auto_shotguns (Enable Auto-Shotguns) bool true
rangedweapons_smgs (Enable Submachine Guns) bool true
rangedweapons_rifles (Enable Rifles) bool true
rangedweapons_assault_rifles (Enable Assault-Rifles) bool true
rangedweapons_heavy_machineguns (Enable Heavy Machineguns) bool true
rangedweapons_revolvers (Enable Revolvers) bool true
rangedweapons_explosives (Enable Explosives) bool true
rangedweapons_glass_breaking (Breaking Glass) bool true
rangedweapons_door_breaking (Breaking Doors) bool true

@ -1,269 +1,269 @@
minetest.register_craftitem("rangedweapons:wooden_shuriken", {
description = "" ..core.colorize("#35cdff","Wooden shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "Accuracy: 80%\n") ..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 10%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 10\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.35\n") ..core.colorize("#FFFFFF", "Projectile velocity: 25"),
range = 0,
stack_max= 100,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_wooden_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=2,knockback=5},
throw_crit = 6,
throw_critEffc = 2.0,
throw_skill = {"throw_skill",35},
throw_velocity = 25,
throw_accuracy = 80,
throw_cooldown = 0.35,
throw_projectiles = 1,
throw_gravity = 10,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:wooden_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 0,
has_sparks = 0,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 10 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:wooden_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:stone_shuriken", {
description = "" ..core.colorize("#35cdff","Stone shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 4\n") ..core.colorize("#FFFFFF", "Accuracy: 75%\n") ..core.colorize("#FFFFFF", "knockback: 8\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 15%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 15\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.35\n") ..core.colorize("#FFFFFF", "Projectile velocity: 20"),
range = 0,
stack_max= 125,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_stone_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=4,knockback=8},
throw_crit = 7,
throw_critEffc = 2.1,
throw_skill = {"throw_skill",30},
throw_velocity = 20,
throw_accuracy = 75,
throw_cooldown = 0.5,
throw_projectiles = 1,
throw_gravity = 15,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:stone_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 0,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 15 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:stone_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:steel_shuriken", {
description = "" ..core.colorize("#35cdff","Steel shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 6\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "knockback: 3\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 35%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 8\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.25\n") ..core.colorize("#FFFFFF", "Projectile velocity: 30"),
range = 0,
stack_max= 150,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_steel_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=6,knockback=3},
throw_crit = 8,
throw_critEffc = 2.2,
throw_skill = {"throw_skill",40},
throw_velocity = 30,
throw_accuracy = 85,
throw_cooldown = 0.25,
throw_projectiles = 1,
throw_gravity = 8,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:steel_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 0,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 35 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:steel_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:bronze_shuriken", {
description = "" ..core.colorize("#35cdff","Bronze shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 6\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "knockback: 3\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 30%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 8\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.25\n") ..core.colorize("#FFFFFF", "Projectile velocity: 30"),
range = 0,
stack_max= 150,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_bronze_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=6,knockback=3},
throw_crit = 8,
throw_critEffc = 2.2,
throw_skill = {"throw_skill",40},
throw_velocity = 30,
throw_accuracy = 85,
throw_cooldown = 0.25,
throw_projectiles = 1,
throw_gravity = 8,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:bronze_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 0,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 30 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:bronze_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:golden_shuriken", {
description = "" ..core.colorize("#35cdff","Golden shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 8\n") ..core.colorize("#FFFFFF", "Accuracy: 75%\n") ..core.colorize("#FFFFFF", "knockback: 10\n") ..core.colorize("#FFFFFF", "Critical chance: 12%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.5x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 25%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 15\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.4\n") ..core.colorize("#FFFFFF", "Projectile velocity: 25"),
range = 0,
stack_max= 175,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_golden_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=8,knockback=10},
throw_crit = 12,
throw_critEffc = 2.5,
throw_skill = {"throw_skill",35},
throw_velocity = 25,
throw_accuracy = 75,
throw_cooldown = 0.4,
throw_projectiles = 1,
throw_gravity = 15,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:golden_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 25 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:golden_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:mese_shuriken", {
description = "" ..core.colorize("#35cdff","MESE shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 7\n") ..core.colorize("#FFFFFF", "Accuracy: 90%\n") ..core.colorize("#FFFFFF", "knockback: 2\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.3x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 50%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 5\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.2\n") ..core.colorize("#FFFFFF", "Enemy penetration: 25%\n") ..core.colorize("#FFFFFF", "Projectile velocity: 35"),
range = 0,
stack_max= 175,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_mese_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=7,knockback=2},
throw_crit = 9,
throw_critEffc = 2.3,
throw_skill = {"throw_skill",45},
throw_velocity = 35,
throw_accuracy = 90,
throw_cooldown = 0.2,
throw_projectiles = 1,
throw_gravity = 5,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 25,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:mese_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 50 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:mese_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:diamond_shuriken", {
description = "" ..core.colorize("#35cdff","Diamond shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 8\n") ..core.colorize("#FFFFFF", "Accuracy: 95%\n") ..core.colorize("#FFFFFF", "knockback: 2\n") ..core.colorize("#FFFFFF", "Critical chance: 10%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.4x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 60%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 5\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.15\n") ..core.colorize("#FFFFFF", "Enemy penetration: 33%\n") ..core.colorize("#FFFFFF", "Projectile velocity: 40"),
range = 0,
stack_max= 200,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_diamond_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=8,knockback=2},
throw_crit = 10,
throw_critEffc = 2.4,
throw_skill = {"throw_skill",50},
throw_velocity = 40,
throw_accuracy = 95,
throw_cooldown = 0.15,
throw_projectiles = 1,
throw_gravity = 5,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 33,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:diamond_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 60 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:diamond_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:wooden_shuriken", {
description = "" ..core.colorize("#35cdff","Wooden shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "Accuracy: 80%\n") ..core.colorize("#FFFFFF", "knockback: 5\n") ..core.colorize("#FFFFFF", "Critical chance: 6%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 10%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 10\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.35\n") ..core.colorize("#FFFFFF", "Projectile velocity: 25"),
range = 0,
stack_max= 100,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_wooden_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=2,knockback=5},
throw_crit = 6,
throw_critEffc = 2.0,
throw_skill = {"throw_skill",35},
throw_velocity = 25,
throw_accuracy = 80,
throw_cooldown = 0.35,
throw_projectiles = 1,
throw_gravity = 10,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:wooden_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 0,
has_sparks = 0,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 10 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:wooden_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:stone_shuriken", {
description = "" ..core.colorize("#35cdff","Stone shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 4\n") ..core.colorize("#FFFFFF", "Accuracy: 75%\n") ..core.colorize("#FFFFFF", "knockback: 8\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 15%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 15\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.35\n") ..core.colorize("#FFFFFF", "Projectile velocity: 20"),
range = 0,
stack_max= 125,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_stone_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=4,knockback=8},
throw_crit = 7,
throw_critEffc = 2.1,
throw_skill = {"throw_skill",30},
throw_velocity = 20,
throw_accuracy = 75,
throw_cooldown = 0.5,
throw_projectiles = 1,
throw_gravity = 15,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:stone_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 0,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 15 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:stone_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:steel_shuriken", {
description = "" ..core.colorize("#35cdff","Steel shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 6\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "knockback: 3\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 35%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 8\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.25\n") ..core.colorize("#FFFFFF", "Projectile velocity: 30"),
range = 0,
stack_max= 150,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_steel_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=6,knockback=3},
throw_crit = 8,
throw_critEffc = 2.2,
throw_skill = {"throw_skill",40},
throw_velocity = 30,
throw_accuracy = 85,
throw_cooldown = 0.25,
throw_projectiles = 1,
throw_gravity = 8,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:steel_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 0,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 35 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:steel_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:bronze_shuriken", {
description = "" ..core.colorize("#35cdff","Bronze shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 6\n") ..core.colorize("#FFFFFF", "Accuracy: 85%\n") ..core.colorize("#FFFFFF", "knockback: 3\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.2x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 30%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 8\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.25\n") ..core.colorize("#FFFFFF", "Projectile velocity: 30"),
range = 0,
stack_max= 150,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_bronze_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=6,knockback=3},
throw_crit = 8,
throw_critEffc = 2.2,
throw_skill = {"throw_skill",40},
throw_velocity = 30,
throw_accuracy = 85,
throw_cooldown = 0.25,
throw_projectiles = 1,
throw_gravity = 8,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:bronze_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 0,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 30 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:bronze_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:golden_shuriken", {
description = "" ..core.colorize("#35cdff","Golden shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 8\n") ..core.colorize("#FFFFFF", "Accuracy: 75%\n") ..core.colorize("#FFFFFF", "knockback: 10\n") ..core.colorize("#FFFFFF", "Critical chance: 12%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.5x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 25%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 15\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.4\n") ..core.colorize("#FFFFFF", "Projectile velocity: 25"),
range = 0,
stack_max= 175,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_golden_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=8,knockback=10},
throw_crit = 12,
throw_critEffc = 2.5,
throw_skill = {"throw_skill",35},
throw_velocity = 25,
throw_accuracy = 75,
throw_cooldown = 0.4,
throw_projectiles = 1,
throw_gravity = 15,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 0,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:golden_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 25 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:golden_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:mese_shuriken", {
description = "" ..core.colorize("#35cdff","MESE shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 7\n") ..core.colorize("#FFFFFF", "Accuracy: 90%\n") ..core.colorize("#FFFFFF", "knockback: 2\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.3x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 50%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 5\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.2\n") ..core.colorize("#FFFFFF", "Enemy penetration: 25%\n") ..core.colorize("#FFFFFF", "Projectile velocity: 35"),
range = 0,
stack_max= 175,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_mese_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=7,knockback=2},
throw_crit = 9,
throw_critEffc = 2.3,
throw_skill = {"throw_skill",45},
throw_velocity = 35,
throw_accuracy = 90,
throw_cooldown = 0.2,
throw_projectiles = 1,
throw_gravity = 5,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 25,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:mese_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 50 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:mese_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:diamond_shuriken", {
description = "" ..core.colorize("#35cdff","Diamond shuriken\n") ..core.colorize("#FFFFFF", "Ranged damage: 8\n") ..core.colorize("#FFFFFF", "Accuracy: 95%\n") ..core.colorize("#FFFFFF", "knockback: 2\n") ..core.colorize("#FFFFFF", "Critical chance: 10%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.4x\n") ..core.colorize("#FFFFFF", "Shuriken survival rate: 60%\n") ..core.colorize("#FFFFFF", "Projectile gravity: 5\n") ..core.colorize("#FFFFFF", "Throwing cooldown: 0.15\n") ..core.colorize("#FFFFFF", "Enemy penetration: 33%\n") ..core.colorize("#FFFFFF", "Projectile velocity: 40"),
range = 0,
stack_max= 200,
wield_scale = {x=0.6,y=0.6,z=0.5},
inventory_image = "rangedweapons_diamond_shuriken.png",
RW_throw_capabilities = {
throw_damage = {fleshy=8,knockback=2},
throw_crit = 10,
throw_critEffc = 2.4,
throw_skill = {"throw_skill",50},
throw_velocity = 40,
throw_accuracy = 95,
throw_cooldown = 0.15,
throw_projectiles = 1,
throw_gravity = 5,
throw_sound = "rangedweapons_throw",
throw_dps = 0,
throw_mob_penetration = 33,
throw_node_penetration = 0,
throw_entity = "rangedweapons:shot_bullet",
throw_visual = "wielditem",
throw_texture = "rangedweapons:diamond_shuriken",
throw_projectile_size = 0.15,
throw_glass_breaking = 1,
has_sparks = 1,
ignites_explosives = 0,
throw_door_breaking = 0,
OnCollision = function(player,bullet,target)
if math.random(1, 100) <= 60 then
minetest.add_item(bullet.object:get_pos(), "rangedweapons:diamond_shuriken") end end,
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_yeet(itemstack, user)
return itemstack
end,
})

@ -1,100 +1,100 @@
local S = minetest.get_translator("rangedweapons")
local skill_list = {
{id="handgun_skill",name="Handgun",img="rangedweapons_handgun_img"},
{id="mp_skill",name="Machine Pistol",img="rangedweapons_machinepistol_img"},
{id="smg_skill",name="S.M.G.",img="rangedweapons_smg_img"},
{id="shotgun_skill",name="Shotgun",img="rangedweapons_shotgun_img"},
{id="heavy_skill",name="Heavy MG",img="rangedweapons_heavy_img"},
{id="arifle_skill",name="A.Rifle",img="rangedweapons_arifle_img"},
{id="revolver_skill",name="Revolver/magnum",img="rangedweapons_revolver_img"},
{id="rifle_skill",name="Rifle",img="rangedweapons_rifle_img"},
{id="throw_skill",name="Throwing weapons",img="rangedweapons_yeetable_img"},
}
local min_gun_efficiency = tonumber(minetest.settings:get("rangedweapons_min_gun_efficiency")) or 40
local max_gun_efficiency = tonumber(minetest.settings:get("rangedweapons_max_gun_efficiency")) or 300
local skill_system = minetest.settings:get_bool("rangedweapons.skill_system",true)
local timer = 0
minetest.register_chatcommand("gunskills", {
func = function(name, param)
local meta = minetest.get_player_by_name(name):get_meta()
local t = {"formspec_version[3]size[11,7]label[1,1;"}
table.insert(t,S("Gun efficiency: increases damage, accuracy and crit chance."))
table.insert(t,"]")
for i,skill in ipairs(skill_list) do
local x = i>5 and 6 or 1
local y = (i-1)%5+1.5
table.insert(t,"image[")
table.insert(t,x)
table.insert(t,",")
table.insert(t,y)
table.insert(t,";1,1;")
table.insert(t,skill.img)
table.insert(t,".png]")
x=x+1.2
y=y+0.5
table.insert(t,"label[")
table.insert(t,x)
table.insert(t,",")
table.insert(t,y)
table.insert(t,";")
table.insert(t,skill.name)
table.insert(t,": ")
table.insert(t,meta:contains(skill.id) and meta:get_int(skill.id) or 100)
table.insert(t,"%]")
end
table.insert(t,"button_exit[9,6;2,1;exit;"..S("Done").."]")
minetest.show_formspec(name, "rangedweapons:gunskills_form",table.concat(t))
end
})
if skill_system then
minetest.register_globalstep(function(dtime, player)
timer = timer + dtime;
if timer > 60 then
for _, player in pairs(minetest.get_connected_players()) do
local meta = player:get_meta()
for _,skill in ipairs(skill_list) do
if math.random(1, 40) == 1 then
local skill_value = meta:contains(skill.id) and meta:get_int(skill.id) or 100
if skill_value > min_gun_efficiency then
meta:set_int(skill.id, skill_value - 1)
minetest.chat_send_player(player:get_player_name(), minetest.colorize("#ff0000",S("@1 skill degraded!", S(skill.name))))
end
end
end
timer = 0
end
end
end)
end
local skill_name_from_id = {}
for _,skill in ipairs(skill_list) do
skill_name_from_id[skill.id] = skill.name
end
rangedweapons_gain_skill = function(player,skill,chance)
if skill_system then
if math.random(1, chance) == 1 then
local meta = player:get_meta()
local skill_value = meta:contains(skill) and meta:get_int(skill) or 100
if skill_value < max_gun_efficiency then
meta:set_int(skill, skill_value + 1)
minetest.chat_send_player(player:get_player_name(), "" ..core.colorize("#25c200",S("You've improved your @1 skill!", S(skill_name_from_id[skill]))))
end
end
end
end
if not skill_system then
minetest.register_on_joinplayer(function(player)
local meta = player:get_meta()
for _,skill in ipairs(skill_list) do
meta:set_string(skill.id, "")
end
end)
end
local S = minetest.get_translator("rangedweapons")
local skill_list = {
{id="handgun_skill",name="Handgun",img="rangedweapons_handgun_img"},
{id="mp_skill",name="Machine Pistol",img="rangedweapons_machinepistol_img"},
{id="smg_skill",name="S.M.G.",img="rangedweapons_smg_img"},
{id="shotgun_skill",name="Shotgun",img="rangedweapons_shotgun_img"},
{id="heavy_skill",name="Heavy MG",img="rangedweapons_heavy_img"},
{id="arifle_skill",name="A.Rifle",img="rangedweapons_arifle_img"},
{id="revolver_skill",name="Revolver/magnum",img="rangedweapons_revolver_img"},
{id="rifle_skill",name="Rifle",img="rangedweapons_rifle_img"},
{id="throw_skill",name="Throwing weapons",img="rangedweapons_yeetable_img"},
}
local min_gun_efficiency = tonumber(minetest.settings:get("rangedweapons_min_gun_efficiency")) or 40
local max_gun_efficiency = tonumber(minetest.settings:get("rangedweapons_max_gun_efficiency")) or 300
local skill_system = minetest.settings:get_bool("rangedweapons.skill_system",true)
local timer = 0
minetest.register_chatcommand("gunskills", {
func = function(name, param)
local meta = minetest.get_player_by_name(name):get_meta()
local t = {"formspec_version[3]size[11,7]label[1,1;"}
table.insert(t,S("Gun efficiency: increases damage, accuracy and crit chance."))
table.insert(t,"]")
for i,skill in ipairs(skill_list) do
local x = i>5 and 6 or 1
local y = (i-1)%5+1.5
table.insert(t,"image[")
table.insert(t,x)
table.insert(t,",")
table.insert(t,y)
table.insert(t,";1,1;")
table.insert(t,skill.img)
table.insert(t,".png]")
x=x+1.2
y=y+0.5
table.insert(t,"label[")
table.insert(t,x)
table.insert(t,",")
table.insert(t,y)
table.insert(t,";")
table.insert(t,skill.name)
table.insert(t,": ")
table.insert(t,meta:contains(skill.id) and meta:get_int(skill.id) or 100)
table.insert(t,"%]")
end
table.insert(t,"button_exit[9,6;2,1;exit;"..S("Done").."]")
minetest.show_formspec(name, "rangedweapons:gunskills_form",table.concat(t))
end
})
if skill_system then
minetest.register_globalstep(function(dtime, player)
timer = timer + dtime;
if timer > 60 then
for _, player in pairs(minetest.get_connected_players()) do
local meta = player:get_meta()
for _,skill in ipairs(skill_list) do
if math.random(1, 40) == 1 then
local skill_value = meta:contains(skill.id) and meta:get_int(skill.id) or 100
if skill_value > min_gun_efficiency then
meta:set_int(skill.id, skill_value - 1)
minetest.chat_send_player(player:get_player_name(), minetest.colorize("#ff0000",S("@1 skill degraded!", S(skill.name))))
end
end
end
timer = 0
end
end
end)
end
local skill_name_from_id = {}
for _,skill in ipairs(skill_list) do
skill_name_from_id[skill.id] = skill.name
end
rangedweapons_gain_skill = function(player,skill,chance)
if skill_system then
if math.random(1, chance) == 1 then
local meta = player:get_meta()
local skill_value = meta:contains(skill) and meta:get_int(skill) or 100
if skill_value < max_gun_efficiency then
meta:set_int(skill, skill_value + 1)
minetest.chat_send_player(player:get_player_name(), "" ..core.colorize("#25c200",S("You've improved your @1 skill!", S(skill_name_from_id[skill]))))
end
end
end
end
if not skill_system then
minetest.register_on_joinplayer(function(player)
local meta = player:get_meta()
for _,skill in ipairs(skill_list) do
meta:set_string(skill.id, "")
end
end)
end

@ -1,62 +1,62 @@
minetest.register_tool("rangedweapons:spas12_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:spas12",
loaded_sound = "rangedweapons_shotgun_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_spas12_rld.png",
})
minetest.register_tool("rangedweapons:spas12", {
description = "" ..core.colorize("#35cdff","spas-12\n") ..core.colorize("#FFFFFF", "Ranged damage: 3\n") ..core.colorize("#FFFFFF", "projectiles: 6\n") ..core.colorize("#FFFFFF", "Gun gravity: 3\n") ..core.colorize("#FFFFFF", "Accuracy: 52%\n")..core.colorize("#FFFFFF", "knockback: 7\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.45\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#27a600", "Gun is ready to fire!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 32"),
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_spas12.png",
RW_gun_capabilities = {
gun_damage = {fleshy=3,knockback=7},
gun_crit = 7,
gun_critEffc = 2.1,
suitable_ammo = {{"rangedweapons:shell",8}},
gun_skill = {"shotgun_skill",20},
gun_unloaded = "rangedweapons:spas12_rld",
gun_cooling = "rangedweapons:spas12_uld",
gun_velocity = 32,
gun_accuracy = 52,
gun_cooldown = 0.45,
gun_gravity = 3,
gun_reload = 0.25,
gun_projectiles = 6,
has_shell = 0,
gun_durability = 550,
gun_smokeSize = 15,
gun_door_breaking = 1,
gun_sound = "rangedweapons_shotgun_shot",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user, "")
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:spas12_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","spas-12\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "projectiles: 6\n") ..core.colorize("#FFFFFF", "Gun gravity: 3\n") ..core.colorize("#FFFFFF", "Accuracy: 52%\n")..core.colorize("#FFFFFF", "knockback: 7\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.45\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#be0d00", "Right-click, to eject the empty shell!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 28"),
inventory_image = "rangedweapons_spas12.png",
groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:spas12_rld",0.6,"rangedweapons_shotgun_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:spas12_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:spas12",
loaded_sound = "rangedweapons_shotgun_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_spas12_rld.png",
})
minetest.register_tool("rangedweapons:spas12", {
description = "" ..core.colorize("#35cdff","spas-12\n") ..core.colorize("#FFFFFF", "Ranged damage: 3\n") ..core.colorize("#FFFFFF", "projectiles: 6\n") ..core.colorize("#FFFFFF", "Gun gravity: 3\n") ..core.colorize("#FFFFFF", "Accuracy: 52%\n")..core.colorize("#FFFFFF", "knockback: 7\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.45\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#27a600", "Gun is ready to fire!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 32"),
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_spas12.png",
RW_gun_capabilities = {
gun_damage = {fleshy=3,knockback=7},
gun_crit = 7,
gun_critEffc = 2.1,
suitable_ammo = {{"rangedweapons:shell",8}},
gun_skill = {"shotgun_skill",20},
gun_unloaded = "rangedweapons:spas12_rld",
gun_cooling = "rangedweapons:spas12_uld",
gun_velocity = 32,
gun_accuracy = 52,
gun_cooldown = 0.45,
gun_gravity = 3,
gun_reload = 0.25,
gun_projectiles = 6,
has_shell = 0,
gun_durability = 550,
gun_smokeSize = 15,
gun_door_breaking = 1,
gun_sound = "rangedweapons_shotgun_shot",
gun_unload_sound = "rangedweapons_shell_insert",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user, "")
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:spas12_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","spas-12\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "projectiles: 6\n") ..core.colorize("#FFFFFF", "Gun gravity: 3\n") ..core.colorize("#FFFFFF", "Accuracy: 52%\n")..core.colorize("#FFFFFF", "knockback: 7\n") ..core.colorize("#FFFFFF", "Critical chance: 7%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.1x\n") ..core.colorize("#FFFFFF", "Ammunition: 12 gauge shells\n") ..core.colorize("#FFFFFF", "Pump delay: 0.45\n")..core.colorize("#FFFFFF", "Clip size: 8\n") ..core.colorize("#be0d00", "Right-click, to eject the empty shell!\n") ..core.colorize("#fff21c", "Right-click to load in a bullet!\n") ..core.colorize("#FFFFFF", "Gun type: shotgun\n") ..core.colorize("#FFFFFF", "Bullet velocity: 28"),
inventory_image = "rangedweapons_spas12.png",
groups = {not_in_creative_inventory = 1},
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:spas12_rld",0.6,"rangedweapons_shotgun_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})

204
svd.lua

@ -1,102 +1,102 @@
minetest.register_tool("rangedweapons:svd_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","S.V.D. \n") ..core.colorize("#FFFFFF", "Ranged damage:17 + 30/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 14\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 10x\n") ..core.colorize("#be0d00", "Right-click to eject empty bullet shell\n") ..core.colorize("#FFFFFF", "Clip size: 10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd.png",
weapon_zoom = 9,
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:svd_rld",1.0,"rangedweapons_rifle_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:svd_r", {
rw_next_reload = "rangedweapons:svd_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd_noclip.png",
})
minetest.register_tool("rangedweapons:svd_rr", {
rw_next_reload = "rangedweapons:svd_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd.png",
})
minetest.register_tool("rangedweapons:svd_rrr", {
rw_next_reload = "rangedweapons:svd",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd_rld.png",
})
minetest.register_tool("rangedweapons:svd_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:svd",
loaded_sound = "rangedweapons_rifle_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd_rld.png",
})
minetest.register_tool("rangedweapons:svd", {
description = "" ..core.colorize("#35cdff","S.V.D. \n") ..core.colorize("#FFFFFF", "Ranged damage:17 + 30/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 14\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 10x\n") ..core.colorize("#27a600", "The gun is loaded!\n") ..core.colorize("#FFFFFF", "Clip size: 10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
range = 0,
weapon_zoom = 9,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_svd.png",
RW_gun_capabilities = {
gun_damage = {fleshy=17,knockback=14},
gun_crit = 30,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",10}},
gun_skill = {"rifle_skill",20},
gun_magazine = "rangedweapons:rifle_mag",
gun_unloaded = "rangedweapons:svd_r",
gun_cooling = "rangedweapons:svd_uld",
gun_velocity = 75,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 2.0/4,
gun_projectiles = 1,
has_shell = 0,
gun_durability = 700,
gun_smokeSize = 8,
gun_dps = 30,
gun_mob_penetration = 30,
gun_node_penetration = 10,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_rifle_b",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:svd_uld", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.1},
range = 0,
description = "" ..core.colorize("#35cdff","S.V.D. \n") ..core.colorize("#FFFFFF", "Ranged damage:17 + 30/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 14\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 10x\n") ..core.colorize("#be0d00", "Right-click to eject empty bullet shell\n") ..core.colorize("#FFFFFF", "Clip size: 10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd.png",
weapon_zoom = 9,
on_use = function(itemstack, user)
minetest.sound_play("rangedweapons_empty", {pos = user:get_pos()})
end,
on_secondary_use = function(itemstack, user, pointed_thing)
eject_shell(itemstack,user,"rangedweapons:svd_rld",1.0,"rangedweapons_rifle_reload_a","rangedweapons:empty_shell")
return itemstack
end,
})
minetest.register_tool("rangedweapons:svd_r", {
rw_next_reload = "rangedweapons:svd_rr",
load_sound = "rangedweapons_rifle_clip_in",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd_noclip.png",
})
minetest.register_tool("rangedweapons:svd_rr", {
rw_next_reload = "rangedweapons:svd_rrr",
load_sound = "rangedweapons_rifle_reload_a",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd.png",
})
minetest.register_tool("rangedweapons:svd_rrr", {
rw_next_reload = "rangedweapons:svd",
load_sound = "rangedweapons_rifle_reload_b",
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd_rld.png",
})
minetest.register_tool("rangedweapons:svd_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.9,y=1.9,z=1.1},
description = "",
loaded_gun = "rangedweapons:svd",
loaded_sound = "rangedweapons_rifle_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_svd_rld.png",
})
minetest.register_tool("rangedweapons:svd", {
description = "" ..core.colorize("#35cdff","S.V.D. \n") ..core.colorize("#FFFFFF", "Ranged damage:17 + 30/sec of bullet lifetime\n")..core.colorize("#FFFFFF", "Accuracy: 100%\n") ..core.colorize("#FFFFFF", "knockback: 14\n") ..core.colorize("#FFFFFF", "Critical chance: 30%\n") ..core.colorize("#FFFFFF", "Critical efficiency: x3\n") ..core.colorize("#FFFFFF", "Ammunition: 7.62mm round\n") ..core.colorize("#FFFFFF", "Rate of fire: 1.0\n") ..core.colorize("#FFFFFF", "Reload time: 2.0\n") ..core.colorize("#FFFFFF", "Zoom: 10x\n") ..core.colorize("#27a600", "The gun is loaded!\n") ..core.colorize("#FFFFFF", "Clip size: 10\n") ..core.colorize("#FFFFFF", "Enemy penetration:30%\n") ..core.colorize("#FFFFFF", "Block penetration:10%\n") ..core.colorize("#FFFFFF", "Gun type: Rifle\n") ..core.colorize("#FFFFFF", "Bullet velocity: 75"),
range = 0,
weapon_zoom = 9,
wield_scale = {x=1.9,y=1.9,z=1.1},
inventory_image = "rangedweapons_svd.png",
RW_gun_capabilities = {
gun_damage = {fleshy=17,knockback=14},
gun_crit = 30,
gun_critEffc = 3.0,
suitable_ammo = {{"rangedweapons:762mm",10}},
gun_skill = {"rifle_skill",20},
gun_magazine = "rangedweapons:rifle_mag",
gun_unloaded = "rangedweapons:svd_r",
gun_cooling = "rangedweapons:svd_uld",
gun_velocity = 75,
gun_accuracy = 100,
gun_cooldown = 1.0,
gun_reload = 2.0/4,
gun_projectiles = 1,
has_shell = 0,
gun_durability = 700,
gun_smokeSize = 8,
gun_dps = 30,
gun_mob_penetration = 30,
gun_node_penetration = 10,
gun_unload_sound = "rangedweapons_rifle_clip_out",
gun_sound = "rangedweapons_rifle_b",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
})

@ -1,49 +1,49 @@
minetest.register_tool("rangedweapons:taurus_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
description = "",
loaded_gun = "rangedweapons:taurus",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_taurus_rld.png",
})
minetest.register_tool("rangedweapons:taurus", {
description = "" ..core.colorize("#35cdff","Taurus raging bull \n") ..core.colorize("#FFFFFF", "Ranged damage: 14\n")..core.colorize("#FFFFFF", "Accuracy: 97%\n") ..core.colorize("#FFFFFF", "Gun knockback: 8\n") ..core.colorize("#FFFFFF", "Critical chance: 22%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3.1x\n") ..core.colorize("#FFFFFF", "Ammunition: .44 Magnum rounds\n") ..core.colorize("#FFFFFF", "Reload time: 0.25\n") ..core.colorize("#FFFFFF", "Clip Size: 6\n") ..core.colorize("#FFFFFF", "Block penetration: 8%\n")
..core.colorize("#FFFFFF", "penetration: 24%\n") ..core.colorize("#FFFFFF", "Gun type: Revolver\n") ..core.colorize("#FFFFFF", "Bullet velocity: 64"),
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
inventory_image = "rangedweapons_taurus.png",
RW_gun_capabilities = {
gun_damage = {fleshy=14,knockback=8},
gun_crit = 22,
gun_critEffc = 3.1,
suitable_ammo = {{"rangedweapons:44",6}},
gun_skill = {"revolver_skill",40},
gun_unloaded = "rangedweapons:taurus_rld",
gun_cooling = "rangedweapons:taurus",
gun_velocity = 55,
gun_accuracy = 97,
gun_cooldown = 0.2,
gun_reload = 0.4,
gun_projectiles = 1,
gun_durability = 1750,
gun_smokeSize = 7,
gun_mob_penetration = 24,
gun_node_penetration = 8,
gun_unload_sound = "rangedweapons_shell_insert",
gun_sound = "rangedweapons_deagle",
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:taurus_rld", {
stack_max= 1,
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
description = "",
loaded_gun = "rangedweapons:taurus",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_taurus_rld.png",
})
minetest.register_tool("rangedweapons:taurus", {
description = "" ..core.colorize("#35cdff","Taurus raging bull \n") ..core.colorize("#FFFFFF", "Ranged damage: 14\n")..core.colorize("#FFFFFF", "Accuracy: 97%\n") ..core.colorize("#FFFFFF", "Gun knockback: 8\n") ..core.colorize("#FFFFFF", "Critical chance: 22%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 3.1x\n") ..core.colorize("#FFFFFF", "Ammunition: .44 Magnum rounds\n") ..core.colorize("#FFFFFF", "Reload time: 0.25\n") ..core.colorize("#FFFFFF", "Clip Size: 6\n") ..core.colorize("#FFFFFF", "Block penetration: 8%\n")
..core.colorize("#FFFFFF", "penetration: 24%\n") ..core.colorize("#FFFFFF", "Gun type: Revolver\n") ..core.colorize("#FFFFFF", "Bullet velocity: 64"),
range = 0,
wield_scale = {x=1.25,y=1.25,z=1.1},
inventory_image = "rangedweapons_taurus.png",
RW_gun_capabilities = {
gun_damage = {fleshy=14,knockback=8},
gun_crit = 22,
gun_critEffc = 3.1,
suitable_ammo = {{"rangedweapons:44",6}},
gun_skill = {"revolver_skill",40},
gun_unloaded = "rangedweapons:taurus_rld",
gun_cooling = "rangedweapons:taurus",
gun_velocity = 55,
gun_accuracy = 97,
gun_cooldown = 0.2,
gun_reload = 0.4,
gun_projectiles = 1,
gun_durability = 1750,
gun_smokeSize = 7,
gun_mob_penetration = 24,
gun_node_penetration = 8,
gun_unload_sound = "rangedweapons_shell_insert",
gun_sound = "rangedweapons_deagle",
},
on_use = function(itemstack, user, pointed_thing)
rangedweapons_shoot_gun(itemstack, user)
return itemstack
end,
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_single_load_gun(itemstack, user)
return itemstack
end,
})

142
tec9.lua

@ -1,71 +1,71 @@
minetest.register_craftitem("rangedweapons:tec9_r", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tec9_rr",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tec9_rld.png",
})
minetest.register_craftitem("rangedweapons:tec9_rr", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tec9_rrr",
load_sound = "rangedweapons_reload_a",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tec9.png",
})
minetest.register_craftitem("rangedweapons:tec9_rrr", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tec9",
load_sound = "rangedweapons_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tec9.png",
})
minetest.register_craftitem("rangedweapons:tec9", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "" ..core.colorize("#35cdff","TEC-9\n") ..core.colorize("#FFFFFF", "Gun damage: 1\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "Gun knockback: 0\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Gun Critical efficiency: 1.9x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 50\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.2\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
inventory_image = "rangedweapons_tec9.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=0},
gun_crit = 9,
gun_critEffc = 1.9,
suitable_ammo = {{"rangedweapons:9mm",50}},
gun_skill = {"mp_skill",80},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:tec9_r",
gun_velocity = 20,
gun_accuracy = 75,
gun_cooldown = 0.2,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1100,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_craftitem("rangedweapons:tec9_r", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tec9_rr",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tec9_rld.png",
})
minetest.register_craftitem("rangedweapons:tec9_rr", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tec9_rrr",
load_sound = "rangedweapons_reload_a",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tec9.png",
})
minetest.register_craftitem("rangedweapons:tec9_rrr", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tec9",
load_sound = "rangedweapons_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tec9.png",
})
minetest.register_craftitem("rangedweapons:tec9", {
stack_max= 1,
wield_scale = {x=1.25,y=1.25,z=1.50},
description = "" ..core.colorize("#35cdff","TEC-9\n") ..core.colorize("#FFFFFF", "Gun damage: 1\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "Gun knockback: 0\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Gun Critical efficiency: 1.9x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 50\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.2\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
inventory_image = "rangedweapons_tec9.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=0},
gun_crit = 9,
gun_critEffc = 1.9,
suitable_ammo = {{"rangedweapons:9mm",50}},
gun_skill = {"mp_skill",80},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:tec9_r",
gun_velocity = 20,
gun_accuracy = 75,
gun_cooldown = 0.2,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1100,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

@ -1,71 +1,71 @@
minetest.register_tool("rangedweapons:thompson_r", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:thompson_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_thompson_rld.png",
})
minetest.register_tool("rangedweapons:thompson_rr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:thompson_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_thompson.png",
})
minetest.register_tool("rangedweapons:thompson_rrr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:thompson",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_thompson.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:thompson", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "" ..core.colorize("#35cdff","Thompson SMG\n") ..core.colorize("#FFFFFF", "Ranged damage: 4\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "knockback: 1\n") ..core.colorize("#FFFFFF", "Reload delay: 1.4\n") ..core.colorize("#FFFFFF", "Clip size: 30/30\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 10mm auto/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.1 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: smg\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
range = 0,
inventory_image = "rangedweapons_thompson.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=4,knockback=1},
gun_crit = 8,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:10mm",30},{"rangedweapons:45acp",30}},
gun_skill = {"smg_skill",65},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:thompson_r",
gun_velocity = 30,
gun_accuracy = 75,
gun_cooldown = 0.1,
gun_reload = 1.4/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1250,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:thompson_r", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:thompson_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_thompson_rld.png",
})
minetest.register_tool("rangedweapons:thompson_rr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:thompson_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_thompson.png",
})
minetest.register_tool("rangedweapons:thompson_rrr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:thompson",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_thompson.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:thompson", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "" ..core.colorize("#35cdff","Thompson SMG\n") ..core.colorize("#FFFFFF", "Ranged damage: 4\n") ..core.colorize("#FFFFFF", "accuracy: 75%\n") ..core.colorize("#FFFFFF", "knockback: 1\n") ..core.colorize("#FFFFFF", "Reload delay: 1.4\n") ..core.colorize("#FFFFFF", "Clip size: 30/30\n") ..core.colorize("#FFFFFF", "Critical chance: 8%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 10mm auto/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.1 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: smg\n") ..core.colorize("#FFFFFF", "Bullet velocity: 30"),
range = 0,
inventory_image = "rangedweapons_thompson.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=4,knockback=1},
gun_crit = 8,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:10mm",30},{"rangedweapons:45acp",30}},
gun_skill = {"smg_skill",65},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:thompson_r",
gun_velocity = 30,
gun_accuracy = 75,
gun_cooldown = 0.1,
gun_reload = 1.4/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1250,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

134
tmp.lua

@ -1,67 +1,67 @@
minetest.register_tool("rangedweapons:tmp_r", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tmp_rr",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tmp_rld.png",
})
minetest.register_tool("rangedweapons:tmp_rr", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tmp_rrr",
load_sound = "rangedweapons_reload_a",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tmp.png",
})
minetest.register_tool("rangedweapons:tmp_rrr", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tmp",
load_sound = "rangedweapons_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tmp.png",
})
minetest.register_tool("rangedweapons:tmp", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "" ..core.colorize("#35cdff","Steyr T.M.P.\n") ..core.colorize("#FFFFFF", "Gun damage: 1\n") ..core.colorize("#FFFFFF", "accuracy: 64%\n") ..core.colorize("#FFFFFF", "Gun knockback: 0\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 4%\n")..core.colorize("#FFFFFF", "Critical efficiency: 1.85x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 30\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.066(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
inventory_image = "rangedweapons_tmp.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=0},
gun_crit = 4,
gun_critEffc = 1.85,
suitable_ammo = {{"rangedweapons:9mm",30}},
gun_skill = {"mp_skill",85},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:tmp_r",
gun_velocity = 20,
gun_accuracy = 64,
gun_cooldown = 0.066,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1200,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:tmp_r", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tmp_rr",
load_sound = "rangedweapons_handgun_mag_in",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tmp_rld.png",
})
minetest.register_tool("rangedweapons:tmp_rr", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tmp_rrr",
load_sound = "rangedweapons_reload_a",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tmp.png",
})
minetest.register_tool("rangedweapons:tmp_rrr", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "",
range = 0,
rw_next_reload = "rangedweapons:tmp",
load_sound = "rangedweapons_reload_b",
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_tmp.png",
})
minetest.register_tool("rangedweapons:tmp", {
stack_max= 1,
wield_scale = {x=1.15,y=1.15,z=1.15},
description = "" ..core.colorize("#35cdff","Steyr T.M.P.\n") ..core.colorize("#FFFFFF", "Gun damage: 1\n") ..core.colorize("#FFFFFF", "accuracy: 64%\n") ..core.colorize("#FFFFFF", "Gun knockback: 0\n") ..core.colorize("#FFFFFF", "Gun Critical chance: 4%\n")..core.colorize("#FFFFFF", "Critical efficiency: 1.85x\n") ..core.colorize("#FFFFFF", "Reload delay: 1.0\n") ..core.colorize("#FFFFFF", "Clip size: 30\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.066(full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 20"),
range = 0,
inventory_image = "rangedweapons_tmp.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=1,knockback=0},
gun_crit = 4,
gun_critEffc = 1.85,
suitable_ammo = {{"rangedweapons:9mm",30}},
gun_skill = {"mp_skill",85},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:tmp_r",
gun_velocity = 20,
gun_accuracy = 64,
gun_cooldown = 0.066,
gun_reload = 1.0/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1200,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

138
ump.lua

@ -1,69 +1,69 @@
minetest.register_tool("rangedweapons:ump_r", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:ump_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ump_rld.png",
})
minetest.register_tool("rangedweapons:ump_rr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:ump_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ump.png",
})
minetest.register_tool("rangedweapons:ump_rrr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:ump",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ump.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:ump", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "" ..core.colorize("#35cdff","UMP-9\n") ..core.colorize("#FFFFFF", "Ranged damage: 5\n") ..core.colorize("#FFFFFF", "accuracy: 79%\n") ..core.colorize("#FFFFFF", "knockback: 1\n") ..core.colorize("#FFFFFF", "Reload delay: 1.25\n") ..core.colorize("#FFFFFF", "Clip size: 25/25\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.115 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: smg\n") ..core.colorize("#FFFFFF", "Bullet velocity: 32"),
range = 0,
inventory_image = "rangedweapons_ump.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=5,knockback=1},
gun_crit = 9,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",25},{"rangedweapons:45acp",25}},
gun_skill = {"smg_skill",60},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:ump_r",
gun_velocity = 32,
gun_accuracy = 79,
gun_cooldown = 0.115,
gun_reload = 1.25/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:ump_r", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:ump_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ump_rld.png",
})
minetest.register_tool("rangedweapons:ump_rr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:ump_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ump.png",
})
minetest.register_tool("rangedweapons:ump_rrr", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "",
rw_next_reload = "rangedweapons:ump",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_ump.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:ump", {
stack_max= 1,
wield_scale = {x=1.9,y=1.9,z=1.25},
description = "" ..core.colorize("#35cdff","UMP-9\n") ..core.colorize("#FFFFFF", "Ranged damage: 5\n") ..core.colorize("#FFFFFF", "accuracy: 79%\n") ..core.colorize("#FFFFFF", "knockback: 1\n") ..core.colorize("#FFFFFF", "Reload delay: 1.25\n") ..core.colorize("#FFFFFF", "Clip size: 25/25\n") ..core.colorize("#FFFFFF", "Critical chance: 9%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 2.0x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.115 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: smg\n") ..core.colorize("#FFFFFF", "Bullet velocity: 32"),
range = 0,
inventory_image = "rangedweapons_ump.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=5,knockback=1},
gun_crit = 9,
gun_critEffc = 2.0,
suitable_ammo = {{"rangedweapons:9mm",25},{"rangedweapons:45acp",25}},
gun_skill = {"smg_skill",60},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:ump_r",
gun_velocity = 32,
gun_accuracy = 79,
gun_cooldown = 0.115,
gun_reload = 1.25/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_smg",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})

142
uzi.lua

@ -1,71 +1,71 @@
minetest.register_tool("rangedweapons:uzi_r", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "",
rw_next_reload = "rangedweapons:uzi_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_uzi_rld.png",
})
minetest.register_tool("rangedweapons:uzi_rr", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "",
rw_next_reload = "rangedweapons:uzi_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_uzi.png",
})
minetest.register_tool("rangedweapons:uzi_rrr", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "",
rw_next_reload = "rangedweapons:uzi",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_uzi.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:uzi", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "" ..core.colorize("#35cdff","UZI\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "accuracy: 72%\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Reload delay: 1.2\n") ..core.colorize("#FFFFFF", "Clip size: 40/22\n") ..core.colorize("#FFFFFF", "Critical chance: 5%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 1.9x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.08 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_uzi.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=2,knockback=0},
gun_crit = 5,
gun_critEffc = 1.9,
suitable_ammo = {{"rangedweapons:9mm",40},{"rangedweapons:45acp",22}},
gun_skill = {"mp_skill",80},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:uzi_r",
gun_velocity = 25,
gun_accuracy = 72,
gun_cooldown = 0.08,
gun_reload = 1.2/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})
minetest.register_tool("rangedweapons:uzi_r", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "",
rw_next_reload = "rangedweapons:uzi_rr",
load_sound = "rangedweapons_handgun_mag_in",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_uzi_rld.png",
})
minetest.register_tool("rangedweapons:uzi_rr", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "",
rw_next_reload = "rangedweapons:uzi_rrr",
load_sound = "rangedweapons_reload_a",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_uzi.png",
})
minetest.register_tool("rangedweapons:uzi_rrr", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "",
rw_next_reload = "rangedweapons:uzi",
load_sound = "rangedweapons_reload_b",
range = 0,
groups = {not_in_creative_inventory = 1},
inventory_image = "rangedweapons_uzi.png",
})
-------------------------------------------
minetest.register_tool("rangedweapons:uzi", {
stack_max= 1,
wield_scale = {x=1.6,y=1.6,z=1.10},
description = "" ..core.colorize("#35cdff","UZI\n") ..core.colorize("#FFFFFF", "Ranged damage: 2\n") ..core.colorize("#FFFFFF", "accuracy: 72%\n") ..core.colorize("#FFFFFF", "knockback: 0\n") ..core.colorize("#FFFFFF", "Reload delay: 1.2\n") ..core.colorize("#FFFFFF", "Clip size: 40/22\n") ..core.colorize("#FFFFFF", "Critical chance: 5%\n") ..core.colorize("#FFFFFF", "Critical efficiency: 1.9x\n") ..core.colorize("#FFFFFF", "Ammunition: 9x19mm parabellum/.45acp\n") ..core.colorize("#FFFFFF", "Rate of fire: 0.08 (full-auto)\n") ..core.colorize("#FFFFFF", "Gun type: machine pistol\n") ..core.colorize("#FFFFFF", "Bullet velocity: 25"),
range = 0,
inventory_image = "rangedweapons_uzi.png",
RW_gun_capabilities = {
automatic_gun = 1,
gun_damage = {fleshy=2,knockback=0},
gun_crit = 5,
gun_critEffc = 1.9,
suitable_ammo = {{"rangedweapons:9mm",40},{"rangedweapons:45acp",22}},
gun_skill = {"mp_skill",80},
gun_magazine = "rangedweapons:machinepistol_mag",
gun_unloaded = "rangedweapons:uzi_r",
gun_velocity = 25,
gun_accuracy = 72,
gun_cooldown = 0.08,
gun_reload = 1.2/4,
gun_projectiles = 1,
has_shell = 1,
gun_gravity = 0,
gun_durability = 1500,
gun_smokeSize = 4,
gun_unload_sound = "rangedweapons_handgun_mag_out",
gun_sound = "rangedweapons_machine_pistol",
},
on_secondary_use = function(itemstack, user, pointed_thing)
rangedweapons_reload_gun(itemstack, user)
return itemstack
end,
})