Yoko

All sides of Injection
It is currently 2025-11-22 19:10:36

All times are UTC+02:00




Post new topic  Reply to topic  [ 5 posts ] 
Author Message
PostPosted: 2010-01-24 12:45:03 
Offline
User avatar

Joined: 2008-08-11 21:52:22
Posts: 30
Иногда буду выкладывать здесь свои (иногда только доработанные мной) скрипты под шард ДРВ.
Отписывайтесь об ошибках, пишите пожелания и т.д.


Last edited by Zeppelin on 2010-01-24 17:23:25, edited 1 time in total.

Top
   
PostPosted: 2010-01-24 12:45:43 
Offline
User avatar

Joined: 2008-08-11 21:52:22
Posts: 30
1. Раскладка денег

Раскладка денег по кучкам + переброс в мешок + аккуратная раскладка
Code:
#######################
##Раскладка денег 1.0##
#######################
############
##Zeppelin##
##  DRW   ##
############
sub StackMaker()
   var mode = 1             ;1 - с аккуратным раскладыванием, иначе - без
   var maxstack = 50000     ;максимально гп в стопке (для ДРВ - 50000)
   var delay = 700          ;задержка между переброской кучек в миллисекундах
   var x = 35               ;начальный x в сумке
   var y = 50               ;начальный y в сумке
   var xstep = 15           ;шаг x
   var ystep = 18           ;шаг y
   var inrow = 8            ;количество стопок по горизонтали
   var incolumn = 6         ;количество стопок по вертикали
   var bagto = ''           ;контейнер, куда будут складываться деньги
   var bagfrom = 'backpack' ;контейнер, откуда будут переброшены деньги, и куда бросится остаток
                            ;ID или указатели вроде 'backpack' или 'lastcontainer', если же равны пустой строке,
                            ;предоставится выбор вручную.
   var a = 0
   var b = 0                       
   var xx = x
   var yy = y
   while ((bagto=='') or (uo.getserial(bagto)==uo.getserial(bagfrom)))
      bagto = addobject('BagTo')
   wend
   while ((bagfrom=='') or (uo.getserial(bagto)==uo.getserial(bagfrom)))
      bagfrom = addobject('BagFrom')
   wend
endif
uo.findtype('0x0EED',-1,bagfrom)
while uo.findcount()
   uo.moveitem('finditem',0,bagto)
   mywait(delay)
   uo.findtype('0x0EED',-1,bagfrom)
wend
uo.findtype('0x0EED',-1,bagto)
while uo.findcount()
   if (uo.getquantity('finditem')<maxstack) then
      if (b==0) then
         b=uo.getquantity('finditem')
         uo.moveitem('finditem',0,bagfrom)
         mywait(delay)
      else
         a = uo.getquantity('finditem')
         uo.moveitem('finditem',str(maxstack-b),bagfrom)
         wait(delay)
         b = b + a
         if (b>=maxstack) then
            b = 0
         endif
      endif
   else
      uo.moveitem('finditem',0,bagfrom)
      mywait(delay)
   endif
   uo.findtype('0x0EED',-1,bagto)
wend
a = 0
uo.findtype('0x0EED',-1,bagfrom)
while uo.findcount()
   if (uo.getquantity('finditem') < maxstack) then
      a = uo.getserial('finditem')
      uo.moveitem('finditem',0,bagto)
   else
      if (mode==1) then
         if (xx==x+xstep*inrow) then
            xx = x
            yy = yy + ystep
            if (yy==y+ystep*incolumn) then
               yy = y
            endif
         endif
         uo.moveitem('finditem',0,bagto,xx,yy,0)
         xx = xx + xstep
      else
         uo.moveitem('finditem',0,bagto)
      endif
   endif
   mywait(delay)
   uo.findtype('0x0EED',-1,bagfrom)
wend
if (a>0) then
   uo.moveitem(a,0,bagfrom)
endif
uo.print('Переброска окончена! :)')
endsub

Sub addobject(object)
   var execution = 'addobject ' + object
   uo.exec(execution)
   while uo.targeting()
      wait(100)
   wend
   return object
endsub

Sub mywait(delay)
   wait(delay)
   wait_world_save()
   uo.deletejournal()
endsub

Sub wait_world_save()
   If UO.InJournal('World is saving') Then
      Repeat
         wait(100)
      Until UO.InJournal('seconds')
   Endif
end Sub


Top
   
PostPosted: 2010-01-24 14:15:36 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
У меня скрипт перекинув разложил кучки как были - 63К 58К 60К...
Щаз поищем в чем проблема.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2010-01-24 14:23:13 
Offline
User avatar

Joined: 2008-08-11 21:52:22
Posts: 30
Mirage wrote:
У меня скрипт перекинув разложил кучки как были - 63К 58К 60К...
Щаз поищем в чем проблема.

Константу менял в начале скрипта про максимальный стэк?
Code:
var maxstack = 50000     ;максимально гп в стопке (для ДРВ - 50000)

Тут дело в том, что 50000 - это именно максимально возможный на шарде стэк, а не тот, который хочется в стопках.. =)
Под другие шарды, надо переписать немного, чтобы раскладывалось по нужному количеству, просто на дрв всех 50к устраивает, и например, 40к не будут стопки делать =)
В случае иных шардов проблема в таких строках:
Code:
if (uo.getquantity('finditem')<maxstack) then

при этом, если у тебя в кучке больше чем maxstack (который 50к например) монет, он просто так все и оставит =)
Могу доработать конечно, чтобы делал кучки нужного стэка, но именно под ДРВ это не нужно =)


Top
   
PostPosted: 2010-01-24 16:49:34 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Интересно. Подумал что скрипт кидает кучки по требованию :)
У нас максимум в куче гп 65535 :)

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 5 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited