Yoko

All sides of Injection
It is currently 2025-11-23 09:49:30

All times are UTC+02:00




Post new topic  Reply to topic  [ 19 posts ] 
Author Message
PostPosted: 2009-11-02 13:24:14 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
собственно данный саб обкапывает всё в округе .. можно ли задать ему копание только по типу тайла ? (скал) или не по типу а какими-то обходнымы путями чтобы копал только скалы ) мб по Z заставить его ? но будет ли он пытаться копать воздух ? =)))
заранее спасибо =)
Code:
sub kopka() 
hiding()
myXX=uo.getX(); запоминает место откуда начал копать
myYY=uo.getY();
var PX, PY, PZ, IX, IY, IZ
    PX=0
    PY=0
    UO.DeleteJournal()
         PX = UO.GetX()
         PY = UO.GetY()
         PZ = UO.GetZ()
    For Iy=-4 to 4
       For Ix=-4 to 4
        For Iz=-4 to -2
   if UO.Weight <= (uo.str*4+20) then
       while not UO.InJournal('There is no ore') and not UO.InJournal("You have no line") and not UO.InJournal("That is to far away") and not UO.InJournal("You can't think") and not UO.InJournal("You have no line of") and not UO.InJournal("too far away") and not UO.InJournal("mining in rock.")
            UO.DeleteJournal()
            if not uo.hidden() then
            autohide()
               while not uo.injournal("You have hidden")
                  wait(200)
               wend
            endif
             ws()
             UO.WaitTargetTile(-1,Str(PX+Ix),Str(PY+Iy),Str(PZ+IZ))
            uo.usetype(kirka)
            while not UO.InJournal("You put the") and not UO.InJournal("You loosen some") and not UO.InJournal("You can't think") and not UO.InJournal("That is to far away") and not UO.InJournal("There is no ore") and not UO.InJournal("You have no line of") and not UO.InJournal("too far away") and not UO.InJournal("mining in rock.")
               Wait(200)
            wend
      wend
   endif       
        UO.DeleteJournal()
         next
      next
     next
       if UO.Weight > (uo.str*4+20) then
      RunebookRecalla(1)
       UO.exec('exec GotoHomeT')
         else
      endif
end sub


Top
   
 Post subject:
PostPosted: 2009-11-02 15:43:38 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Что в твоём понятии тип скалы?


Top
   
 Post subject:
PostPosted: 2009-11-02 16:25:38 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
при инфотайле первое число = тип текстуры = тип тайла . но я только что заметил что у скал и травы там 0 О_о


Top
   
 Post subject:
PostPosted: 2009-11-02 16:43:36 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Попробуйте, после ручного тыка:
,infotile 'lasttile'

Все равно нуль ?

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2009-11-02 16:50:44 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
угумс .. пример последнего -
0 2286 1255 3 что по ласттайлу что так ..

судя по вашему выражению мне надо переделывать скрипт полностью под точные координаты ? по типу не прокатит ?


Top
   
 Post subject:
PostPosted: 2009-11-02 17:20:00 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
я бы предложил воспользоваться uo.privategettile если потянет версия инжекта и через инсайд переписать все типы которые интересны для копания.

Или по 0 Х Y жестко.

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


Top
   
 Post subject:
PostPosted: 2009-11-02 18:14:20 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
как это реализовать в моём скрипте ? и наскоко это небезопасно посравнению с точечным копанием ? версия 505.18 гамп фикс в2 и что вобще за приваттаргеттайл ? порылся в поиске и неособо понял его функцию О_о


Top
   
 Post subject:
PostPosted: 2009-11-02 18:45:21 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
попробуй запустить. На 505 вроде работало:

