示例#1
0
        public static List <string> LoadPendingZonedMaps(PMDCP.DatabaseConnector.MySql.MySql database, int quantity)
        {
            var results = new List <string>();

            var query = "SELECT MapID FROM map_data WHERE ((ZoneID = 0 OR ZoneID IS NULL) AND MapID LIKE 's%') ORDER BY CONVERT(SUBSTRING(MapID, 2, CHARACTER_LENGTH(MapID)), SIGNED INTEGER) LIMIT " + quantity;

            foreach (var row in database.RetrieveRowsEnumerable(query))
            {
                results.Add(row["MapID"].ValueString);
            }

            return(results);
        }
示例#2
0
        public static IEnumerable <MissionEnemyData> LoadMissionEnemyData(PMDCP.DatabaseConnector.MySql.MySql database, int difficulty)
        {
            string query = "SELECT mission_enemy.NpcNum " +
                           "FROM mission_enemy " +
                           "WHERE mission_enemy.Rank = \'" + difficulty + "\'  " +
                           "ORDER BY mission_enemy.EnemyIndex";

            foreach (DataColumnCollection column in database.RetrieveRowsEnumerable(query))
            {
                MissionEnemyData data = new MissionEnemyData();
                data.NpcNum = column["NpcNum"].ValueString.ToInt();
                yield return(data);
            }
        }
示例#3
0
        public static IEnumerable <MissionRewardData> LoadMissionRewardData(PMDCP.DatabaseConnector.MySql.MySql database, int difficulty)
        {
            string query = "SELECT mission_reward.ItemNum, mission_reward.ItemAmount, mission_reward.ItemTag " +
                           "FROM mission_reward " +
                           "WHERE mission_reward.Rank = \'" + difficulty + "\'  " +
                           "ORDER BY mission_reward.RewardIndex";

            foreach (DataColumnCollection column in database.RetrieveRowsEnumerable(query))
            {
                MissionRewardData data = new MissionRewardData();
                data.ItemNum    = column["ItemNum"].ValueString.ToInt();
                data.ItemAmount = column["ItemAmount"].ValueString.ToInt();
                data.ItemTag    = column["ItemTag"].ValueString;
                yield return(data);
            }
        }
示例#4
0
        public static List <ZoneResource> LoadZoneResources(PMDCP.DatabaseConnector.MySql.MySql database, int zoneID)
        {
            var results = new List <ZoneResource>();

            var query = "SELECT num, name FROM npc WHERE zone_id = " + zoneID;

            foreach (var row in database.RetrieveRowsEnumerable(query))
            {
                results.Add(new ZoneResource()
                {
                    Num  = row["num"].ValueString.ToInt(),
                    Name = row["name"].ValueString,
                    Type = ZoneResourceType.NPCs
                });
            }

            return(results);
        }
示例#5
0
        public static List <ZoneResource> LoadZoneResources(PMDCP.DatabaseConnector.MySql.MySql database, int zoneID)
        {
            var results = new List <ZoneResource>();

            var query = "SELECT MapID, Name FROM map_data WHERE ZoneID = " + zoneID + " AND MapID LIKE 's%'";

            foreach (var row in database.RetrieveRowsEnumerable(query))
            {
                results.Add(new ZoneResource()
                {
                    Num  = row["MapID"].ValueString.Trim('s').ToInt(),
                    Name = row["Name"].ValueString,
                    Type = ZoneResourceType.Maps
                });
            }

            return(results);
        }
示例#6
0
        public static void LoadEvo(int evoNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            if (evolution.Evolutions.ContainsKey(evoNum) == false)
            {
                evolution.Evolutions.Add(evoNum, new Evolution());
            }

            string query = "SELECT name, " +
                           "species, " +
                           "is_sandboxed " +
                           "FROM evolution WHERE evolution.num = \'" + evoNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                evolution[evoNum].Name        = row["name"].ValueString;
                evolution[evoNum].Species     = row["species"].ValueString.ToInt();
                evolution[evoNum].IsSandboxed = row["is_sandboxed"].ValueString.ToBool();
            }

            query = "SELECT branch, " +
                    "name, " +
                    "species, " +
                    "req_script, " +
                    "data1, " +
                    "data2, " +
                    "data3 " +
                    "FROM evolution_branch WHERE evolution_branch.num = \'" + evoNum + "\'";

            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query))
            {
                int tradeNum = columnCollection["branch"].ValueString.ToInt();

                EvolutionBranch newBranch = new EvolutionBranch();
                newBranch.Name       = columnCollection["name"].ValueString;
                newBranch.NewSpecies = columnCollection["species"].ValueString.ToInt();
                newBranch.ReqScript  = columnCollection["req_script"].ValueString.ToInt();
                newBranch.Data1      = columnCollection["data1"].ValueString.ToInt();
                newBranch.Data2      = columnCollection["data2"].ValueString.ToInt();
                newBranch.Data3      = columnCollection["data3"].ValueString.ToInt();
                evolution[evoNum].Branches.Add(newBranch);
            }
        }
