Yoko

All sides of Injection
It is currently 2026-03-14 22:42:25

All times are UTC+02:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 2008-12-19 16:35:41 
Offline

Joined: 2004-08-26 16:47:05
Posts: 51
Вот предположим, мне нужно взять координаты последнего тайла по которому нажал не я и инжект...Например:
Есть скрипт который марчит тайлы с рудой, но так как руками их промарчить сложновато на скале я запускаю простейший скрипт на обкопку вокруг себя...но инжа возращает ласттайл который был кликнут из клиента ручками, а не тот который нашёл сам скрипт...может есть у кого автомарк тайлов для скал?


Top
   
 Post subject:
PostPosted: 2008-12-22 11:13:46 
Offline

Joined: 2004-08-26 16:47:05
Posts: 51
Неужели никто не знает как сделать такое?


Top
   
 Post subject:
PostPosted: 2008-12-22 18:22:58 
Offline

Joined: 2008-03-03 02:16:35
Posts: 45
Поконкретнее, скипт свой скинь чтоб видно было о чем речь идет.


Top
   
 Post subject:
PostPosted: 2008-12-23 10:01:21 
Offline

Joined: 2004-08-26 16:47:05
Posts: 51
Code:
var tochka
sub MarkRail()
; ====================================================
; ВНИМАНИЕ! Это скрипт для инжекта, а не для стелса!!!
; ====================================================
; Скрипт разметки маршрута передвижения чара и копки/рубки
; Создает файл со строками вида:
; X Y TileType TileX TileY TileZ
; где: X, Y - координаты чара в узловой точке
;      TileType   - тип цели. То есть тип тайла или статики,
;                   которую либо рубим/либо копаем
;      TileX, TileY, TileZ - координаты цели
; Узловые точки могут быть двух видов - либо тут копаем/рубим,
; либо тут чар должен повернуть при передвижении. Если второе, то
; последние четыре параметра равны 0. Учитывайте это в своих скриптах.
;
; Как работает? Записываются начальные координаты с нулями в четырех последних
; параметрах, запоминается направление взгляда чара, чистится журнал.
; Потом каждые 50 мс проверяются: не изменилось ли направление взгляда чара, не
; появилось ли сообщение в журнале о копке/рубке. Если одно из условий выполнено,
; то в файл записывается строка с текущими данными чара. То есть, если чар повернул,
; но копка/рубка не началась - пишется строка с четырьмя нулями в конце, если есть
; сообщение - пишутся координаты ласттайла и тип из-под него.
; Скрипт прекращает работу при появлении в журнале слова Finish, произнесенного
; данным чаром (проверяется по сериалу строки журнала).
;
; v.1.01b (с) Edred
;
; В данной версии данные пишутся в текстовое окно, а не файл.
; Также не проверяется сериал чара, сказавшего Finish.
;
   VAR msg1 = 'You put'
   VAR msg2 = 'There is no'
   VAR msgf = 'Finish'
   VAR cx1, cy1, cdir1, tx1, ty1, tz1, ttyp1, oldx, oldy
   UO.TextOpen()
   UO.TextClear()
   cx1 = UO.GetX()
   cy1 = UO.GetY()
   cdir1 = UO.GetDir()
   UO.TextPrint(str(cx1) + ' ' + str(cy1) + ' ' + '0 0 0 0')
   oldx = cx1
   oldy = cy1
   repeat
      UO.DeleteJournal()
      repeat
         wait(50)
      until UO.InJournal(msg1) OR UO.InJournal(msg2) OR UO.InJournal(msgf) OR UO.GetDir() <> cdir1
      if UO.InJournal(msgf) then
         return
      endif
      If UO.InJournal(msg1) OR UO.InJournal(msg2) Then
         cx1 = UO.GetX()
         cy1 = UO.GetY()
         ttyp1 = UO.LastTile( 0 )
         tx1 = UO.LastTile( 1 )
         ty1 = UO.LastTile( 2 )
         tz1 = UO.LastTile( 3 )
         UO.TextPrint(str(cx1) + ' ' + str(cy1) + ' ' + str(ttyp1) + ' ' + str(tx1) + ' ' + str(ty1) + ' ' + str(tz1))
         oldx = cx1
         oldy = cy1
         cdir1 = UO.GetDir()
      Else
         cx1 = UO.GetX()
         cy1 = UO.GetY()
         if (cx1 <> oldx) OR (cy1 <> oldy) then
            UO.TextPrint(str(cx1) + ' ' + str(cy1) + ' ' + '0 0 0 0')
            oldx = cx1
            oldy = cy1
         endif
         cdir1 = UO.GetDir()
      Endif
   until false
endsub

sub minround()

VAR Kirka = '0x0E85'   ; Тип Кирки
VAR TileNum = '1339'   ; Тайл пола пещеры (наиболее распространенный тип)
VAR x, y, t, k
VAR MaxTime = 100   ; измеряется в 1/10 сек.
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"
VAR ms7 = "You have no"
VAR ms8 = "You must wait"

for y=0 to 2
   for x=-2 to 2
      k = 0
      repeat
         UO.DeleteJournal()
         t = UO.Timer()
         k = k + 1
         UO.CancelTarget()
         wait(300)
         UO.WaitTargetTile( 0, 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 UO.InJournal(ms8) OR ((t + MaxTime) < UO.Timer())
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
   next
next
endsub


Предположим вот так...я примерно на данный момент сделал следующее, но имхо не правильно:

Code:
sub maining()
UO.TextOpen()
UO.TextClear()
   VAR Xi,Yi,mx,my,ttyp1,tx1,ty1,tz1
   VAR msg1 = 'You put'
   VAR msg2 = 'There is no'
   VAR msg3 = 'You loosen'
   start:
    FOR Xi = -1 TO 2
      FOR Yi = -3 TO 3
  UO.DeleteJournal()
UO.Exec("waittargettile 3126 "+STR(UO.GetX()+Xi)+" "+STR(UO.GetY()+Yi)+" 0")
UO.Exec("usetype 0x0E85")
waiter()
wait(1000)
if UO.InJournal(msg1) OR UO.InJournal(msg2) OR UO.InJournal(msg3) then
         mx = UO.GetX()
         my = UO.GetY()
         ttyp1 = UO.LastTile( 0 )
         tx1 = mx+Xi
         ty1 = my+Yi
         tz1 = UO.LastTile( 3 )
UO.TextPrint(str(mx) + ' ' + str(my) + ' ' + str(ttyp1) + ' ' + str(tx1) + ' ' + str(ty1) + ' ' + str(tz1))
end if
    NEXT
    NEXT
    goto start
end sub
sub Waiter()
 VAR Zdat = 0
 UO.DeleteJournal()
  While UO.InJournal("You put the")==0 and UO.InJournal("You must wait")==0 and UO.InJournal("You loosen some rocks")==0 and UO.InJournal("There is no ore")==0 and UO.InJournal("Try mining in rock")==0 and UO.InJournal("That is too far away")==0 and Zdat < 200 and UO.InJournal("You have no line of sight to that location")==0
   Wait(100)
   Zdat = Zdat + 1
  Wend
end sub



Вот теперь думаю, как объеденить предыдущий скрипт на метку маршрута, с тем, что я написал.


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 7 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