public override PartyData ReadParty(int id) { PartyData result = null; MySQLRowsReader reader = ExecuteReader("SELECT * FROM party WHERE id=@id LIMIT 1", new MySqlParameter("@id", id)); if (reader.Read()) { result = new PartyData(id, reader.GetBoolean("shareExp"), reader.GetBoolean("shareItem"), reader.GetString("leaderId")); reader = ExecuteReader("SELECT id, dataId, characterName, level FROM characters WHERE partyId=@id", new MySqlParameter("@id", id)); SocialCharacterData partyMemberData; while (reader.Read()) { // Get some required data, other data will be set at server side partyMemberData = new SocialCharacterData(); partyMemberData.id = reader.GetString("id"); partyMemberData.characterName = reader.GetString("characterName"); partyMemberData.dataId = reader.GetInt32("dataId"); partyMemberData.level = reader.GetInt16("level"); result.AddMember(partyMemberData); } } return(result); }
private bool ReadBuilding(MySQLRowsReader reader, out BuildingSaveData result, bool resetReader = true) { if (resetReader) { reader.ResetReader(); } if (reader.Read()) { result = new BuildingSaveData(); result.Id = reader.GetString("id"); result.ParentId = reader.GetString("parentId"); result.DataId = reader.GetInt32("dataId"); result.CurrentHp = reader.GetInt32("currentHp"); result.Position = new Vector3(reader.GetFloat("positionX"), reader.GetFloat("positionY"), reader.GetFloat("positionZ")); result.Rotation = Quaternion.Euler(reader.GetFloat("rotationX"), reader.GetFloat("rotationY"), reader.GetFloat("rotationZ")); result.IsLocked = reader.GetBoolean("isLocked"); result.LockPassword = reader.GetString("lockPassword"); result.CreatorId = reader.GetString("creatorId"); result.CreatorName = reader.GetString("creatorName"); return(true); } result = new BuildingSaveData(); return(false); }
private bool ReadCharacterItem(MySQLRowsReader reader, out CharacterItem result, bool resetReader = true) { if (resetReader) { reader.ResetReader(); } if (reader.Read()) { result = new CharacterItem(); result.id = reader.GetString("id"); result.dataId = reader.GetInt32("dataId"); result.level = reader.GetInt16("level"); result.amount = reader.GetInt16("amount"); result.equipSlotIndex = reader.GetByte("equipSlotIndex"); result.durability = reader.GetFloat("durability"); result.exp = reader.GetInt32("exp"); result.lockRemainsDuration = reader.GetFloat("lockRemainsDuration"); result.ammo = reader.GetInt16("ammo"); result.sockets = ReadSockets(reader.GetString("sockets")); return(true); } result = CharacterItem.Empty; return(false); }
public override string GooglePlayLogin(string gId, string email) { string id = string.Empty; MySQLRowsReader reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", "g_" + gId), new MySqlParameter("@password", GenericUtils.GetMD5(gId)), new MySqlParameter("@authType", AUTH_TYPE_GOOGLE_PLAY)); if (reader.Read()) { id = reader.GetString("id"); } else { ExecuteNonQuery("INSERT INTO userlogin (id, username, password, email, authType) VALUES (@id, @username, @password, @email, @authType)", new MySqlParameter("@id", GenericUtils.GetUniqueId()), new MySqlParameter("@username", "g_" + gId), new MySqlParameter("@password", GenericUtils.GetMD5(gId)), new MySqlParameter("@email", email), new MySqlParameter("@authType", AUTH_TYPE_GOOGLE_PLAY)); // Read last entry reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", "g_" + gId), new MySqlParameter("@password", GenericUtils.GetMD5(gId)), new MySqlParameter("@authType", AUTH_TYPE_GOOGLE_PLAY)); if (reader.Read()) { id = reader.GetString("id"); } } return(id); }
public override GuildData ReadGuild(int id, GuildRoleData[] defaultGuildRoles) { GuildData result = null; MySQLRowsReader reader = ExecuteReader("SELECT * FROM guild WHERE id=@id LIMIT 1", new MySqlParameter("@id", id)); if (reader.Read()) { result = new GuildData(id, reader.GetString("guildName"), reader.GetString("leaderId"), defaultGuildRoles); result.level = reader.GetInt16("level"); result.exp = reader.GetInt32("exp"); result.skillPoint = reader.GetInt16("skillPoint"); result.guildMessage = reader.GetString("guildMessage"); result.gold = reader.GetInt32("gold"); reader = ExecuteReader("SELECT * FROM guildrole WHERE guildId=@id", new MySqlParameter("@id", id)); byte guildRole; GuildRoleData guildRoleData; while (reader.Read()) { guildRole = reader.GetByte("guildRole"); guildRoleData = new GuildRoleData(); guildRoleData.roleName = reader.GetString("name"); guildRoleData.canInvite = reader.GetBoolean("canInvite"); guildRoleData.canKick = reader.GetBoolean("canKick"); guildRoleData.shareExpPercentage = reader.GetByte("shareExpPercentage"); result.SetRole(guildRole, guildRoleData); } reader = ExecuteReader("SELECT id, dataId, characterName, level, guildRole FROM characters WHERE guildId=@id", new MySqlParameter("@id", id)); SocialCharacterData guildMemberData; while (reader.Read()) { // Get some required data, other data will be set at server side guildMemberData = new SocialCharacterData(); guildMemberData.id = reader.GetString("id"); guildMemberData.characterName = reader.GetString("characterName"); guildMemberData.dataId = reader.GetInt32("dataId"); guildMemberData.level = reader.GetInt16("level"); result.AddMember(guildMemberData, reader.GetByte("guildRole")); } reader = ExecuteReader("SELECT dataId, level FROM guildskill WHERE guildId=@id", new MySqlParameter("@id", id)); while (reader.Read()) { result.SetSkillLevel(reader.GetInt32("dataId"), reader.GetInt16("level")); } } return(result); }
public override List <SocialCharacterData> ReadFriends(string id1) { List <SocialCharacterData> result = new List <SocialCharacterData>(); MySQLRowsReader reader = ExecuteReader("SELECT characterId2 FROM friend WHERE characterId1=@id1", new MySqlParameter("@id1", id1)); string characterId; SocialCharacterData socialCharacterData; MySQLRowsReader reader2; while (reader.Read()) { characterId = reader.GetString("characterId2"); reader2 = ExecuteReader("SELECT id, dataId, characterName, level FROM characters WHERE BINARY id = @id", new MySqlParameter("@id", characterId)); while (reader2.Read()) { // Get some required data, other data will be set at server side socialCharacterData = new SocialCharacterData(); socialCharacterData.id = reader2.GetString("id"); socialCharacterData.characterName = reader2.GetString("characterName"); socialCharacterData.dataId = reader2.GetInt32("dataId"); socialCharacterData.level = reader2.GetInt16("level"); result.Add(socialCharacterData); } } return(result); }
public void ReadCharacter_UMA( PlayerCharacterData characterData, bool withEquipWeapons, bool withAttributes, bool withSkills, bool withSkillUsages, bool withBuffs, bool withEquipItems, bool withNonEquipItems, bool withSummons, bool withHotkeys, bool withQuests) { // Read uma data MySQLRowsReader reader = ExecuteReader("SELECT data FROM characterumasaves WHERE id=@id", new MySqlParameter("@id", characterData.Id)); if (reader.Read()) { string data = reader.GetString("data"); string[] splitedData = data.Split(','); List <byte> bytes = new List <byte>(); foreach (string entry in splitedData) { bytes.Add(byte.Parse(entry)); } UmaAvatarData umaAvatarData = new UmaAvatarData(); umaAvatarData.SetBytes(bytes); characterData.UmaAvatarData = umaAvatarData; } }
public override string FacebookLogin(string fbId, string accessToken) { string url = "https://graph.facebook.com/" + fbId + "?access_token=" + accessToken + "&fields=id,name,email"; WebClient webClient = new WebClient(); string json = webClient.DownloadString(url); json = json.Replace(@"\u0040", "@"); string id = string.Empty; Dictionary <string, object> dict = Json.Deserialize(json) as Dictionary <string, object>; if (dict.ContainsKey("id") && dict.ContainsKey("email")) { string email = (string)dict["email"]; MySQLRowsReader reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", "fb_" + fbId), new MySqlParameter("@password", GenericUtils.GetMD5(fbId)), new MySqlParameter("@authType", AUTH_TYPE_FACEBOOK)); if (reader.Read()) { id = reader.GetString("id"); } else { ExecuteNonQuery("INSERT INTO userlogin (id, username, password, email, authType) VALUES (@id, @username, @password, @email, @authType)", new MySqlParameter("@id", GenericUtils.GetUniqueId()), new MySqlParameter("@username", "fb_" + fbId), new MySqlParameter("@password", GenericUtils.GetMD5(fbId)), new MySqlParameter("@email", email), new MySqlParameter("@authType", AUTH_TYPE_FACEBOOK)); // Read last entry reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", "fb_" + fbId), new MySqlParameter("@password", GenericUtils.GetMD5(fbId)), new MySqlParameter("@authType", AUTH_TYPE_FACEBOOK)); if (reader.Read()) { id = reader.GetString("id"); } } } return(id); }
public override string GooglePlayLogin(string idToken) { string url = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + idToken; WebClient webClient = new WebClient(); string json = webClient.DownloadString(url); string id = string.Empty; Dictionary <string, object> dict = Json.Deserialize(json) as Dictionary <string, object>; if (dict.ContainsKey("sub") && dict.ContainsKey("email")) { string gId = (string)dict["sub"]; string email = (string)dict["email"]; MySQLRowsReader reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", "g_" + gId), new MySqlParameter("@password", GenericUtils.GetMD5(gId)), new MySqlParameter("@authType", AUTH_TYPE_GOOGLE_PLAY)); if (reader.Read()) { id = reader.GetString("id"); } else { ExecuteNonQuery("INSERT INTO userlogin (id, username, password, email, authType) VALUES (@id, @username, @password, @email, @authType)", new MySqlParameter("@id", GenericUtils.GetUniqueId()), new MySqlParameter("@username", "g_" + gId), new MySqlParameter("@password", GenericUtils.GetMD5(gId)), new MySqlParameter("@email", email), new MySqlParameter("@authType", AUTH_TYPE_GOOGLE_PLAY)); // Read last entry reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", "g_" + gId), new MySqlParameter("@password", GenericUtils.GetMD5(gId)), new MySqlParameter("@authType", AUTH_TYPE_GOOGLE_PLAY)); if (reader.Read()) { id = reader.GetString("id"); } } } return(id); }
private bool ReadCharacterHotkey(MySQLRowsReader reader, out CharacterHotkey result, bool resetReader = true) { if (resetReader) { reader.ResetReader(); } if (reader.Read()) { result = new CharacterHotkey(); result.hotkeyId = reader.GetString("hotkeyId"); result.type = (HotkeyType)reader.GetSByte("type"); result.relateId = reader.GetString("relateId"); return(true); } result = CharacterHotkey.Empty; return(false); }
public override List <SocialCharacterData> FindCharacters(string characterName) { List <SocialCharacterData> result = new List <SocialCharacterData>(); MySQLRowsReader reader = ExecuteReader("SELECT id, dataId, characterName, level FROM characters WHERE characterName LIKE @characterName LIMIT 0, 20", new MySqlParameter("@characterName", "%" + characterName + "%")); SocialCharacterData socialCharacterData; while (reader.Read()) { // Get some required data, other data will be set at server side socialCharacterData = new SocialCharacterData(); socialCharacterData.id = reader.GetString("id"); socialCharacterData.characterName = reader.GetString("characterName"); socialCharacterData.dataId = reader.GetInt32("dataId"); socialCharacterData.level = reader.GetInt16("level"); result.Add(socialCharacterData); } return(result); }
private bool ReadCharacter(MySQLRowsReader reader, out PlayerCharacterData result, bool resetReader = true) { if (resetReader) { reader.ResetReader(); } if (reader.Read()) { result = new PlayerCharacterData(); result.Id = reader.GetString("id"); result.DataId = reader.GetInt32("dataId"); result.EntityId = reader.GetInt32("entityId"); result.FactionId = reader.GetInt32("factionId"); result.CharacterName = reader.GetString("characterName"); result.Level = reader.GetInt16("level"); result.Exp = reader.GetInt32("exp"); result.CurrentHp = reader.GetInt32("currentHp"); result.CurrentMp = reader.GetInt32("currentMp"); result.CurrentStamina = reader.GetInt32("currentStamina"); result.CurrentFood = reader.GetInt32("currentFood"); result.CurrentWater = reader.GetInt32("currentWater"); result.EquipWeaponSet = reader.GetByte("equipWeaponSet"); result.StatPoint = reader.GetInt16("statPoint"); result.SkillPoint = reader.GetInt16("skillPoint"); result.Gold = reader.GetInt32("gold"); result.PartyId = reader.GetInt32("partyId"); result.GuildId = reader.GetInt32("guildId"); result.GuildRole = reader.GetByte("guildRole"); result.SharedGuildExp = reader.GetInt32("sharedGuildExp"); result.CurrentMapName = reader.GetString("currentMapName"); result.CurrentPosition = new Vector3(reader.GetFloat("currentPositionX"), reader.GetFloat("currentPositionY"), reader.GetFloat("currentPositionZ")); result.RespawnMapName = reader.GetString("respawnMapName"); result.RespawnPosition = new Vector3(reader.GetFloat("respawnPositionX"), reader.GetFloat("respawnPositionY"), reader.GetFloat("respawnPositionZ")); result.MountDataId = reader.GetInt32("mountDataId"); result.LastUpdate = (int)(reader.GetDateTime("updateAt").Ticks / System.TimeSpan.TicksPerMillisecond); return(true); } result = null; return(false); }
public override List <PlayerCharacterData> ReadCharacters(string userId) { List <PlayerCharacterData> result = new List <PlayerCharacterData>(); MySQLRowsReader reader = ExecuteReader("SELECT id FROM characters WHERE userId=@userId ORDER BY updateAt DESC", new MySqlParameter("@userId", userId)); while (reader.Read()) { string characterId = reader.GetString("id"); result.Add(ReadCharacter(userId, characterId, true, true, true, false, false, true, false, false, false, false)); } return(result); }
private bool ReadCharacterBuff(MySQLRowsReader reader, out CharacterBuff result, bool resetReader = true) { if (resetReader) { reader.ResetReader(); } if (reader.Read()) { result = new CharacterBuff(); result.id = reader.GetString("id"); result.characterId = reader.GetString("characterId"); result.type = (BuffType)reader.GetSByte("type"); result.dataId = reader.GetInt32("dataId"); result.level = (short)reader.GetInt32("level"); result.buffRemainsDuration = reader.GetFloat("buffRemainsDuration"); return(true); } result = CharacterBuff.Empty; return(false); }
public override string ValidateUserLogin(string username, string password) { string id = string.Empty; MySQLRowsReader reader = ExecuteReader("SELECT id FROM userlogin WHERE username=@username AND password=@password AND authType=@authType LIMIT 1", new MySqlParameter("@username", username), new MySqlParameter("@password", GenericUtils.GetMD5(password)), new MySqlParameter("@authType", AUTH_TYPE_NORMAL)); if (reader.Read()) { id = reader.GetString("id"); } return(id); }
private bool ReadCharacterQuest(MySQLRowsReader reader, out CharacterQuest result, bool resetReader = true) { if (resetReader) { reader.ResetReader(); } if (reader.Read()) { result = new CharacterQuest(); result.dataId = reader.GetInt32("dataId"); result.isComplete = reader.GetBoolean("isComplete"); result.killedMonsters = ReadKillMonsters(reader.GetString("killedMonsters")); return(true); } result = CharacterQuest.Empty; return(false); }