Yoko

All sides of Injection
It is currently 2025-12-02 16:41:19

All times are UTC+02:00




Post new topic  Reply to topic  [ 11 posts ] 
Author Message
PostPosted: 2006-11-08 17:12:00 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
не хочу боянить вот написал так как сам решил этим заняться вплотную думаю комунить пригодится тут несколько скриптов на перекладку однотипных вещей и производство стафов (можно легко переделать под удочки) на подходе продажа этих итемов вендору (с портами все как положено)
собственно все

Code:
######################################
#DRW Question_GimFlex
######################################
#для удобства например купили 50 пустых мешков их надо кинуть
#в сундук, не в ручную же, запускаем и не напрягаемся.
######################################
sub Perekidka()
uo.print('Otkyda kidaem?')
uo.exec('addobject contiz')
while uo.targeting()
  wait(100)
wend
uo.print('Chto kidaem?')
uo.exec('addtype item')
while uo.targeting()
  wait(100)
wend
uo.print('Kyda kidaem?')
uo.exec('addobject contv')
while uo.targeting()
  wait(100)
wend
uo.useobject('contiz')
wait(500)
uo.findtype('item','-1','contiz')
while uo.findcount()
 uo.moveitem('finditem','all','contv')
 wait(700)
 uo.findtype('item','-1','contiz')
wend
uo.print('Razgryzilsya')
endsub
########################################
#ОПИСАНИЕ: стоим у 2х сундуков в одном пустые мешки в другом
#полные мешки и логи, чар берет логи и начинает крафтить наполняя
#мешок продуктами как наполнил кидает в сундук берет след пустой
#мешок (удобно тем что если у тебя мешок не наполнился нужным
#кол-вом продукта он продолжает его наполнять)
#П.С. кстати учтите что стаф весит 4 единицы так что
# грамотно рассчитывайте веса (здесь рассчитано на 200 силы)
# пример: 150 стафов = 600, 300 логов +150=750, побочный=50
########################################
sub Carpentry()
var cont1='0x4035FD15'#логи и наполненные мешки
var cont2='0x40343855'#пустые мешки
var log='0x1BDD'#тип лога
var logc='0x0000'#цвет лога
var inst='0x1032'#тип инструмента
var mesh='0x0E75'#тип мешка
var itemp='0x0E89'#тип предмета изготовленного
var food='0x097B'#тип еды
var kolvo=150#кол-во предметов рассчитывать с учетом общего веса
var kollog='300'#кол-во логов которое берем из сундука
var sym,i,kol
var ms1="You fail"
var ms2="You put"
i=0
uo.cancelmenu()
uo.automenu('Carpentry','Weapons & Tools')
uo.automenu('Weapons & Tools','quarter staff (3 log)')
uo.useobject(cont1)
wait(1000)
uo.useobject(cont2)
wait(1000)
uo.findtype(log,logc,'backpack')
if uo.findcount() then
 uo.moveitem('finditem','all',cont1)
 wait(1000)
endif
uo.findtype(mesh,'-1','backpack')
if uo.findcount()<=0 then
 uo.findtype(mesh,'-1',cont2)
 uo.moveitem('finditem','1','backpack')
 wait(1000)
endif
sym=uo.getserial('finditem')
while not uo.dead()
 uo.useobject(sym)
 uo.findtype(itemp,'-1',sym)
 while uo.findcount()<kolvo
  ToHide()
  uo.findtype(log,logc,'backpack')
  if uo.getquantity('finditem')<10 then
   CheckLag()
   uo.findtype(log,logc,cont1)
   uo.moveitem('finditem',kollog,'backpack')
   wait(1000)
  endif
  uo.findtype(itemp,'-1','backpack')
  if uo.findcount()>0 then
   uo.moveitem('finditem','all',sym)
  endif
  uo.usetype(inst)
  uo.deletejournal()
  repeat
   wait(100)
  until uo.injournal(ms1) or uo.injournal(ms2)
  i=i+1
  if i==25 then
   i=0
   uo.usetype(food)
  endif
  uo.findtype(itemp,'-1',sym)
  kol=uo.findcount()
  uo.print('Sdelal '+str(kol)+' stafov')
 wend
 CheckLag()
 uo.moveitem(sym,'1',cont1)
 wait(1000)
 CheckLag()
 uo.findtype(mesh,'-1',cont2)
 uo.moveitem('finditem','1','backpack')
 wait(1000)
 CheckLag()
 sym=uo.getserial('finditem')
wend
endsub
############################################
Sub ToHide()
   while not UO.Hidden()
      CheckLag()
      uo.WarMode(0)
      uo.UseSkill('Hiding')
      repeat
         wait(200)
      until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preocopured') or UO.Dead()
   wend
