Embeeded configs of the game to server, made client ask it

This commit is contained in:
2024-02-12 00:11:50 +03:00
parent c47d3da2cf
commit 46353fc8f6
7 changed files with 70 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
extends Node
const player_script := preload("res://scripts/Player.gd")
#var player_script := load("res://scripts/Player.gd")
var player_script := preload("res://scripts/Player.gd")
var player_model = preload("res://models/player.tscn")
var peer = ENetMultiplayerPeer.new()
@@ -76,6 +77,9 @@ func move_client(client_id, position):
var internal_id = client["internal_id"]
client["position"] = position
send_everyone_except(client_id, [get_node("player" + str(internal_id)).find_child("CharacterBody3D").move_puppet, position, internal_id])
#send_everyone_except(client_id, [get_node("player" + str(internal_id)).find_child("CharacterBody3D").move_puppet, position, internal_id])
#send_everyone_except(client_id, ["move_puppet", position, internal_id])
#send_everyone_except(client_id, [player_script.move_puppet, position, internal_id])
@rpc ("any_peer", "call_remote", "reliable")
func get_client_list(client_id):
@@ -83,6 +87,11 @@ func get_client_list(client_id):
if (current_client_id == str(client_id)): continue
rpc_id(client_id, "spawn_puppet", clients[str(current_client_id)]["internal_id"])
@rpc ("any_peer", "call_remote", "reliable")
func get_server_settings(client_id):
var client = clients[str(client_id)]
var internal_id = client["internal_id"]
get_node("player" + str(internal_id)).find_child("CharacterBody3D").set_game_settings.rpc_id(int(client_id), settings["game"])
##########################################CLIENT#######################
var player
@@ -124,9 +133,11 @@ func _Connection_Succseeded():
rpc_id(1, "get_character_properties", multiplayer.get_unique_id())
rpc_id(1, "get_client_list", multiplayer.get_unique_id())
await get_tree().create_timer(0.2).timeout # костыль
get_tree().change_scene_to_file("res://scenes/test_map.tscn")
await get_tree().create_timer(0.2).timeout # костыль
rpc_id(1, "get_server_settings", multiplayer.get_unique_id())
var player_node = player_model.instantiate()
player_node.find_child("CharacterBody3D").set_is_playable(true)