Ejemplo n.º 1
0
        public MapNpc(int mapSlot)
        {
            this.mapSlot = mapSlot;
            //Mobility = new bool[16];
            //TimeMultiplier = 1000;
            Moves = new Characters.Move[4];
            for (int i = 0; i < Moves.Length; i++) {
                Moves[i] = new Characters.Move();
            }

            VolatileStatus = new List<Characters.VolatileStatus>();
            HeldItem = new Characters.InventoryItem();
            HeldItem.Num = -1;
        }
Ejemplo n.º 2
0
        // Final Stats
        //int maxHP;
        //int mBaseAtk;
        //int mAtkBonus;
        //int mAtkBoost;
        //int mBaseDef;
        //int mBaseMaxHP;
        //int mBaseSpclAtk;
        //int mBaseSpclDef;
        //int mBaseSpd;
        //int mDefBonus;
        //int mDefBoost;
        //int mMaxHPBonus;
        //int mMaxHPBoost;
        //int mSpclAtkBonus;
        //int mSpclAtkBoost;
        //int mSpclDefBonus;
        //int mSpclDefBoost;
        //int mSpdBonus;
        //int mSpdBoost;
        //int spclAtk;
        //int spclDef;
        //int spd;

        #endregion Fields

        #region Constructors

        public MapNpc(int mapSlot)
        {
            this.mapSlot = mapSlot;
            //Mobility = new bool[16];
            //TimeMultiplier = 1000;
            Moves = new Characters.Move[4];
            for (int i = 0; i < Moves.Length; i++)
            {
                Moves[i] = new Characters.Move();
            }

            VolatileStatus = new List <Characters.VolatileStatus>();
            HeldItem       = new Characters.InventoryItem();
            HeldItem.Num   = -1;
        }