end Sub
#############################################
Sub CheckLag()
   uo.DeleteJournal()
   uo.Click('backpack')
   repeat
      wait(50)
   until uo.InJournal('backpack') or UO.Dead()
end Sub
#############################################


Last edited by GimFlex on 2006-11-08 18:26:06, edited 3 times in total.

Top
   
 Post subject:
PostPosted: 2006-11-08 17:28:17 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
1.
Code:
if uo.findcount()<=0 then 

Немного не корректно. Лучше было бы написать :
Code:
if not uo.FindCount()



2.

Code:
sym=uo.getserial('finditem') 

 uo.useobject(sym)

Могу ошибаться, но больше чем уверен, что переменную , которой присваиваешь значение в скрипте в дальнейшем надо использовать в апострафах.

3. После перекладывания желательно бы задержку. Хотя здесь возможно и никаких сбоев может и не быть.

Code:
  if uo.findcount()>0 then 
   uo.moveitem('finditem','all',sym)
  endif
  uo.usetype(inst)


4. Динамическая пауза бы не помешала
Code:
  repeat 
   wait(100)
  until uo.injournal(ms1) or uo.injournal(ms2)


Зачем писать то,что уже написано?

п.с. Ты этот скрипт проверял или опять ради прикола когда выкладывал решил кое что изменить ?!


Top
   
 Post subject:
PostPosted: 2006-11-08 17:38:23 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
1.ну вроде работает и так :)
2.нет работает без ковычек отлично
3.в том то весь и прикол там идет задержка дальше
4.не знаком с этим :)

работает уже 2 часа как :)


Top
   
 Post subject:
PostPosted: 2006-11-08 17:41:51 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
3.кстати поставил ковычки и как то по левому стал работать так что без ковычек надо все правильно


Top
   
 Post subject:
PostPosted: 2006-11-08 17:46:33 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
по поводу теста - тестил :)

Image


Top
   
 Post subject:
PostPosted: 2006-11-08 17:49:47 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
забыл добавить - учтите что стаф весит 4 единицы так что грамотно рассчитывайте веса


Top
   
 Post subject:
PostPosted: 2006-11-08 22:44:24 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
устал тестить 7 часов ниразу не слетел :) :wink:


Top
   
 Post subject:
PostPosted: 2006-11-09 02:14:17 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Крафтил стоя на улице, чтож за шард такой что тебя за 7 часов не слили?

_________________
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-11 16:37:32 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
продажа выкладываю для одного человека сложен в настройках так что кто поймет тот пусть и юзает
Code:
sub Prodaga()  
var zabor='0x40161D00'
var booka='0x403DF607'
var cont1='0x4035FD15'
var cont2='0x40343855'
var mesh='0x0E75'
var fl=0
var oldX=UO.GetX()
var oldY=UO.GetY()
while fl==0
 Port(2,booka)
 while uo.gety('self')<>2364
  uo.press(33)
  wait(10)
 wend
 uo.useobject(zabor)
 while uo.gety('self')<>2361
  uo.press(33)
  wait(500)
 wend 
 uo.useobject(zabor)
 uo.findtype(mesh,'-1','backpack')
 uo.moveitem('finditem','1',cont2)
 CheckLag()
 uo.useobject(cont1)
 CheckLag()
 uo.findtype(mesh,'-1',cont1)
 if uo.findcount() then
   uo.moveitem('finditem','1','backpack')
   CheckLag()
  else
   fl=1
 endif
 Port(1,booka)
 oldX=UO.GetX()
 oldY=UO.GetY()
 uo.useobject('0x400BC158')
 wait(500)
 uo.lclick(400,270)
 Repeat
  wait(500)
 Until oldX<>UO.GetX() OR oldY<>UO.GetY()
 GotoXY(5512,1171)
 uo.findtype(mesh,'-1','backpack')
 uo.waittargetobject('finditem')
 uo.useobject('0x4023D402')
 wait(1000)
 uo.lclick(184,130)
 CheckLag()
 wait(500)
 oldX=UO.GetX()
 oldY=UO.GetY()
 uo.useobject('0x400956D9')
 wait(500)
 uo.lclick(120,170)
 Repeat
  wait(500)
 Until oldX<>UO.GetX() OR oldY<>UO.GetY()
wend
endsub
###################################################
Sub Port(n,book)
var oldX=UO.GetX()
var oldY=UO.GetY()
   NoTarget()
   UO.UseObject(book)
   FastLootCheck()
   CheckLag()
   UO.LClick(135, n*15+55)
   Repeat
     wait(500)
   Until oldX<>UO.GetX() OR oldY<>UO.GetY()
