Stránka 2 z 2

Napsal: 14.06.2007 22:06:30
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

Napsal: 14.06.2007 22:12:29
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.

Napsal: 14.06.2007 22:16:31
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?

Napsal: 14.06.2007 22:19:25
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

Napsal: 14.06.2007 22:26:07
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..

Napsal: 12.10.2007 16:25:38
od Byotch
[quote="Aldaris"][/quote]
Jsou ty pauzy v tom spravne ? Jedu shafty a jede to jak drak, nejak se mi to nezda.

Napsal: 15.10.2007 13:29:33
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.

Napsal: 06.01.2008 01:00:23
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