Chodici mining, vyhazovani + taveni

Skripty týkající se tohoto externího programu

Moderátor: Caleb

Odpovědět
Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07 zář 2006 19:19
Kontaktovat uživatele:

Chodici mining, vyhazovani + taveni

Příspěvek od Wizzy »

Download vsech skriptu mnou uvedenych: http://dl.dropbox.com/u/7651700/fena/wizzy.cs
Objects.dll: http://dl.dropbox.com/u/7651700/fena/Objects.dll


,exec mining
- kopie chodiciho miningu do yoka = obchazi prekazky
- musite si nastavit co chcete vyhazovat a co si chcete nechavat
- klasicky pri prevazeni hraje zvuk

,exec taveni
- zamerte forge
- vsechno :p

Kód: Vybrat vše

[Executable]
public void mining()
{
    ushort[] vyhazovat = new ushort[18];
    //1 vyhazovat
    //0 nechavat si
    vyhazovat[0] = 1; //Iron                              
    vyhazovat[1] = 1; //Copper                              
    vyhazovat[2] = 0; //Bronze                              
    vyhazovat[3] = 1; //Silver                              
    vyhazovat[4] = 1; //Shadow                              
    vyhazovat[5] = 1; //Rose                              
    vyhazovat[6] = 1; //Golden                              
    vyhazovat[7] = 0; //Verite                              
    vyhazovat[8] = 1; //Valorite                            
    vyhazovat[9] = 0; //Blood Rock                            
    vyhazovat[10] = 0; //Black Rock                            
    vyhazovat[11] = 0; //Mytheril                            
    vyhazovat[12] = 0; //Star Sapphire                        
    vyhazovat[13] = 0; //Emerald                          
    vyhazovat[14] = 0; //Citrine                            
    vyhazovat[15] = 0; //Amethyst                            
    vyhazovat[16] = 0; //Ruby                              
    vyhazovat[17] = 0; //Diamond   

    ushort[] barva = new ushort[18];
    barva[0] = 0x0000; //Iron 
    barva[1] = 0x0289; //Copper 
    barva[2] = 0x01BF; //Bronze 
    barva[3] = 0x0482; //Silver 
    barva[4] = 0x0322; //Shadow 
    barva[5] = 0x0665; //Rose 
    barva[6] = 0x0160; //Golden 
    barva[7] = 0x01CB; //Verite 
    barva[8] = 0x0253; //Valorite 
    barva[9] = 0x04C2; //Blood Rock 
    barva[10] = 0x0455; //Black Rock 
    barva[11] = 0x052D; //Mytheril 
    barva[12] = 0x0006; //Star Sapphire 
    barva[13] = 0x0041; //Emerald 
    barva[14] = 0x002C; //Citrine 
    barva[15] = 0x0015; //Amethyst 
    barva[16] = 0x0027; //Ruby 
    barva[17] = 0x03E9; //Diamond 

    ushort[] typ_ore = new ushort[4];
    typ_ore[0] = 0x19B7; // 1
    typ_ore[1] = 0x19BA; // 2
    typ_ore[2] = 0x19B8; // 3
    typ_ore[3] = 0x19B9; // 4+

    if (World.Player.Layers[Layer.Mount].Exist)
    {
        UO.Print(SpeechFont.Bold, 0x0481, "Na jezditku nelze kopat, slejzame!");
        World.Player.Use();
        UO.Wait(500);
        UO.Say("All Stop");
    }

    while (!World.Player.Dead)
    {
        if ((World.Player.Backpack.AllItems.Count(0x0E85, 0x0000) > 0) || (World.Player.Layers[Layer.RightHand].Graphic == 0x0E85))
        {
            UO.DeleteJournal();
            UO.Print("Kopu na {0},{1},{2}", World.Player.X, World.Player.Y, World.Player.Z);
            UO.WaitTargetTile(World.Player.X, World.Player.Y, World.Player.Z, 0);
            UO.UseType(0x0E85);
            UO.Wait(3500);

            Journal.WaitForText("There is no ore here to mine.", "in rock", "You put the", "It is too heavy..", "You loosen some rocks");
            if (UO.InJournal("There is no ore here to mine.") || UO.InJournal("in rock"))
            {
                for (int i = 0; i < 18; i++)
                {
                    if (vyhazovat[i] == 1)
                    {
                        for (int o = 0; o < 4; o++)
                        {
                            if (World.Player.Backpack.AllItems.Count(typ_ore[o], barva[i]) > 0)
                            {
                                UO.MoveItem(World.Player.Backpack.AllItems.FindType(typ_ore[o], barva[i]), 100, World.Player.X, World.Player.Y, World.Player.Z);
                                UO.Wait(500);
                            }
                        }
                    }
                }
                minpohyb();
                return;
            }
            if (UO.InJournal("It is too heavy..")) UO.PlayWav("c:\\windows\\media\\ringin.wav");
           if (UO.InJournal("You put the"))
            {
                for (int i = 0; i < 18; i++)
                {
                    if (vyhazovat[i] == 1)
                    {
                        for (int o = 0; o < 4; o++)
                        {
                            if (World.Player.Backpack.AllItems.Count(typ_ore[o], barva[i]) > 0)
                            {
                                UO.MoveItem(World.Player.Backpack.AllItems.FindType(typ_ore[o], barva[i]), 100, World.Player.X, World.Player.Y, World.Player.Z);
                                UO.Wait(500);
                                minpohyb();
                                return;
                            }
                        }
                    }
                }
           }
        
        }
        else
        {
            UO.PrintWarning("Nemas krumpace!");
            return;
        }
    }
}

