예제 #1
0
        public void UseMount(int timeout)
        {
            if (World.Player.Layers[Layer.Mount].ExistCust())
            {
                youSeeMountText = null;

                Journal.EntryAdded += Journal_EntryAdded;
                underMount          = World.Player.Layers[Layer.Mount].Serial;
                World.Player.Layers[Layer.Mount].Click();
                World.Player.Use();
                Game.Wait(250);
                Journal.EntryAdded -= Journal_EntryAdded;
            }
            else if (Mount.IsValidCust() && new UOObject(Mount).ExistCust())
            {
                youSeeMountText = null;
                underMount      = Serial.Invalid;
                UO.PrintObject(Mount, Game.Val_LightGreen, "[Mount]");
                UO.UseObject(Mount);
            }
            else
            {
                List <UOCharacter> chars = new List <UOCharacter>();
                chars.AddRange(World.Characters.Where(ch => ch.Distance < 8 && ch.Serial != World.Player.Serial && (ch.Renamable || Game.IsMob(ch.Serial))).OrderBy(ch => ch.Distance).ToArray());

                bool mountFound = false;
                foreach (UOCharacter ch in chars)
                {
                    if (ItemLibrary.IsGraphicFromList(ch.Model, ItemLibrary.MountTypes.GraphicArray))
                    {
                        Mount = ch;
                        UO.PrintObject(Mount, Game.Val_LightGreen, "[Mount]");
                        ch.Use();
                        mountFound = true;
                        break;
                    }
                }

                if (!mountFound)
                {
                    UOItem sh = null;
                    if (World.Player.Backpack.AllItems.FindType(0x211F).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x211F);
                    }
                    else if (World.Player.Backpack.AllItems.FindType(0x2121).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x2121);
                    }
                    else if (World.Player.Backpack.AllItems.FindType(0x20F6).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x20F6);
                    }
                    else if (World.Player.Backpack.AllItems.FindType(0x2136).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x2136);
                    }
                    else if (World.Player.Backpack.AllItems.FindType(0x2124).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x2124);
                    }
                    else if (World.Player.Backpack.AllItems.FindType(0x2135).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x2135);
                    }
                    else if (World.Player.Backpack.AllItems.FindType(0x2137).Exist)
                    {
                        sh = World.Player.Backpack.AllItems.FindType(0x2137);
                    }


                    //  0x20F6

                    if (sh != null)
                    {
                        sh.Use();
                        UO.Warmode(false);
                        Game.Wait(250 + Core.Latency);
                    }

                    chars.Clear();
                    chars.AddRange(World.Characters.Where(ch => ch.Distance < 8 && ch.Serial != World.Player.Serial).OrderBy(ch => ch.Distance).ToArray());

                    foreach (UOCharacter ch in chars)
                    {
                        if (ItemLibrary.IsGraphicFromList(ch.Model, ItemLibrary.MountTypes.GraphicArray))
                        {
                            Mount = ch;
                            UO.PrintObject(Mount, Game.Val_LightGreen, "[Mount]");
                            ch.Use();
                            mountFound = true;
                            break;
                        }
                    }
                }

                if (!mountFound)
                {
                    World.Player.PrintMessage("Neni Mount", Game.Val_LightGreen);
                }
            }
        }