Very bad implementation of shop and grenade

This commit is contained in:
Rendo 2025-12-09 10:46:13 +05:00
commit 3868af29e3
13 changed files with 166 additions and 3 deletions

View file

@ -91,11 +91,11 @@ func sync_session_server(id: int):
data.encode_u8(4,defenders_alive)
data.encode_u8(5,round_state)
sync_session_client.rpc_id(id,data)
sync_session_client.rpc_id(id,data,player_data)
late_player_connected.emit(id)
@rpc("authority","call_remote","reliable")
func sync_session_client(data: PackedByteArray):
func sync_session_client(data: PackedByteArray,players_data_sent: Dictionary[int,Dictionary]):
if not is_server_request():
return
@ -106,7 +106,36 @@ func sync_session_client(data: PackedByteArray):
defenders_alive = data.decode_u8(4)
round_state = data.decode_u8(5) as ROUND_STATES
session_started.emit()
player_data = players_data_sent
func send_session_data():
if multiplayer.is_server() == false or session_started_flag == false:
return
var data: PackedByteArray
data.resize(6)
data.encode_u8(0,current_round)
data.encode_u8(1,attacker_score)
data.encode_u8(2,defender_score)
data.encode_u8(3,attackers_alive)
data.encode_u8(4,defenders_alive)
data.encode_u8(5,round_state)
recieve_session_data.rpc(data,player_data)
@rpc("authority","call_remote","unreliable")
func recieve_session_data(data: PackedByteArray,players_data_sent: Dictionary[int,Dictionary]):
if not is_server_request():
return
current_round = data.decode_u8(0)
attacker_score = data.decode_u8(1)
defender_score = data.decode_u8(2)
attackers_alive = data.decode_u8(3)
defenders_alive = data.decode_u8(4)
round_state = data.decode_u8(5) as ROUND_STATES
session_started.emit()
player_data = players_data_sent
func _process(_delta: float) -> void:
if multiplayer.is_server() == false or not session_started:
@ -121,6 +150,7 @@ func _process(_delta: float) -> void:
_:
reference_round_time = 0
update_clock.rpc(reference_round_time)
send_session_data()
@rpc("authority","call_remote","unreliable")
func update_clock(time: float):