Page 2 of 3

Posted: 2007-05-11 12:49:04
by Vicont
Ну я его завожу в шахту, и включаю скрипт, он пройдет немного, и встает :( Хотя самый первый раз все началось нормально на 3-ей точке только ошибку выдал инжект...Вечером в другой шахте проверю, отпишусь...
А может дело не в ходилке?Может что-то с копалкой?Вечером заодно и чисто ходилку проверю...Если смогу ее отдельно запустить...

Posted: 2007-05-11 13:31:00
by Nmy
может тут ты чудеса понастроил ?
Image

Posted: 2007-05-11 13:42:29
by Vicont
Нет, кроме закладки скриптов, ни одну закладку не юзал...
Вы этот скрипт запускали? Именно его, с копалкой? Все 6 точек обходит?

Posted: 2007-05-11 15:08:26
by Sanch
Какой смысл вообще копать без сгрузки руды в дом, я те могу конечно сделать что он будет просто ходить и копать, но так минут через сорок руда начнет на пол сыпаться + ты ходить не сможешь, тк у тебя будет перебор веса, могу сделать что он сразу будет выкидывать на пол как только что-то выкопает, все что те даст этот скрипт - ну мининг прокачаешь, опять таки не факт, забежит пк в шахту и усе, кач закончился :) .

Posted: 2007-05-11 17:23:14
by Vicont
Смысл такой-просто дома еще нет :) Хотя это конечно скоро решится надеюсь...
Так что если хотите помочь буду только рад :) Дом скоро будет.
Только вот две проблемы, во первых почему то тот скрипт с ходилкой наш не работает(тестирую сейчас его повторно)
Во вторых переплавка на нашем шарде неудобно сделана, по 1 нельзя плавит только по 3, но сортировку по 3 шт я исправил в одном скрипте, так что раскидывает мне кучки по 3 теперь, а вот с тем что у нас надо не на руду кликать для плавки а на форж, появляется прицел, и только потом на руду, не знаю как справиться...Ручками пока :(

Posted: 2007-05-11 21:06:40
by Question_GimFlex
Vicont wrote:Смысл такой-просто дома еще нет :) Хотя это конечно скоро решится надеюсь...
Так что если хотите помочь буду только рад :) Дом скоро будет.
Только вот две проблемы, во первых почему то тот скрипт с ходилкой наш не работает(тестирую сейчас его повторно)
Во вторых переплавка на нашем шарде неудобно сделана, по 1 нельзя плавит только по 3, но сортировку по 3 шт я исправил в одном скрипте, так что раскидывает мне кучки по 3 теперь, а вот с тем что у нас надо не на руду кликать для плавки а на форж, появляется прицел, и только потом на руду, не знаю как справиться...Ручками пока :(
допустим в паке лежат много кучек оров по 3 штуки в кучке тогда запускаем скрипт плавим учки без проблем

Code: Select all

sub smelt()
var ore='0000'; ТИП КУЧКИ ДЛЯ 3 ОРОВ!
var forge='0000000'; ИД ПЛАВИЛЬНИ
uo.findtype(ore,'-1','backpack')
while uo.findcount()
 uo.waittargetobject('finditem')
 uo.usefromground(forge)
 wait(500)
 uo.findtype(ore,'-1','backpack')
wend
endsub

Posted: 2007-05-12 07:07:54
by Vicont
А не подскажете как его скомпоновать вот с этим:

sub pereplavka()

repeat
uo.findtype("0x19B9") #ore
uo.exec("moveitem finditem 3 backpack 150 50 0")
wait(300) #delay ms between grabs
#если руда плавится даблкликом
uo.useobject("finditem")
wait(300) #delay ms between smelts
until not uo.count("0x19B9")

end sub

Чтобы 1 скрипт и то и то делал?

И как узнать тип кучки и ID плавильни?

Posted: 2007-05-12 07:12:48
by Vicont
To Mr Nmy :
Переустановил игру и все патчи-все заработало!:)
Спасибо огромное!:)))

