Page 1 of 1

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

Posted: 2005-08-19 16:17:33
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



Posted: 2005-08-19 16:18:50
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

Posted: 2005-08-19 16:22:42
by Dron D.
у мя складывается такое впечатление, что лео сидит на юоко форуме и каждую минуту тыкает F5 )))

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

Code: Select all

 until (uo.GetY() < 534) ;координаты по Y куда отходить чтобы лечить(ся) 

Posted: 2005-08-19 16:37:43
by Leo
Вместо 534 вставь координату по оси Y куда отходить лечится.

Posted: 2005-08-20 00:06:03
by Dron D.
2Leo: Вот я допустим с другом решил покачать боевой скилл, я первым чаром только буду отходить хелится, а вот второй будет потихоньку умирать? Я конешно придумал как вставить хелинг второму, но это как то ботски получилось :( Яж только учусь писать эти скрипты)

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

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

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

Posted: 2005-08-23 00:47:56
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: