kraftenie kegov

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

Moderátor: Caleb

Odpovědět
Uživatelský avatar
Ján Páleš
Book Snake
Book Snake
Příspěvky: 92
Registrován: 16 zář 2013 18:38
Kontaktovat uživatele:

kraftenie kegov

Příspěvek od Ján Páleš »

ľudkovia, potrebujem pomôcť. :-/

nevie niekto pls meno na keg? v nasledujúcom skripte ho mám zadané tak, ako je uvedené vo výrobnom paneli (keď kliknem na pílku, potom containers and containter parts, tak tam mám, mimo iného, keg small a keg, pričom keg small je container a keg by mal slúžiť na nápoje, ako káď ... aspoň dúfam, že sa nemýlim. :-) ak by ale aj - výrobou niečoho sa tréniť treba a formy na láhve sú až od 90 takže ...)

späť teda k otázke - v dole uvedenom skripte mám jeho meno zadané ako "keg", ale skript mi zakaždým vypľuje "keg small".

skript je prepísaný zo skriptu "Carpentry_-_Krafti_Formy" ktorý som stiahol z ultima.smoce.net.

Kód: Vybrat vše

 
 /////////////////////////////////////////////////////////////////////////
 //
 //     www.ultima.smoce.net
 //     Name: Carpentry - Krafti Formy
 //
 /////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix.WorldData;
using Phoenix.Runtime;
using Phoenix;


namespace Phoenix.Script
{
  public class kegy
  {
    public static void EnsureItem(UOItem item)
    {
      if (String.IsNullOrEmpty(item.Name)) item.Click();
      UO.Wait(800);
    }

    public static void EnsureContainer(UOItem container)
    {
      EnsureItem(container);
      container.Use();
      UO.Wait(500);
    }

