Stránka 1 z 2

Presun veci v bagliku

Napsal: 31.10.2006 19:13:33
od Mangel
Nevie niekto ci existuje v yoku prikaz na presun urcitej veci v bagliku na specificke suradnice x=? y=? ??

Napsal: 31.10.2006 19:21:12
od Carda
Imho MoveItem nebo Drop. Pokud nevíš jak to použít tak http://yoko.netroof.net/help/ ;)

Napsal: 31.10.2006 20:29:28
od Mangel
No, je to pekne :) presuvat viem z vaku do vaku az do nebies ale problem je ze v tom vaku mi to nechce hodit na suradnice ktore tam zadam :-/, stale to hadze na nahodne miesto

Napsal: 01.11.2006 14:33:03
od Carda
Zkoušels ses kouknou do toho odkazu na MoveItem ???
Je to sice rusky ale hlavní je todle :
uo.moveitem(object,[quantity,containerobject/ground,[x,y,z]])
Musíš si přidat požadovanou věc jako objekt a kontejner kam to chceš jako objekt. Pak to napíšeš podle tej řádky a je to ;)
Příklad :

Kód: Vybrat vše

sub move_item()
var pocet = 1 #pocet presouvanych veci
UO.AddObject("vec")
While UO.Targeting()
    wait(100)
Wend
UO.AddObject("kontejner")
While UO.Targeting()
    wait(100)
Wend
UO.MoveItem("vec",pocet,"kontejner",50,50,50)
end sub
Pokud bys to nechtěl do skriptu tak
,addobject vec #zameris vec
,addobject kontejner #zameris kontejner
,moveitem vec 1 kontejner 50 50 50
EDIT : Překlep

Napsal: 01.11.2006 15:38:58
od Mangel
Carda píše: ...
Ja som si to cital a skusal to ale nevedel som ze zapis "[x,y,z]" treba zapisat ako "x","y","z" :)
Kazdopadne Diky

Napsal: 01.11.2006 15:41:50
od Mole Two
Mangel: btw: je to x, y, z ne "x", "y", "z". Možná to yoko sežere ale je to divný..

Napsal: 01.11.2006 16:19:04
od Carda
Srry, napsal sem tam závorky jen tak z reflexu :)

Napsal: 01.11.2006 17:19:43
od Mole Two
Carda píše:Srry, napsal sem tam závorky jen tak z reflexu :)
Uvozovky.

Napsal: 01.11.2006 17:23:46
od Carda
Mole Two píše:
Carda píše:Srry, napsal sem tam závorky jen tak z reflexu :)
Uvozovky.
Sakriš ! :D

Napsal: 01.11.2006 17:31:29
od Mangel
prave ze ak to napisem [x,y,z] (alebo (x,y,z)) tak to neberie, s uvodzovkami to berie :)

Napsal: 01.11.2006 17:38:23
od Carda
Správný zápis : UO.Moveitem("object",quantity,"container",x,y,z)
Špatný zápis(ale většinou funguje) : UO.Moveitem("object",quantity,"container","x","y","z")
Úplně Špatný zápis : UO.Moveitem(object,[quantity,container,[x,y,z]])
Kterou možnost z toho si použil ?

Napsal: 01.11.2006 17:39:07
od Imp aen Cillin
Mangel píše:prave ze ak to napisem [x,y,z] (alebo (x,y,z)) tak to neberie, s uvodzovkami to berie :)
To bude tim, ze v popisu syntaxe znamena [promenna], ze ta promenna je nepovinna - a hranaty zavorky se pak nepisou.

Napsal: 01.11.2006 19:49:34
od Mangel

Kód: Vybrat vše

sub Arranger()
dim batoh[1]
var a = 30					###[x] suradnica prveho predmetu
var b = 65					###[y] suradnica prveho predmetu
var c = 0
var x = str(a)
var y = str(b)
var item_color = "0x0003" 	###Farba presuvanej veci
var item_type = "0x0F09"	###Typ presuvanej veci
batoh[1] = "0x40135948"		###ID batohu

	while UO.count('0x0F09','0x003')>c
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
		Wait(1500)
		a = a + 4			###Posun po osi X
		x = str(a)
		c = c + 1
wend
end sub
Tak, toto je beta verzia upratovacky :)
Pekne to pouklada TMR do radu vedla seba.
Diky za rady ;)

Napsal: 01.11.2006 19:52:34
od Carda
Heh, chvilku mě trvalo než sem to šecko pobral... Máš to takový zbytečně složitý :)
Taky sem tam nepochopil to c :oops:
Nebylo by to jednodušší spíš takdle ?

