Bowcraft

Vaše problémy, rady a skripty týkající se tohoto prográmku
Uživatelský avatar
Aldaris
Walking Scribbler
Walking Scribbler
Příspěvky: 35
Registrován: 28.09.2006 00:39:28
Kontaktovat uživatele:

Příspěvek od Aldaris »

Pri prvnim spusteni spustit nejprve funkci Bowcraft_Init()

odkladiste - docasne misto, kam se odkladaji mensi kupy logu, protoze pokud bereme z velke kupy jeden kus, tak to buguje
sklad - misto, kde mame logy, shafty a peri. Sem se taky ukladaji hotove vyrobky

Nastaveni toho, co chci vyrabet se deje na prvnim radku funkce Arrows(), kde do promenne vyrobek ulozime bud hodnotu Arrows nebo Crossbow bolts uzavrenou uvozovkami

Kód: Vybrat vše

sub Bowcraft_Init()
	UO.AddObject("odkladiste")
	while UO.Targeting()
		wait(100)
	wend
	
	UO.AddObject("sklad")
	while UO.Targeting()
		wait(100)
	wend

	UO.SaveConfig()
end sub

sub Arrows()
	var vyrobek = "Crossbow bolts" ; <--- zde "Arrows" nebo "Crossbow bolts"
	var peri = 0x1BD1
	var shaft = 0x1BD4
	
	while not uo.dead()
		if UO.Count(shaft) == 0 then
			UO.FindType(shaft, "-1", "sklad")
			if UO.FindCount() == 0 then
				UO.Print("Dosly shafty")
				return
			endif
			Move_n_Wait(shaft, "-1", 1000, "sklad", "backpack")
		endif
		
		UO.FindType(peri, "-1", "sklad")
		if UO.FindCount() == 0 then
			UO.Print("Doslo peri")
			return
		endif
		Move_n_Wait(peri, "-1", 1, "sklad", "backpack")
		UO.WaitMenu("Select arrow type", vyrobek)
		UO.UseType(peri)
		UO.DeleteJournal()
		WaitForJournal("You put|You fail")
	wend
end sub

sub Shafts()
	var log = 0x1BDD
	var dagger = 0x0F51
	
	while not uo.dead()
		UO.FindType(log, "-1", "odkladiste")
		if UO.FindCount() == 0 then
			UO.FindType(log, "-1", "sklad")
			if UO.FindCount() == 0 then
				UO.Print("Dosel material na zpracovani")
				return
			endif
			Move_n_Wait(log, "-1", 200, "sklad", "odkladiste")
			wait(500)
			Move_n_Wait("0x1BD4", "-1", "-1", "backpack", "sklad")
			wait(500)
		endif
		Move_n_Wait(log, "-1", 1, "odkladiste", "backpack")
		UO.DeleteJournal()
		UO.WaitMenu('Bowcraft', 'Shafts')
		UO.WaitTargetType(log)
		UO.UseType(dagger)
		WaitForJournal("You put the Unfinished|You fail")
		If UO.InJournal("You put the Unfinished") Then
			UO.DeleteJournal()
			UO.UseType("0x1BD6", "0x0742")
			WaitForJournal("You put the shaft")
		endif
	wend
end sub

Sub Move_n_Wait(type, color, count, from, to)
	var old_count = 0
	var new_count = 0

	UO.FindType(type, color, to)
	old_count = UO.GetQuantity("finditem")
	
	UO.FindType(type, color, from)
	if UO.FindCount() > 0 then
		if count == "-1" then
			count = UO.GetQuantity("finditem")
		endif
		UO.MoveItem("finditem", count, to)
		repeat
			wait(100)
			UO.FindType(type, color, to)
			new_count = UO.GetQuantity("finditem")
		until new_count == old_count + count
	endif
end sub

Sub WaitForJournal(text)
	repeat
		wait(100)
	until uo.inJournal(text)
	wait(500)
end sub
PS: UO.GetQuantity() doufam neposila pakety na server
Naposledy upravil(a) Aldaris dne 14.06.2007 22:26:29, celkem upraveno 1 x.
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Příspěvek od Carda »

Ne, neposílá. Je to to samý jako uo.count, jenom na objekt :p Jinak, nebylo by lepčí, pokud sem to teda správně pochopil (nečet sem to celý), místo toho "odkladiště" to prostě jenom přesunout na jiný místo ve "skladu"?
E: Ještě jenom taková estetická poznámka. -1 taky není potřeba dávat do uvozovek.
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Uživatelský avatar
Aldaris
Walking Scribbler
Walking Scribbler
Příspěvky: 35
Registrován: 28.09.2006 00:39:28
Kontaktovat uživatele:

Příspěvek od Aldaris »

Carda píše:Ne, neposílá. Je to to samý jako uo.count, jenom na objekt :p Jinak, nebylo by lepčí, pokud sem to teda správně pochopil (nečet sem to celý), místo toho "odkladiště" to prostě jenom přesunout na jiný místo ve "skladu"?
E: Ještě jenom taková estetická poznámka. -1 taky není potřeba dávat do uvozovek.
-1: zvyk :)
odkladiste: jak potom zarucis, z ktere kupky to veme? no mozna by to slo tu starou ignornout a tim padem by byla jen nova.. uvazuju spravne?
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Příspěvek od Carda »

Jojo. Odložíš, ignorneš. Až dojdou, resetneš a repete. A nepotřebuješ k tomu targetit a vlastnit další kontejner :-)
Edit: Jen bys pak asi musel krapet předělat fci na přesouvání :p
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Uživatelský avatar
Aldaris
Walking Scribbler
Walking Scribbler
Příspěvky: 35
Registrován: 28.09.2006 00:39:28
Kontaktovat uživatele:

Příspěvek od Aldaris »

aale prdim na to :) jeden target navic za cely trein nikoho nezabije :) behem upravy mi tam vyvstala dalsi otazka, ktera se mi nechce resit..
co kdyz ti tam zustanou po ukonceni skriptu dve kupky a pak to znovu spustis? Z ktere kupky ma ted vzit logy? Raci tam to odkladiste necham.. v sekurce nebo v bance ma kazdy dva kontejnery :)

Ale jeste jsem tam zapomnel ulozit konfiguraci po zamereni objektu. Opraveno..
Uživatelský avatar
Byotch
Undead Scriber
Undead Scriber
Příspěvky: 689
Registrován: 08.09.2006 08:28:46
Kontaktovat uživatele:

Příspěvek od Byotch »

[quote="Aldaris"][/quote]
Jsou ty pauzy v tom spravne ? Jedu shafty a jede to jak drak, nejak se mi to nezda.
[size=75]Byotch - The Cleric
Vulcane - The Craftman
[/size]
Spike
Orc Writer
Orc Writer
Příspěvky: 77
Registrován: 08.09.2006 01:24:44
Kontaktovat uživatele:

Příspěvek od Spike »

Byotch píše:
Aldaris píše:
Jsou ty pauzy v tom spravne ? Jedu shafty a jede to jak drak, nejak se mi to nezda.
Ma to jet jako drak, bowcraft je rychlej.
Uživatelský avatar
Hajek II.
Paper Elemental
Paper Elemental
Příspěvky: 273
Registrován: 13.09.2006 22:50:55
Kontaktovat uživatele:

Příspěvek od Hajek II. »

Huj. Nechtelo se mne zakladat kvuli tomu novej topic, tak to hodim sem. Nejak jsem si splacal dohromady script na vyrobu Sipek po jednom, ale mam takovejhle problem: obcas to nestihne prenyst to jedno pericko ke mne do baglu a tak ho to tam nenajde a script se sekne. Tak bych chtel poprosit o radu kam hodit nejakou pauzu, nebo dynamickou pauzu nebo to proste nejak osetrit(kdyz to treba to pericko nenajde aby ho to za chvili hledalo znova) aby se to nesekalo a jelo to co nejrychlejc:p. A kdyztak to jeste nejak prohlidnout, jestli tam nejsou nejaky chybky, placal jsem to dohromady aniz bych tomu nejak moc rozumnel:p. Diky za rady:).

Kód: Vybrat vše

sub BowcraftSipkyPo1() 
UO.AddObject("bedna")
While UO.Targeting()
   Wait(100) 
Wend
UO.UseObject("bedna")
Wait(1000)
While NOT UO.Dead()
   If UO.Count("0x1BD4") < 2 then
      UO.Print("Doplnuji Shafty!")
      UO.FindType("0x1BD4",-1,"bedna")
      If NOT UO.FindCount() then
         UO.Print("Nejsou Shafty.")
         Return 
      EndIf
      UO.Moveitem("finditem", 1000, "backpack") 
      Wait(500)
   EndIf

      UO.FindType("0x1BD1",-1,"bedna")
      If UO.FindCount() == 0 then
         UO.Print("Není Peri.")
         Return 
      EndIf
      UO.Moveitem("finditem", 1, "backpack") 
      Wait(500)
   EndIf

   If UO.Count("0x1BFB") > 1000 then
         UO.Print("Uklizim Sipky.")
         UO.FindType("0x1BFB", -1, "backpack")
         UO.MoveItem("finditem", -1, "bedna")
         Wait(500)
   EndIf 

  UO.DeleteJournal()
  Wait(500)
  UO.WaitMenu("Select arrow type","Crossbow bolts") 
   UO.Usetype("0x1BD1")
   Repeat
      Wait(100)
   Until UO.InJournal("You put|You fail")
   Wait(500)
Wend
end sub
Odpovědět