Yoko

All sides of Injection
It is currently 2025-10-15 17:36:30

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
 Post subject: спарринг
PostPosted: 2010-08-16 23:17:44 
Offline

Joined: 2008-06-17 12:54:46
Posts: 12
Доброго времени суток. Вобщем вот скрипт:
Code:
    
sub fight()

while 1
   gotoxy(2212,895,0) # координаты куда подходить к противнику
   wait(1000)
   UO.usetype("0x1B76") # тип щита
   uo.usetype("0x0EC2") # тип оружия
   UO.Exec("attack 0x00339653") # айди 2-го чара
   wait (1000)
   if uo.injournal("destroyed")then
   UO.usetype('0x0EC2') # тип оружия
   uo.deletejournal()
   endif
   repeat
   if UO.life < 100 Then
   UO.Exec("warmode 0") # выключаем вар мод
   wait(200)
   UO.Press(35) # код клавиши End
   wait(100)
   UO.Press(35) # код клавиши End
   until (uo.GetY() < 896)# координаты по Y куда отходить чтобы лечить(ся)
   wait(200)
     repeat
    if UO.life < 140 then
     wait(3000)
    until UO.Bandageself()
    wait(300)
    endif
   endif
wend
end sub

sub gotoxy(x,y,prec)
var ld=0,ldc=0
var dx,dy
var mx,my
var ox,oy,mk,k
#uo.print(">")
#uo.track("1",str(x),str(y))
start:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if not ldc then
uo.print(STR(dx))
end if
if dx<3 then
mk=70
else
mk=15
end if
ox=mx
oy=my
for k=1 to mk
mx=UO.GetX()
my=UO.GetY()
if mx<>ox or my<>oy then
goto sdidapl
end if
wait(10)
next
sdidapl:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if ld==dx then
ldc=ldc+1
if ldc>100 then
uo.print("Can not reach location!")
return
end if
else
ld=dx
end if
if mx==x then
if my==y then
return
endif
if my>y then
#UO.Print("UR")
UO.Press(33)
goto start
endif
#UO.Print("DL")
UO.Press(35)
goto start
end if
if mx<x then
if my>y then
#UO.Print("R")
UO.Press(39)
goto start
endif
if my==y then
#UO.Print("DR")
UO.Press(34)
goto start
endif
#UO.Print("D")
UO.Press(40)
goto start
end if
if my<y then
#UO.Print("L")
UO.Press(37)
goto start
endif
if my==y then
#UO.Print("LU")
UO.Press(35)
goto start
endif
#UO.Print("U")
UO.Press(38)
goto start
end sub

это на первом компе. На втором точно такой же за исключением координат и ИД персонажа естественно. И еще вместо ходилки на клавише END во 2ом скрипте просто указано gotoxy(координаты).
Суть проблемы:
персонажи сходятся, когда у них снижается ХП до 100 расходятся, второй персонаж хилит себя на ура. Мой же, с этим скриптом хилится 2-3 раза, а бывает что отходит и вовсе не хилится, ждет пока ХП поднимется до 100 и идет атачить, получил 1-2 удара отходит и либо хилится, либо о5 стоит ждет пока хп поднимется до 100.
В чем проблема не пойму, вроде практически 2 одинаковых скрипта, на 2ом персонаже ни разу не сбивался хилинг.

подправьте плз или подскажите где и в чем может быть проблема
З.Ы. я нуб в написании скриптов так что сильно не материтесь =) :roll: но кое что уже умею :D


Top
   
 Post subject: Re: спарринг
PostPosted: 2010-08-17 07:01:25 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Он и не будет хилиться. В блоке лечения путаница с командами цикла и условия.


Top
   
 Post subject: Re: спарринг
PostPosted: 2010-08-17 09:39:31 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
чет я взялся править... и забил. :shock:
Code:
sub fight()
   uo.deletejournal()
   while 1
      gotoxy(2212,895,0) # координаты куда подходить к противнику
      wait(1000)
      UO.usetype("0x1B76") # тип щита
      uo.usetype("0x0EC2") # тип оружия
      UO.Exec("attack 0x00339653") # айди 2-го чара
      wait (1000)
      if uo.injournal("destroyed")then
         UO.usetype('0x0EC2') # тип оружия
         uo.deletejournal()
      endif
      repeat
         if UO.life < 100 Then
            UO.Exec("warmode 0") # выключаем вар мод
            wait(200)
            UO.Press(35) # код клавиши End
            wait(100)
            UO.Press(35) # код клавиши End
         until (uo.GetY() < 896)# координаты по Y куда отходить чтобы лечить(ся)
         wait(200)
         repeat
            if UO.life < 140 then
               wait(3000)
            until UO.Bandageself()
            wait(300)
         endif
      endif
   wend
end sub
Даже с трудом представляю КАК оно ДОЛЖНО работать...

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


Top
   
 Post subject: Re: спарринг
PostPosted: 2010-08-17 11:48:03 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Вот так оно должно работать:
Code:
sub fight()

while 1
   gotoxy(2212,895,0) # координаты куда подходить к противнику
   wait(1000)
   UO.usetype("0x1B76") # тип щита
   uo.usetype("0x0EC2") # тип оружия
   UO.Exec("attack 0x00339653") # айди 2-го чара
   wait (1000)


   While UO.life > 100
      if uo.injournal("destroyed")then
         UO.usetype('0x0EC2') # тип оружия
         uo.deletejournal()
      endif
      wait(500)
   Wend

   repeat
      UO.Exec("warmode 0") # выключаем вар мод
      wait(200)
      UO.Press(35) # код клавиши End
      wait(100)
      UO.Press(35) # код клавиши End
   until (uo.GetY() < 896)# координаты по Y куда отходить чтобы лечить(ся)
   wait(200)

   While UO.life < 140
      UO.Bandageself()
      wait(3000)
   Wend
wend
end sub


Top
   
 Post subject: Re: спарринг
PostPosted: 2010-08-17 14:10:55 
Offline

Joined: 2008-06-17 12:54:46
Posts: 12
Savage wrote:
Вот так оно должно работать:

Отходит но не лечиться, ждал пока хп отрегенится до 105 и ниче не происходило.

Ладно спасибо всем, сам чучка подправил теперь норм хилится.

З.Ы. как я и говорил я пока что нуб в скриптонаписании, поэтому все так и замудрил =) Нашел здесь на форуме скрипт и переделал его в эту форму, ибо тот вобще не работал у меня =)


Top
   
 Post subject: Re: спарринг
PostPosted: 2010-08-17 15:11:00 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Значит блок отхода не завершается, надо править координату Y по которой идёт проверка. Скорее всего чар упирается в препядствие.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 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