Kód: Vybrat vše

sub Arranger()
var x = 30 #[x] suradnica prveho predmetu
var y = 65 #[y] suradnica prveho predmetu
var item_color = "0x0003" #Farba presuvanej veci
var item_type = "0x0F09" #Typ presuvanej veci
batoh = "0x40135948" #ID batohu
	while UO.count(item_type,item_color) > 0
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh, x, y, 0)
		Wait(1500)
		x = x + 4 #Posun po osi X
	wend
end sub

Napsal: 01.11.2006 20:00:46
od Mangel
Carda píše:Heh, chvilku mě trvalo než sem to šecko pobral... Máš to takový zbytečně složitý :)
Taky sem tam nepochopil to c :oops:
To "c" sa porovnava s poctom flasticiek v batohu aby to nebezalo donekonecna a to zlozite posuvanie suradnic ... rad uvitam zjednodusenie :)

Napsal: 01.11.2006 20:12:38
od Carda
Stačí dát předmět na místo od kde se to má rovnat.

Kód: Vybrat vše

sub Arranger()
var x, y, predmet_t, predmet_c, kontejner
UO.AddObject("predmet")
While UO.Targeting()
	wait(100)
Wend
x = UO.GetX("predmet")
y = UO.GetY("predmet")
predmet_t = UO.GetGraphic("predmet")
predmet_c = UO.GetColor("predmet")
kontejner = UO.ContainerOf("predmet")
	While UO.GetQuantity("predmet") > 0
	    x = x + 4
		UO.FindType(predmet_t, predmet_c, "backpack")
		UO.MoveItem("finditem", 1, kontejner, x, y, 0)
		Wait(1000)
	Wend
end sub
EDITED
Ještě sem to krapet zjednodušil :)

Napsal: 01.11.2006 23:20:55
od Mangel
Skriptik k pouzivaniu, ktory ulozi zaradom TMR,GH,GC,Staminu,GS.
Po dosadeni ID batohu by mal fungovat.
(mozno nieje najestetickejsi ale funguje :P (aspon mne) )

Kód: Vybrat vše

sub BottleArranger()
dim batoh[1]
###################################
batoh[1] = "0x00000000"	###ID Vasho batohu
###################################
var Pauza = 1500		###Pauza medzi presunom flasticiek(Default=1500)			
var Medzera = 15		###Medzera medzi riadkami (Default=15)			
var Medzera2 = 5		###Medzera medzi flasami (Default=5)
var Rad = 13			###Pocet flias v jednom rade (Default=13)
###################################
var a = 20
var b = 55		###145 max
var c = 0
var d = 19 + (Medzera2*Rad)
var e = UO.count('0x0F09','0x0003') + UO.count('0x0F0C','0x0000') + UO.count('0x0F07','0x0000') + UO.count('0x0F0B','0x0000') + UO.count('0x0F09','0x0000')
var x = str(a)
var y = str(b)
var item_color = "0x0003"
var item_type = "0x0F09"
If e/Rad > 95/Medzera then
	UO.Print("Tolko radov sa ti nezmesti!")
	UO.Exec('Terminate BottleArranger')
Endif
If Medzera2*Rad > 120 then
	UO.Print("Tolko flias sa ti do riadku nezmesti!")
	UO.Exec('Terminate BottleArranger')
Endif
while UO.count('0x0F09','0x003')>c
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
		Wait(Pauza)
		a = a + medzera2
		x = str(a)
		c = c + 1
		if a > d then
			b = b + Medzera
			y = str(b)
			a = 20
			x = str(a)
		endif
wend
c = 0
x = str(a)
y = str(b)
item_color = "0x0000"
item_type = "0x0F0C"
while UO.count('0x0F0c','0x000')>c
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
		Wait(Pauza)
		a = a + medzera2
		x = str(a)
		c = c + 1
				if a > d then
			b = b + Medzera
			y = str(b)
			a = 20
			x = str(a)
		endif
wend
if not a == 20 then
	a = a + 5
endif
c = 0
x = str(a)
y = str(b)
item_color = "0x0000"
item_type = "0x0F07"
while UO.count('0x0F07','0x000')>c
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
		Wait(Pauza)
		a = a + medzera2
		x = str(a)
		c = c + 1
				if a > d then
			b = b + Medzera
			y = str(b)
			a = 20
			x = str(a)
		endif
