Separated dogshoot timers for different shoot/fight timings

This commit is contained in:
TenPlus1 2017-03-17 13:06:36 +00:00
parent 1205ec36a6
commit 80a86b658c
2 changed files with 7 additions and 2 deletions

View File

@ -1266,7 +1266,10 @@ local dogswitch = function(self, dtime)
self.dogshoot_count = self.dogshoot_count + dtime self.dogshoot_count = self.dogshoot_count + dtime
if self.dogshoot_count > self.dogshoot_count_max then if (self.dogshoot_switch == 1
and self.dogshoot_count > self.dogshoot_count_max)
or (self.dogshoot_switch == 2
and self.dogshoot_count > self.dogshoot_count2_max) then
self.dogshoot_count = 0 self.dogshoot_count = 0
@ -2389,6 +2392,7 @@ minetest.register_entity(name, {
dogshoot_switch = def.dogshoot_switch, dogshoot_switch = def.dogshoot_switch,
dogshoot_count = 0, dogshoot_count = 0,
dogshoot_count_max = def.dogshoot_count_max or 5, dogshoot_count_max = def.dogshoot_count_max or 5,
dogshoot_count2_max = def.dogshoot_count2_max,
attack_animals = def.attack_animals or false, attack_animals = def.attack_animals or false,
specific_attack = def.specific_attack, specific_attack = def.specific_attack,

View File

@ -82,7 +82,8 @@ This functions registers a new mob as a Minetest entity.
'explode' follows player in range and will flash and explode when in reach 'explode' follows player in range and will flash and explode when in reach
'dogshoot' shoots arrows when in range and one on one attack when in reach 'dogshoot' shoots arrows when in range and one on one attack when in reach
'dogshoot_switch' allows switching between shoot and dogfight modes inside dogshoot using timer (1 = shoot, 2 = dogfight) 'dogshoot_switch' allows switching between shoot and dogfight modes inside dogshoot using timer (1 = shoot, 2 = dogfight)
'dogshoot_count_max' number of seconds before switching above modes. 'dogshoot_count_max' number of seconds before switching to dogfight mode.
'dogshoot_count2_max' number of seconds before switching back to shoot mode.
'custom_attack' is a function that is called when mob is in range to attack player, parameters are (self, to_attack) 'custom_attack' is a function that is called when mob is in range to attack player, parameters are (self, to_attack)
'double_melee_attack' if false then api will choose randomly between 'punch' and 'punch2' attack animations 'double_melee_attack' if false then api will choose randomly between 'punch' and 'punch2' attack animations
'on_blast' is called when TNT explodes near mob, function uses (object, damage) and returns (do_damage, do_knockback, drops) 'on_blast' is called when TNT explodes near mob, function uses (object, damage) and returns (do_damage, do_knockback, drops)