Loot systém

Datum: 22/11/2014 23:47:50

Staženo: 991x

Popis:

~BOT~ id: 286736282


Hodnocení: 4.3/10 (50 hlasy)

Download file:cs

Příkazy:

  • ,exec [blockmultipleexecutions ""loot""
  • ,exec loot

Kód:

using System;
using System.Collections.Generic;
using Phoenix;
using Phoenix.WorldData;

namespace Scripts.DarkParadise
{
    public class Loot
    {
        public const ushort SpidersSilk = 0x0F8D;
        public const ushort Bag = 0x0E76;
        public const ushort Corpse = 0x2006;

        [Executable]
        [BlockMultipleExecutions("loot")]
        public void CutAll()
        {
            UOItem lHand = World.Player.Layers[Layer.LeftHand];
            UOItem rHand = World.Player.Layers[Layer.RightHand];

            UOItem cutter = World.Player.Backpack.AllItems.FindType(0x10E4,0x0B80);

            if (!cutter.Exist) {
                ScriptErrorException.Throw("Cannot find anything to cut with.");
                return;
            }

            foreach (UOItem item in World.Ground) {
                if (item.Graphic == Corpse) {
                    Notoriety notoriety = CorpsesNotoriety.Get(item, 5000);

                            item.WaitTarget();
                            cutter.Use();
                            UO.Wait(1000); // TODO
/*
                    switch (notoriety) {
                        case Notoriety.Unknown:
                            UO.PrintWarning("Unknown notoriety of {0}. Corpse skipped.", item);
                            break;

                        case Notoriety.Criminal:
                        case Notoriety.Murderer:
                        case Notoriety.Neutral:
                            item.WaitTarget();
                            cutter.Use();
                            UO.Wait(1000); // TODO
                            break;

                        default:
                            break;
                    }
*/
                }
            }

            lHand.Equip();
            rHand.Equip();
        }

        private struct ItemType
        {
            public ItemType(Graphic graphic, UOColor color)
            {
                Graphic = graphic;
                Color = color;
            }

            public Graphic Graphic;
            public UOColor Color;
        }

        private List<ItemType> lootTypes;

        public Loot()
        {
            lootTypes = new List<ItemType>();

            /*
            AddType(0x0F8D, UOColor.Invariant); // SS
            AddType(0x0EED, UOColor.Invariant); // Gold Coins
            AddType(0x0F7B, UOColor.Invariant); // BM
            AddType(0x0F7A, UOColor.Invariant); // BP
            AddType(0x0F84, UOColor.Invariant); // GA
            AddType(0x0F85, UOColor.Invariant); // GI
            AddType(0x0F86, UOColor.Invariant); // MR
            AddType(0x0F88, UOColor.Invariant); // NS
            AddType(0x0F8C, UOColor.Invariant); // SA
            AddType(0x0F79, UOColor.Invariant); // Blackmoor
            AddType(0x1bd1, UOColor.Invariant); // Peri
            AddType(0x0F78, UOColor.Invariant); // Batwings
            AddType(0x0F87, UOColor.Invariant); // Eyes of Newt
            AddType(0x14EB, UOColor.Invariant); // Treassure Map
             * */
            AddType(0x0E80, UOColor.Invariant); // Poklad
            AddType(0x0F3F, UOColor.Invariant); // Arrow
            AddType(0x1BFB, UOColor.Invariant); // Bolt
            AddType(0x0E76, UOColor.Invariant); // Pytlik
            AddType(0x097A, UOColor.Invariant); // Alligator Hide
            AddType(0x097B, UOColor.Invariant); // Snake skin
            AddType(0x097C, UOColor.Invariant); // nevim, treba dalsi trofej
            AddType(0x097D, UOColor.Invariant); // nevim, treba dalsi trofej
            AddType(0x097E, 0x0037); // a Wolf Pelt
            AddType(0x1bd1, UOColor.Invariant); // Peri
            /*
            AddType(0x0E34, UOColor.Invariant); // Blank Scroll
            AddType(0x0F20, UOColor.Invariant); // Tourmaline
            AddType(0x0F8E, UOColor.Invariant); // Serpent Scales
            AddType(0x0F79, UOColor.Invariant); // Blackmoor
            AddType(0x0F91, UOColor.Invariant); // Wyrms Heart
            AddType(0x0F83, UOColor.Invariant); // Executioner's Cap
            AddType(0x108A, UOColor.Invariant); // Ring
            AddType(0x1086, UOColor.Invariant); // Bracelet
            AddType(0x1088, UOColor.Invariant); // Neclase
            AddType(0x1848, UOColor.Invariant); // Elixir
            AddType(0x0F7E, UOColor.Invariant); // 
            AddType(0x139A, UOColor.Invariant); // Statue
            AddType(0x0F82, UOColor.Invariant); // 
            AddType(0x0F7D, UOColor.Invariant); // 
            AddType(0x0E9C, UOColor.Invariant); // Drums
            AddType(0x0EB2, UOColor.Invariant); // Harp
            AddType(0x0EB2, UOColor.Invariant); // Lute
            AddType(0x14ED, UOColor.Invariant); // Deed 1
            AddType(0x14EE, UOColor.Invariant); // Deed 2
            AddType(0x0F7F, UOColor.Invariant); // 
            AddType(0x0F7C, UOColor.Invariant); // 
            AddType(0x0F79, UOColor.Invariant); // 
            AddType(0x0F89, UOColor.Invariant); // 
            AddType(0x0F81, UOColor.Invariant); // 
            AddType(0x0FF4, UOColor.Invariant); // knihy
            AddType(0x136C, UOColor.Invariant); // HoDF, Myst. Stone
            // AddType(0x1F13, UOColor.Invariant); // skillpointy
            AddType(0x0F8F, UOColor.Invariant); // 
            AddType(0x0F8B, UOColor.Invariant); //

            AddType(0x1406, 0x031E); // a Stunning Warmace
            AddType(0x0D16, 0x00A3); // a Mystical Mushroom
            AddType(0x0DBD, 0x0B9F); // a Mystical Leaf
            AddType(0x1A9D, 0x0481); // a Mystical Stick
            AddType(0x0F5A, 0x0044); // a Mystic Crystal
            AddType(0x0E73, 0x0B9F); // a Mystical Ball
            AddType(0x0E26, 0x049D); // a Spirit of the Rain
            AddType(0x0F91, 0x014D); // Heart of Rainbow Dragon
            AddType(0x1420, 0x0152); // Cobwebby string
            AddType(0x097E, 0x0037); // a Wolf Pelt
            AddType(0x0CB0, 0x0899); // a Mystical Plant
            AddType(0x0DC3, 0x005B); // a Mystical Flower
            AddType(0x1F03, 0x0771); // Mage's robe
            AddType(0x1F03, 0x0455); // Death's robe, pozor, bere to i obyc roby
            AddType(0x13B9, 0x0480); // Ice Viking Sword
            AddType(0x09D0, 0x09B4); // God's Apple
            AddType(0x13FC, 0x0237); // Elven Heavy Crossbow
            AddType(0x379F, 0x0055); // Elfi tetiva
            AddType(0x108B, 0x0BB5); // a Mystical Beeds
            AddType(0x0DC3, 0x005B); // a Mystical Flower
             * */
        }

        public void AddType(Graphic graphic, UOColor color)
        {
            lootTypes.Add(new ItemType(graphic, color));
        }

        [Executable("loot")]
        [BlockMultipleExecutions("loot")]
        public void Run()
        {
            if (!Aliases.RecevingContainer.IsValid) {
                ScriptErrorException.Throw("RecevingContainer not set.");
            }

            ScriptErrorException.ExceptionEnabled = false;
            World.FindDistance = 6;

            UO.PrintInformation("Loot started");
            CutAll();
            UIManager.Reset();
            LootCollection(World.Ground, true);

            UO.PrintInformation("Loot finished");
        }

        private bool CheckCorpse(UOItem item)
        {
            //                                         male    female  imp     garga
            //ushort[] forbiddenCorpses = new ushort[] { 0x0190, 0x0191, 0x0027, 0x0004 };
            // return Array.IndexOf<ushort>(forbiddenCorpses, item.Amount) < 0;

            Notoriety n = CorpsesNotoriety.Get(item, 2000);
            return n != Notoriety.Innocent && n != Notoriety.Guild && n != Notoriety.Unknown;
        }

        private void LootCollection(ItemsCollection collection, bool ignoreSingleSS)
        {
            foreach (UOItem item in collection) {
                /*
                if (item.Graphic == Bag) {
                    using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(item)) {
                        if (!item.Opened) {
                            item.Use();
                            if (ew.Wait(2000))
                                UO.Wait(500);
                        }
                    }

                    UO.EmptyContainer(1000, item);
                }
                else */
                if (item.Graphic == Corpse) {
                    if (CheckCorpse(item)) {
                        if (!item.Opened) {
                            item.Use();
                            UO.Wait(1000);
                        }

                        LootCollection(item.Items, false);
                    }
                }
                else if (ignoreSingleSS && item.Graphic == SpidersSilk && item.Color == 0 && item.Amount < 2) {
                    continue;
                }
                else if (lootTypes.Contains(new ItemType(item.Graphic, item.Color))) {
                    bool ground = item.Container == 0;
                    int pause = ground ? 250 : 2000;

                    using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(item)) {
                        Journal.Clear();
                        if (item.Grab() && ew.Wait(3000)) {
                            UO.Wait(pause);

                            if (!ground) {
                                Journal.WaitForText(true, 2000, "akce skoncila");
                            }
                        }
                    }

                    UO.Wait(50);
                }
            }
        }
    }
}