示例#7
0
        public static void LoadShop(int shopNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            if (shops.Shops.ContainsKey(shopNum) == false)
            {
                shops.Shops.Add(shopNum, new Shop());
            }

            string query = "SELECT name, " +
                           "greeting, " +
                           "farewell, " +
                           "is_sandboxed, " +
                           "zone_id " +
                           "FROM shop WHERE shop.num = \'" + shopNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                shops[shopNum].Name        = row["name"].ValueString;
                shops[shopNum].JoinSay     = row["greeting"].ValueString;
                shops[shopNum].LeaveSay    = row["farewell"].ValueString;
                shops[shopNum].IsSandboxed = row["is_sandboxed"].ValueString.ToBool();
                shops[shopNum].ZoneID      = row["zone_id"].ValueString.ToInt();
            }

            query = "SELECT trade_num, " +
                    "item, " +
                    "cost_num, " +
                    "cost_val " +
                    "FROM shop_trade WHERE shop_trade.num = \'" + shopNum + "\'";

            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query))
            {
                int tradeNum = columnCollection["trade_num"].ValueString.ToInt();

                shops[shopNum].Items[tradeNum].GetItem   = columnCollection["item"].ValueString.ToInt();
                shops[shopNum].Items[tradeNum].GiveItem  = columnCollection["cost_num"].ValueString.ToInt();
                shops[shopNum].Items[tradeNum].GiveValue = columnCollection["cost_val"].ValueString.ToInt();
            }
        }
示例#8
0
        public static void LoadNpc(int npcNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            if (npcs.Npcs.ContainsKey(npcNum) == false)
            {
                npcs.Npcs.Add(npcNum, new Npc());
            }

            string query = "SELECT name, " +
                           "attack_say, " +
                           "attack_say_2, " +
                           "attack_say_3, " +
                           "species, " +
                           "form, " +
                           "behavior, " +
                           "shiny_chance, " +
                           "dawn_spawn, " +
                           "day_spawn, " +
                           "dusk_spawn, " +
                           "night_spawn, " +
                           "ai_script, " +
                           "recruit_rate, " +
                           "move1, " +
                           "move2, " +
                           "move3, " +
                           "move4, " +
                           "is_sandboxed, " +
                           "zone_id, " +
                           "spawn_direction, " +
                           "spawn_weather, " +
                           "story, " +
                           "shop, " +
                           "death_story " +
                           "FROM npc WHERE npc.num = \'" + npcNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                npcs[npcNum].Name           = row["name"].ValueString;
                npcs[npcNum].AttackSay      = row["attack_say"].ValueString;
                npcs[npcNum].AttackSay2     = row["attack_say_2"].ValueString;
                npcs[npcNum].AttackSay3     = row["attack_say_3"].ValueString;
                npcs[npcNum].Species        = row["species"].ValueString.ToInt();
                npcs[npcNum].Form           = row["form"].ValueString.ToInt();
                npcs[npcNum].Behavior       = (Enums.NpcBehavior)row["behavior"].ValueString.ToInt();
                npcs[npcNum].ShinyChance    = row["shiny_chance"].ValueString.ToInt();
                npcs[npcNum].SpawnsAtDawn   = row["dawn_spawn"].ValueString.ToBool();
                npcs[npcNum].SpawnsAtDay    = row["day_spawn"].ValueString.ToBool();
                npcs[npcNum].SpawnsAtDusk   = row["dusk_spawn"].ValueString.ToBool();
                npcs[npcNum].SpawnsAtNight  = row["night_spawn"].ValueString.ToBool();
                npcs[npcNum].AIScript       = row["ai_script"].ValueString;
                npcs[npcNum].RecruitRate    = row["recruit_rate"].ValueString.ToInt();
                npcs[npcNum].Moves[0]       = row["move1"].ValueString.ToInt();
                npcs[npcNum].Moves[1]       = row["move2"].ValueString.ToInt();
                npcs[npcNum].Moves[2]       = row["move3"].ValueString.ToInt();
                npcs[npcNum].Moves[3]       = row["move4"].ValueString.ToInt();
                npcs[npcNum].IsSandboxed    = row["is_sandboxed"].ValueString.ToBool();
                npcs[npcNum].ZoneID         = row["zone_id"].ValueString.ToInt();
                npcs[npcNum].SpawnDirection = (Enums.Direction)row["spawn_direction"].ValueString.ToInt();
                npcs[npcNum].SpawnWeather   = (Enums.Weather)row["spawn_weather"].ValueString.ToInt();
                npcs[npcNum].Story          = row["story"].ValueString.ToInt();
                npcs[npcNum].Shop           = row["shop"].ValueString.ToInt();
                npcs[npcNum].DeathStory     = row["death_story"].ValueString.ToInt();
            }

            query = "SELECT drop_num, " +
                    "item_num, " +
                    "item_val, " +
                    "tag, " +
                    "chance " +
                    "FROM npc_drop WHERE npc_drop.npc_num = \'" + npcNum + "\'";

            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query))
            {
                int dropNum = columnCollection["drop_num"].ValueString.ToInt();

                npcs[npcNum].Drops[dropNum].ItemNum   = columnCollection["item_num"].ValueString.ToInt();
                npcs[npcNum].Drops[dropNum].ItemValue = columnCollection["item_val"].ValueString.ToInt();
                npcs[npcNum].Drops[dropNum].Tag       = columnCollection["tag"].ValueString;
                npcs[npcNum].Drops[dropNum].Chance    = columnCollection["chance"].ValueString.ToInt();
            }
        }