public void minpohyb()
{
   int x = 0;
   int y = 0;

   UO.DeleteJournal();
   x = World.Player.X;
   UO.Press(System.Windows.Forms.Keys.Home);
   UO.Wait(250);
   if (World.Player.X == x) UO.Press(System.Windows.Forms.Keys.Home);
   UO.Wait(250);
    if (World.Player.X == x)
    {
        while (x <= World.Player.X)
        {
            UO.Press(System.Windows.Forms.Keys.PageDown);
            UO.Wait(250);
            if (World.Player.X == x) UO.Press(System.Windows.Forms.Keys.PageDown);
            UO.Wait(250);
            x = x + 1;
        }

        y = World.Player.Y;
        UO.Press(System.Windows.Forms.Keys.End);
        UO.Wait(250);
        if (World.Player.Y == y) UO.Press(System.Windows.Forms.Keys.End);
        UO.Wait(250);
            if (World.Player.Y == y)
            {
                while (World.Player.Y != (y+1))
                {
                    UO.Press(System.Windows.Forms.Keys.Home);
                    UO.Wait(250);
                    if (World.Player.Y == y) UO.Press(System.Windows.Forms.Keys.Home);
                    UO.Wait(250);
                    UO.Press(System.Windows.Forms.Keys.End);
                    UO.Wait(250);
                    if (World.Player.Y == y) UO.Press(System.Windows.Forms.Keys.End);
                    UO.Wait(250);
                }
            }
        x = World.Player.X;
        while (x <= World.Player.X)
        {
            UO.Press(System.Windows.Forms.Keys.PageDown);
            UO.Wait(250);
            if (World.Player.X == x) UO.Press(System.Windows.Forms.Keys.PageDown);
            UO.Wait(250);
            x = x + 1;
        }
    }
    mining();
}

[Executable]
public void taveni()
{

    ushort[] barva = new ushort[18];
    barva[0] = 0x0000; //Iron 
    barva[1] = 0x0289; //Copper 
    barva[2] = 0x01BF; //Bronze 
    barva[3] = 0x0482; //Silver 
    barva[4] = 0x0322; //Shadow 
    barva[5] = 0x0665; //Rose 
    barva[6] = 0x0160; //Golden 
    barva[7] = 0x01CB; //Verite 
    barva[8] = 0x0253; //Valorite 
    barva[9] = 0x04C2; //Blood Rock 
    barva[10] = 0x0455; //Black Rock 
    barva[11] = 0x052D; //Mytheril 
    barva[12] = 0x0006; //Star Sapphire 
    barva[13] = 0x0041; //Emerald 
    barva[14] = 0x002C; //Citrine 
    barva[15] = 0x0015; //Amethyst 
    barva[16] = 0x0027; //Ruby 
    barva[17] = 0x03E9; //Diamond 

    ushort[] typ_ore = new ushort[4];
    typ_ore[0] = 0x19B7; // 1
    typ_ore[1] = 0x19BA; // 2
    typ_ore[2] = 0x19B8; // 3
    typ_ore[3] = 0x19B9; // 4+

    UO.Print(SpeechFont.Bold, 0x0b94, "Zamer forge");
    UOItem item = World.GetItem(UIManager.TargetObject());

    for (int i = 0; i < 18; i++)
    {
            for (int o = 0; o < 4; o++)
            {
                if (World.Player.Backpack.AllItems.Count(typ_ore[o], barva[i]) > 0)
                {
                    UO.Print("Tavim!");
                    UO.WaitTargetType(typ_ore[o], barva[i]);
                    UO.UseObject(item);
                    UO.Wait(1000);
                }
            }
    }
    UO.Print("Vsechno pretaveno!");

}
Naposledy upravil(a) Wizzy dne 27 črc 2010 21:11, celkem upraveno 1 x.
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Uživatelský avatar
Stich
Paper Elemental
Paper Elemental
Příspěvky: 327
Registrován: 28 úno 2009 17:34
Bydliště: Pri trhu
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Stich »