Code:
################ Рудокоп #################
Sub Mine()
   VAR Shovel1 = '0x0F3A'
   VAR Shovel2 = '0x0F39'
   VAR Pickaxe1 = '0x0F39'
   VAR Pickaxe2 = '0x0F39'
   VAR MaxRange = 2
   VAR X, Y, Z, Tiles
   VAR mX, mY, mZ
   VAR MaxVes = 610
   ;   UO.Set('quiet','0')
   UO.Msg(".resync")
   mX = UO.GetX('self')
   mY = UO.GetY('self')
   mZ = UO.GetZ('self')
   for Y = MaxRange - ( MaxRange * 2 ) to MaxRange
      for X = MaxRange - ( MaxRange * 2 ) to MaxRange
         Tiles = MiningTiles(mX+X, mY+Y)
         if Tiles then
            UO.DeleteJournal()
            repeat
               UO.Set('quiet','1')
               UO.DeleteJournal()
               UO.Warmode(0)
               UO.WaitTargetTile(Tiles, mX+X, mY+Y, mZ)
   UO.FindType(Shovel1,-1,'my')
      if UO.FindCount() then
         UO.UseType(Shovel1)
      else
   UO.FindType(Shovel2,-1,'my')
      if UO.FindCount() then
         UO.UseType(Shovel2)
      else
   UO.FindType(Pickaxe1,-1,'my')
      if UO.FindCount() then
         UO.UseType(Pickaxe1)
      else
   UO.FindType(Pickaxe2,-1,'my')
      if UO.FindCount() then
         UO.UseType(Pickaxe2)
      else
         UO.Set('quiet','0')
            UO.Print("ERROR: Нечем копать!!!")
         return
      endif
      endif
      endif
      endif
               LastTimer=UO.Timer()
               repeat
                  wait(100)
               until UO.InJournal("%|destroyed|useable|выкопали|0xAD00|0xA867|0xA2DE|0xAD03|0x5DE0|0x5DE1|0x5DE2|0x5DE3|0x5DE4|0x5DE5|0x5DE6|0x5DE7|Вы положили|put the|is nothing here to mine|Wthere do you|Вам не удалось|У вас нет|have no line|ничего|Тут ничего|Попробуйте|Try mining elsewhere") || UO.Timer()>LastTimer+100 || UO.Weight > MaxVes || UO.Dead()
            until UO.InJournal("%|destroyed|0xAD00|0xA867|0xA2DE|Тут ничего|is nothing here to mine|нет руды|У вас нет|have no line|Попробуйте|Try mining elsewhere") || UO.Timer()>LastTimer+500 || UO.Weight > MaxVes || UO.Dead()
            ############################
            #ПЕРЕГРУЗ!!!#
            ############################
            If UO.Weight > MaxVes Then
               UO.Print('Перегруз!')
               wait(500)
               return
            endif
            ############################
         endif
      next
   next
   UO.Set('quiet','0')
   UO.Print("Все")
   UO.Sound(100)
   return 0
end sub

Sub MiningTiles(X,Y)
   var i
   if UO.PrivateGetTile(X, Y, -1, 616, 618) then
      for i=616 to 618
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 1339, 1363) then
      for i=1339 to 1363
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 2272, 2282) then
      for i=2272 to 2282
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 4963, 4973) then
      for i=4963 to 4973
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 6001, 6012) then
      for i=6001 to 6012
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13121, 13369) then
      for i=13121 to 13369
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13446, 13455) then
      for i=13446 to 13455
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13484, 13492) then
      for i=13484 to 13492
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13625, 13628) then
      for i=13625 to 13628
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   return 0; No Mining Tiles
end sub

Если будет ругаться значит не судьба. Если не будет ругаться то должен и по стенам и по сталактитам и по всему что может содержать руду копать. лопата кирка пофигу какая лишь бы в паке лежала.

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


Top
   
 Post subject:
PostPosted: 2009-11-02 19:15:24 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
сначала ругался на ласт таймеры =) я их убрал =) 52-51 строки =) потом на ресинк начал ругаться ) тоже вырубил ) в итоге при запуске скрипта пишет уопринтом "все" и вырубаеться ..


Top
   
 Post subject:
PostPosted: 2009-11-02 20:15:37 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Mirage, у его тайлов нулевой тайп..

Хрен его знает, как у него копка по скалам вообще работает..

Tyoma, проще будет записать все "правильные" тайлы в табличку и по ней уже проходиться и капать.

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2009-11-02 22:48:23 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
Destruction wrote:
Mirage, у его тайлов нулевой тайп..

Хрен его знает, как у него копка по скалам вообще работает..

Tyoma, проще будет записать все "правильные" тайлы в табличку и по ней уже проходиться и капать.

я уже так и понял ))) попробую )


Top
   
 Post subject:
PostPosted: 2009-11-03 11:37:11 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
Code:
var tSeif='000000000' 
var Kirka='0x0E85'

sub main()
 while not uo.dead()
  go(1528,1119,1)#k=1 капаем k<>1 холостой ход
minround()
  go(1528,1120,1)
minround()
  go(1529,1119,0)
  go(1529,1120,1)
minround()
  go(1530,1119,0)
  go(1530,1120,1)
minround()
  go(1531,1119,0)
  go(1531,1120,1)
minround()
  go(1532,1119,0)
  go(1532,1120,1)
