despawn runner or chaser on disconnect

This commit is contained in:
2025-02-21 17:59:23 +09:00
parent 591225996d
commit ca63d4594c
15 changed files with 85 additions and 97 deletions
+15 -7
View File
@@ -9,16 +9,24 @@ var _ping := 0.0
@onready var _runners_node: Node3D = %Runners
func spawn_player(player_id: int, runner: bool) -> void:
if multiplayer.is_server():
var player = runner_scene.instantiate() if runner else chaser_scene.instantiate()
player.player_id = player_id
player.name = str(player_id)
if not multiplayer.is_server(): return
_runners_node.add_child(player) if runner else _chasers_node.add_child(player)
var player = runner_scene.instantiate() if runner else chaser_scene.instantiate()
player.player_id = player_id
player.name = str(player_id)
_runners_node.add_child(player) if runner else _chasers_node.add_child(player)
func despawn_player(player_id: int) -> void:
if not multiplayer.is_server(): return
var player_id_str := str(player_id)
for runner_or_chaser in _runners_node.get_children() + _chasers_node.get_children():
if runner_or_chaser.name == player_id_str:
runner_or_chaser.queue_free()
func _process(_delta: float) -> void:
if DisplayServer.get_name() == "headless":
return
if DisplayServer.get_name() == "headless": return
%StatsLabel.text = statsTemplate % [
Engine.get_frames_per_second(),