wizzy ja te zeru :D
Mate radi ptacky?
Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07 zář 2006 19:19
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Wizzy »

Ponevadz se mi objevil dotaz v PMce napisu to sem.

Pokud vam skript hazi error s chybejicim "SystemLinq" nemate v hlavicce souboru pridane co je napsane v postu


Pokud vase fena nezna playwav a press, stahnete si novou 'officialne povolenou' verzi feny.


(no a kdo by chtel stejnak jet na starsi verzi tak mi napiste na icq protoze upravenej skript na ni mam :p)
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Uživatelský avatar
Smoce
Paper Elemental
Paper Elemental
Příspěvky: 349
Registrován: 12 úno 2009 21:53
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Smoce »

mimochodem .. kdyby někomu vadilo, že si to nebere z baglu krumpač, když se rozbije jako mě, tak si přidejte do zdrojáku tuhle podmínku...

Kód: Vybrat vše

 if (World.Player.Layers[Layer.RightHand].Graphic != 0x0E85)
            {
            UO.WaitTargetCancel();
            UO.UseType(0x0E85);
            UO.Wait(3500);
            }
Depka
Book Snake
Book Snake
Příspěvky: 101
Registrován: 18 zář 2011 14:24
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Depka »

mam to tam pridany a stejne to nenasazuje,nevite co s tim nekdo?
Uživatelský avatar
krysakrys
Elder Letter
Elder Letter
Příspěvky: 233
Registrován: 06 srp 2016 21:12

Re: Chodici mining, vyhazovani + taveni

Příspěvek od krysakrys »

1. odbinduj si Num X klavesy ve hre v options (delete)

a tady je funkcni mining.
- Krumpac to nasazuje automaticky.
- Hned na zacatku je rada nastaveni, celkem 3. Prvni je maximalni vaha pokud to ma kopat, 500 je standartne jako defaultni. Dale zmenenim true/false vybirate pro jednotlivou rudu, kterou chcete vykopavat A kterou chcete sbirat. Sbiram iron? tak tedy mu nastavim true, true.

prikaz:
,exec mine
,exec smelt

Kód: Vybrat vše

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

namespace Phoenix.Script {
    
    [RuntimeObject]
    public class Mining {
    
        protected int maxWeight = 500;
    
        // vykovapat, brat
        protected bool[][] process = {
            new bool[] {true, false}, // iron
            new bool[] {true, false}, // copper
            new bool[] {true, false}, // bronze
            new bool[] {true, true}, // silver
            new bool[] {true, true}, // shadow
            new bool[] {true, true}, // rose
            new bool[] {true, true}, // golden
            new bool[] {true, true}, // verite
            new bool[] {true, true}, // valorite
            new bool[] {true, true}, // blood Rock
            new bool[] {true, true}, // black Rock
            new bool[] {true, true}, // mytheril
            new bool[] {true, true}, // star Sapphire
            new bool[] {true, true}, // emerald
            new bool[] {true, true}, // citrine
            new bool[] {true, true}, // amethyst
            new bool[] {true, true}, // ruby
            new bool[] {true, true}  // diamond
        };
        
        protected ushort pickaxe = 0x0e85;
        protected ushort[] forge = {0x0FB1, 0x0000};
        