minround()
  go(1544,1112,0)#подходим к сундуку
  UnLoad()#выкладываем руду
wend
endsub

sub minround()
VAR Kirka = '0x0F39'
VAR TileNum = '1339'
VAR x, y, t, k
VAR MaxTime = 100 
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
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"
var kolr,per
for y=-1 to 1
for x=-1 to 1 
  k = 0
  repeat
    UO.DeleteJournal()
    t = UO.Timer()
    k = k + 1
    if uo.targeting() then
     UO.CancelTarget()
    endif
    CheckLag()
    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())
    uo.findtype('0x19B9','-1','backpack')
    kolr=uo.getquantity('finditem')
    per=uo.str*4+30-uo.weight
    uo.print("kol-vo irona " + str(kolr) + " do perevesa " + str(per))
    if per<=30 then
     uo.exec('terminate all')
     wait(700)
    endif     
  until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
 next
next
endsub

Sub go(x,y,k)
 
end sub



помогите пожалуста переделать под точечную копалку ? в мэйн пример координат .. нужно чтобы там где 1 он копал (именно эти указаные координаты) а там где 0 двигался (собсна как мы щас и имеем) но он обкапывает всё вокруг а надо только ту координату с 1 .. подправьте пожалуста минраунд немного .. заранее спс .. или подскажите как правильно подправить ? а то непонимаю каким образом он может считовать те координаты что я указал с 1 ..


Top
   
 Post subject:
PostPosted: 2009-11-04 13:18:48 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
всё намано всё сделал ) вопрос номер два .. чёто некоректно работает килялка елементала со скрола ..

Code:
Sub mining_pomos()
repeat
uo.findtype('0x000E','-1','ground')
if uo.findcount() then
uo.waittargetobject('finditem')
wait(500)
uo.usetype('0x1F2D')
wait(2000)
endif
end sub


суть в том чтобы юзнуть на Елементала скрол .. и чем быстрее тем лудше .. если физл то повторить .. что скажите ? =)


Top
   
 Post subject:
PostPosted: 2009-11-04 14:30:14 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
патамушто гладиолус :)

Code:
Sub mining_pomos()
 repeat ; начало цикла
   uo.findtype('0x000E','-1','ground')
   if uo.findcount() then
      uo.waittargetobject('finditem')
      uo.usetype('0x1F2D')
      wait(2000)
   endif
;ни че тут не забыл?
end sub

ps у них там не определяющаяся статика копается (реально скалы с 0 тайлом) - какойто безумный мир :lol:

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


Top
   
 Post subject:
PostPosted: 2009-11-04 14:52:08 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
Mirage wrote:
патамушто гладиолус :)

Code:
Sub mining_pomos()
 repeat ; начало цикла
   uo.findtype('0x000E','-1','ground')
   if uo.findcount() then
      uo.waittargetobject('finditem')
      uo.usetype('0x1F2D')
      wait(2000)
   endif
;ни че тут не забыл?
end sub

ps у них там не определяющаяся статика копается (реально скалы с 0 тайлом) - какойто безумный мир :lol:


делейт журнала ? ну всёравно как-то я или криво его вставляю или незнаю .. долго юзает .. ор появляеться а он ещё секунд 10 бывает стоит ..

вычислил проблему .. поиск идёт по граунду .. а ор когда появляеться (пока не ударит или ещё чего не сделает/кастанёт) подвешен в воздухе .. есть какие решения ?


Top
   
 Post subject:
PostPosted: 2009-11-04 23:31:13 
Offline

Joined: 2009-10-15 13:58:29
Posts: 18
разобрались тему клоц =) спс миражу :!:


Top
   
 Post subject:
PostPosted: 2009-12-08 23:37:31 
Offline

