Скрипт савы, без изиуо возможно???

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Скрипт савы, без изиуо возможно???

Post by Dron D. »

У меня не стоит изи уо, и вообще не хачу его ставть, можно ли его скрипт на спарраинг представить БЕЗ изиуо??

Code: Select all

sub sparring()
   VAR Char1='0x000C97E6'
   VAR Char2='0x00018410'
   VAR Enemy, ESelf, EEnemy
   VAR Weapon, Shield, WpnType, ShldType
   VAR TazikType='0x1008',BloodBndg='0x0E20'
   VAR MinLife=60
   

   if UO.GetSerial('self')==Char1 then
      Enemy=Char2
      EEnemy=90
      ESelf=80
   else
      Enemy=Char1
      EEnemy=80
      ESelf=90
   endif

   Weapon=UO.ObjAtLayer('Rhand')
   If Weapon<>"" Then
      WpnType=UO.GetGraphic(Weapon)
   Endif

   Shield=UO.ObjAtLayer('Lhand')
   If Shield<>"" Then
      ShldType=UO.GetGraphic(Shield)
   Endif
   
   UO.SetEasyUO(ESelf,"0")

   while NOT UO.Dead()
   
      repeat
         wait(500)
      until UO.GetEasyUO(ESelf)=="0" AND UO.GetEasyUO(EEnemy)=="0"
      
      UO.Exec("warmode 1")
      UO.Attack(Enemy)
      
      while UO.Life>=MinLife AND UO.GetEasyUO(EEnemy)=="0"
         wait(100)
      wend

      UO.SetEasyUO(ESelf,"1")
      UO.Exec("warmode 0")
      wait(1000)
      UO.Exec("warmode 0")

      UO.FindType('0x0E21','0x0000','backpack')
      If UO.GetQuantity('finditem')<20 Then
         UO.FindType('0x0E20','0x0000','backpack')
         UO.WaitTargetType(TazikType)
         UO.UseObject('finditem')
         wait(1000)
      Endif

      while UO.Life<UO.Str
         UO.DeleteJournal()
         UO.BandageSelf()
         Repeat
            wait(500)
         Until UO.InJournal('put') OR UO.InJournal('help') OR UO.InJournal('cure')
      wend

      If Shield<>"" Then
         UO.Equipt('Lhand',ShldType)
         wait(2000)
      Endif

      If Weapon<>"" Then
         UO.Equipt('Rhand',WpnType)
         wait(2000)
      Endif
      
      UO.UseSkill('Spirit Speak')
      wait(3000)
      UO.SetEasyUO(ESelf,"0")
   wend
end sub


Leo
Expert!
Posts: 791
Joined: 2005-01-15 19:15:05
Location: Dragon World
Contact:

Post by Leo »

Все боевые качал этим скриптом:

Code: Select all

sub fight()
while 1
   gotoxy(2020,532,0) ;координаты куда подходить к противнику
   UO.usetype("0x1B76") ;тип щита
   uo.usetype("0x0F51") ;тип оружия
   UO.Exec("attack 0x00053A88") ;айди 2-го чара
   Repeat
      wait (500)
   if uo.injournal("destroyed")then
   UO.usetype("0x0ec2") ;тип оружия
   uo.deletejournal()
   endif
   Until ((UO.GetHP("0x0028FFEC") <100)or (UO.GetHP("0x00053A88")  <120)) ;жизни 1-го и 2-го чара
   repeat
   UO.Exec("warmode 0") ;выключаем вар мод
   UO.Press(35) ;код клавиши End
   UO.Press(35) ;код клавиши End
   until (uo.GetY() < 534) ;координаты по Y куда отходить чтобы лечить(ся)
      UO.DeleteJournal()
   Repeat
      UO.Usetype("0x0E21") ;Bandages
      UO.Exec("waittargetobject 0x00053A88") ;айди 2-го чара
      wait(3500)
   Until (UO.InJournal("need you"))
      UO.DeleteJournal()
   Repeat
      UO.Usetype("0x0E21") ;Bandages
      UO.Exec("waittargetobject 0x0028FFEC")  ;айди 1-го чара
      wait(3500)
   Until (UO.InJournal("need healing"))
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

