mirror of
https://github.com/lhofhansl/rangedweapons.git
synced 2024-08-21 05:34:14 +02:00
Fix player self-damage
This commit is contained in:
parent
ad59ab40e4
commit
da2a8c8b32
57
ammo.lua
57
ammo.lua
@ -24,7 +24,7 @@ initial_properties = {
|
|||||||
visual_size = {x=0.75, y=0.75},
|
visual_size = {x=0.75, y=0.75},
|
||||||
textures = {"rangedweapons:shot_bullet_visual"},
|
textures = {"rangedweapons:shot_bullet_visual"},
|
||||||
lastpos = {},
|
lastpos = {},
|
||||||
collide_with_objects = false,
|
collide_with_objects = true,
|
||||||
collisionbox = {-0.0025, -0.0025, -0.0025, 0.0025, 0.0025, 0.0025},
|
collisionbox = {-0.0025, -0.0025, -0.0025, 0.0025, 0.0025, 0.0025},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -60,7 +60,7 @@ end end
|
|||||||
|
|
||||||
self.timer = self.timer + dtime
|
self.timer = self.timer + dtime
|
||||||
|
|
||||||
if self.timer > 0.06 then
|
if self.timer >= 0 then
|
||||||
self.object:set_properties({collide_with_objects = true})
|
self.object:set_properties({collide_with_objects = true})
|
||||||
self.object:set_properties({collisionbox = {-size, -size, -size, size, size, size}})
|
self.object:set_properties({collisionbox = {-size, -size, -size, size, size, size}})
|
||||||
end
|
end
|
||||||
@ -255,7 +255,7 @@ end
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if moveresult.collisions[1].type == "object" then
|
if moveresult.collisions[1].type == "object" and (not moveresult.collisions[1].object:is_player() or moveresult.collisions[1].object:get_player_name() ~= self.owner) then
|
||||||
|
|
||||||
|
|
||||||
local actualDamage = self.damage or {fleshy=1}
|
local actualDamage = self.damage or {fleshy=1}
|
||||||
@ -268,44 +268,43 @@ local dps = self.dps or 0
|
|||||||
local skill = self.skill_value or 1
|
local skill = self.skill_value or 1
|
||||||
|
|
||||||
for _, dmg in pairs(actualDamage) do
|
for _, dmg in pairs(actualDamage) do
|
||||||
damage[_] = actualDamage[_]
|
damage[_] = actualDamage[_]
|
||||||
end
|
end
|
||||||
|
|
||||||
if moveresult.collisions[1].object:is_player() then
|
if moveresult.collisions[1].object:is_player() then
|
||||||
for _, player_dmg in pairs(damage) do
|
for _, player_dmg in pairs(damage) do
|
||||||
damage[_] = damage[_] * rweapons_player_dmg_multiplier
|
damage[_] = damage[_] * rweapons_player_dmg_multiplier
|
||||||
end
|
end
|
||||||
if self.object:get_pos().y - moveresult.collisions[1].object:get_pos().y > 1.5 then
|
if self.object:get_pos().y - moveresult.collisions[1].object:get_pos().y > 1.5 then
|
||||||
for _, hs_dmg in pairs(damage) do
|
for _, hs_dmg in pairs(damage) do
|
||||||
damage[_] = damage[_] * rweapons_headshot_dmg_multiplier
|
damage[_] = damage[_] * rweapons_headshot_dmg_multiplier
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
knockback = damage.knockback or 0
|
knockback = damage.knockback or 0
|
||||||
projectile_kb(moveresult.collisions[1].object,self.object,knockback)
|
projectile_kb(moveresult.collisions[1].object,self.object,knockback)
|
||||||
else
|
else
|
||||||
for _, mob_dmg in pairs(damage) do
|
for _, mob_dmg in pairs(damage) do
|
||||||
damage[_] = damage[_] * rweapons_mob_dmg_multiplier
|
damage[_] = damage[_] * rweapons_mob_dmg_multiplier
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, bonus_dmg in pairs(damage) do
|
for _, bonus_dmg in pairs(damage) do
|
||||||
damage[_] = (damage[_]*skill) + (self.dps*self.timer)
|
damage[_] = (damage[_]*skill) + (self.dps*self.timer)
|
||||||
end
|
end
|
||||||
|
|
||||||
--minetest.chat_send_all(critEffc)
|
--minetest.chat_send_all(critEffc)
|
||||||
if math.random(1,100) <= crit+((skill*10)-10) then
|
if math.random(1,100) <= crit+((skill*10)-10) then
|
||||||
for _, critDmg in pairs(damage) do
|
for _, critDmg in pairs(damage) do
|
||||||
damage[_] = damage[_] * critEffc
|
damage[_] = damage[_] * critEffc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
entpos = self.object:get_pos()
|
entpos = self.object:get_pos()
|
||||||
minetest.add_particle ({
|
minetest.add_particle ({
|
||||||
pos = entpos, velocity = 0, acceleration = {x=0, y=5, z=0},
|
pos = entpos, velocity = 0, acceleration = {x=0, y=5, z=0},
|
||||||
expirationtime = 0.75, size = 12, collisiondetection = false,
|
expirationtime = 0.75, size = 12, collisiondetection = false,
|
||||||
vertical = false, texture = "rangedweapons_crit.png", glow = 30,})
|
vertical = false, texture = "rangedweapons_crit.png", glow = 30,})
|
||||||
hit_texture = "rangedweapons_crithit.png"
|
hit_texture = "rangedweapons_crithit.png"
|
||||||
end
|
end
|
||||||
|
|
||||||
moveresult.collisions[1].object:punch(owner, 1.0, {
|
moveresult.collisions[1].object:punch(owner, 1.0, {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
|
Loading…
Reference in New Issue
Block a user