        // ------------------------------
    
        protected ushort[] colors = {
            0x0000, // iron
            0x0289, // copper
            0x01BF, // bronze
            0x0482, // silver
            0x0322, // shadow
            0x0665, // rose
            0x0160, // golden
            0x01CB, // verite
            0x0253, // valorite
            0x04C2, // blood Rock
            0x0455, // black Rock
            0x052D, // mytheril
            0x0006, // star Sapphire
            0x0041, // emerald
            0x002C, // citrine
            0x0015, // amethyst
            0x0027, // ruby
            0x03E9  // diamond
        };
        
        protected string[] journals = {
            "You put the Iron",
            "You put the Copper",
            "You put the Bronze",
            "You put the Silver",
            "You put the Shadow",
            "You put the Rose",
            "You put the Golden",
            "You put the Verite",
            "You put the Valorite",
            "You put the Blood Rock",
            "You put the Black Rock",
            "You put the Mytheril",
            "You put the Star Sapphire",
            "You put the Emerald",
            "You put the Citrine",
            "You put the Amethys",
            "You put the Ruby",
            "You put the Diamond"
        };
    
        protected ushort[] ores = {
               0x19B7, // 1
               0x19BA, // 2
               0x19B8, // 3
               0x19B9  // 4
        };
    
        public Mining() {
        
        }
        
        [Executable]
        public void mine() {
        
            UO.DeleteJournal();
        
            do {
            
                UO.DeleteJournal();
            
                this.doMine();
                
                if (!this.checkWeight()) {
                    return;
                }
            
            } while (!Journal.Contains("xstop") && this.move());
        
        }
        
        public void doMine() {
        
            bool firstMine = true;
            bool doMine = true;
            bool doThrow = false;
            int type = 0;
            
            // -- mining cycle
            
            UO.DeleteJournal();
            
            string[] stopText = {
                "There is no ore here to mine.",
                "Try mining in rock.",
                "xstop"
            };
            
            while (!World.Player.Dead && !Journal.Contains(stopText)) {
            
                UO.DeleteJournal();
                
                UO.UseType(this.pickaxe);
                UO.WaitTargetTile(World.Player.X, World.Player.Y, World.Player.Z, 1341);
                
                Journal.WaitForText("...akce skoncila");
                
                // -- getting info about mined ore
                
                if (firstMine && Journal.Contains("You put")) {
                    for (int i = 0; i < this.journals.Length; i++) {
                        if (Journal.Contains(this.journals[i])) {
                            firstMine = false;
                            type = i;
                            doMine = this.process[i][0];
                            doThrow = !this.process[i][1];
                            break;
                        }
                    }
                }
                
                if (doThrow) {
                    this.doThrow(type);
                }
            
                if (!doMine) {
                    return;
                }
            
            }
        
        }
        
        protected void doThrow(int type) {
            
            for (int i = 0; i < this.ores.Length; i++) {
                int count = World.Player.Backpack.AllItems.Count(this.ores[i], this.colors[type]);
                if (count > 0) {
                    //UO.DropHere(count, World.Player.Backpack.AllItems.FindType(this.ores[i], this.colors[type]));
                    UO.DropHere(0, World.Player.Backpack.AllItems.FindType(this.ores[i], this.colors[type]));
                    UO.Wait(500);
                }
            }
            
        }
        