示例#9
0
        public static void LoadDungeon(int dungeonNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            Dungeon dungeon = new Dungeon();

            string query = "SELECT name, " +
                           "rescue, " +
                           "is_sandboxed, " +
                           "zone_id " +
                           "FROM dungeon WHERE dungeon.num = \'" + dungeonNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                dungeon.Name         = row["name"].ValueString;
                dungeon.AllowsRescue = row["rescue"].ValueString.ToBool();
                dungeon.IsSandboxed  = row["is_sandboxed"].ValueString.ToBool();
                dungeon.ZoneID       = row["zone_id"].ValueString.ToInt();
            }

            query = "SELECT map_id, " +
                    "difficulty, " +
                    "boss_map " +
                    "FROM dungeon_smap WHERE dungeon_smap.num = \'" + dungeonNum + "\'";

            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query))
            {
                int mapID = columnCollection["map_id"].ValueString.ToInt();

                StandardDungeonMap sMap = new StandardDungeonMap();
                sMap.MapNum       = mapID;
                sMap.Difficulty   = (Enums.JobDifficulty)columnCollection["difficulty"].ValueString.ToInt();
                sMap.IsBadGoalMap = columnCollection["boss_map"].ValueString.ToBool();

                dungeon.StandardMaps.Add(sMap);
            }

            query = "SELECT rdungeon_num, " +
                    "rdungeon_floor, " +
                    "difficulty, " +
                    "boss_map " +
                    "FROM dungeon_rmap WHERE dungeon_rmap.num = \'" + dungeonNum + "\'";

            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query))
            {
                int dungeonIndex = columnCollection["rdungeon_num"].ValueString.ToInt();
                int dungeonFloor = columnCollection["rdungeon_floor"].ValueString.ToInt();

                RandomDungeonMap rMap = new RandomDungeonMap();
                rMap.RDungeonIndex = dungeonIndex;
                rMap.RDungeonFloor = dungeonFloor;
                rMap.Difficulty    = (Enums.JobDifficulty)columnCollection["difficulty"].ValueString.ToInt();
                rMap.IsBadGoalMap  = columnCollection["boss_map"].ValueString.ToBool();

                dungeon.RandomMaps.Add(rMap);
            }

            query = "SELECT script_key, " +
                    "script_args " +
                    "FROM dungeon_script WHERE dungeon_script.num = \'" + dungeonNum + "\'";

            foreach (DataColumnCollection columnCollection in database.RetrieveRowsEnumerable(query))
            {
                int    scriptKey  = columnCollection["script_key"].ValueString.ToInt();
                string scriptArgs = columnCollection["script_args"].ValueString;

                dungeon.ScriptList.Add(scriptKey, scriptArgs);
            }

            dungeons.Dungeons.Add(dungeonNum, dungeon);
        }