Ada Kladivo

Datum: 22/11/2014 23:39:48

Staženo: 454x

Popis:

Autor neznámej 


  • Aktuálně: 4.24/10

Hodnocení: 4.2/10 (147 hlasy)

Download file:cs

Příkazy:

  • ,exec adamantium "string ingot"
  • ,exec dust "string dust"

Kód:

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

namespace Scripts.DarkParadise
{

    public class AdaKladivko
    {
        UOItem adaKladivko;

        private const ushort kladivkoGraphic = 0x1438;
        private const ushort kladivkoColor = 0x044C;

        private const ushort ingotGraphic = 0x1BEF;

        private const ushort bloodIngotColor = 0x04C2;
        private const ushort blackIngotColor = 0x0455;
        private const ushort mythIngotColor = 0x052D;

        [Executable("adamantium")]
        public void Premena(string ingot)
        {
            switch (ingot)
            {
                case "blood":
                    PremenaDustu(bloodIngotColor, ingot);
                    break;
                case "black":
                    PremenaDustu(blackIngotColor, ingot);
                    break;
                case "myth":
                    PremenaDustu(mythIngotColor, ingot);
                    break;
                default:
                    UO.PrintWarning("Zadal si uplne naprd parameter");
                    break;
            }
        }


        private void PremenaDustu(ushort ingotColor, string ingotName)
        {
            //kontrola ci vobec mam pri sebe kladivko. najprv v batohu a potom v ruke
            adaKladivko = World.Player.Backpack.AllItems.FindType(kladivkoGraphic, kladivkoColor);

            if (!adaKladivko.Exist)
            {
                adaKladivko = World.Player.Layers[Layer.LeftHand];  //pri obojruckach sa bere v uvahu lava ruka, pri jednoruckach je v pravej zbran a v lavej stit
                if (adaKladivko.Graphic != kladivkoGraphic || adaKladivko.Color != kladivkoColor)
                {
                    UO.PrintWarning("Kde doprdele si nechal Adamantiove kladivo?");
                    return;
                }
            }

        vyhod:
            //kontrola ci vobec mam u seba potrebne ingoty
            UOItem ingoty = World.Player.Backpack.AllItems.FindType(ingotGraphic, ingotColor);

            if (!ingoty.Exist)
            {
                UO.PrintWarning("Bez ingotov to nepojde, nie som Copperfield!");
                return;
            }

            //hodim ingot pod seba a pouzijem na to kladivko
            UO.MoveItem(ingoty, 1, World.Player.X, World.Player.Y, World.Player.Z);
            UO.Wait(500);
            
            UOItem ingotNaZemi = FindIngot(ingotGraphic, ingotColor);
            
            if (!ingotNaZemi.Exist)
            {
                UO.PrintWarning("Ingot sa mi zahadne stratil, skusim vyhodit dalsi");
                goto vyhod;
            }
            
            UO.DeleteJournal();
            UO.WaitTargetObject(ingotNaZemi.Serial);
            adaKladivko.Use();
            UO.Wait(100);

            UO.PrintInformation("{0} ingot premeneny!", ingotName.ToUpper());
        }


        private static UOItem FindIngot(ushort graphic, ushort color)
        {
            UOItem output = new UOItem(Serial.Invalid);
            foreach (UOItem ch in World.Ground)
                if (ch.Graphic == graphic & ch.Color == color)
                    if (ch.Distance < 4 && ch.Distance < output.Distance)
                        output = ch;
            return output;
        }
    }

    public class LootDust
    {
        private const ushort dustGraphic = 0x103D;

        private const ushort bloodDustColor = 0x0280;
        private const ushort blackDustColor = 0x0455;
        private const ushort mythDustColor = 0x052D;

        private const ushort lootPytlikGraphic = 0x0E76;
        private const ushort lootPytlikColor = 0x049A;

        public const ushort bag = 0x0E76;
        public const ushort corpse = 0x2006;

        [Executable("dust")]
        public void Loot(string dust)
        {

            switch (dust)
            {
                case "blood":
                    LootDustem(bloodDustColor, dust);
                    break;
                case "black":
                    LootDustem(blackDustColor, dust);
                    break;
                case "myth":
                    LootDustem(mythDustColor, dust);
                    break;
                default:
                    UO.PrintWarning("Zadal si uplne naprd parameter");
                    break;
            }

        }

        private void LootDustem(ushort dustColor, string dustName)
        {

            //kontrola ci vobec mam pri sebe premeneny dust, ktory chcem pouzit
            UOItem dust = World.Player.Backpack.AllItems.FindType(dustGraphic, dustColor);

            if (!dust.Exist)
            {
                UO.PrintWarning("Na mamon potrebujes dust predsa!!");
                return;
            }

            /*
             *  Najdem otvorenu mrtvolu na pouzitie 
             *  POZOR!! ak je otvorenych viac tiel bere v uvahu vzdy to posledne, ktore najde
             */
            UOItem openedCorpse = FindOpenedCorpse();

            if (openedCorpse.Serial == Serial.Invalid)
            {
                UO.PrintWarning("Ziadna otvorena mrtvolka v dosahu nie je!");
                return;
            }

            //vyhladam si loot pytlik a pouzijem na neho dust
            UOItem lootPytlik = new UOItem(Serial.Invalid);

            foreach (UOItem item in openedCorpse.Items)
            {
                if (item.Graphic == lootPytlikGraphic && item.Color == lootPytlikColor)
                {
                    lootPytlik = item;
                    //return;
                }
            }

            if (lootPytlik.Serial != Serial.Invalid)
            {
                UO.DeleteJournal();
                UO.WaitTargetObject(lootPytlik.Serial);
                dust.Use();
                UO.Wait(100);

                UO.PrintInformation("{0} dust bol pouzity na pytlik {1}!", dustName.ToUpper(), lootPytlik.Serial);
            }

            //nakoniec pytlicek lootnem
            LootniPytlik(lootPytlik);

        }

        private static void LootniPytlik(UOItem pytlik)
        {
            bool ground = pytlik.Container == 0;
            int pause = ground ? 250 : 2000;

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

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

            UO.Wait(50);
        }

        private static UOItem FindOpenedCorpse()
        {
            UOItem output = new UOItem(Serial.Invalid);

            foreach (UOItem ch in World.Ground)
                if (ch.Graphic == corpse & ch.Opened)
                {
                    Notoriety notoriety = CorpsesNotoriety.Get(ch, 5000);

                    switch (notoriety)
                    {
                        case Notoriety.Unknown:
                            UO.PrintWarning("Unknown notoriety of {0}. Corpse skipped.", ch);
                            break;
                        case Notoriety.Neutral:
                            if (ch.Distance < 4 && ch.Distance < output.Distance)
                                output = ch;
                            break;
                        default:
                            break;
                    }
                }

            return output;
        }

    }
}
Streuselkuchen
19 Dec 2025

Discover สล็อตpg secure casinos offering fast deposits and พีจีสล๊อต withdrawals.

Nový komentář