sub Healing()
   UO.SetArm('CWeapon')
   UO.Exec("bandageself")
   wait(500)
   
   UO.Arm('CWeapon')
   end sub


sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(500)
   until UO.InJournal('backpack')
end sub
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Post by Dron D. »

у мя складывается такое впечатление, что лео сидит на юоко форуме и каждую минуту тыкает F5 )))

Но всё же не очень я понимаю со строкой:

Code: Select all

 until (uo.GetY() < 534) ;координаты по Y куда отходить чтобы лечить(ся) 
Leo
Expert!
Posts: 791
Joined: 2005-01-15 19:15:05
Location: Dragon World
Contact:

Post by Leo »

Вместо 534 вставь координату по оси Y куда отходить лечится.
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Post by Dron D. »

2Leo: Вот я допустим с другом решил покачать боевой скилл, я первым чаром только буду отходить хелится, а вот второй будет потихоньку умирать? Я конешно придумал как вставить хелинг второму, но это как то ботски получилось :( Яж только учусь писать эти скрипты)

Я придумал через журнал, типа если в журнале бандажится чар, то второй тоже юзает их... но не как не магу понят как сделать чтобы было нормально и по человечески...
Leo
Expert!
Posts: 791
Joined: 2005-01-15 19:15:05
Location: Dragon World
Contact:

Post by Leo »

Dron D. wrote:2Leo: Вот я допустим с другом решил покачать боевой скилл, я первым чаром только буду отходить хелится, а вот второй будет потихоньку умирать? Я конешно придумал как вставить хелинг второму, но это как то ботски получилось :( Яж только учусь писать эти скрипты)

Я придумал через журнал, типа если в журнале бандажится чар, то второй тоже юзает их... но не как не магу понят как сделать чтобы было нормально и по человечески...


В этом скрипте первый чар лечит и себя и второго чара. Выбераете у кого хилинг больше, тот скрипт и будет запускать. Лучше всего отходить на 2 шага.
Fransua
Posts: 20
Joined: 2004-09-19 06:19:12
Contact:

Post by Fransua »

Code: Select all

                  sub fight() 

                  var x1,y1,y2,y3
                  var tmp_weap = "set_tmp"
                  uo.addobject('MyID',0x001F948A)

                  uo.print('!!Укажи напарника!! ')
                  uo.exec('addobject Partner')
                  while uo.targeting()
                  wait(100)
                  wend   
                  x1 = uo.LastTile(1)
                  y1 = uo.LastTile(2)+1
#                  y2 = y1+2
                  y3 = y1+1
                  uo.setarm(tmp_weap)
                 
                  while 1
                  gotoxy(x1,y1,0)
                  uo.arm(tmp_weap)
                  UO.usetype("0x1B76") 
                  uo.usetype("0x0EC2")

                  UO.Exec("attack Partner")
                  Repeat
                  wait (500)
                  if uo.injournal("destroyed")then
                  UO.usetype("0x0EC2") 
                  uo.deletejournal()
                  endif
                  Until ((UO.GetHP("MyID") <75) or (UO.GetHP("Partner") <100))
                  repeat
                  UO.Exec("warmode 0")

                  UO.Press(35) # Нажимает End
                  UO.Press(35) # Нажимает End
                  until (gotoxy(x1,y3,0)) 
                  UO.DeleteJournal()
                  UO.say ("Забинтую как мумию!")
                  Repeat
                  UO.Usetype("0x0E21") #Bandages
                  UO.Exec("waittargetobject Partner")
                  wait(3500)
                  Until (UO.InJournal("need you"))
                  UO.DeleteJournal()
                  Repeat
                  UO.Usetype("0x0E21") #Bandages
                  UO.Exec("waittargetobject MyID")
                  wait(3500)
                  Until (UO.InJournal("need healing"))
                  wend
                  end sub
                 ...
                 ...
                 ...



Помоему так немного лучше. :roll:
Post Reply