Stránka 1 z 1

Trening Magery a Necromancery

Napsal: 15.05.2012 22:20:01
od Koryn
Můj prvni překopaný script od smoceho snad mu to nebude vadit trochu sem upravil jeho script na trening magery a přidal par věci. Zatím s C# jen žačínám tak kdyžtak omluvte případné nedostatky.

Popis: přimo ve scriptu si můžete nastavit jakym způsoben se při tréningu bude doplňovat mana a to u každé verze treningu zvlášt.
1 - Total Mana refresh potion.(když neni total mana refres kad ani prazdna lahev začne meditovat)
2 - Když dojde mana vypije jeden mana refresh a pokračuje v kastění zas dojde mana zas vypije atd.(když neni mana refres kad ani prazdna lahev začne meditovat)
3 - Když dojde mana začne meditovat.
4 - Když dojde mana vypije jednu mana refresh potku a zbytek domedituje.

Spouštění:
,exec train_clumsy - spusti trening Necromancery
,exec train_svetlo - spusti trening Magery
,exec train_sipka - spusti trening Magery, zároven je potřeba u sebe mit bandáže

Kód: Vybrat vše


 //////////////////////////////////////////////////////////////////////////////
 //
 //     www.ultima.smoce.net
 //     Name: Train magery - svetlo,sipka , necromancery - clumsy
 //     Popis: 3 scripty pro trening Magery a Necromancery původně autor smoce
 //            jen sem to trochu upravil a doplnil (Koryn)
 //     Verze Phoenixu: 0.7.x
 //  
 //////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix;
using Phoenix.WorldData;
using System.Linq;
using Phoenix.Communication;
using Phoenix.Runtime;
using Phoenix.Runtime.Reflection;

namespace Phoenix.Scriptq
{
    public class TrainMN
    {
        #pragma warning disable 162
        //Nasteveni zpusobu obnovy many//----------------------------------------------------------------------------
        public const int methoden = 4;//Necro - Clumsy: 1-TMR;2-MR;3-Meditace;4-Vypije manapotku zbytek domedituje    
        public const int methode = 3;//Magery - Svetlo: 1-TMR;2-MR;3-Meditace;4-Vypije manapotku zbytek domedituje 
        public const int methodes = 4;//Magery - Sipka: 1-TMR;2-MR;3-Meditace;4-Vypije manapotku zbytek domedituje 
        //-----------------------------------------------------------------------------------------------------------
        public const ushort TMR_MR_KAD = 0x1843;
        public const ushort TMR_MR_pot = 0x0F09;
        public const ushort TMR_barva = 0x0003;
        public const ushort MR_barva = 0x0005;
        public const ushort CL_svitek = 0x0E35; 
        public const ushort CL_barva = 0x0079; 
        public const ushort jedenReg = 0x0F8B; 
        public const ushort druhyReg = 0x0F8F; 
       
        public static void pitimr(ushort ManaColor)
        {
            ushort MMR_barva = ManaColor;

            if (World.Player.Backpack.AllItems.Count(TMR_MR_pot, MMR_barva) > 0)
                {
                    UO.UseType(TMR_MR_pot, MMR_barva);
                    UO.Print(0x0435, "Vypil(a) si Mana refresh potion.");
                }
                else
                {
                    if (World.Player.Backpack.AllItems.Count(TMR_MR_KAD, MMR_barva) > 0)
                    {
                        if ((World.Player.Backpack.AllItems.Count(0x0F0E, 0x0000) > 0) || (World.Player.Backpack.AllItems.Count(0x0F09, 0x0000) > 0))
                        {
                            UO.UseType(TMR_MR_KAD, MMR_barva);
                            if (World.Player.Backpack.AllItems.Count(0x0F0E, 0x0000) == 0)
                            {
                                UO.WaitTargetType(TMR_MR_pot, 0x0000);
                                UO.Wait(500);
                            }
                            else
                            {
                                UO.WaitTargetType(0x0F0E, 0x0000);
                                UO.Wait(500);
                            }
                            UO.UseType(TMR_MR_pot, MMR_barva);
                            UO.Print(0x0435, "Vypil(a) si Mana refresh potion.");
                            UO.Wait(500);
                        }
                        else
                        {
                            UO.Print("Nemas prazdnou lahev !");
                            UO.Wait(3000);
                            meditka();
                            return;
                        }
                    }
                    else
                    {
                        UO.Print("Nemas kad s Mana refresh!");
                        UO.Wait(3000);
                        meditka();
                        return;
                    }
                }
       
        }
//----------------------------------------------------------------------------------------
        public static void meditka()
        {
            while (World.Player.Mana < World.Player.MaxMana)
            {
                UO.UseSkill("Meditation");
                if (World.Player.Mana <= 100)
                {
                    UO.Print("Medituji Mana: " + World.Player.Mana + " / " + World.Player.MaxMana);
                }
                else
                {
                    UO.Print(0x00B3, "Medituji Mana: " + World.Player.Mana + " / " + World.Player.MaxMana);
                }
                UO.Wait(3500);
            }
        }
//--------------------------------------------------------------------------------------