end sub

Sub FastLootCheck()
   UO.DeleteJournal()
   wait(600)
   if UO.InJournal("FastLoot") OR UO.InJournal("World save") then
      CheckLag()
   endif
end sub

Sub NoTarget()
   if UO.Waiting() then
      UO.CancelTarget()
   endif
end sub
#####################################################
Sub GotoXY(x,y)
   VAR i,j,m
   VAR dir,ldir,rdir,key,olddir
   VAR dx,dy,Exit=0
   VAR CacheLimit=9,CacheIndex="Text"
   DIM CacheX[10], CacheY[10]
   
   CacheX[0]="Test"

   While Exit<>1
   
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         If dx==0 AND dy==0 Then
            Exit=1
         Endif
           
      If dx<>0 AND dy<>0 Then
         If dx>0 AND dy>0 Then ; GoSE
            dir=3
            ldir=2
            rdir=4
            key=40 ; DownArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==2 Then ; GoNE
                  dir=1
                  ldir=0
                  rdir=1
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=5
                  rdir=6
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif

         If dx>0 AND dy<0 Then ; GoNE
            dir=1
            ldir=0
            rdir=2
            key=39 ; RightArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==0 Then ; GoWN
                  dir=7
                  ldir=6
                  rdir=7
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSE
                  dir=3
                  ldir=3
                  rdir=4
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif

         If dx<0 AND dy>0 Then ; GoSW
            dir=5
            ldir=4
            rdir=6
            key=37 ; LeftArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==6 Then ; GoWN
                  dir=7
                  ldir=7
                  rdir=0
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSE
                  dir=3
                  ldir=2
                  rdir=3
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif

         If dx<0 AND dy<0 Then ; GoWN
            dir=7
            ldir=6
            rdir=0
            key=38 ; UpArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==0 Then ; GoNE
                  dir=1
                  ldir=1
                  rdir=2
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=4
                  rdir=5
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
      Endif
   
      If dx<>0 AND dy==0 Then
         If dx>0 Then ; GoE
            dir=2
            key=34 ; PgDown
            olddir=UO.GetDir()
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==2 Then ; GoSE
                  dir=3
                  ldir=3
                  rdir=4
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoNE
                  dir=1
                  ldir=1
                  rdir=0
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
         
         If dx<0 Then ; GoW
            dir=6
            key=36 ; Home key
            olddir=UO.GetDir()
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==0 Then ; GoWN
                  dir=7
                  ldir=7
                  rdir=0
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=4
                  rdir=5
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
      Endif

      If dx==0 AND dy<>0 Then
         If dy>0 Then ; GoS
            dir=4
            key=35 ; End
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==2 Then ; GoSE
                  dir=3
                  ldir=2
                  rdir=3
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=6
                  rdir=5
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
         
         If dy<0 Then ;GoN
            dir=0
            key=33 ; PgUp
            olddir=UO.GetDir()
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==2 Then ; GoNE
                  dir=1
                  ldir=1
                  rdir=2
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoWN
                  dir=7
                  ldir=7
                  rdir=6
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
      Endif
     endif
   Wend
end sub


Sub StepEdit(x,y,dir,key)
   VAR walkwait=300
   VAR ErrLevel=0
   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   Endif
   UO.Press(key)
   wait(walkwait)
   If x==UO.GetX() AND y==UO.GetY() Then
      CheckLag()
      If x==UO.GetX() AND y==UO.GetY() Then
         ErrLevel=1
      Endif
   Endif
   Return ErrLevel
end sub


Sub StepArrow(x,y,dir,ldir,rdir,key)
   VAR walkwait=300
   VAR ErrLevel=0
   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
         CheckLag()
      Endif
   Endif

   If UO.GetX()==x AND UO.GetY()==y Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
         CheckLag()
         If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then         
            ErrLevel=1
         Endif
      Endif
   Endif
   Return ErrLevel
end sub


Top
   
 Post subject:
PostPosted: 2006-11-17 22:39:31 
Offline

Joined: 2006-02-17 15:20:12
Posts: 7
А можно всё это запихнуть в один сундук?
Типо два мешка лежат в сундуке (Один с пустыми мешками) (Другой для полных) а логи лежат в этом сундуке?


Top
   
 Post subject:
PostPosted: 2006-11-18 00:48:11 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
BART wrote:
А можно всё это запихнуть в один сундук?
Типо два мешка лежат в сундуке (Один с пустыми мешками) (Другой для полных) а логи лежат в этом сундуке?


нет если у тебя нет сундука могу сделать :)


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited