diff --git a/mods/ENTITIES/mcl_mobs/combat.lua b/mods/ENTITIES/mcl_mobs/combat.lua index 2bb19fb34..8e3ea94dc 100644 --- a/mods/ENTITIES/mcl_mobs/combat.lua +++ b/mods/ENTITIES/mcl_mobs/combat.lua @@ -1242,8 +1242,8 @@ function mob_class:do_states_attack (dtime) owner = self, }) ent = arrow:get_luaentity() + v = ent.velocity or v ent.switch = 1 - v = ent.velocity or 1 -- important for mcl_shields ent._shooter = self.object @@ -1255,7 +1255,8 @@ function mob_class:do_states_attack (dtime) -- offset makes shoot aim accurate local amount = vector.length(vec) - vec = vector.multiply(vec, v / vector.length(vec)) + vec.y = vec.y + self.shoot_offset + vec = vector.multiply(vec, v / amount) if self.shoot_arrow then vec = vector.normalize(vec) diff --git a/mods/ITEMS/vl_projectile/init.lua b/mods/ITEMS/vl_projectile/init.lua index 970c57c19..84533dd78 100644 --- a/mods/ITEMS/vl_projectile/init.lua +++ b/mods/ITEMS/vl_projectile/init.lua @@ -21,7 +21,7 @@ function mod.projectile_physics(obj, entity_def, v, a) v = v or obj:get_velocity() a = a or vector.zero() - if not entity_def.ignore_gravity then + if not entity_def._vl_projectile.ignore_gravity then a = a + vector.new(0,-GRAVITY,0) end @@ -372,6 +372,7 @@ function mod.create(entity_id, options) a = vector.zero() v = a end + local entity_def = minetest.registered_entities[entity_id] mod.projectile_physics(obj, entity_def, v, a) -- Update projectile parameters