Strana: 1,2,3,4,5,6
23 Dec 2020

HTML [url=https://www.google.co.in/]BB CODE[/url] Anchor Text https://www.google.co.in/

yikedot
30 Nov 2020

computer repair near me If you are looking for a computer repair center that can solve all your computer related problems then computer repair near me is your destination. You can visit here and talk to the professionals to resolve your problems while sitting at home.

yikedot
30 Nov 2020

activate.foxsports.com Watch your favorite sports event’s live streaming with your friends & family on your device by entering the activation code of the device at activate.foxsports.com. Follow the activation process and make this possible.

yikedot
30 Nov 2020

showtimeanytime.com/activate Watch all the upcoming and exclusive shows of your favorite platform at one place i.e. showtime anytime. TO watch showtime anytime subscribe to their plan and then enter the activation code of your device at showtimeanytime.com/activate.

yikedot
30 Nov 2020

tntdrama.com/activate TNT drama is known for its huge library of shows on different platforms. You can watch TNT Drama on your device by entering the activation code at tntdrama.com/activate. This will give you access to TNT Drama shows on your device.

yikedot
30 Nov 2020

nbc.com/activate NBC allows you to watch your favorite videos that include live event streaming on your Smart TV without any cable TV connection. All you need to do is to enter the activation code of your device at nbc.com/activate and watch your favorite events’ live streaming.

yikedot
30 Nov 2020

amazon.com/mytv Watch Prime Video original on your smart TV with your family and spend quality time with them. You need t register your device at amazon.com mytv and enjoy streaming your favorite shows and movies as per your schedule.

yikedot
30 Nov 2020

crackle.com/activate Crackle offers exclusive and amazing on-demand video content for the users. This single platform is enough to entertain people with different interests. Enter the activation code of your device at crackle.com/activate and enjoy watching your favorites.

yikedot
30 Nov 2020

hbonow.com/tvcode HBO Now is coming with the Prequal of “Games of Thrones” and you can watch it on your device with your family. All you need to do is to activate HBO Now on your device by entering the activation code at hbonow.com/tvcode.

yikedot
30 Nov 2020

amazon.com/redeem Visit amazon.com/redeem if you want to use your Amazon Gift card value during shopping on the Amazon catalog. You need to get the redeem code of your gift card and use the same code for activation at amazon com redeem.

yikedot
30 Nov 2020

amazon.co.uk/mytv Watch all the latest Prime Video content in the UK on different devices by registering the device at amazon.co.uk/mytv. By this, you will be able to watch your favorite content on your device and you can enjoy it anytime.

yikedot
30 Nov 2020

foxnews.com/connect Fox News allows its users to enter the activation code of their devices at foxnews.com connect. You need to install the Fox News app and signin to find the activation code. Once you activate Fox News on your device you can watch news anytime anywhere.

yikedot
30 Nov 2020

hulu.com/activate Hulu originals can be only watched after subscribing to the Hulu streaming application. After that enter the activation code of your device at hulu.com/activate and enjoy them on your device.

yikedot
30 Nov 2020

amazon.com/mytv Amazon Prime video offered a portal for the users to register their devices to access Prime Video i.e. amazon.com/mytv. Here you can enter the activation code of your device and then enjoy watching your favorite shows.

yikedot
30 Nov 2020

amazon.com/code All the exclusive songs and albums are available on Amazon Prime music and you can access them on any device using your Prime Music account. All you need to do is to enter the activation code at amazon.com code and dive into the musical world.

yikedot
30 Nov 2020

plex.tv/link You can watch different channels on the Plex TV streaming app by activating it on your device. It includes channels for people of all different ages. You need to enter the activation code at plex.tv/link and watch your favorite genre of entertainment.

Strana: 1,2,3,4,5,6

Nový komentář