mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2025-03-28 15:20:47 +01:00
Creeper mod - FIX#1
Fix for do_tnt_physics
This commit is contained in:
parent
f21cf6d434
commit
2d719aa3ba
@ -521,7 +521,7 @@ function mobs:register_mob(name, def)
|
|||||||
pos.x = math.floor(pos.x+0.5)
|
pos.x = math.floor(pos.x+0.5)
|
||||||
pos.y = math.floor(pos.y+0.5)
|
pos.y = math.floor(pos.y+0.5)
|
||||||
pos.z = math.floor(pos.z+0.5)
|
pos.z = math.floor(pos.z+0.5)
|
||||||
--do_tnt_physics(pos, 3)
|
do_tnt_physics(pos, 3) -- on applique le principe le la tnt
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
minetest.sound_play("tnt_explode", {pos = pos,gain = 1.0,max_hear_distance = 16,})
|
minetest.sound_play("tnt_explode", {pos = pos,gain = 1.0,max_hear_distance = 16,})
|
||||||
if minetest.get_node(pos).name == "default:water_source" or minetest.get_node(pos).name == "default:water_flowing" or minetest.is_protected(pos, "tnt") then
|
if minetest.get_node(pos).name == "default:water_source" or minetest.get_node(pos).name == "default:water_flowing" or minetest.is_protected(pos, "tnt") then
|
||||||
@ -535,7 +535,7 @@ function mobs:register_mob(name, def)
|
|||||||
local np={x=pos.x+x,y=pos.y+y,z=pos.z+z}
|
local np={x=pos.x+x,y=pos.y+y,z=pos.z+z}
|
||||||
local n = minetest.get_node(np)
|
local n = minetest.get_node(np)
|
||||||
if n.name ~= "air" and n.name ~= "default:obsidian" and n.name ~= "default:bedrock" and n.name ~= "protector:protect" then
|
if n.name ~= "air" and n.name ~= "default:obsidian" and n.name ~= "default:bedrock" and n.name ~= "protector:protect" then
|
||||||
--activate_if_tnt(n.name, np, pos, 3)
|
--activate_if_tnt(n.name, np, pos, 3) -- Pas de module TNT sur le serveur donc inutile
|
||||||
minetest.remove_node(np)
|
minetest.remove_node(np)
|
||||||
nodeupdate(np)
|
nodeupdate(np)
|
||||||
if n.name ~= "tnt:tnt" and math.random() > 0.9 then
|
if n.name ~= "tnt:tnt" and math.random() > 0.9 then
|
||||||
@ -883,6 +883,22 @@ function check_for_death(self)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function do_tnt_physics(tnt_np,tntr)
|
||||||
|
local objs = minetest.get_objects_inside_radius(tnt_np, tntr)
|
||||||
|
for k, obj in pairs(objs) do
|
||||||
|
local oname = obj:get_entity_name()
|
||||||
|
local v = obj:getvelocity()
|
||||||
|
local p = obj:getpos()
|
||||||
|
if v ~= nil then
|
||||||
|
obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 4) + v.x, y=(p.y - tnt_np.y) + (tntr / 2) + v.y, z=(p.z - tnt_np.z) + (tntr / 4) + v.z})
|
||||||
|
else
|
||||||
|
if obj:get_player_name() ~= nil then
|
||||||
|
obj:set_hp(obj:get_hp() - 8) -- lost of 8 life level
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function mobs:register_arrow(name, def)
|
function mobs:register_arrow(name, def)
|
||||||
minetest.register_entity(name, {
|
minetest.register_entity(name, {
|
||||||
physical = false,
|
physical = false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user