예제 #1
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);
            }
        }
예제 #2
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();
            }
        }
예제 #3
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();
            }
        }
예제 #4
0
        public static void LoadStory(int storyNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            if (stories.Stories.ContainsKey(storyNum) == false)
            {
                stories.Stories.Add(storyNum, new Story(storyNum.ToString()));
            }
            Story story = new Story(storyNum.ToString());

            string query = "SELECT revision, " +
                           "name, " +
                           "story_start, " +
                           "is_sandboxed, " +
                           "zone_id " +
                           "FROM story WHERE story.num = \'" + storyNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                story.Revision    = row["revision"].ValueString.ToInt();
                story.Name        = row["name"].ValueString;
                story.StoryStart  = row["story_start"].ValueString.ToInt();
                story.IsSandboxed = row["is_sandboxed"].ValueString.ToBool();
                story.ZoneID      = row["zone_id"].ValueString.ToInt();
            }

            query = "SELECT segment, " +
                    "action, " +
                    "checkpoint " +
                    "FROM story_segment WHERE story_segment.num = \'" + storyNum + "\'";

            List <DataColumnCollection> columnCollections = database.RetrieveRows(query);

            if (columnCollections == null)
            {
                columnCollections = new List <DataColumnCollection>();
            }
            foreach (DataColumnCollection columnCollection in columnCollections)
            {
                StorySegment segment = new StorySegment();

                int segmentNum = columnCollection["segment"].ValueString.ToInt();

                segment.Action = (Enums.StoryAction)columnCollection["action"].ValueString.ToInt();
                bool isCheckpoint = columnCollection["checkpoint"].ValueString.ToBool();

                string query2 = "SELECT param_key, " +
                                "param_val " +
                                "FROM story_param WHERE story_param.num = \'" + storyNum + "\' AND story_param.segment = \'" + segmentNum + "\'";

                List <DataColumnCollection> columnCollections2 = database.RetrieveRows(query2);
                if (columnCollections2 == null)
                {
                    columnCollections2 = new List <DataColumnCollection>();
                }
                foreach (DataColumnCollection columnCollection2 in columnCollections2)
                {
                    string paramKey = columnCollection2["param_key"].ValueString;
                    string paramVal = columnCollection2["param_val"].ValueString;
                    segment.Parameters.Add(paramKey, paramVal);
                }
                story.Segments.Add(segment);

                if (isCheckpoint)
                {
                    story.ExitAndContinue.Add(segmentNum);
                }
            }

            stories.Stories[storyNum] = story;
        }
예제 #5
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);
        }
예제 #6
0
        public static void LoadMove(int moveNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            if (moves.Moves.ContainsKey(moveNum) == false)
            {
                moves.Moves.Add(moveNum, new Move());
            }

            string query = "SELECT name, " +
                           "max_pp, " +
                           "effect_type, " +
                           "element, " +
                           "category, " +
                           "range_type, " +
                           "range_dist, " +
                           "target, " +
                           "data1, " +
                           "data2, " +
                           "data3, " +
                           "effect_data1, " +
                           "effect_data2, " +
                           "effect_data3, " +
                           "accuracy, " +
                           "hit_time, " +
                           "hit_freeze, " +
                           "per_player, " +
                           "key_effect, " +
                           "sound, " +
                           "attack_anim_type, " +
                           "attack_anim_index, " +
                           "attack_anim_speed, " +
                           "attack_anim_cycle, " +
                           "travel_anim_type, " +
                           "travel_anim_index, " +
                           "travel_anim_speed, " +
                           "travel_anim_cycle, " +
                           "landed_anim_type, " +
                           "landed_anim_index, " +
                           "landed_anim_speed, " +
                           "landed_anim_cycle, " +
                           "is_sandboxed " +
                           "FROM move WHERE move.num = \'" + moveNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                moves[moveNum].Name                         = row["name"].ValueString;
                moves[moveNum].MaxPP                        = row["max_pp"].ValueString.ToInt();
                moves[moveNum].EffectType                   = (Enums.MoveType)row["effect_type"].ValueString.ToInt();
                moves[moveNum].Element                      = (Enums.PokemonType)row["element"].ValueString.ToInt();
                moves[moveNum].MoveCategory                 = (Enums.MoveCategory)row["category"].ValueString.ToInt();
                moves[moveNum].RangeType                    = (Enums.MoveRange)row["range_type"].ValueString.ToInt();
                moves[moveNum].Range                        = row["range_dist"].ValueString.ToInt();
                moves[moveNum].TargetType                   = (Enums.MoveTarget)row["target"].ValueString.ToInt();
                moves[moveNum].Data1                        = row["data1"].ValueString.ToInt();
                moves[moveNum].Data2                        = row["data2"].ValueString.ToInt();
                moves[moveNum].Data3                        = row["data3"].ValueString.ToInt();
                moves[moveNum].AdditionalEffectData1        = row["effect_data1"].ValueString.ToInt();
                moves[moveNum].AdditionalEffectData2        = row["effect_data2"].ValueString.ToInt();
                moves[moveNum].AdditionalEffectData3        = row["effect_data3"].ValueString.ToInt();
                moves[moveNum].Accuracy                     = row["accuracy"].ValueString.ToInt();
                moves[moveNum].HitTime                      = row["hit_time"].ValueString.ToInt();
                moves[moveNum].HitFreeze                    = row["hit_freeze"].ValueString.ToBool();
                moves[moveNum].PerPlayer                    = row["per_player"].ValueString.ToBool();
                moves[moveNum].KeyItem                      = row["key_effect"].ValueString.ToInt();
                moves[moveNum].Sound                        = row["sound"].ValueString.ToInt();
                moves[moveNum].AttackerAnim.AnimationType   = (Enums.MoveAnimationType)row["attack_anim_type"].ValueString.ToInt();
                moves[moveNum].AttackerAnim.AnimationIndex  = row["attack_anim_index"].ValueString.ToInt();
                moves[moveNum].AttackerAnim.FrameSpeed      = row["attack_anim_speed"].ValueString.ToInt();
                moves[moveNum].AttackerAnim.Repetitions     = row["attack_anim_cycle"].ValueString.ToInt();
                moves[moveNum].TravelingAnim.AnimationType  = (Enums.MoveAnimationType)row["travel_anim_type"].ValueString.ToInt();
                moves[moveNum].TravelingAnim.AnimationIndex = row["travel_anim_index"].ValueString.ToInt();
                moves[moveNum].TravelingAnim.FrameSpeed     = row["travel_anim_speed"].ValueString.ToInt();
                moves[moveNum].TravelingAnim.Repetitions    = row["travel_anim_cycle"].ValueString.ToInt();
                moves[moveNum].DefenderAnim.AnimationType   = (Enums.MoveAnimationType)row["landed_anim_type"].ValueString.ToInt();
                moves[moveNum].DefenderAnim.AnimationIndex  = row["landed_anim_index"].ValueString.ToInt();
                moves[moveNum].DefenderAnim.FrameSpeed      = row["landed_anim_speed"].ValueString.ToInt();
                moves[moveNum].DefenderAnim.Repetitions     = row["landed_anim_cycle"].ValueString.ToInt();
                moves[moveNum].IsSandboxed                  = row["is_sandboxed"].ValueString.ToBool();
            }
        }