        [Executable]
        public static void train_clumsy()
        {
            
            UO.PrintInformation("Script Train Necromancery");
        clumsy:

            if (UO.Count(jedenReg) == 0 || (UO.Count(druhyReg) == 0))
            {
                UO.Print("Dosli regy !");
                return;
            }
            if (World.Player.Backpack.AllItems.Count(CL_svitek, CL_barva) == 0)
            {
               UO.PrintError("Dosly Clumsy svitky, pouzij knihu k doplneni svitku !!!");
               return;
            }
            if (World.Player.Mana >= 20)
            {

                if (World.Player.Backpack.AllItems.Count(CL_svitek, CL_barva) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Clumsy svitku !", World.Player.Backpack.AllItems.Count(CL_svitek, CL_barva));
                }
                else
                {
                    UO.Print("Zbyva {0} Clumsy svitku !", World.Player.Backpack.AllItems.Count(CL_svitek, CL_barva));
                }
                if (World.Player.Backpack.AllItems.Count(jedenReg) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Pumice !", World.Player.Backpack.AllItems.Count(jedenReg));
                }
                else
                {
                    UO.Print("Zbyva {0} Pumice !", World.Player.Backpack.AllItems.Count(jedenReg));
                }
                if (World.Player.Backpack.AllItems.Count(druhyReg) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Volcanic Ash !", World.Player.Backpack.AllItems.Count(druhyReg));
                }
                else
                {
                    UO.Print("Zbyva {0} Volcanic Ash !", World.Player.Backpack.AllItems.Count(druhyReg));
                }

             
                UOItem svitek = World.Player.Backpack.AllItems.FindType(CL_svitek, CL_barva);
                UO.WaitTargetObject(Aliases.Self);
                UO.UseObject(svitek);
                UO.Wait(4000);
                goto clumsy;

            }


            if (World.Player.Mana <= 20)
            {

                switch (methoden)
                {
                    case (1):
                        pitimr(TMR_barva);
                        goto clumsy;

                    case (2):

                        pitimr(MR_barva);
                        goto clumsy;

                    case (3):


                        meditka();
                        goto clumsy;

                    case (4):

                        pitimr(MR_barva);
                        meditka();
                        goto clumsy;


                }
                goto clumsy;
            }
        }
//----------------------------------------------------------------------------------------------------------------
        [Executable]
        public static void train_svetlo()
        {

            int pocitani = 0;
            UO.PrintInformation("Script Train Magery - Svetlo");
        svetlo:
            if (UO.Count(0x0F8D, 0x0000) == 0 || UO.Count(0x0F8C, 0x0000) == 0)
            {
                UO.Print("Dosli regy !");
                return;
            }


            if (World.Player.Mana >= 20)
            {
                UO.Cast("Night Sight", Aliases.Self);
                if (World.Player.Backpack.AllItems.Count(0x0F8D) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Spider silk !", World.Player.Backpack.AllItems.Count(0x0F8D));
                }
                else
                {
                    UO.Print("Zbyva {0} Spider silk !", World.Player.Backpack.AllItems.Count(0x0F8D));
                }
                if (World.Player.Backpack.AllItems.Count(0x0F8C) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Sulfurous Ash !", World.Player.Backpack.AllItems.Count(0x0F8C));
                }
                else
                {
                    UO.Print("Zbyva {0} Sulfurous Ash !", World.Player.Backpack.AllItems.Count(0x0F8C));
                }
                pocitani++;
                UO.Wait(2000);
                goto svetlo;
            }

            if (World.Player.Mana <= 20)
            {

                switch (methode)
                {
                    case (1):

                        pitimr(TMR_barva); 
                        goto svetlo;

                    case (2):

                        pitimr(MR_barva);
                        goto svetlo;

                    case (3):

                        meditka();
                        goto svetlo;
                    
                    case (4):

                        pitimr(MR_barva);
                        meditka();
                        goto svetlo;

                }
                goto svetlo;
            }
        }

//----------------------------------------------------------------------------------------
        [Executable]
        public static void train_sipka()
        {

           
            UO.PrintInformation("Script Train Magery - Sipka");
        sipka:
            if (World.Player.Hits <= 30)
        {
            int bandage = World.Player.Backpack.AllItems.Count(0x0E21);
            
                if (bandage > 0)
                {
                    while (World.Player.Hits < World.Player.MaxHits)
                    {
                        if (bandage == 0)
                        {
                            UO.Print("Nemas bandy !!!");
                            return;
                        }

                        if (World.Player.Backpack.AllItems.Count(0x0E21) > 10)
                        {
                            UO.Print(0x00B3, "Zbyva {0} bandazi !", World.Player.Backpack.AllItems.Count(0x0E21));
                        }
                        else
                        {
                            UO.Print( "Zbyva {0} bandazi !", World.Player.Backpack.AllItems.Count(0x0E21));
                        }
                        

                        int pred = World.Player.Hits;
                        UO.WaitTargetSelf();
                        UO.UseType(0x0E21);
                        UO.Wait(4000);
                        int po = World.Player.Hits;
                        if (pred != po)
                        {
                            int vyleceno = po - pred;
                            UO.Print(0x0435, "Vylecil si +" + vyleceno);
                        }
                    }
                    
                }
                else
                {
                        UO.Print("Nemas zadne bandy !!!");
                        return;
                    
                }
        }

            if (UO.Count(0x0F7A, 0x0000) == 0 || UO.Count(0x0F88, 0x0000) == 0 /*|| UO.Count(0x0F8D, 0x0000) == 0*/)
            {
                UO.Print("Dosli regy !");
                return;
            }


            if (World.Player.Mana >= 20)
            {
                UO.Cast("Magic Arrow", Aliases.Self);
                if (World.Player.Backpack.AllItems.Count(0x0F7A) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Black Pearls !", World.Player.Backpack.AllItems.Count(0x0F7A));
                }
                else
                {
                    UO.Print("Zbyva {0} Black Pearls !", World.Player.Backpack.AllItems.Count(0x0F7A));
                }
                if (World.Player.Backpack.AllItems.Count(0x0F88) > 15)
                {
                    UO.Print(0x00B3, "Zbyva {0} Nightshade !", World.Player.Backpack.AllItems.Count(0x0F88));
                }
                else
                {
                    UO.Print("Zbyva {0} Nightshade !", World.Player.Backpack.AllItems.Count(0x0F88));
                }
               
                UO.Wait(2500);
                goto sipka;
            }

            if (World.Player.Mana <= 20)
            {

                switch (methodes)
                {
                    case (1):

                        pitimr(TMR_barva);
                        goto sipka;

                    case (2):

                        pitimr(MR_barva);
                        goto sipka;

                    case (3):

                        meditka();
                        goto sipka;

                    case (4):

                        pitimr(MR_barva);
                        meditka();
                        goto sipka;

                }
                goto sipka;
            }
        }

    }

}


