Damage is now properly propagated to all peers.

unbroken
unfa 2021-08-29 14:03:19 +02:00
parent 740bd67fea
commit f36e358ab8
2 changed files with 9 additions and 2 deletions

View File

@ -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:

View File

@ -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)