master
Zughy 2020-11-28 23:59:25 +00:00
commit dd72ab86bd
2 changed files with 36 additions and 4 deletions

View File

@ -17,6 +17,14 @@ block_league.register_weapon("block_league:sword", {
on_right_click = function(arena, weapon, user, pointed_thing)
local p_meta = user:get_meta()
if p_meta:get_int("bl_reloading") == 1 or
p_meta:get_int("bl_is_shooting") == 1
then return end
p_meta:set_int("bl_is_speed_locked", 1)
local dir = user:get_look_dir()
local pos = user:get_pos()
local pos_head = {x = pos.x, y = pos.y+1.475, z = pos.z}
@ -37,11 +45,25 @@ block_league.register_weapon("block_league:sword", {
minetest.after(2.5, function()
if not arena_lib.is_player_in_arena(user:get_player_name(), "block_league") then return end
local vel = arena.players[user:get_player_name()].energy > 0 and block_league.SPEED or block_league.SPEED_LOW
local vel
if arena.players[user:get_player_name()].energy > 0 then
if p_meta:get_int("bl_reloading") == 1 or p_meta:get_int("bl_is_shooting") == 1 then
vel = block_league.SPEED_LOW
else
vel = block_league.SPEED
end
else
vel = block_league.SPEED_LOW
end
user:set_physics_override({
speed = vel,
jump = 1.5
})
user:get_meta():set_int("bl_is_speed_locked", 0)
end)
if not pointed_players then return end
@ -49,3 +71,5 @@ block_league.register_weapon("block_league:sword", {
end,
})
--bl_is_speed_locked

View File

@ -144,6 +144,7 @@ function block_league.shoot_end(player, weapon)
or arena.players[p_name].energy == 0
or p_meta:get_int("bl_reloading") == 1
or p_meta:get_int("bl_is_shooting") == 1
or p_meta:get_int("bl_is_speed_locked") == 1
then return end
player:set_physics_override({ speed = block_league.SPEED })
@ -331,7 +332,9 @@ function weapon_left_click(weapon, player, pointed_thing)
if not block_league.shoot(weapon, player, pointed_thing) then return end
player:set_physics_override({ speed = block_league.SPEED_LOW })
if player:get_meta():get_int("bl_is_speed_locked") == 0 then
player:set_physics_override({ speed = block_league.SPEED_LOW })
end
if weapon.type ~= 3 then
player:get_meta():set_int("bl_is_shooting", 1)
@ -402,7 +405,10 @@ function weapon_reload(player, weapon)
minetest.sound_play(weapon.sound_reload, {to_player = p_name})
p_meta:set_int("bl_reloading", 1)
player:set_physics_override({ speed = block_league.SPEED_LOW })
if p_meta:get_int("bl_is_speed_locked") == 0 then
player:set_physics_override({ speed = block_league.SPEED_LOW })
end
block_league.weapons_hud_update(arena, p_name, w_name, true)
@ -413,7 +419,9 @@ function weapon_reload(player, weapon)
local vel = arena.players[p_name].energy > 0 and block_league.SPEED or block_league.SPEED_LOW
player:set_physics_override({ speed = vel })
if p_meta:get_int("bl_is_speed_locked") == 0 then
player:set_physics_override({ speed = vel })
end
arena.players[p_name].weapons_magazine[w_name] = weapon.magazine
block_league.weapons_hud_update(arena, p_name, w_name)