private void SQLGetParty(int a_id) { if (1 > a_id) { return; } DatabasePlayer item = new DatabasePlayer(0UL, string.Empty, 0, 0f, 0f, 100, 100, 100, 0, 0, 0, 0, 0); using (IDbTransaction dbTransaction = this.m_sqlConnection.BeginTransaction()) { this.m_sqlCommand.CommandText = "SELECT aid, pid, name, partyId, partyRank FROM player WHERE partyId=" + a_id + ";"; using (IDataReader dataReader = this.m_sqlCommand.ExecuteReader()) { while (dataReader.Read()) { item.aid = (ulong)dataReader.GetInt64(0); item.pid = dataReader.GetInt32(1); item.name = dataReader.GetString(2); item.partyId = dataReader.GetInt32(3); item.partyRank = dataReader.GetInt32(4); object threadLock = this.m_threadLock; lock (threadLock) { this.m_partyAnswers.Add(item); } } dataReader.Close(); } dbTransaction.Commit(); } }
void Start() { pm_instance = this; if (databasePlayer == null) { databasePlayer = new DatabasePlayer(); } manageLanguageMainScreen = FindObjectOfType <ManageLanguageMainScreen>(); phaseList = new Dictionary <string, int>(); playFabId = ""; displayName = ""; sizePhase = 4; messageTextLogin = messageLogin.GetComponent <Text>(); messageTextRegister = messageRegister.GetComponent <Text>(); isLogged = false; playButton.GetComponent <Button>().interactable = false; playerPrefs = new PlayerPreferences(); if (playerPrefs.getUsername() != null) { username = playerPrefs.getUsername(); messageTextLogin.text = ""; progressBar.SetActive(true); loginButton.GetComponent <Button>().interactable = false; databasePlayer.loginWithUsername(username, onSucessLogin, onFailureLogin); } }
private void CreateFakePlayer(DatabasePlayer a_player) { string text = string.Concat(new object[] { "HP: ", a_player.health, "\nEP: ", a_player.energy, "\nKA: ", a_player.karma, "\nXP: ", a_player.xp, "\nCO: ", a_player.condition, "\nGO: ", a_player.gold }); GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(this.m_prefab); gameObject.transform.position = new Vector3(a_player.x, 0.3f, a_player.y); TextMesh componentInChildren = gameObject.GetComponentInChildren <TextMesh>(); if (null != componentInChildren) { componentInChildren.text = text; } }
public void SavePartyPlayer(DatabasePlayer a_player) { if (a_player.aid != 0L) { lock (m_threadLock) { m_partyPlayersToWrite.Add(a_player); } } }
private IEnumerator RequestCreateNPC() { ErrorText = "Creating NPC..."; WWWForm form = new WWWForm(); form.AddField("character_name", character_name); form.AddField("character_personality", character_personality.ToString()); form.AddField("position_x", transform.position.x.ToString()); form.AddField("position_y", transform.position.y.ToString()); form.AddField("position_z", transform.position.z.ToString()); form.AddField("rotation_x", transform.rotation.x.ToString()); form.AddField("rotation_y", transform.rotation.y.ToString()); form.AddField("rotation_z", transform.rotation.z.ToString()); form.AddField("max_health", max_health); form.AddField("current_health", current_health); form.AddField("max_stamina", max_stamina); form.AddField("current_stamina", current_stamina); form.AddField("gold", gold); form.AddField("weapon_id", weapon_id); form.AddField("apparel_id", apparel_id); form.AddField("dialogue_id", dialogue_id); form.AddField("respawn_time", respawn_time.ToString()); form.AddField("look_radius", look_radius.ToString()); WWW w = new WWW(NetworkConstants.Api + EndpointConstants.CreateNPC, form); yield return(w); if (string.IsNullOrEmpty(w.error)) { DatabasePlayer databasePlayer = JsonUtility.FromJson <DatabasePlayer>(w.text); if (databasePlayer.success) { if (databasePlayer.error != "") { ErrorText = databasePlayer.error; } else { ErrorText = "NPC created successfully"; } } else { ErrorText = databasePlayer.error; } } else { ErrorText = w.error; } _isCreating = false; }
private IEnumerator RequestRegister() { string username = _registerUsernameInput.text; string password = _registerPasswordInput.text; string repeatPassword = _registerRepeatPasswordInput.text; if (password != repeatPassword) { _registerErrorText.text = "Passwords do not match."; NetworkSettings.IsRegistering = false; yield break; } WWWForm form = new WWWForm(); form.AddField("username", username); form.AddField("password", password); form.AddField("origin_x", 0); form.AddField("origin_y", 0); form.AddField("origin_z", 0); WWW w = new WWW(NetworkConstants.Api + EndpointConstants.Register, form); yield return(w); if (string.IsNullOrEmpty(w.error)) { DatabasePlayer databasePlayer = JsonUtility.FromJson <DatabasePlayer>(w.text); if (databasePlayer.success) { if (databasePlayer.error != "") { _registerErrorText.text = databasePlayer.error; } else { _registerErrorText.text = "Register successful"; NetworkSettings.IsRegistering = false; } } else { _registerErrorText.text = databasePlayer.error; NetworkSettings.IsRegistering = false; } } else { _registerErrorText.text = w.error; NetworkSettings.IsRegistering = false; } }
public void SavePartyPlayer(DatabasePlayer a_player) { if (a_player.aid == 0UL) { return; } object threadLock = this.m_threadLock; lock (threadLock) { this.m_partyPlayersToWrite.Add(a_player); } }
private void CreateFakePlayer(DatabasePlayer a_player) { string text = "HP: " + a_player.health + "\nEP: " + a_player.energy + "\nKA: " + a_player.karma + "\nXP: " + a_player.xp + "\nCO: " + a_player.condition + "\nGO: " + a_player.gold; GameObject gameObject = (GameObject)Object.Instantiate(m_prefab); gameObject.transform.position = new Vector3(a_player.x, 0.3f, a_player.y); TextMesh componentInChildren = gameObject.GetComponentInChildren <TextMesh>(); if (null != componentInChildren) { componentInChildren.text = text; } }
private void SQLUpdatePartyPlayers(DatabasePlayer[] a_players) { if (a_players != null && a_players.Length > 0) { string text = string.Empty; for (int i = 0; i < a_players.Length; i++) { DatabasePlayer databasePlayer = a_players[i]; string text2 = text; text = text2 + "UPDATE player SET partyId=" + databasePlayer.partyId + ", partyRank=" + databasePlayer.partyRank + " WHERE pid=" + databasePlayer.pid + ";"; } SQLExecute(text); } }
private void SQLUpdatePlayers(DatabasePlayer[] a_players) { if (a_players != null && a_players.Length > 0) { string text = string.Empty; for (int i = 0; i < a_players.Length; i++) { DatabasePlayer databasePlayer = a_players[i]; string text2 = text; text = text2 + "UPDATE player SET name='" + saveStr(databasePlayer.name) + "', x=" + databasePlayer.x + ", y=" + databasePlayer.y + ", health=" + databasePlayer.health + ", energy=" + databasePlayer.energy + ", karma=" + databasePlayer.karma + ", xp=" + databasePlayer.xp + ", condition=" + databasePlayer.condition + ", gold=" + databasePlayer.gold + ", partyId=" + databasePlayer.partyId + ", partyRank=" + databasePlayer.partyRank + " WHERE pid=" + databasePlayer.pid + ";"; } SQLExecute(text); } }
private void onPartyUpdate(NetIncomingMessage a_msg) { int num = a_msg.ReadByte(); DatabasePlayer[] array = null; if (0 < num) { array = new DatabasePlayer[num]; for (int i = 0; i < num; i++) { array[i].name = a_msg.ReadString(); array[i].aid = a_msg.ReadUInt64(); array[i].partyRank = a_msg.ReadByte(); } } m_partyGui.SetParty(array); DebugLogReadWriteMismatch(a_msg, "onPartyUpdate"); }
private IEnumerator RequestLogin() { string username = _loginUsernameInput.text; string password = _loginPasswordInput.text; WWWForm form = new WWWForm(); form.AddField("username", username); form.AddField("password", password); WWW w = new WWW(NetworkConstants.Api + EndpointConstants.Login, form); yield return(w); if (string.IsNullOrEmpty(w.error)) { DatabasePlayer databasePlayer = JsonUtility.FromJson <DatabasePlayer>(w.text); if (databasePlayer.success) { if (databasePlayer.error != "") { _loginErrorText.text = databasePlayer.error; } else { _loginErrorText.text = "Login successful"; ConnectedCharacters.MyDatabasePlayer = databasePlayer; NetworkSettings.InitializeNetworkTransport(); SceneManager.LoadScene("Lerocia"); } } else { _loginErrorText.text = databasePlayer.error; NetworkSettings.IsLoggingIn = false; } } else { _loginErrorText.text = w.error; NetworkSettings.IsLoggingIn = false; } }
public void Spawn(GameObject a_prefab, DatabasePlayer a_dbPlayer) { Vector3 position = Vector3.zero; bool flag = a_dbPlayer.x == 0f && 0f == a_dbPlayer.y; if (flag) { a_dbPlayer.karma = 200; ServerTutorial tutorial = this.m_server.GetTutorial(); if (null != tutorial) { position = tutorial.StartTutorial(); } } else { position.x = a_dbPlayer.x; position.z = a_dbPlayer.y; } position.y = 0f; this.m_pid = a_dbPlayer.pid; GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(a_prefab, position, Quaternion.identity); this.m_char = gameObject.GetComponent <ControlledChar>(); this.m_health = (float)a_dbPlayer.health; this.m_energy = (float)a_dbPlayer.energy; this.m_karma = (float)a_dbPlayer.karma; this.m_lastUpdateKarma = (float)a_dbPlayer.karma; this.m_xp = a_dbPlayer.xp; this.m_condition = a_dbPlayer.condition; this.m_gold = a_dbPlayer.gold; this.m_partyId = a_dbPlayer.partyId; this.m_partyRank = a_dbPlayer.partyRank; this.RecalculateRank(); if (this.m_health == 0f) { this.m_respawnTime = Time.time; } this.m_char.Init(this); this.m_inventory = new ItemContainer(5, 4, 0, this.m_sql.PidToCid(this.m_pid), this.m_sql, this); this.m_buildMan.IgnoreBedCollision(this.m_pid, this.m_char.collider); }
private IEnumerator RequestCreateNPCDestination() { ErrorText = "Creating NPC..."; WWWForm form = new WWWForm(); form.AddField("character_id", character_id); form.AddField("position_x", transform.position.x.ToString()); form.AddField("position_y", transform.position.y.ToString()); form.AddField("position_z", transform.position.z.ToString()); form.AddField("duration", duration.ToString()); WWW w = new WWW(NetworkConstants.Api + EndpointConstants.CreateNPCDestination, form); yield return(w); if (string.IsNullOrEmpty(w.error)) { DatabasePlayer databasePlayer = JsonUtility.FromJson <DatabasePlayer>(w.text); if (databasePlayer.success) { if (databasePlayer.error != "") { ErrorText = databasePlayer.error; } else { ErrorText = "Destination created successfully"; } } else { ErrorText = databasePlayer.error; } } else { ErrorText = w.error; } _isCreating = false; }
private void SQLGetOrCreatePlayer(ulong[] a_ids) { foreach (ulong num in a_ids) { DatabasePlayer item = new DatabasePlayer(num, string.Empty, 0, 0f, 0f, 100, 100, 100, 0, 0, 0, 0, 0); using (IDbTransaction dbTransaction = this.m_sqlConnection.BeginTransaction()) { this.m_sqlCommand.CommandText = "SELECT aid, pid, x, y, health, energy, karma, xp, condition, gold, name, partyId, partyRank FROM player WHERE aid='" + num + "' LIMIT 1;"; using (IDataReader dataReader = this.m_sqlCommand.ExecuteReader()) { if (dataReader.Read()) { item.aid = (ulong)dataReader.GetInt64(0); item.pid = dataReader.GetInt32(1); item.x = dataReader.GetFloat(2); item.y = dataReader.GetFloat(3); item.health = dataReader.GetInt32(4); item.energy = dataReader.GetInt32(5); item.karma = dataReader.GetInt32(6); item.xp = dataReader.GetInt32(7); item.condition = dataReader.GetInt32(8); item.gold = dataReader.GetInt32(9); item.name = dataReader.GetString(10); item.partyId = dataReader.GetInt32(11); item.partyRank = dataReader.GetInt32(12); } dataReader.Close(); } dbTransaction.Commit(); } if (item.pid == 0) { item.pid = this.SQLExecuteAndGetId("INSERT INTO player (aid) VALUES('" + num + "');"); } object threadLock = this.m_threadLock; lock (threadLock) { this.m_playerAnswers.Add(item); } } }
private IEnumerator GetStatsForPlayer(int characterId) { form = new WWWForm(); form.AddField("character_id", characterId); WWW w = new WWW(NetworkConstants.Api + getStatsForCharacterEndpoint, form); yield return(w); if (string.IsNullOrEmpty(w.error)) { DatabasePlayer dbp = JsonUtility.FromJson <DatabasePlayer>(w.text); ConnectedCharacters.Players[characterId].Avatar.transform.position = new Vector3(dbp.position_x, dbp.position_y, dbp.position_z); ConnectedCharacters.Players[characterId].Avatar.transform.rotation = Quaternion.Euler(new Vector3(dbp.rotation_x, dbp.rotation_y, dbp.rotation_z)); ConnectedCharacters.Players[characterId].CharacterPersonality = dbp.character_personality; ConnectedCharacters.Players[characterId].MaxHealth = dbp.max_health; ConnectedCharacters.Players[characterId].CurrentHealth = dbp.current_health; ConnectedCharacters.Players[characterId].MaxStamina = dbp.max_stamina; ConnectedCharacters.Players[characterId].CurrentStamina = dbp.current_stamina; ConnectedCharacters.Players[characterId].Gold = dbp.gold; ConnectedCharacters.Players[characterId].BaseWeight = dbp.base_weight; ConnectedCharacters.Players[characterId].BaseDamage = dbp.base_damage; ConnectedCharacters.Players[characterId].BaseArmor = dbp.base_armor; ConnectedCharacters.Players[characterId].WeaponId = dbp.weapon_id; ConnectedCharacters.Players[characterId].ApparelId = dbp.apparel_id; ConnectedCharacters.Players[characterId].DialogueId = dbp.dialogue_id; ConnectedCharacters.Players[characterId].Origin = new Vector3(dbp.origin_x, dbp.origin_y, dbp.origin_z); ConnectedCharacters.Players[characterId].Dialogues = DialogueList.Dialogues[dbp.dialogue_id]; // Tell everybody that a new player has connected Send( "CNN|" + characterId + '|' + dbp.character_name + '|' + dbp.character_personality + '|' + dbp.position_x + '|' + dbp.position_y + '|' + dbp.position_z + '|' + dbp.rotation_x + '|' + dbp.rotation_y + '|' + dbp.rotation_z + '|' + dbp.max_health + '|' + dbp.current_health + '|' + dbp.max_stamina + '|' + dbp.current_stamina + '|' + dbp.gold + '|' + dbp.base_weight + '|' + dbp.base_damage + '|' + dbp.base_armor + '|' + dbp.weapon_id + '|' + dbp.apparel_id + '|' + dbp.dialogue_id + '|' + dbp.origin_x + '|' + dbp.origin_y + '|' + dbp.origin_z + '|' + false, reliableChannel, ConnectedCharacters.ConnectionIds ); StartCoroutine("GetItemsForPlayer", characterId); } else { Debug.Log(w.error); } }
private void LoadData() { int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; float num6 = 0f; float num7 = 0f; using (IDbTransaction dbTransaction = this.m_sqlConnection.BeginTransaction()) { this.m_sqlCommand.CommandText = "SELECT aid, pid, x, y, health, energy, karma, xp, condition, gold FROM player;"; using (IDataReader dataReader = this.m_sqlCommand.ExecuteReader()) { while (dataReader.Read()) { DatabasePlayer a_player = default(DatabasePlayer); a_player.aid = (ulong)dataReader.GetInt64(0); a_player.pid = dataReader.GetInt32(1); a_player.x = dataReader.GetFloat(2); a_player.y = dataReader.GetFloat(3); a_player.health = dataReader.GetInt32(4); a_player.energy = dataReader.GetInt32(5); a_player.karma = dataReader.GetInt32(6); a_player.xp = dataReader.GetInt32(7); a_player.condition = dataReader.GetInt32(8); a_player.gold = dataReader.GetInt32(9); num++; if (a_player.xp == 0) { num2++; } else if (1000 < a_player.xp) { num5++; } if (Mathf.Abs(a_player.x - -1114f) < 70f && Mathf.Abs(a_player.y - 720f) < 70f) { num3++; } else if (Mathf.Abs(a_player.x - -1114f) > 1000f || Mathf.Abs(a_player.y - 720f) > 1000f) { num4++; } num6 += (float)a_player.karma; num7 += (float)a_player.gold; if (this.m_createFakePlayers) { this.CreateFakePlayer(a_player); } } dataReader.Close(); } dbTransaction.Commit(); num2 = (int)((float)num2 / (float)num * 100f); num3 = (int)((float)num3 / (float)num * 100f); num4 = (int)((float)num4 / (float)num * 100f); num5 = (int)((float)num5 / (float)num * 100f); Debug.Log(string.Concat(new object[] { "players: ", num, "\nplayersWithNoXP: ", num2, "%\nplayersOnTutorialIsland: ", num3, "%\nplayersThatMovedSomewhat: ", num4, "%\nplayersWithOver1000XP: ", num5, "%\naverageKarma: ", num6 / (float)num, "\naverageGold: ", num7 / (float)num })); } }