mob shoot timings fixed
This commit is contained in:
parent
6afcc9f7ea
commit
f1b262ec0e
7
api.lua
7
api.lua
@ -940,7 +940,7 @@ function mobs:register_arrow(name, def)
|
|||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime)
|
||||||
self.timer = (self.timer or 0) + 1
|
self.timer = (self.timer or 0) + 1
|
||||||
if self.timer > 150 then self.object:remove() return end
|
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 pos = self.object:getpos()
|
||||||
local node = minetest.get_node(self.object:getpos()).name
|
local node = minetest.get_node(self.object:getpos()).name
|
||||||
-- hit node you can walk on
|
-- hit node you can walk on
|
||||||
@ -949,7 +949,6 @@ function mobs:register_arrow(name, def)
|
|||||||
if self.drop == true then
|
if self.drop == true then
|
||||||
pos.y = pos.y + 1 ; self.lastpos = (self.lastpos or pos)
|
pos.y = pos.y + 1 ; self.lastpos = (self.lastpos or pos)
|
||||||
minetest.add_item(self.lastpos, self.object:get_luaentity().name)
|
minetest.add_item(self.lastpos, self.object:get_luaentity().name)
|
||||||
self.object:remove()
|
|
||||||
end
|
end
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
@ -958,13 +957,13 @@ function mobs:register_arrow(name, def)
|
|||||||
if self.hit_player or self.hit_mob then
|
if self.hit_player or self.hit_mob then
|
||||||
for _,player in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
for _,player in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||||
-- hit player
|
-- 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.hit_player(self, player)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- hit mob
|
-- 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
|
and player:get_luaentity().name ~= "__builtin:item" then
|
||||||
self.hit_mob(self, player)
|
self.hit_mob(self, player)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user