PS: kdyby se našel nějaký problém dejte vědět.....Enyoj.

Re: Trening Magery a Necromancery

Napsal: 15.05.2013 16:55:57
od Martin
chcelo by to condition - meditacia prebieha aj pocas WorldSave, a potom to hodi hlasku o lagovani servru, cize by to tam chcelo nejaky WorldSafeFinished? handler

Re: Trening Magery a Necromancery

Napsal: 19.03.2014 11:49:06
od Ján Páleš
v jednom skripte som si našiel:

Kód: Vybrat vše

if (UO.InJournal("World save has been initiated"))
neviem ale ani, či sa to môže dosadiť na ktorékoľvek miesto skriptu, ani že či to bude fungovať, keďže je táto funkcia vytrhnutá z kontextu.

to už bude musieť zodpovedať niekto múdrejší ako ja. ;-)

Re: Trening Magery a Necromancery

Napsal: 26.03.2014 12:55:02
od Ján Páleš
*ahem* tak som nejako pozabudol tú najhlavnejšiu časť tej podmienky. :-D sorry!

Kód: Vybrat vše

if (UO.InJournal("World save has been initiated"))
						{
							UO.Wait(30000);
                  }

Re: Trening Magery a Necromancery

Napsal: 27.03.2014 02:20:59
od Tommy
Nebylo by lepsi tam dat podminku, misto pevne nastaveneho casu? :]

Re: Trening Magery a Necromancery

Napsal: 22.08.2014 11:50:09
od Ján Páleš
ďakujem za skvelý skript! necro už leze. :-)

a Tommy .... však to prepíš. ;-) ja som iba dal čo mám. a navyše je to ešte aj vytrhnuté z kontextu, takže to bolo možno aj off-topic.

Re: Trening Magery a Necromancery

Napsal: 16.08.2016 07:03:01
od Bobicek
Dobre ranko!
Možná to bude znít dost hloupě ale i přesto se chci zeptat.
Mám Phoenix, nějaké skripty ze smoce.net, líbí se mě některé od raziela co jsou zde na forum, nebo přímotady ten na magerku.
Má otázka zní, jak ty zkopírováne scripty vložím do nějakého souboru CS nebo tak nějak, aby byly použitelný pro Phoenix?

Re: Trening Magery a Necromancery

