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 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);
        }
        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);
        }
        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);
        }
Esempio n. 6
0
        public override bool IncreaseGuildExp(int id, int increaseExp, int[] expTree, out short resultLevel, out int resultExp, out short resultSkillPoint)
        {
            resultLevel      = 1;
            resultExp        = 0;
            resultSkillPoint = 0;

            MySQLRowsReader reader = ExecuteReader("UPDATE guild SET exp=exp+@increaseExp WHERE id=@id;" +
                                                   "SELECT level, exp, skillPoint FROM guild WHERE id=@id LIMIT 1;",
                                                   new MySqlParameter("@increaseExp", increaseExp),
                                                   new MySqlParameter("@id", id));

            if (reader.Read())
            {
                resultLevel      = (short)reader.GetInt32("level");
                resultExp        = reader.GetInt32("exp");
                resultSkillPoint = (short)reader.GetInt32("skillPoint");
                // Update when guild level is increase
                if (SocialSystemSetting.CalculateIncreasedGuildExp(expTree, resultLevel, resultExp, resultSkillPoint, out resultLevel, out resultExp, out resultSkillPoint))
                {
                    ExecuteNonQuery("UPDATE guild SET level=@level, exp=@exp, skillPoint=@skillPoint WHERE id=@id",
                                    new MySqlParameter("@level", resultLevel),
                                    new MySqlParameter("@exp", resultExp),
                                    new MySqlParameter("@skillPoint", resultSkillPoint),
                                    new MySqlParameter("@id", id));
                }
                // Return true if success
                return(true);
            }
            return(false);
        }
Esempio n. 7
0
        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 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;
            }
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
        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);
        }
Esempio n. 12
0
        public override int GetGold(string userId)
        {
            int             gold   = 0;
            MySQLRowsReader reader = ExecuteReader("SELECT gold FROM userlogin WHERE id=@id LIMIT 1",
                                                   new MySqlParameter("@id", userId));

            if (reader.Read())
            {
                gold = reader.GetInt32("gold");
            }
            return(gold);
        }
Esempio n. 13
0
        public override int GetCash(string userId)
        {
            int             cash   = 0;
            MySQLRowsReader reader = ExecuteReader("SELECT cash FROM userlogin WHERE id=@id LIMIT 1",
                                                   new MySqlParameter("@id", userId));

            if (reader.Read())
            {
                cash = reader.GetInt32("cash");
            }
            return(cash);
        }
        public override int GetGuildGold(int guildId)
        {
            int             gold   = 0;
            MySQLRowsReader reader = ExecuteReader("SELECT gold FROM guild WHERE id=@id LIMIT 1",
                                                   new MySqlParameter("@id", guildId));

            if (reader.Read())
            {
                gold = reader.GetInt32("gold");
            }
            return(gold);
        }
Esempio n. 15
0
        public override byte GetUserLevel(string userId)
        {
            byte            userLevel = 0;
            MySQLRowsReader reader    = ExecuteReader("SELECT userLevel FROM userlogin WHERE id=@id LIMIT 1",
                                                      new MySqlParameter("@id", userId));

            if (reader.Read())
            {
                userLevel = (byte)reader.GetSByte("userLevel");
            }
            return(userLevel);
        }
Esempio n. 16
0
        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 ReadCharacterAttribute(MySQLRowsReader reader, out CharacterAttribute result, bool resetReader = true)
        {
            if (resetReader)
            {
                reader.ResetReader();
            }

            if (reader.Read())
            {
                result        = new CharacterAttribute();
                result.dataId = reader.GetInt32("dataId");
                result.amount = (short)reader.GetInt32("amount");
                return(true);
            }
            result = CharacterAttribute.Empty;
            return(false);
        }