        public bool move() {
        
            int[] start = {World.Player.X, World.Player.Y};
        
            int x = 0;
            int y = 0;
         
            x = World.Player.X;
            
            UO.Press(System.Windows.Forms.Keys.Home);
            UO.Wait(250);
           
            if (World.Player.X == x) {
                UO.Press(System.Windows.Forms.Keys.Home);
            }
            
            UO.Wait(250);
            
            if (World.Player.X == x) {
            
                while (x <= World.Player.X) {
                    
                    UO.Press(System.Windows.Forms.Keys.PageDown);
                    UO.Wait(250);
                    
                    if (World.Player.X == x) {
                        UO.Press(System.Windows.Forms.Keys.PageDown);
                    }
                    
                    UO.Wait(250);
                    x = x + 1;
                    
                }
         
                y = World.Player.Y;
                
                UO.Press(System.Windows.Forms.Keys.End);
                UO.Wait(250);
                
                if (World.Player.Y == y) {
                    UO.Press(System.Windows.Forms.Keys.End);
                }
                
                UO.Wait(250);
                
                if (World.Player.Y == y) {
                
                    while (World.Player.Y != (y+1)) {
                        
                        UO.Press(System.Windows.Forms.Keys.Home);
                        UO.Wait(250);
                        
                        if (World.Player.Y == y) {
                            UO.Press(System.Windows.Forms.Keys.Home);
                        }
                        
                        UO.Wait(250);
                        UO.Press(System.Windows.Forms.Keys.End);
                        UO.Wait(250);
                        
                        if (World.Player.Y == y) {
                            UO.Press(System.Windows.Forms.Keys.End);
                        }
                        
                        UO.Wait(250);
                    }
                }
                
                x = World.Player.X;
                
                while (x <= World.Player.X) {
                
                    UO.Press(System.Windows.Forms.Keys.PageDown);
                    UO.Wait(250);
                    
                    if (World.Player.X == x) {
                        UO.Press(System.Windows.Forms.Keys.PageDown);
                    }
                    
                    UO.Wait(250);
                    x = x + 1;
                    
                }
                
            }
            
            if (World.Player.X != start[0] || World.Player.Y != start[1]) {
                return true;
            }
            
            return false;
        }
        
        protected bool checkWeight() {
            return (World.Player.Weight <= this.maxWeight);
        }
        
        [Executable]
        public void smelt() {
        
            UOItem forge = World.Ground.FindType(this.forge[0], this.forge[1]);
            for (int type = 0; type < this.ores.Length; type++) {
                for (int color = 0; color < this.colors.Length; color++) {
                
                    if (World.Player.Backpack.AllItems.Count(this.ores[type], this.colors[color]) > 0) {
                        UO.WaitTargetType(this.ores[type], this.colors[color]);
                        UO.UseObject(forge);
                        UO.Wait(1000);
                    }
                
                }
            }
            
            UO.Print("Hotovo!");
        
        }
        
    }
    
}
Uživatelský avatar
Rod Sacketts II
Paper Elemental
Paper Elemental
Příspěvky: 387
Registrován: 04 dub 2009 22:02
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Rod Sacketts II »

viz verse 4.0
Naposledy upravil(a) Rod Sacketts II dne 21 dub 2020 13:59, celkem upraveno 1 x.
Uživatelský avatar
Johny Matovic
Lord Ancestral Grafoman
Lord Ancestral Grafoman
Příspěvky: 1317
Registrován: 22 pro 2007 12:29
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Johny Matovic »

Jak to ty robis Rode, ze mi ziadny skript od teba nejde?:D
Sklb - okrasny clovek
Please, for fuck sake, no revolution.
Uživatelský avatar
alderanis
Walking Scribbler
Walking Scribbler
Příspěvky: 39
Registrován: 10 kvě 2017 20:30

Re: Chodici mining, vyhazovani + taveni

Příspěvek od alderanis »

mě to de jenom do doby než dojedu řadu pak to začne házet nějakej tracking a dokonce i spamovat jak prase nechápu co se s tim děje
Uživatelský avatar
Rod Sacketts II
Paper Elemental
Paper Elemental
Příspěvky: 387
Registrován: 04 dub 2009 22:02
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Rod Sacketts II »

alderanis píše:mě to de jenom do doby než dojedu řadu pak to začne házet nějakej tracking a dokonce i spamovat jak prase nechápu co se s tim děje
že by to bylo nastavenýma klávesama na: Home, End, PageUp a PageDown? - Kteréžto klávesy využívá pro pohyb...... Tedy když tam máš makra, tak to bude používat makra a né chodit.
Uživatelský avatar
alderanis
Walking Scribbler
Walking Scribbler
Příspěvky: 39
Registrován: 10 kvě 2017 20:30

Re: Chodici mining, vyhazovani + taveni

Příspěvek od alderanis »

I když sem z těch kláves odstranil ty hotkeye, tak mi to při přetížení hodí že sem těžkej a pak to ukončí script nechodí smeltovat rudu ani se nevrací z5, prostě script terminuje
Uživatelský avatar
Rod Sacketts II
Paper Elemental
Paper Elemental
Příspěvky: 387
Registrován: 04 dub 2009 22:02
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Rod Sacketts II »

