Подскажите по тайлам плиз

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
MorbidAngel
Posts: 51
Joined: 2004-08-26 16:47:05

Подскажите по тайлам плиз

Post by MorbidAngel »

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

Post by MorbidAngel »

Неужели никто не знает как сделать такое?
Jaraa
Posts: 45
Joined: 2008-03-03 02:16:35

Post by Jaraa »

Поконкретнее, скипт свой скинь чтоб видно было о чем речь идет.
MorbidAngel
Posts: 51
Joined: 2004-08-26 16:47:05

Post by MorbidAngel »

Code: Select all

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: Select all

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



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