Выброс руды в шахте в стек (ХЕЛП)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
LeXuS™
Posts: 17
Joined: 2006-08-02 13:17:44
Contact:

Выброс руды в шахте в стек (ХЕЛП)

Post 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
почему это может быть, подскажите плз!
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post 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


вот свой нашол, поменяй массив и вперед! :roll:
LeXuS™
Posts: 17
Joined: 2006-08-02 13:17:44
Contact:

Post by LeXuS™ »

Дело в том, что у меня на шарде нельзя выкидывать руду на пол в шахте, а когда перевес идёт то она выпадает и нужно руду в её стек на пол кинуть и после этого тотемом лутаю... шард на POL сделан
LeXuS™
Posts: 17
Joined: 2006-08-02 13:17:44
Contact:

Post by LeXuS™ »

и он то дропает то не дропает, хрен его поймёшь... зачастую только купер скинет и всё... остальные ни в какую :о(
LeXuS™
Posts: 17
Joined: 2006-08-02 13:17:44
Contact:

Post 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

к чему бы ?
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post 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() вроде. синтаксис смотри в ФАКе
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

You Must Die wrote:Вообще не понимаю что такое стек?


Стек - это одна стопка. Stack. То есть ему надо складывать руду на полу в одну стопку по каждому виду, а не разбрасывать по разным координатам.

ЗЫ: Хинт прост - используй уже существующую кучу как контейнер, в который ты кладешь новую руду. Она автоматически сложится в ту же стопку.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Понятно. 2 вариант-возможно складывать по координатам руды.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Code: Select all

ignored 

начнём с ignorereset() :roll:
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

You Must Die wrote:Понятно. 2 вариант-возможно складывать по координатам руды.


На ранке положить по координатам - не всегда означает положить в стек с тем, что в этих координатах лежит. Прекрасно уживаются несколько стопок одного и того же предмета в одной точке.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
LeXuS™
Posts: 17
Joined: 2006-08-02 13:17:44
Contact:

Post 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


Всем спасибо, топ клозед :о)
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

странный код :roll:
LeXuS™
Posts: 17
Joined: 2006-08-02 13:17:44
Contact:

Post by LeXuS™ »

по другому работать не хотело :о) я рад что работает ))
Post Reply