З.Ы. Если ктонибудь поможет оптимизировать скрип с ходилкой
( копает медленно, после удачного выкапывания 2-3 секунды стоит, главное после неудачного сразу роет, без перерыва... Координат можно добавить 6 маловато для некоторых пещер, и самое главное, возможность выгруза в дом) буду очень признателен...

Posted: 2007-05-12 07:29:27
by Revik
Vicont wrote:To Mr Nmy :
Переустановил игру и все патчи-все заработало!:)
Спасибо огромное!:)))

З.Ы. Если ктонибудь поможет оптимизировать скрип с ходилкой
( копает медленно, после удачного выкапывания 2-3 секунды стоит, координат можно добавить 6 маловато, и самое главное, возможность выгруза в дом) буду очень признателен...
В скрипте есть всё необходимое, изучи код, посмотри как что работает и клавитуру в зубы ;)

Posted: 2007-05-12 08:37:35
by Vicont
Чет в этой копалке не понял где задержка...wait(300) если уменьшать ничего не дает...А кроме wait знакомых букв нету :)

Posted: 2007-05-12 09:51:12
by Question_GimFlex
узнать информацию об обьекте можно набрав ,info в окне клиента и кликнув на обьект

Code: Select all

sub pereplavka() 
var ore='0000'; type 3 ore!!!!!!!!
var forge='0000000'; plavilka
repeat 
 uo.findtype("0x19B9") #ore 
 uo.exec("moveitem finditem 3 backpack 150 50 0") 
 wait(300) #delay ms between grabs 
 uo.findtype(ore,'-1','backpack') 
 while uo.findcount() 
  uo.waittargetobject('finditem') 
  uo.usefromground(forge) 
  wait(500) 
  uo.findtype(ore,'-1','backpack') 
 wend 
until not uo.count("0x19B9") 
end sub 

Posted: 2007-05-12 17:01:59
by Vicont
Спасибо:) Теперь не надо другой скрипт загружать, все 33 удовольствия в одном флаконе!:)

Копалку еще б оптимизировать...Подскажите, пожалуйста где задержку в ней уменьшить?

Posted: 2007-05-13 14:17:30
by Vicont
Хочу сказать спасибо всем участникам этого топика, думаю вы помогли не только мне, но и многим кто воспользуется им.Считаю вам ребята запросто программистами идти работать, 100% потянете.
Еще раз большой спасибо. :)

Posted: 2007-05-13 14:54:44
by Question_GimFlex
Vicont wrote:Хочу сказать спасибо всем участникам этого топика, думаю вы помогли не только мне, но и многим кто воспользуется им.Считаю вам ребята запросто программистами идти работать, 100% потянете.
Еще раз большой спасибо. :)
сам бы попробывал прогить это несложно а в условиях инжекта еще и интересно потому что результат сразу на лицо :) :wink:

Posted: 2007-05-14 07:45:33
by Vicont
Надо бы по хорошему :) Да то работа, то поиграть хочется:)

Posted: 2007-05-14 10:17:33
by Vicont
Кстати не подскажете код -войти-выйти в\с боевого режима?Надо б один скриптик дополнить...

Все, похоже нашел...UO.Exec('warmode 1') это оно? UO.Exec('warmode 0') наверное выйти из режима...?

Posted: 2007-05-14 13:49:59
by Rivory
Vicont wrote:UO.Exec('warmode 0') наверное выйти из режима...?
Так и есть

Posted: 2007-05-17 16:57:26
by Vicont
Подскажите пожалуйста как добавить точек-координат в скрипте, 6 маловато...

Code: Select all

sub minround() 
VAR Kirka = '0x0E85'   ; Тип Кирки 
VAR MaxVes = 500   ; Максимальный вес, подымаемый чаром минус 10-15 стоунов 
VAR TileNum = '1339'   ; Тайл пола пещеры (наиболее распространенный тип) 
VAR x, y, t, k, i 
VAR MaxTime = 100   ; измеряется в 1/10 сек. 
VAR ms1 = "There is nothing here to mine for" 
VAR ms2 = "You can't use" 
VAR ms3 = "You put " 
VAR ms4 = "You loosen some rocks" 
VAR ms5 = "You are too far away" 
VAR ms6 = "Try mining in rock" 
VAR ms7 = "You can't see that" 
Dim gox[6] 
    gox[0] = 1234 
    gox[1] = 1234 
    gox[2] = 1234 
    gox[3] = 1234 
    gox[4] = 1234 
    gox[5] = 1234 