Esempio n. 18
0
        private bool ReadCharacterSkill(MySQLRowsReader reader, out CharacterSkill result, bool resetReader = true)
        {
            if (resetReader)
            {
                reader.ResetReader();
            }

            if (reader.Read())
            {
                result        = new CharacterSkill();
                result.dataId = reader.GetInt32("dataId");
                result.level  = (short)reader.GetInt32("level");
                return(true);
            }
            result = CharacterSkill.Empty;
            return(false);
        }
        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);
        }
        private bool ReadCharacterSkillUsage(MySQLRowsReader reader, out CharacterSkillUsage result, bool resetReader = true)
        {
            if (resetReader)
            {
                reader.ResetReader();
            }

            if (reader.Read())
            {
                result        = new CharacterSkillUsage();
                result.type   = (SkillUsageType)reader.GetSByte("type");
                result.dataId = reader.GetInt32("dataId");
                result.coolDownRemainsDuration = reader.GetFloat("coolDownRemainsDuration");
                return(true);
            }
            result = CharacterSkillUsage.Empty;
            return(false);
        }
Esempio n. 21
0
        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);
        }
        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);
        }
Esempio n. 23
0
        private bool ReadCharacterBuff(MySQLRowsReader reader, out CharacterBuff result, bool resetReader = true)
        {
            if (resetReader)
            {
                reader.ResetReader();
            }

            if (reader.Read())
            {
                result        = new CharacterBuff();
                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);
        }
        private bool ReadCharacterItem(MySQLRowsReader reader, out CharacterItem result, bool resetReader = true)
        {
            if (resetReader)
            {
                reader.ResetReader();
            }

            if (reader.Read())
            {
                result            = new CharacterItem();
                result.dataId     = reader.GetInt32("dataId");
                result.level      = (short)reader.GetInt32("level");
                result.amount     = (short)reader.GetInt32("amount");
                result.durability = reader.GetFloat("durability");
                return(true);
            }
            result = CharacterItem.Empty;
            return(false);
        }
Esempio n. 25
0
        public override int CreateGuild(string guildName, string leaderId)
        {
            int             id     = 0;
            MySQLRowsReader reader = ExecuteReader("INSERT INTO guild (guildName, leaderId) VALUES (@guildName, @leaderId);" +
                                                   "SELECT LAST_INSERT_ID();",
                                                   new MySqlParameter("@guildName", guildName),
                                                   new MySqlParameter("@leaderId", leaderId));

            if (reader.Read())
            {
                id = (int)reader.GetUInt64(0);
            }
            if (id > 0)
            {
                ExecuteNonQuery("UPDATE characters SET guildId=@id WHERE id=@leaderId",
                                new MySqlParameter("@id", id),
                                new MySqlParameter("@leaderId", leaderId));
            }
            return(id);
        }
Esempio n. 26
0
        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 int CreateParty(bool shareExp, bool shareItem, string leaderId)
        {
            int             id     = 0;
            MySQLRowsReader reader = ExecuteReader("INSERT INTO party (shareExp, shareItem, leaderId) VALUES (@shareExp, @shareItem, @leaderId);" +
                                                   "SELECT LAST_INSERT_ID();",
                                                   new MySqlParameter("@shareExp", shareExp),
                                                   new MySqlParameter("@shareItem", shareItem),
                                                   new MySqlParameter("@leaderId", leaderId));

            if (reader.Read())
            {
                id = (int)reader.GetUInt64(0);
            }
            if (id > 0)
            {
                ExecuteNonQuery("UPDATE characters SET partyId=@id WHERE id=@leaderId",
                                new MySqlParameter("@id", id),
                                new MySqlParameter("@leaderId", leaderId));
            }
            return(id);
        }
Esempio n. 28
0
        private bool ReadCharacterSummon(MySQLRowsReader reader, out CharacterSummon result, bool resetReader = true)
        {
            if (resetReader)
            {
                reader.ResetReader();
            }

            if (reader.Read())
            {
                result        = new CharacterSummon();
                result.type   = (SummonType)reader.GetSByte("type");
                result.dataId = reader.GetInt32("dataId");
                result.summonRemainsDuration = reader.GetFloat("summonRemainsDuration");
                result.level     = reader.GetInt16("level");
                result.exp       = reader.GetInt32("exp");
                result.currentHp = reader.GetInt32("currentHp");
                result.currentMp = reader.GetInt32("currentMp");
                return(true);
            }
            result = CharacterSummon.Empty;
            return(false);
        }