extends Node var knownPlayers = { "hans":{"name":"hans", "password":"password1", "faction":"faction1", "race":"race1"} } var playerToId={ "hans":123 } var idToPlayer={ 123:"hans" } var pathToPlayers = 'user://users/' var clients_factions = {} #used to recognize if networkrequest are allowed to do an action {networkid:factionname} var factions = { playerFaction = { diplomacy={ enemies =['enemyFaction'], allies=['allyFaction'] } }, allyFaction = { diplomacy={ enemies =[], allies=['playerFaction','enemyFaction'] } }, enemyFaction = { diplomacy={ enemies =['playerFaction',], allies=['allyFaction'] } } } var diplomacyStates = {'neutral': 1, 'own' : 2, 'enemies':3, "allies":4} #client helper data var subMenuOpen = false func checkdiplo(factionA, factionB): var response = 'neutral' if factionA == factionB: response = 'own' else: if factions.has(factionA): var factionData = factions[factionA] if factionData.has('diplomacy'): var diplo = factionData['diplomacy'] for key in diplo: if diplo[key].has(factionB): response = key return response return response func confirmFaction(id, factionname): if factionname==clients_factions[id]: print(id, " is ", factionname) return true print(id, " is NOT ", factionname) return false func _ready(): print("starting playermanager") DataManager.loadInDict(knownPlayers, pathToPlayers) print(knownPlayers) var factiondata = {} # #DataManager.loadInDict( #register_player("functiontest","yes","barbarian") print("started") remote func _registerUser(playerName, password, factionName, race): var clientId = get_tree().get_rpc_sender_id() if Network.verifiedIDs.has(clientId): if !knownPlayers.has(playerName): knownPlayers[playerName] = {"name":playerName, "password":password, "faction":factionName, "race": race} playerToId[playerName] = clientId idToPlayer[clientId] = playerName rpc_id(clientId, "_registerReturn", true) print("registration successful") else: rpc_id(clientId, "_registerReturn", false) else: rpc_id(clientId, "_registerReturn", false) remote func _logInUser(playerName, password): var clientId = get_tree().get_rpc_sender_id() if Network.verifiedIDs.has(clientId): if knownPlayers.has(playerName): if knownPlayers[playerName].password == password: playerToId[playerName] = clientId idToPlayer[clientId] = playerName rpc_id(clientId, "_logInReturn", true) print("log in succesful") else: rpc_id(clientId, "_logInReturn", false) else: rpc_id(clientId, "_logInReturn", false)