Napsal: 16.08.2016 07:28:19
od Aahz
Bobicek píše:Dobre ranko!
Možná to bude znít dost hloupě ale i přesto se chci zeptat.
Mám Phoenix, nějaké skripty ze smoce.net, líbí se mě některé od raziela co jsou zde na forum, nebo přímotady ten na magerku.
Má otázka zní, jak ty zkopírováne scripty vložím do nějakého souboru CS nebo tak nějak, aby byly použitelný pro Phoenix?
Obsah scriptu uložíš do souboru. Pojmenuj ho stejně jako se jmenuje třída, at pak víš kde co máš, to je řádek někde na začátku public class XXX -> XXX.cs Ten soubor nahraješ do složky scripts do phoenixu. Pokud máš phoenix spuštěný tak ještě klikneš v záložce scripts na compile, jinak se to dělá samo při startu feny. To je vše.
Advanced : nemusíš kopírovat uplně celý obsah souboru, jednotlivé scripty začínají bud [Command] a nebo [Executable] podle toho jak se pak z phoenixe spouštějí, takže jestli nechceš uplně všechny, tak můžeš ty nechtěné ze souboru smazat.

Re: Trening Magery a Necromancery

Napsal: 16.08.2016 08:36:21
od Bobicek
Mě jde právě o to uložení do souboru, do jakého souboru? Yoko scripty jsem ukládal např do poznámkoveho bloku, tady v tom případě měbnejde docílit aby měl koncovku CS :? Díky :wink:

Re: Trening Magery a Necromancery

Napsal: 16.08.2016 09:18:06
od Gilraen
Bobicek píše:Mě jde právě o to uložení do souboru, do jakého souboru? Yoko scripty jsem ukládal např do poznámkoveho bloku, tady v tom případě měbnejde docílit aby měl koncovku CS :? Díky :wink:
Nový soubor si vytvoříš i v puštěném Phoenixu: v záložce Scripts klikneš pravým na libovolnou složku - add - new file - C# Class // pojmenuješ soubor, otevřeš, překopíruješ si tam script od Raziela, uložíš a v záložce Scripts klikneš na Compile.

Re: Trening Magery a Necromancery

Napsal: 16.08.2016 09:38:13
od Bobicek
Ano tohle jsem potřeboval vědět, díky moc :wink:

Re: Trening Magery a Necromancery

Napsal: 16.08.2016 10:01:21
od Programos
Co vim, tak staci i do toho poznamkoveho bloku a ulozit to misto .txt s .cs ;)

Re: Trening Magery a Necromancery

Napsal: 18.08.2016 15:39:07
od Bobicek
Čaute ja už nevím kde dělám chybu :D založím si ten soubor v jake koli slozce, pojmenoval jsem ho TrainMN, dal jsem do něj script ulozil. Dal Compile..a jak ho chci najit v prikazech tak tam neni, a navic me zmizne polovina scriptu ktere jsem tam mel. Al kdyz smauzu ten TrainMN co jsem tam daval zase se objevi ty co zmizely..?:D

Re: Trening Magery a Necromancery

Napsal: 18.08.2016 16:25:38
od Programos
C:\Program Files\Ultima Online\Phoenix muuuj\Scripts\TVUJSCRIPT.CS
Adaptuj na svoji scestu a sem dej skript

nezapomen ze MUSI byt pojmenovany .cs!!

Re: Trening Magery a Necromancery

Napsal: 18.08.2016 17:51:56
od Programos
Pokud ti to porad nejde, tak tady:
https://ulozto.cz/!rLFtXCSye/necro-mgr-cs

Jinak, skript nedoplnuje sam svitky.

Re: Trening Magery a Necromancery

Napsal: 22.02.2017 12:09:16
od Edward Cullen
Při pití mana refů tam chybí pauzička a lehce to laguje server.

Re: Trening Magery a Necromancery

Napsal: 22.12.2018 11:21:20
od Koupimstring
Čaute,

hned na začátek říkám že scripty a vše kolem tohoto programu je pro mě španělská vesnice.
Ale, proč něco tak jednoduchého se vždy dělá tak složitě. Všechny scripty co jsem zde našel na train magerky se šipkou sice fungují ale pro mě až závratně složitě a né moc dobře.(možná je to moje chyba, že si ho neumím nastavit). Potřebuji jednoduchý script na train mgr se šipkou a to - hází šipku, pokud není mana vypije TMR a házi znova (nedoplňuje manu do fullu) a pokud je HP např pod hranici 30 tak bandí do fullu. Co jsem zkoušel scripty tak vždy se snažil doplnit manu do fullu takže vypil TMR pak meditoval a zase pil TMR, nebo pod hranici 30 HP hodil jednu bandu a zase šipkoval..

Jak říkám je možné, že ten kdo je divný jsem tady já :D ale kdyby někdo měl zcela jednoduchý script na train mgr_šipka prosím sem s ním! :unibrow:

Děkuji