Page 1 of 1
Выброс руды в шахте в стек (ХЕЛП)
Posted: 2006-10-12 17:31:57
by LeXuS™
Парни помогите, хана, уже целый день мудрую... он не находит в паке руды, когда она там есть
Code: Select all
sub DropOre()
UO.Exec("set finddistance 1")
var i, ore_my, ore_floor
DIM color[12]
color[1] = '0x0602' #copper
color[2] = '0x0000' #iron
color[3] = '0x0231' #steel
color[4] = '0x045E' #anra
color[5] = '0x0585' #valurit
color[6] = '0x006F' #lava
color[7] = '0x0481' #ice
color[8] = '0x0386' #shadow
color[9] = '0x0042' #azurite
color[10] = '0x003D' #doom
color[11] = '0x009C' # Blust
color[12] = '0x010A' # DarkRuby
for i = 1 to 12 step 1
UO.FindType(0x19B9,-1,'backpack')
wait(500)
while UO.GetQuantity('finditem') > 0
#
uo.print("dd");
UO.Click('finditem')
ore_my = UO.GetSerial('finditem')
UO.Ignore('finditem')
UO.FindType(0x19B9,color[i],'ground')
IF Uo.FindCount() then
ore_floor = UO.GetSerial('finditem')
else
ore_floor = 'ground'
endif
UO.MoveItem(ore_my,STR(UO.GetQuantity(ore_my)),ore_floor,'0','0','0')
UO.Ignore('finditem')
UO.FindType(0x19B9,color[i],'backpack')
wait (500)
wend
next
RETURN
RETURN
end sub
не заходит в этот цикл
while UO.GetQuantity('finditem') > 0
почему это может быть, подскажите плз!
Posted: 2006-10-12 17:45:26
by Nmy
Code: Select all
sub main()
VAR n
Dim Drop[10]
Drop[1] = '0x0909'
Drop[2] = '0x03E3'
Drop[3] = '0x0026'
Drop[4] = '0x06D6'
Drop[5] = '0x0000'
Drop[6] = '0x0601'
Drop[7] = '0x052D'
Drop[8] = '0x0488'
Drop[9] = '0x084D'
Drop[10] = '0x060C'
while true
For n = 1 To 10
UO.FindType('0x19B9', Drop[n] ,'backpack')
If UO.FindCount() then
UO.MoveItem('finditem', -1 ,'ground')
wait(1000)
Endif
Next
wait(1000)
wend
end sub
вот свой нашол, поменяй массив и вперед!

Posted: 2006-10-12 17:49:05
by LeXuS™
Дело в том, что у меня на шарде нельзя выкидывать руду на пол в шахте, а когда перевес идёт то она выпадает и нужно руду в её стек на пол кинуть и после этого тотемом лутаю... шард на POL сделан
Posted: 2006-10-12 17:51:41
by LeXuS™
и он то дропает то не дропает, хрен его поймёшь... зачастую только купер скинет и всё... остальные ни в какую :о(
Posted: 2006-10-12 18:02:54
by LeXuS™
я заюзал ,info на руду выдало вот что
ID=0xFFFFFFFF Type=0x19B9 6? Name=99 copper ore
Quantity: 105 Colour: 0x0602 Layer: 0 Has: 1
X=67 Y=104 Z=0 C=0x62A0BA5F F=0x00 ignored
к чему бы ?
Posted: 2006-10-12 18:13:07
by Scripts Writer
LeXuS™ wrote:я заюзал ,info на руду выдало вот что
ID=0xFFFFFFFF Type=0x19B9 6? Name=99 copper ore
Quantity: 105 Colour: 0x0602 Layer: 0 Has: 1
X=67 Y=104 Z=0 C=0x62A0BA5F F=0x00 ignored
к чему бы ?
Намудрил ты со скриптом. Используй проще , который тебе NMY кинул. Вообще не понимаю что такое стек? сундук? Так введи ИД сундука куда кидать. Если мувать не получается, то юзай команду drophere() вроде. синтаксис смотри в ФАКе
Posted: 2006-10-12 18:24:07
by Edred
You Must Die wrote:Вообще не понимаю что такое стек?
Стек - это одна стопка. Stack. То есть ему надо складывать руду на полу в одну стопку по каждому виду, а не разбрасывать по разным координатам.
ЗЫ: Хинт прост - используй уже существующую кучу как контейнер, в который ты кладешь новую руду. Она автоматически сложится в ту же стопку.
Posted: 2006-10-12 20:02:12
by Scripts Writer
Понятно. 2 вариант-возможно складывать по координатам руды.
Posted: 2006-10-12 22:01:17
by Nmy
начнём с
ignorereset() 
Posted: 2006-10-12 22:09:17
by Edred
You Must Die wrote:Понятно. 2 вариант-возможно складывать по координатам руды.
На ранке положить по координатам - не всегда означает положить в стек с тем, что в этих координатах лежит. Прекрасно уживаются несколько стопок одного и того же предмета в одной точке.
Posted: 2006-10-13 09:39:41
by LeXuS™
Ребята, решил проблему следующим образом
Code: Select all
sub DropOre()
var Self_Pos,k
Self_Pos=STR(UO.GetX())+" "+STR(UO.GetY())+" "+STR(UO.GetZ())
dim rudac[15]
rudac[1]=0x0602 #cooper
rudac[2]=0x0000 #iron
rudac[3]=0x0231 #steel
rudac[4]=0x045E #anra
rudac[5]=0x0585 #valurit
rudac[6]=0x006F #lavarok
rudac[7]=0x0481 #icerok
rudac[8]=0x0386 #shadow
rudac[9]=0x0042 #azurie
rudac[10]=0x003D #doom
rudac[11]=0x009C #bluesteel
rudac[12]=0x010A #Darkruby
rudac[13]=0x0602 #crystalyt
rudac[14]=0x0602 #onix
rudac[15]=0x0602 #mifril
for k=1 to 14
uo.exec("findtype derevo "+str(rudac[k])+" ground")
if uo.findcount() then
uo.exec("addobject derevo1 finditem")
uo.exec("findtype 0x19B9 "+str(rudac[k])+" my")
uo.exec("moveitem finditem all derevo1 0 0 0")
wait(100)
else
wait(100)
endif
uo.exec("findtype 0x19B9 "+str(rudac[k])+" my")
if uo.findcount() then
wait(100)
endif
endif
next
end sub
sub Stack(StackType,Color)
var GroundItem, PackItem, GrndTmp
PackItem = ''
GroundItem = ''
if UO.Count(StackType) then
PackItem = '^'+StackType
endif
if UO.CountGround(StackType) then
UO.IgnoreReSet()
repeat
UO.FindType(StackType,Color,'ground')
if UO.FindCount() then
GrndTmp = UO.GetSerial('finditem')
if (UO.GetQuantity(GrndTmp) > 55000) then
UO.Ignore(GrndTmp)
else
GroundItem = GrndTmp
endif
endif
UO.FindType(StackType,Color,'ground')
until ((UO.FindCount() == 0) or (GroundItem <> ''))
endif
if ((PackItem <> '') and (GroundItem <> '')) then
UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
else
UO.DropHere('^'+StackType)
Endif
end sub
Всем спасибо, топ клозед :о)
Posted: 2006-10-13 17:49:43
by Nmy
странный код

Posted: 2006-10-16 10:17:51
by LeXuS™
по другому работать не хотело :о) я рад что работает ))