예제 #7
0
        public static void LoadItem(int itemNum, PMDCP.DatabaseConnector.MySql.MySql database)
        {
            if (items.Items.ContainsKey(itemNum) == false)
            {
                items.Items.Add(itemNum, new Item());
            }
            string query = "SELECT name, " +
                           "info, " +
                           "pic, " +
                           "item_type, " +
                           "data1, " +
                           "data2, " +
                           "data3, " +
                           "price, " +
                           "stack_cap, " +
                           "bound, " +
                           "loseable, " +
                           "rarity, " +
                           "req_data1, " +
                           "req_data2, " +
                           "req_data3, " +
                           "req_data4, " +
                           "req_data5, " +
                           "scripted_req, " +
                           "add_hp, " +
                           "add_pp, " +
                           "add_atk, " +
                           "add_def, " +
                           "add_spatk, " +
                           "add_spdef, " +
                           "add_speed, " +
                           "add_exp, " +
                           "attack_speed, " +
                           "recruit_bonus, " +
                           "is_sandboxed, " +
                           "zone_id " +
                           "FROM item WHERE item.num = \'" + itemNum + "\'";

            DataColumnCollection row = database.RetrieveRow(query);

            if (row != null)
            {
                items[itemNum].Name         = row["name"].ValueString;
                items[itemNum].Desc         = row["info"].ValueString;
                items[itemNum].Pic          = row["pic"].ValueString.ToInt();
                items[itemNum].Type         = (Enums.ItemType)row["item_type"].ValueString.ToInt();
                items[itemNum].Data1        = row["data1"].ValueString.ToInt();
                items[itemNum].Data2        = row["data2"].ValueString.ToInt();
                items[itemNum].Data3        = row["data3"].ValueString.ToInt();
                items[itemNum].Price        = row["price"].ValueString.ToInt();
                items[itemNum].StackCap     = row["stack_cap"].ValueString.ToInt();
                items[itemNum].Bound        = row["bound"].ValueString.ToBool();
                items[itemNum].Loseable     = row["loseable"].ValueString.ToBool();
                items[itemNum].Rarity       = row["rarity"].ValueString.ToInt();
                items[itemNum].ReqData1     = row["req_data1"].ValueString.ToInt();
                items[itemNum].ReqData2     = row["req_data2"].ValueString.ToInt();
                items[itemNum].ReqData3     = row["req_data3"].ValueString.ToInt();
                items[itemNum].ReqData4     = row["req_data4"].ValueString.ToInt();
                items[itemNum].ReqData5     = row["req_data5"].ValueString.ToInt();
                items[itemNum].ScriptedReq  = row["scripted_req"].ValueString.ToInt();
                items[itemNum].AddHP        = row["add_hp"].ValueString.ToInt();
                items[itemNum].AddPP        = row["add_pp"].ValueString.ToInt();
                items[itemNum].AddAttack    = row["add_atk"].ValueString.ToInt();
                items[itemNum].AddDefense   = row["add_def"].ValueString.ToInt();
                items[itemNum].AddSpAtk     = row["add_spatk"].ValueString.ToInt();
                items[itemNum].AddSpDef     = row["add_spdef"].ValueString.ToInt();
                items[itemNum].AddSpeed     = row["add_speed"].ValueString.ToInt();
                items[itemNum].AddEXP       = row["add_exp"].ValueString.ToInt();
                items[itemNum].AttackSpeed  = row["attack_speed"].ValueString.ToInt();
                items[itemNum].RecruitBonus = row["recruit_bonus"].ValueString.ToInt();
                items[itemNum].IsSandboxed  = row["is_sandboxed"].ValueString.ToBool();
                items[itemNum].ZoneID       = row["zone_id"].ValueString.ToInt();
            }
        }