From f1b262ec0e823f09cc2a284952d6868082ff3152 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 4 Apr 2015 19:29:10 +0100 Subject: [PATCH] mob shoot timings fixed --- api.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/api.lua b/api.lua index 02bfbaa..4c571fd 100644 --- a/api.lua +++ b/api.lua @@ -940,7 +940,7 @@ function mobs:register_arrow(name, def) on_step = function(self, dtime) self.timer = (self.timer or 0) + 1 if self.timer > 150 then self.object:remove() return end - + local engage = 10 - (self.velocity / 2) -- clear entity before arrow becomes active local pos = self.object:getpos() local node = minetest.get_node(self.object:getpos()).name -- hit node you can walk on @@ -949,7 +949,6 @@ function mobs:register_arrow(name, def) if self.drop == true then pos.y = pos.y + 1 ; self.lastpos = (self.lastpos or pos) minetest.add_item(self.lastpos, self.object:get_luaentity().name) - self.object:remove() end self.object:remove() return @@ -958,13 +957,13 @@ function mobs:register_arrow(name, def) if self.hit_player or self.hit_mob then for _,player in pairs(minetest.get_objects_inside_radius(pos, 1)) do -- hit player - if self.hit_player and self.timer > 5 and player:is_player() then + if self.hit_player and self.timer > engage and player:is_player() then self.hit_player(self, player) self.object:remove() return end -- hit mob - if self.hit_mob and self.timer > 5 and player:get_luaentity().name ~= self.object:get_luaentity().name + if self.hit_mob and self.timer > engage and player:get_luaentity().name ~= self.object:get_luaentity().name and player:get_luaentity().name ~= "__builtin:item" then self.hit_mob(self, player) self.object:remove()