예제 #1
0
        public static PartyData LoadCharacterParty(PMDCP.DatabaseConnector.MySql.MySql database, string charID)
        {
            PartyData partyData = new PartyData();

            string query = "SELECT parties.PartyID " +
                           "FROM parties " +
                           "WHERE parties.CharID = \'" + charID + "\';";
            List <DataColumnCollection> rows = database.RetrieveRows(query);

            if (rows != null)
            {
                for (int i = 0; i < rows.Count; i++)
                {
                    partyData.PartyID = rows[i]["PartyID"].ValueString;
                }
            }
            else
            {
                return(null);
            }

            query = "SELECT parties.CharID " +
                    "FROM parties " +
                    "WHERE parties.PartyID = \'" + partyData.PartyID + "\';";
            rows = database.RetrieveRows(query);
            if (rows != null)
            {
                for (int i = 0; i < rows.Count; i++)
                {
                    partyData.Members.Add(rows[i]["CharID"].ValueString);
                }
            }
            return(partyData);
        }
예제 #2
0
        public static void LoadParty(PMDCP.DatabaseConnector.MySql.MySql database, Party partyData)
        {
            string query = "SELECT parties.CharID " +
                           "FROM parties " +
                           "WHERE parties.PartyID = \'" + partyData.PartyID + "\';";
            List <DataColumnCollection> rows = database.RetrieveRows(query);

            if (rows != null)
            {
                for (int i = 0; i < rows.Count; i++)
                {
                    partyData.Members.Add(rows[i]["CharID"].ValueString);
                }
            }
        }
예제 #3
0
        public static List <string> LoadPartyIDList(PMDCP.DatabaseConnector.MySql.MySql database)
        {
            List <string> idList = new List <string>();

            string query = "SELECT parties.PartyID " +
                           "FROM parties;";
            List <DataColumnCollection> rows = database.RetrieveRows(query);

            if (rows != null)
            {
                for (int i = 0; i < rows.Count; i++)
                {
                    if (!idList.Contains(rows[i]["PartyID"].ValueString))
                    {
                        idList.Add(rows[i]["PartyID"].ValueString);
                    }
                }
            }

            return(idList);
        }
예제 #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;
        }