player_manager.lua per gestione giocatori

master
Marco 2020-04-01 22:23:07 +02:00
parent 0355c844ba
commit c82c420fc3
2 changed files with 35 additions and 0 deletions

View File

@ -1,2 +1,3 @@
dofile(minetest.get_modpath("arena_lib") .. "/api.lua")
dofile(minetest.get_modpath("arena_lib") .. "/player_manager.lua")
dofile(minetest.get_modpath("arena_lib") .. "/signs.lua")

34
player_manager.lua Normal file
View File

@ -0,0 +1,34 @@
minetest.register_on_leaveplayer(function(player)
local p_name = player:get_player_name()
if arena_lib.get_arenaID_by_player(p_name) == nil then return end
arena_lib.remove_player_from_arena(p_name)
end)
minetest.register_on_dieplayer(function(player, reason)
local p_name = player:get_player_name()
if not arena_lib.is_player_in_arena(p_name) then return end
local arena = arena_lib.arenas[arena_lib.get_arenaID_by_player(p_name)]
local p_stats = arena.players[p_name]
p_stats.deaths = p_stats.deaths +1
p_stats.killstreak = 0
end)
minetest.register_on_respawnplayer(function(player)
local arenaID = arena_lib.get_arenaID_by_player(player:get_player_name())
if arenaID == nil then return end
player:set_pos(arena_lib.get_random_spawner(arenaID))
arena_lib.immunity(player)
return true -- <=== dovrebbe sovrascrivere la posizione di respawn del giocatore stando all'API riga 4283, ma non lo fa
end)