Ejemplo n.º 3
0
        /*
        public static bool IsWonderMailCompleted(MySql database, string charID, string wonderMail) {
            string query = "SELECT completed_mail.Code " +
                "FROM completed_mail " +
                "WHERE completed_mail.CharID = \'" + database.VerifyValueString(charID) + "\' " +
                "AND completed_mail.Code = \'" + database.VerifyValueString(wonderMail) + "\';";
            DataColumnCollection row = database.RetrieveRow(query);
            if (row != null) {
                if (!string.IsNullOrEmpty(row["Code"].ValueString)) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        }

        public static void LoadPlayerCompletedMail(MySql database, PlayerData playerData) {
            string query = "SELECT completed_mail.Code " +
               "FROM completed_mail " +
               "WHERE completed_mail.CharID = \'" + playerData.CharID + "\';";
            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) {
                string code = columnCollection["Code"].ValueString;

                playerData.CompletedMail.Add(code);
            }
        }
        */
        public static bool LoadPlayerData(MySql database, PlayerData playerData)
        {
            string query = "SELECT accounts.Email, characteristics.Name, characteristics.Access, characteristics.ActiveSlot, characteristics.PK, " +
                "characteristics.Solid, characteristics.Status, characteristics.Veteran, characteristics.InTempMode, characteristics.Dead, " +
                "expkit.AvailableModules, " +
                "location.Map, location.X, location.Y, location.Direction, " +
                "guild.GuildName, guild.GuildAccess, " +
                "story.CurrentChapter, story.CurrentSegment, " +
                "items.MaxInv, items.MaxBank, " +
                "missions.MissionExp, missions.LastGenTime, missions.Completions " +
                "FROM characteristics " +
                "LEFT OUTER JOIN characters ON characters.CharID = characteristics.CharID " +
                "LEFT OUTER JOIN accounts ON accounts.AccountName = characters.AccountName " +
                "LEFT OUTER JOIN expkit ON expkit.CharID = characteristics.CharID " +
                "LEFT OUTER JOIN location ON characteristics.CharID = location.CharID " +
                "LEFT OUTER JOIN guild ON characteristics.CharID = guild.CharID " +
                "LEFT OUTER JOIN story ON characteristics.CharID = story.CharID " +
                "LEFT OUTER JOIN items ON characteristics.CharID = items.CharID " +
                "LEFT OUTER JOIN missions ON items.CharID = missions.CharID " +
                "WHERE characteristics.CharID = \'" + database.VerifyValueString(playerData.CharID) + "\';";

            DataColumnCollection row = database.RetrieveRow(query);
            if (row != null) {
                playerData.Email = row["Email"].ValueString;
                playerData.Name = row["Name"].ValueString;
                playerData.Access = row["Access"].ValueString.ToByte();
                playerData.ActiveSlot = row["ActiveSlot"].ValueString.ToInt();
                playerData.PK = row["PK"].ValueString.ToBool();
                playerData.Solid = row["Solid"].ValueString.ToBool();
                playerData.Status = row["Status"].ValueString;
                playerData.Veteran = row["Veteran"].ValueString.ToBool();
                playerData.InTempMode = row["InTempMode"].ValueString.ToBool();
                playerData.Dead = row["Dead"].ValueString.ToBool();

                playerData.AvailableModules = row["AvailableModules"].ValueString;

                playerData.Map = row["Map"].ValueString;
                playerData.X = row["X"].ValueString.ToInt();
                playerData.Y = row["Y"].ValueString.ToInt();
                playerData.Direction = row["Direction"].ValueString.ToByte();

                playerData.GuildName = row["GuildName"].ValueString;
                playerData.GuildAccess = row["GuildAccess"].ValueString.ToByte();

                playerData.CurrentChapter = row["CurrentChapter"].ValueString;
                playerData.CurrentSegment = row["CurrentSegment"].ValueString.ToInt(-1);

                playerData.MaxInv = row["MaxInv"].ValueString.ToInt(-1);
                playerData.MaxBank = row["MaxBank"].ValueString.ToInt(-1);

                playerData.MissionExp = row["MissionExp"].ValueString.ToInt(0);
                playerData.LastGenTime = row["LastGenTime"].ValueString.ToInt();
                playerData.MissionCompletions = row["Completions"].ValueString.ToInt();
            } else {
                return false;
            }

            // Load team data
            query = "SELECT team.Slot, team.RecruitIndex, team.UsingTempStats " +
                "FROM team " +
                "WHERE team.CharID = \'" + playerData.CharID + "\' " +
                "AND team.Slot >= 0 " +
                "AND team.Slot < 4";
            List<DataColumnCollection> rows = database.RetrieveRows(query);
            if (rows != null) {
                for (int i = 0; i < rows.Count; i++) {
                    int slot = rows[i]["Slot"].ValueString.ToInt();
                    playerData.TeamMembers[slot] = new PlayerDataTeamMember();
                    playerData.TeamMembers[slot].RecruitIndex = rows[i]["RecruitIndex"].ValueString.ToInt();
                    playerData.TeamMembers[slot].UsingTempStats = rows[i]["UsingTempStats"].ValueString.ToBool();
                }
            }

            if (playerData.TeamMembers[0].RecruitIndex == -1) {
                playerData.TeamMembers[0].RecruitIndex = 0;
            }

            // Load inventory
            query = "SELECT inventory.ItemSlot, inventory.ItemNum, inventory.Amount, " +
                "inventory.Sticky, inventory.Tag " +
                "FROM inventory " +
                "WHERE inventory.CharID = \'" + playerData.CharID + "\';";
            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) {
                Characters.InventoryItem invItem = new Characters.InventoryItem();
                int itemSlot = columnCollection["ItemSlot"].ValueString.ToInt(-1);
                if (itemSlot > -1) {
                    invItem.Num = columnCollection["ItemNum"].ValueString.ToInt(0);
                    invItem.Amount = columnCollection["Amount"].ValueString.ToInt(0);
                    invItem.Sticky = columnCollection["Sticky"].ValueString.ToBool();
                    invItem.Tag = columnCollection["Tag"].ValueString;

                    playerData.Inventory.Add(itemSlot, invItem);
                }
            }
            for (int i = 1; i <= playerData.MaxInv; i++) {
                if (playerData.Inventory.ContainsKey(i) == false) {
                    Characters.InventoryItem invItem = new Characters.InventoryItem();
                    playerData.Inventory.Add(i, invItem);
                }
            }

            // Load bank
            query = "SELECT bank.ItemSlot, bank.ItemNum, bank.Amount, " +
                "bank.Sticky, bank.Tag " +
                "FROM bank " +
                "WHERE bank.CharID = \'" + playerData.CharID + "\';";
            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query)) {
                Characters.InventoryItem invItem = new Characters.InventoryItem();
                int itemSlot = columnCollection["ItemSlot"].ValueString.ToInt(-1);
                if (itemSlot > -1) {
                    invItem.Num = columnCollection["ItemNum"].ValueString.ToInt(0);
                    invItem.Amount = columnCollection["Amount"].ValueString.ToInt(0);
                    invItem.Sticky = columnCollection["Sticky"].ValueString.ToBool();
                    invItem.Tag = columnCollection["Tag"].ValueString;

                    playerData.Bank.Add(itemSlot, invItem);
                }
            }
            for (int i = 1; i <= playerData.MaxBank; i++) {
                if (playerData.Bank.ContainsKey(i) == false) {
                    Characters.InventoryItem invItem = new Characters.InventoryItem();
                    playerData.Bank.Add(i, invItem);
                }
            }

            return true;
        }