public override void OnSpeech(SpeechEventArgs e)
        {
            #region Here is the list of Random Words you can use
            string dat_Facet = TalkingNPCsXMLReader.RandomName("dat_Facet");
            string dat_TownRegion = TalkingNPCsXMLReader.RandomName("dat_TownRegion");
            string dat_DungeonRegion = TalkingNPCsXMLReader.RandomName("dat_DungeonRegion");
            string dat_NoHousingRegion = TalkingNPCsXMLReader.RandomName("dat_NoHousingRegion");
            string dat_Other = TalkingNPCsXMLReader.RandomName("dat_Other");
            string dat_Shrine = TalkingNPCsXMLReader.RandomName("dat_Shrine");
            string dat_article1 = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_article2 = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_noun1 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun2 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun3 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun4 = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_verb1 = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verb2 = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verbing1 = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verbing2 = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verb3rd1 = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verb3rd2 = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verbed1 = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_verbed2 = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_preposition1 = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_preposition2 = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_adj1 = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_adj2 = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_Greeting = TalkingNPCsXMLReader.RandomName("dat_Greeting");
            string dat_Language1 = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language2 = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language3 = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Armor = TalkingNPCsXMLReader.RandomName("dat_Armor");
            string dat_Creature1 = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Creature2 = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Room1 = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Room2 = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Furniture1 = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Furniture2 = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Liquid1 = TalkingNPCsXMLReader.RandomName("dat_Liquid");
            string dat_Number1 = TalkingNPCsXMLReader.RandomName("dat_Number");
            string dat_PlayingCards = TalkingNPCsXMLReader.RandomName("dat_PlayingCards");
            string dat_MinocShop = TalkingNPCsXMLReader.RandomName("dat_MinocShop");
            string dat_MinocShopQuestItem = TalkingNPCsXMLReader.RandomName("dat_MinocShopQuestItem");
            #endregion

            string playername = e.Mobile.Name;
            string speech = e.Speech.ToLower();

            #region Player says "Hi"
            for (int i = 0; i < Greetings.Length; i++)
                if (speech == Greetings[i])
                {
                    switch (Utility.Random(4))  //picks one of the following
                    {
                        case 0:
                            { Say(String.Format("{0}, {1} found {2}, would you like to look for something too?", dat_Greeting, dat_Creature1, dat_Armor)); break; }
                        case 1:
                            { Say(String.Format("A quest for {0} {1}?  Just say 'YES'!", dat_adj1, playername)); break; }
                        case 2:
                            { Say(String.Format("{0} I have may quest for you, do you wish to join?", playername)); break; }
                        case 3:
                            { Say(String.Format("{0}, there are so many quest, just ask for one.", playername)); break; }
                    }
                }
            #endregion

            #region Play says "Yes" or some other response
            for (int i = 0; i < Response.Length; i++)
                if (speech == Response[i])
                {
                    if (m_ItemHasBeenReturned == true)
                    {
                        switch (Utility.Random(4))  //picks one of the following
                        {
                            case 0:
                                {
                                    playername = char.ToUpper(playername[0]) + playername.Substring(1);
                                    string TheQuest = String.Format("QUEST: (1 Hour Limit) - {0} is searching for a {1} near the {2} in Minoc.", playername, dat_MinocShopQuestItem, dat_MinocShop);
                                    World.Broadcast(0x35, true, TheQuest);
                                    e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                                    break;
                                }
                            case 1:
                                {
                                    string TheQuest = String.Format("QUEST: (1 Hour Limit) - Find the {0} near the {1} in Minoc and return it to {2}.", dat_MinocShopQuestItem, dat_MinocShop, playername);
                                    World.Broadcast(0x35, true, TheQuest);
                                    e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                                    break;
                                }
                            case 2:
                                {
                                    string TheQuest = String.Format("QUEST: (1 Hour Limit) - Help {0} in Minoc find the {1} near the {2}.", playername, dat_MinocShopQuestItem, dat_MinocShop);
                                    World.Broadcast(0x35, true, TheQuest);
                                    e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                                    break;
                                }
                            case 3:
                                {
                                    string TheQuest = String.Format("QUEST: (1 Hour Limit) - Lost in Minoc, is a {0}.  Said to be near the {1}, seek out {2} for more information.", dat_MinocShopQuestItem, dat_MinocShop, playername);
                                    World.Broadcast(0x35, true, TheQuest);
                                    e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                                    break;
                                }
                        }

                        //Choose Item Location
                        #region Randomly Pick Location
                        switch (dat_MinocShop)  //picks one of the following
                        {
                            case "Warrior's Battle Gear":
                                x = 2525;
                                y = 578;
                                z = 0;
                                break;

                            case "Healing Hand":
                                x = 2576;
                                y = 603;
                                z = 0;
                                break;

                            case "Bank of Minoc":
                                x = 2505;
                                y = 560;
                                z = 0;
                                break;

                            case "The Forgery":
                                x = 2470;
                                y = 569;
                                z = 5;
                                break;

                            case "The Slaughtered Cow":
                                x = 2472;
                                y = 458;
                                z = 15;
                                break;

                            case "Gears and Gadgets":
                                x = 2472;
                                y = 458;
                                z = 15;
                                break;

                            case "The Oak Throne":
                                x = 2510;
                                y = 482;
                                z = 15;
                                break;

                            case "The Stretched Hide":
                                x = 2523;
                                y = 536;
                                z = 0;
                                break;

                            case "The Barnacle":
                                x = 2470;
                                y = 413;
                                z = 15;
                                break;

                            case "Minoc Town Hall":
                                x = 2428;
                                y = 536;
                                z = 0;
                                break;

                            case "The Mystical Lute":
                                x = 2432;
                                y = 555;
                                z = 0;
                                break;

                            case "The New World Order":
                                x = 2482;
                                y = 440;
                                z = 15;
                                break;

                            case "The Old Miners' Supplies":
                                x = 2459;
                                y = 432;
                                z = 15;
                                break;

                            case "The Golden Pick Axe":
                                x = 2500;
                                y = 440;
                                z = 0;
                                break;

                            case "The Survival Shop":
                                x = 2534;
                                y = 560;
                                z = 0;
                                break;

                            case "The Matewan":
                                x = 2459;
                                y = 492;
                                z = 15;
                                break;

                            case "Stables":
                                x = 2521;
                                y = 379;
                                z = 23;
                                break;

                            case "Counselor's Guild":
                                x = 2436;
                                y = 443;
                                z = 15;
                                break;

                            default:  //if all else fails drop item near by
                                {
                                    x = Location.X + Utility.RandomMinMax(-5, 5);
                                    y = Location.Y + Utility.RandomMinMax(-5, 5);
                                    z = Map.GetAverageZ(x, y);
                                    break;
                                }
                        #endregion

                        }

                        x = x + Utility.RandomMinMax(-5, 5);
                        y = y + Utility.RandomMinMax(-5, 5);

                        if (Map.CanFit(x, y, Location.Z, 1))
                        {
                            Item item = new OrnateAxe();
                            item.Name = dat_MinocShopQuestItem;
                            item.MoveToWorld(new Point3D(x, y, Location.Z), Map);
                            m_ItemHasBeenReturned = false;
                            QuestGiverItemTimer t = new QuestGiverItemTimer();
                            t.Start();
                        }
                        else if (Map.CanFit(x, y, z, 1))
                        {
                            Item item = new OrnateAxe();
                            item.Name = dat_MinocShopQuestItem;
                            item.MoveToWorld(new Point3D(x, y, z), Map);
                            m_ItemHasBeenReturned = false;
                            QuestGiverItemTimer t = new QuestGiverItemTimer();
                            t.Start();
                        }
                    }
                }
            #endregion
        }
