diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2022-09-07 14:16:17 -0400 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2022-09-07 14:16:17 -0400 |
| commit | 366761197034a20d444282431e4a8edeb7882840 (patch) | |
| tree | 63d7b11eccbb499aef8f5afc3634945c63c14ff5 /scripts/Server.gd | |
| parent | c232b92e2dde1277324d1f89d0e75ae641e4ac3b (diff) | |
whoops, fixed reorg
Diffstat (limited to 'scripts/Server.gd')
| -rw-r--r-- | scripts/Server.gd | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/scripts/Server.gd b/scripts/Server.gd deleted file mode 100644 index bf1acbb..0000000 --- a/scripts/Server.gd +++ /dev/null @@ -1,120 +0,0 @@ -extends Node - -var world -var motd : String -var server_name : String -var player_limit : int -var connected_player_count : int = 0 -var connected_players = {} - -var server_enet : NetworkedMultiplayerENet -var output -var output_func : String - -func print_line(line): - if output == null: - print("SERVER: " + line) - return - output.call(output_func, line) - -func _ready(): - get_tree().connect("network_peer_connected", self, "_client_connect") - get_tree().connect("network_peer_disconnected", self, "_client_disconnect") - -func start_server(_server_name: String, _motd: String, max_players: int, map_path: String, _ip: String, port: int, tree, output_obj, output_f): - output = output_obj - output_func = output_f - server_name = _server_name - motd = _motd - player_limit = max_players - - world = load(map_path) - if world: - world = world.instance() - else: - print_line("Error loading map.") - return - - world.add_child(self) - tree.get_root().add_child(world) - - world.client_id = 1 - - server_enet = NetworkedMultiplayerENet.new() - server_enet.create_server(port, max_players) - tree.set_network_peer(server_enet) - - print_line("Server started successfully.") - -func stop_server(): - print_line("Shutting down server...") - server_enet.close_connection() - print_line("Shut down successfully.") - world.queue_free() - -func _client_disconnect(id): - print_line("Client (ID: "+str(id)+") has disconnected.") - for character in world.get_node("PLAYERS").get_children(): - if character.get_network_master() == id: - character.rpc("set_owner", 1) - connected_players.erase(id) - connected_player_count -= 1 - world.rpc("update_players_info", connected_players) - -func _client_connect(id): - print_line("Client (ID: "+str(id)+") connecting...") - connected_player_count += 1 - connected_players[id] = ["", "SPEC"] #Placeholder for name - - var server_info = {"player_count" : connected_player_count, "server_name" : server_name, "MOTD" : motd, "cam_pos" : world.get_node("DEFAULTCAM").transform} - world.rpc_id(id, "set_up_server_info", server_info) - - var geo_info = [] - for world_geo in world.get_node("WORLDGEO").get_children(): - geo_info.append( { "filename" : world_geo.filename, "transform" : world_geo.transform }) - world.rpc_id(id, "load_map", geo_info) - - var ent_info = [] - for section in ["PLAYERS","MACHINES","BALLISTICS"]: - for item in world.get_node(section).get_children(): - ent_info.append({"type" : section, "net_master" : item.get_network_master(), "name" : item.name, "filename" : item.filename, "transform" : item.transform, "init_info" : item.get_init_info() }) - world.rpc_id(id, "load_entities", ent_info) - -func _client_connection_confirmed(arguments): - print_line("Client (ID: "+str(arguments["id"])+") connected as " +arguments["username"] +".") - connected_players[arguments["id"]] = [arguments["username"], "SPEC"] - world.rpc("update_players_info", connected_players) - -func _client_change_teams(arguments): - print_line(connected_players[arguments["id"]][0] + " ("+ str(arguments["id"]) +") changed to team " + arguments["team"]) - connected_players[arguments["id"]][1] = arguments["team"] - world.rpc("update_players_info", connected_players) - -func _client_request_change_character(arguments): - var dest = world.get_node("PLAYERS/"+arguments["char_name"]) - if dest != null and dest.get_network_master() == 1: - print_line(connected_players[arguments["id"]][0] + " selected character " + arguments["char_name"]) - dest.rpc("set_net_owner", arguments["id"]) - if arguments["current_char_name"] != "NULL": - var old = world.get_node("PLAYERS/"+arguments["current_char_name"]) - old.rpc("set_net_owner", 1) - -func _client_request_control_vehicle(arguments): - var dest_machine = world.get_node("MACHINES/"+arguments["machine"]) - var name = "BOT" if arguments["id"] == 1 else connected_players[arguments["id"]][0] - if dest_machine != null and dest_machine.get_network_master() == 1 and !dest_machine.in_use: - print_line(arguments["char_name"] + "(" + name + ") is controlling " + arguments["machine"]) - dest_machine.rpc("set_net_owner", arguments["id"], arguments["char_name"]) - -func _character_death(arguments): - var victim_player = connected_players[arguments["victim_mp_id"]][0] if arguments["victim_mp_id"] != 1 else "" - print_line(arguments["victim"] + " ("+victim_player+") killed by " + arguments["killer"] + " " + arguments["extra"] + ".") - world.rpc("game_chat_msg", arguments["victim"] + " ("+victim_player+") killed by " + arguments["killer"] + " " + arguments["extra"] + ".") - world.get_node("PLAYERS/"+arguments["victim"]).rpc("remove_dead_character") - world.rpc("game_update_chars") - -func _send_chat(arguments): - if !("name" in arguments): - arguments["name"]=connected_players[arguments["id"]][0] - print_line(arguments["name"]+ ": " + arguments["msg"]) - world.rpc("game_chat_msg", arguments["name"]+ ": " + arguments["msg"]) |