wend
c = 0
x = str(a)
y = str(b)
item_color = "0x0000"
item_type = "0x0F0B"
while UO.count('0x0F0B','0x000')>c
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
		Wait(Pauza)
		a = a + medzera2
		x = str(a)
		c = c + 1
				if a > d then
			b = b + Medzera
			y = str(b)
			a = 20
			x = str(a)
		endif
wend
if not a == 20 then
	a = a + 4
endif
c = 0
x = str(a)
y = str(b)
item_color = "0x0000"
item_type = "0x0F09"
while UO.count('0x0F09','0x000')>c
		UO.FindType(item_type, item_color, "backpack")
		UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
		Wait(Pauza)
		a = a + medzera2
		x = str(a)
		c = c + 1
				if a > d then
			b = b + Medzera
			y = str(b)
			a = 20
			x = str(a)
		endif
wend
end sub
Kto si to chce trosku upravit, moze upravit par hodnot na zaciatku skriptu.
EDIT:Nejak blbo to postlo :)
EDIT2:A zase ... couz, mozno to pojde ajtak :)
EDIT3:No, uz to je dobre, len pozor na pauzu :)

Napsal: 02.11.2006 00:00:13
od Mole Two
Nekopíruj kód, použij for loop..

příklad:

Kód: Vybrat vše

var i
var itemCount = 2;
dim itemGraphic[2];
itemGraphic[0] = 0x1234;
itemGraphic[1] = 0x4321;
for i = 0 to itemCount - 1 step 1
   ..something..
   while (UO.Count(itemGraphic[i]))
     ..something..
   wend
   ..something..
next
1) jednodušší (ok diskutabilní, pro někoho to může být složitější)
2) rychlejší úprava (opět diskutabilní)
3) vypadá to lépe (tohle už bez diskuse :p)

tohle UO.MoveItem("finditem", 1, batoh[1],(x),(y),(0))
je to samé jako tohle UO.MoveItem("finditem", 1, batoh[1], x, y, 0)

a STR použávat nemusíš, teď sem to testoval na yoku 505 a funguje to jako číslo.

Zejtra možná dopíšu skriptík na tohle, teď pudu spát bo za 5 hod vstávám :p

Napsal: 02.11.2006 15:54:36
od Carda
Co takdle ?

Kód: Vybrat vše

sub BottleArranger()
var batoh,pauza,mezera_radky,mezera_flasky,x,y,radek,e,i,pocet_itemu,xx,p,pocet,rad
###################################
batoh = "0x00000000"   ###ID Vasho batohu
###################################
pauza = 1000       ###Pauza medzi presunom flasticiek(Default=1000)
mezera_radky = 15  ###Medzera medzi riadkami (Default=15)
mezera_flasky = 5  ###Medzera medzi flasami (Default=5)
rad = 13           ###Pocet flias v jednom rade (Default=13)
###################################
xx = 20  ###x souradnice prvniho itemu
y = 55   ###y souradnice prvniho itemu (145 max)
x = xx
radek = 19 + (mezera_flasky * rad)
pocet_itemu = 5
dim item_color[5]
item_color[0] = "0x0003"
item_color[1] = "0x0000"
item_color[2] = "0x0000"
item_color[3] = "0x0000"
item_color[4] = "0x0000"

dim item_type[5]
item_type[0] = "0x0F09"
item_type[1] = "0x0F0C"
item_type[2] = "0x0F07"
item_type[3] = "0x0F0B"
item_type[4] = "0x0F09"
For i = 0 to pocet_itemu - 1
	UO.FindType(item_type[i], item_color[i], "backpack")
	While FindCount() > 0
		UO.MoveItem("finditem", 1, batoh, x, y, 0)
		Wait(pauza)
		x = x + mezera_flasky
		If x > radek then
			y = y + mezera_radky
			x = xx
		Endif
		UO.FindType(item_type[i], item_color[i], "backpack")
	Wend
Next
end sub
Zkracený podle Mole Two. Ty kontroly nazačátku sem vymazal, protože nemám možnost to zrovna teďka vyzkoušet.
EDIT : Taky sem nepochopil proč var a = 20 a var x = str(a), když de napsat jen var x = 20 :oops:
EDIT 2 : Poladěno, odzkoušeno, funguje :)

Napsal: 13.11.2006 15:02:21
od Mangel
Carda píše: EDIT : Taky sem nepochopil proč var a = 20 a var x = str(a), když de napsat jen var x = 20 :oops:
Pretoze mne to tvojim sposobom nefunguje :)
Edit:mozno to bude tym ze stale pouzivam verziu(injectionu) z pred dvoch rokov :)))