diff options
Diffstat (limited to 'godot/scripts/Server.gd')
| -rw-r--r-- | godot/scripts/Server.gd | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/godot/scripts/Server.gd b/godot/scripts/Server.gd index e360703..b4ab995 100644 --- a/godot/scripts/Server.gd +++ b/godot/scripts/Server.gd @@ -6,6 +6,7 @@ var server_name : String var player_limit : int var connected_player_count : int = 0 var connected_players = {} +enum {PLAYER_NAME, PLAYER_TEAM} var server_enet : NetworkedMultiplayerENet var output @@ -52,6 +53,7 @@ func start_server(_server_name: String, _motd: String, max_players: int, map_pat world.client_id = 1 print_line("Server started successfully.") + NavigationServer.set_active(false) func stop_server(): print_line("Shutting down server...") @@ -93,14 +95,14 @@ func _client_connection_confirmed(arguments): 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"] + print_line(connected_players[arguments["id"]][PLAYER_NAME] + " ("+ str(arguments["id"]) +") changed to team " + arguments["team"]) + connected_players[arguments["id"]][PLAYER_TEAM] = 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"]) + print_line(connected_players[arguments["id"]][PLAYER_NAME] + " 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"]) @@ -108,21 +110,24 @@ func _client_request_change_character(arguments): func _client_request_control_vehicle(arguments): var dest_machine = world.get_node(arguments["machine_path"]) - var name = "BOT" if arguments["id"] == 1 else connected_players[arguments["id"]][0] + var name = "BOT" if arguments["id"] == 1 else connected_players[arguments["id"]][PLAYER_NAME] if dest_machine != null and dest_machine.get_network_master() == 1 and !dest_machine.in_use: print_line(arguments["char_name"] + "(" + name + ") is controlling " + dest_machine.name) 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") + if world.get_node("PLAYERS/"+arguments["victim_name"]) == null: + return + var victim_player: String = connected_players[arguments["victim_mp_id"]][PLAYER_NAME] if arguments["victim_mp_id"] != 1 else arguments["victim_name"] + var killer_player: String = connected_players[arguments["killer_id"]][PLAYER_NAME] if arguments["killer_id"] != 1 else arguments["killer_name"] + print_line(victim_player+" killed by " +killer_player+ " using " + arguments["extra"] + ".") + world.rpc("game_chat_msg", victim_player+" killed by " +killer_player+ " using " + arguments["extra"] + ".") + world.get_node("PLAYERS/"+arguments["victim_name"]).rpc("remove_dead_character") world.rpc("game_update_chars") func _send_chat(arguments): if !("name" in arguments): - arguments["name"]=connected_players[arguments["id"]][0] + arguments["name"]=connected_players[arguments["id"]][PLAYER_NAME] print_line(arguments["name"]+ ": " + arguments["msg"]) world.rpc("game_chat_msg", arguments["name"]+ ": " + arguments["msg"]) |
