From d34c96aa69d2aee1aaa3bb12366b36ff22d674c0 Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Thu, 20 Oct 2022 13:54:06 -0400 Subject: network work work work --- godot/scripts/characters/NetworkedCharacter.gd | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'godot/scripts/characters/NetworkedCharacter.gd') diff --git a/godot/scripts/characters/NetworkedCharacter.gd b/godot/scripts/characters/NetworkedCharacter.gd index 8a0282d..d904593 100644 --- a/godot/scripts/characters/NetworkedCharacter.gd +++ b/godot/scripts/characters/NetworkedCharacter.gd @@ -2,7 +2,7 @@ extends RigidBody class_name NetChar # Game -export var team: String = "RED" +export var team = 0 export var health: int = 100 export var weapon_slot1: Resource = null export var weapon_slot2: Resource = null @@ -40,7 +40,7 @@ remote func set_phys_transform(trfrm: Transform, lvel: Vector3): transform = trfrm linear_velocity = lvel -remotesync func set_net_owner(owner_id: int): +remotesync func set_net_owner(owner_id: int, singleplayer_reset: bool = false): $Nametag.text = "" set_network_master(owner_id) if owner_id != 1: @@ -55,12 +55,19 @@ remotesync func set_net_owner(owner_id: int): $Nametag.visible = true is_player = false world.get_node("HUD").update_characters() + elif world.is_local: + if singleplayer_reset: + is_player = false + else: + world.player_char = self + is_player = true + world.cam.attach(self, "FIRSTPERSON", "./Neck/Head") func deselect_character(): - if is_network_master(): + if is_network_master() and world.player_char == self: world.player_char = null - if world.client_id != 1: world.cam.attach(world, "STATIC", "./DEFAULTCAM") - rpc("set_net_owner", 1) + world.cam.attach(world, "STATIC", "./DEFAULTCAM") + rpc("set_net_owner", 1, true) func take_control_of_machine(slave_machine: RigidBody): machine = slave_machine -- cgit v1.2.3