alderanis píše:I když sem z těch kláves odstranil ty hotkeye, tak mi to při přetížení hodí že sem těžkej a pak to ukončí script nechodí smeltovat rudu ani se nevrací z5, prostě script terminuje
Tak si napiš vlastní který chceš podle tvoji potřeby. Pro moji potřebu je tento fajnovej. Nekope to mythril pro zloděje, a váhu si ošefuju tím že na to koukám, a nehraju AFK jak by jiní rádi hrály.
Uživatelský avatar
Rod Sacketts II
Paper Elemental
Paper Elemental
Příspěvky: 387
Registrován: 04 dub 2009 22:02
Kontaktovat uživatele:

Re: Chodici mining, vyhazovani + taveni

Příspěvek od Rod Sacketts II »

verse 4.0

,kopej
pak se to zeptá jestli na východ nebo na západ má začít....

Kód: Vybrat vše

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

namespace Phoenix.Script {
    
    [RuntimeObject]
    public class Hornictvi {
    

      int smer = 0;
      int n = 0;
      int nn = 0;

      
        protected int maxWeight = 500;
    
        // vykovapat, brat
        protected bool[][] process = {
            new bool[] {false, false}, // iron
            new bool[] {false, false}, // copper
            new bool[] {false, false}, // bronze
            new bool[] {false, false}, // silver
            new bool[] {false, false}, // shadow
            new bool[] {false, false}, // rose
            new bool[] {true, true}, // golden
            new bool[] {false, false}, // verite
            new bool[] {false, false}, // valorite
            new bool[] {false, false}, // blood Rock
            new bool[] {true, true}, // black Rock
            new bool[] {true, true}, // mytheril
            new bool[] {false, false}, // star Sapphire
            new bool[] {false, false}, // emerald
            new bool[] {false, true}, // citrine
            new bool[] {false, true}, // amethyst
            new bool[] {false, false}, // ruby
            new bool[] {true, true}  // diamond
        };
      
        
        protected ushort pickaxe = 0x0E85;
        
        // ------------------------------
    
        protected ushort[] colors = {
            0x0000, // iron
            0x0289, // copper
            0x01BF, // bronze
            0x0482, // silver
            0x0322, // shadow
            0x0665, // rose
            0x0160, // golden
            0x01CB, // verite
            0x0253, // valorite
            0x04C2, // blood Rock
            0x0455, // black Rock
            0x052D, // mytheril
            0x0006, // star Sapphire
            0x0041, // emerald
            0x002C, // citrine
            0x0015, // amethyst
            0x0027, // ruby
            0x03E9  // diamond
        };
      
      protected ushort[] ingotcolors = {
            0x0000, // iron
            0x07D1, // copper
            0x06D6, // bronze
            0x0000, // silver
            0x0770, // shadow
            0x0665, // rose
            0x0160, // golden
            0x07D1, // verite
            0x0515, // valorite
            0x04C2, // blood Rock
            0x0455, // black Rock
            0x052D, // mytheril
            0x0000, // star Sapphire
            0x0000, // emerald
            0x0000, // citrine
            0x0000, // amethyst
            0x0000, // ruby
            0x0000  // diamond
        };
        
        protected string[] journals = {
            "You put the Iron",
            "You put the Copper",
            "You put the Bronze",
            "You put the Silver",
            "You put the Shadow",
            "You put the Rose",
            "You put the Golden",
            "You put the Verite",
            "You put the Valorite",
            "You put the Blood Rock",
            "You put the Black Rock",
            "You put the Mytheril",
            "You put the Star Sapphire",
            "You put the Emerald",
            "You put the Citrine",
            "You put the Amethys",
            "You put the Ruby",
            "You put the Diamond"
        };
    
        protected ushort[] ores = {
               0x19B7, // 1
               0x19BA, // 2
               0x19B8, // 3
               0x19B9  // 4
        };
      
      protected ushort[] ingot = {
            0x1BEF, // 1
            0x1BF5, // 2
            0x1BE3, // 3
            0x1BE9,  // 4
         0x0F0F, // star Sapphire
         0x0F10, // emerald
         0x0F15, // citrine
         0x0F16, // amethyst
         0x0F13, // ruby
         0x0F26  // diamond
        };
    
        public Hornictvi() {
        
        }
        