    [Executable]
    public static void kraftikegy()
    {
      EnsureContainer(UO.Backpack);
      UOItem pilka = UO.Backpack.Items.FindType(0x1035 , 0x0000);
      
      if (pilka.Serial == Serial.Invalid) 
      {
        pilka = World.Player.Layers.FindType(0x1035, 0x0000);
        if (pilka.Serial == Serial.Invalid)
        {
          UO.Print("Nemas pilku:");
          return;
        }
      }

      UO.Print("Zvol konterjner s materialem:");
      UOItem container = new UOItem(UIManager.TargetObject());
      EnsureContainer(container);
      UOItem logs = null;
      if ((logs = container.Items.FindType(0x1BDD, 0x0000)) == null)
      {
        UO.Print("DoslyLogy:");
        return;
      }
      UOItem lids = null;
      if ((lids = container.Items.FindType(0x1DB8, 0x0000)) == null)
      {
        UO.Print("Dosly Barel Lid:");
        return;
      }
      UOItem stavess = null;
      if ((stavess = container.Items.FindType(0x1EB1, 0x0000)) == null)
      {
        UO.Print("Dosly Barel Staves:");
        return;
      }
      UOItem hoopss = null;
      if ((hoopss = container.Items.FindType(0x10E1, 0x0000)) == null)
      {
        UO.Print("Dosly Barel Hoops:");
        return;
      }
      
      int count = logs.Amount;

      for (int i = 0; i < count; i++)
      {
        UOItem log = GetLog(container);
        if (log.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UOItem lid = GetLid(container);
        if (lid.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UOItem staves = GetStaves(container);
        if (staves.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UOItem hoops = GetHoops(container);
        if (hoops.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UO.Print("sychr " + i);
       // UO.WaitTargetObject(log);
        UO.WaitMenu( "Carpentry", "Containers & Cont. parts", "Containers & Cont. parts", "Keg" );
        UO.UseObject(pilka);
        JournalEventWaiter jew = new JournalEventWaiter(true, "You put");
        jew.Wait(5000);
        if (UO.Count(0x0E7F, 0x0909) >= 10)
        {
           UO.WaitMenu( "Carpentry", "Containers & Cont. parts", "Containers & Cont. parts", "Bedna forem" );
           UO.UseObject(pilka);
           JournalEventWaiter jew1 = new JournalEventWaiter(true, "You put");
           jew1.Wait(5000);
           UOItem craftedItem = UO.Backpack.Items.FindType(0x0FAE, 0x0909);
           if (craftedItem.Serial != Serial.Invalid)
           {
             UO.Backpack.Items.FindType(0x1AD6, 0x0000).Move(1, container);
             UO.Wait(500);

           }

        }
        
        
      }
    }

    public static UOItem GetLog(UOItem container)
    {
      UOItem log = null;
      if ((log = UO.Backpack.Items.FindType(0x1BDD, 0x0000)).Serial != Serial.Invalid) return log;
      container.Items.FindType(0x1BDD, 0x0000).Move(2, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x1BDD, 0x0000);
    }
    public static UOItem GetLid(UOItem container)
    {
      UOItem lid = null;
      if ((lid = UO.Backpack.Items.FindType(0x1DB8, 0x0000)).Serial != Serial.Invalid) return lid;
      container.Items.FindType(0x1DB8, 0x0000).Move(2, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x1DB8, 0x0000);
    }
    public static UOItem GetStaves(UOItem container)
    {
      UOItem stavess = null;
      if ((stavess = UO.Backpack.Items.FindType(0x1EB1, 0x0000)).Serial != Serial.Invalid) return stavess;
      container.Items.FindType(0x1EB1, 0x0000).Move(1, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x1EB1, 0x0000);
    }
    public static UOItem GetHoops(UOItem container)
    {
      UOItem hoops = null;
      if ((hoops = UO.Backpack.Items.FindType(0x10E1, 0x0000)).Serial != Serial.Invalid) return hoops;
      container.Items.FindType(0x10E1, 0x0000).Move(1, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x10E1, 0x0000);
    }
  }
}
 
moja armáda núbov zahŕňa - Ecki (vamp), Joneleth (necro), Nubik Obycajny (loladin), Astar (cleric), Katrina (craft), Silverblade (craft), Beregond (warr), Elliara (mage), Asminia (ranger). because I can... ICQ = 261129403, email = eckister@gmail.com
Uživatelský avatar
Raziel
Undead Scriber
Undead Scriber
Příspěvky: 650
Registrován: 07 zář 2006 19:12
Kontaktovat uživatele:

Re: kraftenie kegov

Příspěvek od Raziel »

Kegy kdysi dávno bývaly pro nápoje jak píšeš a tohle asi bude script z té doby. Kegy se totiž zrušily (už ani nevím proč) a zavedly se kádě. Kegy se následně mazaly a myslím, že už vyrobit nejdou.
Uživatelský avatar
Ján Páleš
Book Snake
Book Snake
Příspěvky: 92
Registrován: 16 zář 2013 18:38
Kontaktovat uživatele:

Re: kraftenie kegov

Příspěvek od Ján Páleš »

na... ok, tak to prepíšem na tie súdky (bude tam na jedno miesto treba zadať item type, aby mi ich hádzalo do truhlice) a budem ich vyhadzovať. :-D ďakujem krásne za info!
moja armáda núbov zahŕňa - Ecki (vamp), Joneleth (necro), Nubik Obycajny (loladin), Astar (cleric), Katrina (craft), Silverblade (craft), Beregond (warr), Elliara (mage), Asminia (ranger). because I can... ICQ = 261129403, email = eckister@gmail.com
Uživatelský avatar
Ján Páleš
Book Snake
Book Snake
Příspěvky: 92
Registrován: 16 zář 2013 18:38
Kontaktovat uživatele:

Re: kraftenie kegov

Příspěvek od Ján Páleš »

no faaaaajn. :-/ začalo to vyzerať dobre a vtom se vloudila chybyčka:

materiály som mal v belt pouch.

keg je príliš veľký, než aby ho udržal vyrobený vačok akejkoľvek veľkosti, menšie truhly alebo debny. udržia ich iba normálne truhly a sudy.

problém je v tom, že akonáhle som presunul materiály do sudu alebo truhly (skúsil som aj jedno, aj druhé), skript stroskotá bez chybovej hlášky. jednoducho sám seba vypne.

vrátim veci naspäť do belt pouch-ky - všetko je v poho. teda až na to, že mi makro neukladá vyrobené kegy, ktoré sa mi takto kopia vo vaku a tým pádom makro skôr či neskôr stroskotá.

ono sa to evidentne tie kegy snaží uložiť, pretože keď vyrábam z belt pouch-ky, dostanem hlášku "the container is too small for that" (inými slovami "ne, tam se to nevejde ... au" :-))

máte niekto prosím nejaké nápady, čo môžem v tomto skripte urobiť inak? :-(

Kód: Vybrat vše

 
 /////////////////////////////////////////////////////////////////////////
 //
 //     www.ultima.smoce.net
 //     Name: Carpentry - Krafti Formy
 //
 /////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix.WorldData;
using Phoenix.Runtime;
using Phoenix;


namespace Phoenix.Script
{
  public class kegy
  {
    public static void EnsureItem(UOItem item)
    {
      if (String.IsNullOrEmpty(item.Name)) item.Click();
      UO.Wait(800);
    }

    public static void EnsureContainer(UOItem container)
    {
      EnsureItem(container);
      container.Use();
      UO.Wait(500);
    }

    [Executable]
    public static void kraftikegy()
    {
      EnsureContainer(UO.Backpack);
      UOItem pilka = UO.Backpack.Items.FindType(0x1035 , 0x0000);
      
      if (pilka.Serial == Serial.Invalid) 
      {
        pilka = World.Player.Layers.FindType(0x1035, 0x0000);
        if (pilka.Serial == Serial.Invalid)
        {
          UO.Print("Nemas pilku:");
          return;
        }
      }

      UO.Print("Zvol konterjner s materialem:");
      UOItem container = new UOItem(UIManager.TargetObject());
      EnsureContainer(container);
      UOItem logs = null;
      if ((logs = container.Items.FindType(0x1BDD, 0x0000)) == null)
      {
        UO.Print("DoslyLogy:");
        return;
      }
      UOItem lids = null;
      if ((lids = container.Items.FindType(0x1DB8, 0x0000)) == null)
      {
        UO.Print("Dosly Barel Lid:");
        return;
      }
      UOItem stavess = null;
      if ((stavess = container.Items.FindType(0x1EB1, 0x0000)) == null)
      {
        UO.Print("Dosly Barel Staves:");
        return;
      }
      UOItem hoopss = null;
      if ((hoopss = container.Items.FindType(0x10E1, 0x0000)) == null)
      {
        UO.Print("Dosly Barel Hoops:");
        return;
      }
      
      int count = logs.Amount;

      for (int i = 0; i < count; i++)
      {
        UOItem log = GetLog(container);
        if (log.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UOItem lid = GetLid(container);
        if (lid.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UOItem staves = GetStaves(container);
        if (staves.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UOItem hoops = GetHoops(container);
        if (hoops.Serial == Serial.Invalid)
        {
          UO.Print("Invalid:");
          return;
        }
        UO.Print("sychr " + i);
       // UO.WaitTargetObject(log);
        UO.WaitMenu( "Carpentry", "Containers & Cont. parts", "Containers & Cont. parts", "Keg" );
        UO.UseObject(pilka);
        JournalEventWaiter jew = new JournalEventWaiter(true, "You put");
        jew.Wait(5000);
        if (UO.Count(0x0E7F, 0x0000) >= 1)
        {
             UO.Backpack.Items.FindType(0x0E7F, 0x0000).Move(1, container);
             UO.Wait(500);
             
        }
        
        
      }
    }

    public static UOItem GetLog(UOItem container)
    {
      UOItem log = null;
      if ((log = UO.Backpack.Items.FindType(0x1BDD, 0x0000)).Serial != Serial.Invalid) return log;
      container.Items.FindType(0x1BDD, 0x0000).Move(2, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x1BDD, 0x0000);
    }
    public static UOItem GetLid(UOItem container)
    {
      UOItem lid = null;
      if ((lid = UO.Backpack.Items.FindType(0x1DB8, 0x0000)).Serial != Serial.Invalid) return lid;
      container.Items.FindType(0x1DB8, 0x0000).Move(4, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x1DB8, 0x0000);
    }
    public static UOItem GetStaves(UOItem container)
    {
      UOItem stavess = null;
      if ((stavess = UO.Backpack.Items.FindType(0x1EB1, 0x0000)).Serial != Serial.Invalid) return stavess;
      container.Items.FindType(0x1EB1, 0x0000).Move(2, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x1EB1, 0x0000);
    }
    public static UOItem GetHoops(UOItem container)
    {
      UOItem hoops = null;
      if ((hoops = UO.Backpack.Items.FindType(0x10E1, 0x0000)).Serial != Serial.Invalid) return hoops;
      container.Items.FindType(0x10E1, 0x0000).Move(2, UO.Backpack);
      UO.Wait(500);
      //UO.Print("1");
      return UO.Backpack.Items.FindType(0x10E1, 0x0000);
    }
  }
}
 
moja armáda núbov zahŕňa - Ecki (vamp), Joneleth (necro), Nubik Obycajny (loladin), Astar (cleric), Katrina (craft), Silverblade (craft), Beregond (warr), Elliara (mage), Asminia (ranger). because I can... ICQ = 261129403, email = eckister@gmail.com
Uživatelský avatar
Raziel
Undead Scriber
Undead Scriber
Příspěvky: 650
Registrován: 07 zář 2006 19:12
Kontaktovat uživatele:

Re: kraftenie kegov

Příspěvek od Raziel »

Já stejně nechápu proč chceš takhle zbytečně vyhazovat materiál z kterého se vyrábí užitečné věci které můžeš prodat. stačí počkat až budeš mít skill a vyráběd kádě. Tohle mi přijde jako ztráta času.
A nebo jestli chceš tak ten materiál od tebe koupím. napiš mi na icq se nějak domluvíme ;)

Ten script vypadá že by měl brát jiný kontejner, ale ladit script který není můj a zárověň který je k ničemu se mi nechce.
Uživatelský avatar
Ján Páleš
Book Snake
Book Snake
Příspěvky: 92
Registrován: 16 zář 2013 18:38
Kontaktovat uživatele:

Re: kraftenie kegov

Příspěvek od Ján Páleš »

pôvodný plán bol vyrábať kegy, ktoré by som potom predával (či už plné, alebo prázdne). ale ako hovoríte - tie už vyradili, takže som ostal s hromadou materiálu (na 5100 potion kegov) ktorý teraz nemám ako použiť. a predať 4000-5100 containerov mi príde kus ... optimistické. :-D aaaaale však zase za pokus nič nedám. :-) čo sa predaju materiálu týka .... to nie je zlý nápad, ale .... však vám napíšem a uvidí sa. ;-)
moja armáda núbov zahŕňa - Ecki (vamp), Joneleth (necro), Nubik Obycajny (loladin), Astar (cleric), Katrina (craft), Silverblade (craft), Beregond (warr), Elliara (mage), Asminia (ranger). because I can... ICQ = 261129403, email = eckister@gmail.com
Odpovědět