Вызов EasyUO бегалки

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Rocker
Posts: 24
Joined: 2008-01-07 23:56:04

Вызов EasyUO бегалки

Post by Rocker »

Code: Select all

sub move 
;=============================================== 
; Script Name: Move to Something 
; Author: MMorning 
; Version: 2.3 
; Client Tested with: 4.0.10b 
; EUO version tested with: 1.42 (00A5) 
; Shard OSI / FS: OSI / FS 
; Revision Date: 05June03 
; Public Release: 05June03 
; Global Variables Used: N/A 
; Purpose: move to something you want to get close to. 
; param    %1  ; -WC ; for world coords    or    ToObject ; to move an objetc 
;          %2 world coords X   or    item type 
;          %3 world coords Y   or    search_range 
;          %4 world coords z 
; example:    to move to an object: 
;   call movesub.txt move ToObject %item  %search_range 
;   gosub move ToObject %item %search_range 
; example:    to move to world coords 
;   call movesub.txt move -WC x_coords y_coords z_coords 
;   gosub move -WC x_cords y_coords z_coords 
;=============================================== 
deleteJournal 
  set %J_CantGetThere Can't_get_there 
  set %found_x -1 
  set %found_y -1 
  set %found_z -1 
  ; 
  if %0 >= 3 
  { 
    if %1 = ToObject 
    { 
      finditem %2 G_ , %3 
        wait 1s 
        if #findkind <> -1 
        { 
          set %Found_X #findx 
          set %Found_y #findy 
          set %found_z #findz 
      } 
    } 
    if %1 = -wc 
    { 
      set %found_x %2 
      set %found_y %3 
      set %found_z #findz 
 
      if %0 >= 4 
      { 
        set %found_z %4 
      } 
    } 
    if %found_X >= 0 
    { 
      moveloop: 
    Set %J_Index #JINDEX 
    set %dx #charposx - %found_x abs 
    set %dy #charposy - %found_y abs 
    if %dx => 2 || %dy => 2 || 
          { 
      event pathfind %found_X %found_y 
      wait 1s 
      for %find_loop %J_Index #jindex 
      { 
        Scanjournal %findloop 
        if %J_CantGetThere in #journal 
          return 
      } 
      goto moveloop 
      } 
    } 
   } 
return
Как вызвать ету бегалку в уо? Для бегания к координатам
GAUHAR
Posts: 137
Joined: 2006-11-06 21:45:23

Post by GAUHAR »

В начало приведенного тобой скрипта добавляешь перед sub move этот кусок кода:

Code: Select all

initevents
   set *11 0
   set *12 0
   set *13 0 
   set *14 0
loop:
   if *11 <> 0
   {
      wait 2
      gosub move -wc *12 *13 *14
      set *11 0
   }
goto loop
Тогда эту ходилку можно будет вызвать через инжу используя процедуру:

Code: Select all

SUB EasyUOWalker(x,y,z)  #X,Y,Z - целевые координаты.
   UO.SetEasyUO(11,"1")
   UO.SetEasyUO(12,x)
   UO.SetEasyUO(13,y)
   UO.SetEasyUO(14,z)
   repeat
      wait(50)
   until UO.GetEasyUO(11) == "0"
endsub
Соответственно надо не забыть перед запуском скрипта на инже запустить скрипт на изе с приведенным мной дополнением. И еще, если растояние между начальными и конечными координатами X или Y будет больше, чем 14 клеток (кажется так), то ходилка не станет ходить.
Чуть не забыл. Спасибо Edred'у за то что он показал как связать хождение на изе с инжой.
Rocker
Posts: 24
Joined: 2008-01-07 23:56:04

Post by Rocker »

Сенк, работает)
Post Reply