Dim goy[6] 
    goy[0] = 1234 
    goy[1] = 1234 
    goy[2] = 1234 
    goy[3] = 1234 
    goy[4] = 1234 
    goy[5] = 1234 
while 1 
for i = 0 to 5 
WalkME(gox[i],goy[i],'') 
for y=-2 to 2 
for x=-2 to 2 
while not UO.Hidden() 
UO.Warmode("0") 
uo.print("Прячемся...") 
UO.UseSkill("Hiding") 
wait(4000) 
wend 
      k = 0 
      repeat 
         UO.DeleteJournal() 
         t = UO.Timer() 
         k = k + 1 
         UO.CancelTarget() 
         wait(300) 
         UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) 
         UO.UseType( Kirka ) 
         repeat 
            wait(300) 
         until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer()) 
         If UO.Weight > MaxVes Then 
            UO.Print(" Overweight!" ) 
            return 
         Endif 
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) ) 
   next 
next 
next 
wend 
endsub 


################# W A L K E R ###################### 

sub WalkME(x,y,Target) 
   VAR i 
   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 
      If Target<>"" Then 
         dx=UO.GetX(Target)-UO.GetX() 
         dy=UO.GetY(Target)-UO.GetY() 
;         UO.Print("Target locked!") 
         If UO.GetDistance(Target)<2 Then 
            return 
         Endif 
      Else 
         dx=x-UO.GetX() 
         dy=y-UO.GetY() 
         If dx==0 AND dy==0 Then 
            return 
         Endif 

      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 
   Wend 
end sub 


sub StepEdit(x,y,dir,key) 
   VAR walkwait=300 
   VAR ErrLevel=0 
   If UO.GetDir()<>dir Then 
         checkstam() 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   Endif 
         checkstam() 
   UO.Press(key) 
   wait(walkwait) 
   If x==UO.GetX() AND y==UO.GetY() Then 
      CheckLag() 
      If x==UO.GetX() AND y==UO.GetY() Then 
;zatik 
         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 
      checkstam() 
      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 
      checkstam() 
      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 
; zatik 
            ErrLevel=1 
         Endif 
      Endif 
   Endif 
   Return ErrLevel 
end sub 

sub checkstam() 
var refresh = '0x0F0B' 
if uo.stamina < 10 then 
   uo.findtype(refresh,-1,'backpack') 
   if uo.findcount() then 
      uo.usetype(refresh) 
      wait(1000) 
   else 
      uo.print("Nety Refreshey! Stoim...") 
   repeat 
      wait(500) 
   until uo.stamina >= 10 
   endif 
else 
endif 
endsub 

Sub CHECKLAG() 
   del('backpack') 
   uo.click('backpack') 
   repeat 
   wait(200) 
   until uo.injournal('backpack') 
   del('backpack') 
endsub 

Sub DEL(msg) 
   while uo.injournal(msg) 
   uo.setJournalLine(uo.injournal(msg)-1,"Is Empty!") 
   wend 
endsub

Posted: 2007-05-18 10:33:40
by Rivory

Code: Select all

Dim gox[p+1] 
    gox[0] = 1234 
    gox[1] = 1234 
    gox[2] = 1234 
    gox[3] = 1234 
    gox[4] = 1234 
    gox[5] = 1234 
    ....................
    ....................
    ....................
    ....................
    ....................
    gox[p] = 1234 
Dim goy[p+1] 
    goy[0] = 1234 
    goy[1] = 1234 
    goy[2] = 1234 
    goy[3] = 1234 
    goy[4] = 1234 
    goy[5] = 1234 
    ....................
    ....................
    ....................
    ....................
    ....................
    goy[p] = 1234 
while 1 
for i = 0 to p
Вместо p и p+1 поставь нужные тебе циферьки

Posted: 2007-05-18 12:23:18
by Vicont
понял!Спасибо! Вечерком все попробую!:)