コード例 #2
0
        public override void OnSpeech(SpeechEventArgs e)
        {
            #region Here is the list of Random Words you can use
            string dat_Facet              = TalkingNPCsXMLReader.RandomName("dat_Facet");
            string dat_TownRegion         = TalkingNPCsXMLReader.RandomName("dat_TownRegion");
            string dat_DungeonRegion      = TalkingNPCsXMLReader.RandomName("dat_DungeonRegion");
            string dat_NoHousingRegion    = TalkingNPCsXMLReader.RandomName("dat_NoHousingRegion");
            string dat_Other              = TalkingNPCsXMLReader.RandomName("dat_Other");
            string dat_Shrine             = TalkingNPCsXMLReader.RandomName("dat_Shrine");
            string dat_article1           = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_article2           = TalkingNPCsXMLReader.RandomName("dat_article");
            string dat_noun1              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun2              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun3              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_noun4              = TalkingNPCsXMLReader.RandomName("dat_noun");
            string dat_verb1              = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verb2              = TalkingNPCsXMLReader.RandomName("dat_verb");
            string dat_verbing1           = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verbing2           = TalkingNPCsXMLReader.RandomName("dat_verbing");
            string dat_verb3rd1           = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verb3rd2           = TalkingNPCsXMLReader.RandomName("dat_verb3rd");
            string dat_verbed1            = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_verbed2            = TalkingNPCsXMLReader.RandomName("dat_verbed");
            string dat_preposition1       = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_preposition2       = TalkingNPCsXMLReader.RandomName("dat_preposition");
            string dat_adj1               = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_adj2               = TalkingNPCsXMLReader.RandomName("dat_adj");
            string dat_Greeting           = TalkingNPCsXMLReader.RandomName("dat_Greeting");
            string dat_Language1          = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language2          = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Language3          = TalkingNPCsXMLReader.RandomName("dat_Language");
            string dat_Armor              = TalkingNPCsXMLReader.RandomName("dat_Armor");
            string dat_Creature1          = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Creature2          = TalkingNPCsXMLReader.RandomName("dat_Creature");
            string dat_Room1              = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Room2              = TalkingNPCsXMLReader.RandomName("dat_Room");
            string dat_Furniture1         = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Furniture2         = TalkingNPCsXMLReader.RandomName("dat_Furniture");
            string dat_Liquid1            = TalkingNPCsXMLReader.RandomName("dat_Liquid");
            string dat_Number1            = TalkingNPCsXMLReader.RandomName("dat_Number");
            string dat_PlayingCards       = TalkingNPCsXMLReader.RandomName("dat_PlayingCards");
            string dat_MinocShop          = TalkingNPCsXMLReader.RandomName("dat_MinocShop");
            string dat_MinocShopQuestItem = TalkingNPCsXMLReader.RandomName("dat_MinocShopQuestItem");
            #endregion

            string playername = e.Mobile.Name;
            string speech     = e.Speech.ToLower();

            #region Player says "Hi"
            for (int i = 0; i < Greetings.Length; i++)
            {
                if (speech == Greetings[i])
                {
                    switch (Utility.Random(4))  //picks one of the following
                    {
                    case 0:
                    { Say(String.Format("{0}, {1} found {2}, would you like to look for something too?", dat_Greeting, dat_Creature1, dat_Armor)); break; }

                    case 1:
                    { Say(String.Format("A quest for {0} {1}?  Just say 'YES'!", dat_adj1, playername)); break; }

                    case 2:
                    { Say(String.Format("{0} I have may quest for you, do you wish to join?", playername)); break; }

                    case 3:
                    { Say(String.Format("{0}, there are so many quest, just ask for one.", playername)); break; }
                    }
                }
            }
            #endregion

            #region Play says "Yes" or some other response
            for (int i = 0; i < Response.Length; i++)
            {
                if (speech == Response[i])
                {
                    if (m_ItemHasBeenReturned == true)
                    {
                        QuestGiverItemTimer t = new QuestGiverItemTimer();
                        t.Start();

                        switch (Utility.Random(4))  //picks one of the following
                        {
                        case 0:
                        {
                            playername = char.ToUpper(playername[0]) + playername.Substring(1);
                            string TheQuest = String.Format("QUEST: ({0} Minute Limit) - {1} is searching for a {2} near the {3} in Minoc.  Find it before {4} and return it to the Quest Giver.", m_CountDown, playername, dat_MinocShopQuestItem, dat_MinocShop, playername);
                            World.Broadcast(0x35, true, TheQuest);
                            e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                            break;
                        }

                        case 1:
                        {
                            string TheQuest = String.Format("QUEST: ({0} Minute Limit) - Find the {1} near the {2} in Minoc and return it to the Quest Giver, before {3} does.", m_CountDown, dat_MinocShopQuestItem, dat_MinocShop, playername);
                            World.Broadcast(0x35, true, TheQuest);
                            e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                            break;
                        }

                        case 2:
                        {
                            string TheQuest = String.Format("QUEST: ({0} Minute Limit) - Help {1} in Minoc find the {2} near the {3}, return it to the Quest Giver.", m_CountDown, playername, dat_MinocShopQuestItem, dat_MinocShop);
                            World.Broadcast(0x35, true, TheQuest);
                            e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                            break;
                        }

                        case 3:
                        {
                            string TheQuest = String.Format("QUEST: ({0} Minute Limit) - Lost in Minoc, is a {1}.  Said to be near the {2}, {3} is seeking it out.  Are you?  Take it to the Quest Giver.", m_CountDown, dat_MinocShopQuestItem, dat_MinocShop, playername);
                            World.Broadcast(0x35, true, TheQuest);
                            e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                            break;
                        }
                        }

                        //Choose Item Location
                        #region Randomly Pick Location
                        switch (dat_MinocShop)  //picks one of the following
                        {
                        case "Warrior's Battle Gear":
                            x = 2525;
                            y = 578;
                            z = 0;
                            break;

                        case "Healing Hand":
                            x = 2576;
                            y = 603;
                            z = 0;
                            break;

                        case "Bank of Minoc":
                            x = 2505;
                            y = 560;
                            z = 0;
                            break;

                        case "The Forgery":
                            x = 2470;
                            y = 569;
                            z = 5;
                            break;

                        case "The Slaughtered Cow":
                            x = 2472;
                            y = 458;
                            z = 15;
                            break;

                        case "Gears and Gadgets":
                            x = 2472;
                            y = 458;
                            z = 15;
                            break;

                        case "The Oak Throne":
                            x = 2510;
                            y = 482;
                            z = 15;
                            break;

                        case "The Stretched Hide":
                            x = 2523;
                            y = 536;
                            z = 0;
                            break;

                        case "The Barnacle":
                            x = 2470;
                            y = 413;
                            z = 15;
                            break;

                        case "Minoc Town Hall":
                            x = 2428;
                            y = 536;
                            z = 0;
                            break;

                        case "The Mystical Lute":
                            x = 2432;
                            y = 555;
                            z = 0;
                            break;

                        case "The New World Order":
                            x = 2482;
                            y = 440;
                            z = 15;
                            break;

                        case "The Old Miners' Supplies":
                            x = 2459;
                            y = 432;
                            z = 15;
                            break;

                        case "The Golden Pick Axe":
                            x = 2500;
                            y = 440;
                            z = 0;
                            break;

                        case "The Survival Shop":
                            x = 2534;
                            y = 560;
                            z = 0;
                            break;

                        case "The Matewan":
                            x = 2459;
                            y = 492;
                            z = 15;
                            break;

                        case "Stables":
                            x = 2521;
                            y = 379;
                            z = 23;
                            break;

                        case "Counselor's Guild":
                            x = 2436;
                            y = 443;
                            z = 15;
                            break;

                        default:      //if all else fails drop item near by
                        {
                            x = Location.X + Utility.RandomMinMax(-5, 5);
                            y = Location.Y + Utility.RandomMinMax(-5, 5);
                            z = Map.GetAverageZ(x, y);
                            break;
                        }
                            #endregion
                        }

                        x = x + Utility.RandomMinMax(-5, 5);
                        y = y + Utility.RandomMinMax(-5, 5);

                        if (Map.CanFit(x, y, Location.Z, 1))
                        {
                            Item item = new OrnateAxe();
                            item.Name = dat_MinocShopQuestItem;
                            item.MoveToWorld(new Point3D(x, y, Location.Z), Map);
                            m_ItemHasBeenReturned = false;
                        }
                        else if (Map.CanFit(x, y, z, 1))
                        {
                            Item item = new OrnateAxe();
                            item.Name = dat_MinocShopQuestItem;
                            item.MoveToWorld(new Point3D(x, y, z), Map);
                            m_ItemHasBeenReturned = false;
                        }
                    }
                    else
                    {
                        e.Mobile.SendGump(new QuestTemplate(dat_MinocShopQuestItem, TheQuest));
                        Say(String.Format("The quest item has not been found. "));
                    }
                }
            }
            #endregion
        }