        [Command]
        public void Kopej() {
        
         
         
            UO.DeleteJournal();
         UO.PrintInformation("Rekni jestli ches prvne kopat na ZAPAD nebo na VYCHOD...");
         UO.Wait(100);
         UO.DeleteJournal();
         UO.Wait(100);
         while ((!UO.InJournal("Vychod")) && (!UO.InJournal("East")) && (!UO.InJournal("Zapad")) && (!UO.InJournal("West"))) 
         {
                UO.Wait(100);
            }
         if ((UO.InJournal("Vychod")) && (!UO.InJournal("East")))
         {
                smer = 2;
            }
         else if  ((UO.InJournal("Zapad")) && (!UO.InJournal("West")))
         {
                smer = 1;
            }
         
         UO.DeleteJournal();
            do {
            
                UO.DeleteJournal();
            
                this.Seknuti();
                
                if (!this.checkWeight()) {
                    return;
                }
            
            } while (!Journal.Contains("xstop") && (this.move()));
        
        }
        
        public void Seknuti() {
        
            bool firstMine = true;
            bool Seknuti = true;
            bool doThrow = false;
            int type = 0;
            
            // -- mining cycle
            
            UO.DeleteJournal();
            
            string[] stopText = {
                "There is no ore here to mine.",
                "Try mining in rock.",
                "xstop"
            };
            
            while (!World.Player.Dead && !Journal.Contains(stopText)) {
            
                UO.DeleteJournal();
                
                UO.UseType(this.pickaxe);
                UO.WaitTargetTile(World.Player.X, World.Player.Y, World.Player.Z, 1341);
                
            
            UOItem krumpac = World.Player.Layers[Layer.RightHand];
            
            if (krumpac.Graphic == pickaxe && krumpac.Color == 0x0481)
            {
               while (!UO.InJournal("There is no") && !UO.InJournal("You put|You loosen") && !UO.InJournal("Try mining") && !UO.InJournal("You destroy"))
               {
                  UO.Wait(100);
               }   
               UO.Wait(500);
            }
            else
            {
               while (!UO.InJournal("There is no") && !UO.InJournal("You put|You loosen") && !UO.InJournal("Try mining") && !UO.InJournal("You destroy"))
               {
                  UO.Wait(100);
               }
               Journal.WaitForText("...akce skoncila");
               UO.Wait(500);
            }
            
            
                // -- getting info about mined ore
                
                if (firstMine && Journal.Contains("You put")) 
            {
                    for (int i = 0; i < this.journals.Length; i++) 
               {
                        if (Journal.Contains(this.journals[i])) 
                  {
                            firstMine = false;
                            type = i;
                            Seknuti = this.process[i][0];
                            doThrow = !this.process[i][1];
                            break;
                        }
                    }
                }
                
                if ((doThrow) && (!Seknuti)) {
                    this.doThrow(type);
                }
            
                if (!Seknuti) {
                    return;
                }
            
            if ((doThrow) && (Journal.Contains("There is no ore here to mine."))) {
                    this.doThrow(type);
                }
            
            }
        
        }
        
        protected void doThrow(int type) {
            
            for (int m = 0; m < this.ores.Length; m++) {
            for (int i = 0; i < this.colors.Length; i++) {
               int count = World.Player.Backpack.AllItems.Count(this.ores[m], this.colors[type]);
               if (count > 0) {
                  //UO.DropHere(count, World.Player.Backpack.AllItems.FindType(this.ores[i], this.colors[type]));
                  UO.DropHere(0, World.Player.Backpack.AllItems.FindType(this.ores[m], this.colors[type]));
                  UO.Wait(50);
               }
            }
            }
            
        }
        
      public bool move() 
      {
         if (smer == 1)
         {
            moveSW();
            return true;
         }
         else if (smer == 2)
         {
            moveSE();
            return true;
         }
         else
            return false;
      }
      
