diff --git a/Game/Assets/Weapons/Weapon.gd b/Game/Assets/Weapons/Weapon.gd index 7d4e1a7..59e4023 100644 --- a/Game/Assets/Weapons/Weapon.gd +++ b/Game/Assets/Weapons/Weapon.gd @@ -1,5 +1,6 @@ extends Node3D #Hand Camera Head Player +@onready var main = get_tree().root.get_node("Main") @onready var player = get_parent().get_parent().get_parent().get_parent() @onready var camera = get_parent().get_parent() @onready var ejector = find_node("Ejector") @@ -32,7 +33,9 @@ var impact_player = preload("res://Assets/Effects/ImpactPlayer.tscn") if ray['collider'].has_method(&'damage'): if get_tree().get_network_unique_id() == 1: # make sure this can only run on the server print("SHOT HIT ", ray['collider']) - ray['collider'].damage(10) + ray['collider'].damage(10) # apply damage + # boardcast the new health value to all peers TODO: fix this + main.rpc(&'player_list_update', main.player_list.get(ray['collider'].get_network_master()).serialize(), ray['collider'].get_network_master()) impact_vfx = impact_player.instantiate() else: diff --git a/Game/Main.gd b/Game/Main.gd index 2b08e55..7fa1949 100644 --- a/Game/Main.gd +++ b/Game/Main.gd @@ -171,8 +171,11 @@ func _input(_event) -> void: else: #we are client, so we're getting data relayed from the server player_list.set(pid, new_info) # server relays other PID's data -func push_local_player_info(): +func push_local_player_info(): # var id = get_tree().network_peer.get_unique_id() + + #print("PLayer info vsr2str: ", var2str(player_list.get(id)) ) + if id != 1: rpc_id(1, &'player_list_update', player_list.get(id).serialize()) else: @@ -267,6 +270,7 @@ func _server_disconnected() -> void: func _ready() -> void: + peer.compression_mode = NetworkedMultiplayerENet.COMPRESS_ZSTD print("Commandline arguments: ", OS.get_cmdline_args()) get_tree().connect("network_peer_connected", self._player_connected)