Joined: 2009-06-29 13:53:36
Posts: 27
Меня интересует вопрос: "Что делает этот скрипт"?
Code:
################ Рудокоп ################# 
Sub Mine()
   VAR Shovel1 = '0x0F3A'
   VAR Shovel2 = '0x0F39'
   VAR Pickaxe1 = '0x0F39'
   VAR Pickaxe2 = '0x0F39'
   VAR MaxRange = 2
   VAR X, Y, Z, Tiles
   VAR mX, mY, mZ
   VAR MaxVes = 610
   ;   UO.Set('quiet','0')
   UO.Msg(".resync")
   mX = UO.GetX('self')
   mY = UO.GetY('self')
   mZ = UO.GetZ('self')
   for Y = MaxRange - ( MaxRange * 2 ) to MaxRange
      for X = MaxRange - ( MaxRange * 2 ) to MaxRange
         Tiles = MiningTiles(mX+X, mY+Y)
         if Tiles then
            UO.DeleteJournal()
            repeat
               UO.Set('quiet','1')
               UO.DeleteJournal()
               UO.Warmode(0)
               UO.WaitTargetTile(Tiles, mX+X, mY+Y, mZ)
   UO.FindType(Shovel1,-1,'my')
      if UO.FindCount() then
         UO.UseType(Shovel1)
      else
   UO.FindType(Shovel2,-1,'my')
      if UO.FindCount() then
         UO.UseType(Shovel2)
      else
   UO.FindType(Pickaxe1,-1,'my')
      if UO.FindCount() then
         UO.UseType(Pickaxe1)
      else
   UO.FindType(Pickaxe2,-1,'my')
      if UO.FindCount() then
         UO.UseType(Pickaxe2)
      else
         UO.Set('quiet','0')
            UO.Print("ERROR: Нечем копать!!!")
         return
      endif
      endif
      endif
      endif
               LastTimer=UO.Timer()
               repeat
                  wait(100)
               until UO.InJournal("%|destroyed|useable|выкопали|0xAD00|0xA867|0xA2DE|0xAD03|0x5DE0|0x5DE1|0x5DE2|0x5DE3|0x5DE4|0x5DE5|0x5DE6|0x5DE7|Вы положили|put the|is nothing here to mine|Wthere do you|Вам не удалось|У вас нет|have no line|ничего|Тут ничего|Попробуйте|Try mining elsewhere") || UO.Timer()>LastTimer+100 || UO.Weight > MaxVes || UO.Dead()
            until UO.InJournal("%|destroyed|0xAD00|0xA867|0xA2DE|Тут ничего|is nothing here to mine|нет руды|У вас нет|have no line|Попробуйте|Try mining elsewhere") || UO.Timer()>LastTimer+500 || UO.Weight > MaxVes || UO.Dead()
            ############################
            #ПЕРЕГРУЗ!!!#
            ############################
            If UO.Weight > MaxVes Then
               UO.Print('Перегруз!')
               wait(500)
               return
            endif
            ############################
         endif
      next
   next
   UO.Set('quiet','0')
   UO.Print("Все")
   UO.Sound(100)
   return 0
end sub

Sub MiningTiles(X,Y)
   var i
   if UO.PrivateGetTile(X, Y, -1, 616, 618) then
      for i=616 to 618
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 1339, 1363) then
      for i=1339 to 1363
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 2272, 2282) then
      for i=2272 to 2282
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 4963, 4973) then
      for i=4963 to 4973
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 6001, 6012) then
      for i=6001 to 6012
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13121, 13369) then
      for i=13121 to 13369
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13446, 13455) then
      for i=13446 to 13455
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13484, 13492) then
      for i=13484 to 13492
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   if UO.PrivateGetTile(X, Y, -1, 13625, 13628) then
      for i=13625 to 13628
         if UO.PrivateGetTile(X, Y, -1, i, i) then
            return i
         end if
      next
   end if
   return 0; No Mining Tiles
end sub


Как я понял,он копает скалы.Но у меня есть проблема,начинает копать,когда выкапывает все из кочки я подхожу к другой,но чето-то не копает...Или он не так работает,а как-то подругому,т.е. принцип скрипта не тот?(= :oops: [/quote]


Top
   
 Post subject:
PostPosted: 2009-12-09 07:46:37 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
то что просил автор выглядит несколько иначе :)

ЭТОТ скрипт копает тайлы перечисленные в нижней части скрипта (например с 6001 по 6012 и так далее). Не копает если нет инструмента, вес больше 500. Одноразовая копка до всего чего можно достать стоя на месте в радиусе 2 тайла от персонажа. Это просто модуль копания. Если ты сам ходишь то надо запускать каждый раз процедуру Mine()

Если хочешь с хождением сделать то надо делать чтото типо этого:
Code:
GoToXY(X1,Y1,0)
Mine()
GoToXY(X2,Y2,0)
Mine()
GoToXY(X3,Y3,0)
Mine()


PS надо переписать типы лопат и кирок - это черновой вариант скрипта.

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


Top
   
 Post subject:
PostPosted: 2009-12-09 18:29:42 
Offline

Joined: 2009-06-29 13:53:36
Posts: 27
Ммм ясно! А какую команду удалить,чтобы он когда выкапывал вырубал скрипт...а то висит он!(


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

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 3 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