Не тот.
Если я не путаю ничего с утра у тебя скрипт на копалку и антимакрос. Где функция скидывания руды? О_о
А понял это про вторую часть вопроса ) Сори.
Code: var step_timeout = 800 ; таймаут на шаг sub mining() uo.addtype( "pickaxe" ) while uo.targeting() wait(200) wend var continue = "You loosen some rocks but fail to find any useable ore.|in your pack.|Success in work!" ; сообщения о продолжении капания этого тайла var break = "Try mining in rock.|That is too far away.|There is no ore here to mine.|You can't see the target|Unexpected button input|You broke the pickaxe." ; сообщения о прекращении капания этого тайла var i = 0, f = file ( "D:\mining3.txt" ) ; файлик с координатами f.open() var cnt = f.readNumber() DIM type[ val( str( cnt ) ) ] DIM tile_t[ val( str( cnt ) ) ] DIM tile_x[ val( str( cnt ) ) ] DIM tile_y[ val( str( cnt ) ) ] DIM tile_z[ val( str( cnt ) ) ] while not f.eof() type[ i ] = f.readNumber() tile_t[ i ] = f.readNumber() tile_x[ i ] = f.readNumber() tile_y[ i ] = f.readNumber() tile_z[ i ] = f.readNumber() i = i + 1 wend f.close() for i = 0 to cnt -1 if type[i] == 2 || type[i] == 1 then desWalker( tile_x[i], tile_y[i] ) endif if type[i] == 2 || type[i] == 0 then repeat deljournal( break + "|" + continue ) uo.waittargettile( str( tile_t[ i ] ), str( tile_x[ i ] ), str( tile_y[ i ] ), str( tile_z[ i ] ) ) uo.usetype( "pickaxe" ) repeat wait( 100 ) until uo.injournal( break + "|" + continue ) || UO.Weight > 300 || UO.Dead() until uo.injournal( break ) || UO.Weight > 300 || UO.Dead() If UO.Weight > 300 Then UO.Print('Перегруз!') #какое-нибудь действиe# endif endif next endsub
Sub desWalker( x, y ) var dir, key, mx, my, timer if x== uo.getX() && y == uo.getY() then return false endif repeat mx = uo.getX() my = uo.getY() key = getWalkDir( x-mx, y-my, 0, 0 ) dir = getWalkDir( x-mx, y-my, 1, 0 ) if Not uo.getDir() == dir then uo.press( key, 2 ) else uo.press( key ) endif timer = 0 while uo.getX() == mx && uo.getY() == my && step_timeout / 100 > timer wait( 100 ) timer = timer + 1 wend until uo.getX() == x && y == uo.getY() endsub Sub getWalkDir(x, y, type, walk) DIM keys[8] if type == 0 then if walk == 0 then keys[0] = 35; End keys[1] = 40; Down keys[2] = 34; Page Down keys[3] = 39; Right keys[4] = 33; Page Up keys[5] = 38; Up keys[6] = 36; Home keys[7] = 37; Left else keys[0] = 33; Page Up keys[1] = 38; Up keys[2] = 36; Home keys[3] = 37; Left keys[4] = 35; End keys[5] = 40; Down keys[6] = 34; Page Down keys[7] = 39; Right endif else if walk == 0 then keys[0] = 4; End keys[1] = 3; Down keys[2] = 2; Page Down keys[3] = 1; Right keys[4] = 0; Page Up keys[5] = 7; Up keys[6] = 6; Home keys[7] = 5; Left else keys[0] = 0; Page Up keys[1] = 7; Up keys[2] = 6; Home keys[3] = 5; Left keys[4] = 4; End keys[5] = 3; Down keys[6] = 2; Page Down keys[7] = 1; Right endif endif if x==0 && y > 0 then return keys[0] endif if x==0 && y < 0 then return keys[4] endif if x > 0 && y == 0 then return keys[2] endif if x < 0 && y == 0 then return keys[6] endif if x > 0 && y > 0 then return keys[1] endif if x > 0 && y < 0 then return keys[3] endif if x < 0 && y > 0 then return keys[7] endif if x < 0 && y < 0 then return keys[5] endif endsub Sub deljournal(msg) while uo.injournal(msg) uo.setjournalline(uo.injournal(msg)-1,"") wend endsub sub OneClick()
dim reindex[8] reindex[0] = 11 reindex[1] = 12 reindex[2] = 13 reindex[3] = 10 reindex[4] = 16 reindex[5] = 14 reindex[6] = 17 reindex[7] = 15 var GumpID = 0 var ButtonID = 0 var ButtonText var i = 18
if uo.LastGump('text', 4) <> "0" then i = 19 end if GumpID = val(Mid(uo.LastGump('command', i), 16, 4)) ButtonID = reindex[GumpID-2225] ButtonText = uo.LastGump('command', ButtonID) uo.LClick(Val(Mid(ButtonText, 7, 3)), Val(Mid(ButtonText, 11, 3))) wait(300)
end sub
sub AntiMacro()
while not uo.Dead() if not uo.LastGump('replyed') then if uo.LastGump('text', 0) == 'Antimacros System' then OneClick() end if endif wait(500) wend
end sub
Можно сделать чтото наподобие
Code: ### If UO.Weight > MaxVes Then UO.Print('Перегруз!') wait(500) BackMine() wait(500) endif
### Sub BackMine() i=UO.Getserial('self') oldX=UO.GetX(i) oldY=UO.GetY(i) walker(X1,Y1,1) ; идем до сундука wait(500) skid() wait(500) walker(X2,Y2,1) ; идем назад walker(oldX,oldY,0) ; возвращение в точку отправки. endsub
Скидывалку опробуй вот такую:
Code: sub skid() var C='0x40B014E1' ; ID статуи uo.useobject(C) wait(300) PUT(0x1BDD, C) PUT(0x19B9, C) PUT(0x19B7, C) PUT(0x19BA, C) PUT(0x19B8, C) end sub
Sub PUT(item, cont) while UO.Count( item ) > 0 UO.FindType( item, -1, -1 ) UO.MoveItem( 'finditem', 0, cont ) wait(300) wend end sub
|