      public void moveSW() 
      {

         UO.Wait(50);

            if ((!MoveW()) && (x == World.Player.X))
            {
               UO.Wait(50);
               while ((!MoveS()) && (y == World.Player.Y))
               {
                  UO.Wait(50);
                  while ((!MoveE()) && (x == World.Player.X))
                  {
                     UO.Wait(50);
                     while ((MoveN()) && (y != World.Player.Y))
                     {
                        UO.Wait(50);
                        while ((MoveW()) && (x != World.Player.X))
                        {
                           UO.Wait(50);
                           if ((MoveS()) && (y != World.Player.Y))
                           {
                              return;
                           }
                        }
                     }
                  }
               }
               while ((MoveW()) && (x != World.Player.X))
               {
                  UO.Wait(50);
                  if ((MoveN()) && (y != World.Player.Y))
                  {
                     UO.Wait(50);
                     return;
                  }
               }
               smer = 2;
            }
      }
      public void moveSE() 
      {
         UO.Wait(50);
         if ((!MoveE()) && (x == World.Player.X))
         {
            UO.Wait(50);
               UO.Wait(50);
               while ((!MoveS()) && (y == World.Player.Y))
               {
                  UO.Wait(50);
                  while ((!MoveW()) && (x == World.Player.X))
                  {
                     UO.Wait(50);
                     while ((MoveN()) && (y != World.Player.Y))
                     {
                        UO.Wait(50);
                        while ((MoveE()) && (x != World.Player.X))
                        {
                           UO.Wait(50);
                           if ((MoveS()) && (y != World.Player.Y))
                           {
                              return;
                           }
                        }
                     }
                  }
               }
               UO.Wait(50);
               while ((MoveE()) && (x != World.Player.X))
               {
                  UO.Wait(50);
                  if ((MoveN()) && (y != World.Player.Y))
                  {
                     UO.Wait(50);
                     return;
                  }
                  
               }
               smer = 1;
         
         }
         
        }
      
        protected bool checkWeight() {
            return (World.Player.Weight <= this.maxWeight);
        }
        
      
            int x = 0;
            int y = 0;
      
      [Executable]
        public bool MoveW()
        {

            x = World.Player.X;
            

            UO.Press(System.Windows.Forms.Keys.Home);
            UO.Wait(250);

           
            if (World.Player.X == x) {
                UO.Press(System.Windows.Forms.Keys.Home);
            
            }
         UO.Wait(250);
         if (World.Player.X == x) {
                UO.Press(System.Windows.Forms.Keys.Home);
            }
         
         UO.Wait(250);
            if (World.Player.X == x) {
               return false;
            }
         

            return true;
        }
      
      [Executable]
        public bool MoveS()
        {
         

         y = World.Player.Y;
         
         UO.Press(System.Windows.Forms.Keys.End);
            UO.Wait(250);

                    
            if (World.Player.Y == y)
         {
                UO.Press(System.Windows.Forms.Keys.End);
            UO.Wait(250);
         }
         
            if (World.Player.Y == y) {
                    UO.Press(System.Windows.Forms.Keys.End);
                }

            UO.Wait(250);
            if (World.Player.Y == y) {
               return false;
            }
            
            
            return true;
        }
        
        [Executable]
        public bool MoveE()
        {

         x = World.Player.X;
         
            UO.Press(System.Windows.Forms.Keys.PageDown);
            UO.Wait(250);

                    
            if (World.Player.X == x){
                UO.Press(System.Windows.Forms.Keys.PageDown);
            UO.Wait(250);
            }
         
            if (World.Player.X == x) {
                        UO.Press(System.Windows.Forms.Keys.PageDown);
                    }
         
            UO.Wait(250);
            if (World.Player.X == x)  {
               return false;
            }
            return true;
        }
        
        [Executable]
        public bool MoveN()
        {

         y = World.Player.Y;
      
            UO.Press(System.Windows.Forms.Keys.PageUp);
            UO.Wait(250);
;
                    
            if (World.Player.Y == y)  {
                UO.Press(System.Windows.Forms.Keys.PageUp);

            UO.Wait(250);
            }
         
            if (World.Player.Y == y) {
                    UO.Press(System.Windows.Forms.Keys.PageUp);
                }
         
            UO.Wait(250);
            if (World.Player.Y == y) {
               return false;
            }
            return true;
        }
         
    }
    
}
upraveny pauzy, upraveno pro možnost kopat jak normálním krumpáčem tak skládačkou
Je zábava hrát pro sebe, ještě větší zábava je hrát pro lidi a největší funy je hrát pro legendu.

Odmítán většinový názor, že jedině držitel Akademického titulu RSDr. je oprávněn politické debaty/úvah.
Odpovědět