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
понял!Спасибо! Вечерком все попробую!:)