Fix barbarian archer crash

pull/26/merge
Brandon 2015-11-29 14:45:40 -06:00
parent 0b6844aa8d
commit e71f35c2e4
2 changed files with 24 additions and 13 deletions

View File

@ -8,7 +8,7 @@ mobs.api_icount = 0
mobs.api_timer = 0
mobs.spawn_counter = 0
mobs.spawn_limit = 10
mobs.spawn_limit = 25
mobs.spawn_timer = 0
function mobs:register_mob(name, def)
table.insert(mobs.mob_list[def.type],name)

View File

@ -48,6 +48,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
local pos = self.object:getpos()
local node = minetest.env:get_node(pos)
local hitter
local damage = 0
if self.timer>0.2 then
if self.player ~= nil then
@ -59,22 +60,32 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
for k, obj in pairs(objs) do
if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "throwing:arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then
local skill = skills.get_skill(hitter:get_player_name(),SKILL_ARROW)
local damage = self.max_damage * ( skill.level / skills.get_def(SKILL_ARROW)['max_level'] )
if hitter:is_player() then
local skill = skills.get_skill(hitter:get_player_name(),SKILL_ARROW)
damage = self.max_damage * ( skill.level / skills.get_def(SKILL_ARROW)['max_level'] )
else
damage = self.max_damage * 0.25
end
obj:punch(hitter, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=damage},
}, nil)
self.object:remove()
break
end
else
if hitter:is_player() then
local skill = skills.get_skill(hitter:get_player_name(),SKILL_ARROW)
damage = self.max_damage * ( skill.level / skills.get_def(SKILL_ARROW)['max_level'] )
else
damage = self.max_damage * 0.25
end
obj:punch(hitter, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=damage},
}, nil)
self.object:remove()
end
else
local skill = skills.get_skill(hitter:get_player_name(),SKILL_ARROW)
local damage = self.max_damage * ( skill.level / skills.get_def(SKILL_ARROW)['max_level'] )
obj:punch(hitter, 1.0, {
full_punch_interval=1.0,
damage_groups={fleshy=damage},
}, nil)
self.object:remove()
self.object:remove()
break
end
end
end