Yoko
http://forum.yoko.com.ua/

Нужна помощь со скриптом на спаринг =(
http://forum.yoko.com.ua/viewtopic.php?f=17&t=14283
Page 1 of 1

Author:  Nightmare [ 2009-01-13 20:05:38 ]
Post subject:  Нужна помощь со скриптом на спаринг =(

Помогите пожалуйста... Нашел я скрипт на спаринг,вписал ID чаров вписал оружие щит запускаю скрипт и он мне выдает : What do you want to use this on ? Может быть проблема в координатах ? Хотя вроде все правильно указал .... =(


sub fight()


while 1
gotoxy(1610,1107,0) # координаты куда подходить к противнику
UO.usetype("0x1B76") # тип щита
uo.usetype("0x0EC2") # тип оружия
UO.Exec("attack 0x0144C653") #айди 2-го чара
Repeat
wait (500)
if uo.injournal("destroyed")then
UO.usetype("0x0EC2") # тип оружия
uo.deletejournal()
endif
Until ((UO.GetHP("0x00D6CBD0") <75)or (UO.GetHP("0x0144C653") <100)) #
#жизни 1-го и 2-го чара
repeat
UO.Exec("warmode 0") # выключаем вар мод
UO.Press(35) # код клавиши End
UO.Press(35) # код клавиши End
until (uo.GetY() < 1106)# координаты по Y куда отходить чтобы лечить(ся)
UO.DeleteJournal()
Repeat
UO.Usetype("0x0E21") #Bandages
UO.Exec("waittargetobject 0x0144C653") # айди 2-го чара
wait(3500)
Until (UO.InJournal("need you"))
UO.DeleteJournal()
Repeat
UO.Usetype("0x0E21") #Bandages
UO.Exec("waittargetobject 0x00D6CBD0") # айди 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')

Author:  Nightmare [ 2009-01-13 20:17:26 ]
Post subject: 

UO.Press(35) # код клавиши End
UO.Press(35) # код клавиши End

И объясните пожалуйста что это означает ? я просто новенький в скриптах не разбираюсь, хотя думаю что это в ультиме чтото надо прописать........

Author:  ADEPT_ABP [ 2009-01-13 21:44:56 ]
Post subject: 

Отредактируй пост, выдели весь скрипт и нажми кнопочку Code(выше окна где ты пишешь\редактируешь ответ). Хоть будет читабельно и понятно, и ещё ты весь скрипт выложил, или часть?
Code:
uo.press(35)

Означает нажатие клавиши End, в игре чар сделает шаг на Юг(левый нижний угол экрана), "uo.press" - это команда нажатия клавиши, "35" - это код клавиши.

Author:  Nightmare [ 2009-01-13 21:54:47 ]
Post subject: 

да это весь скрипт, дак не подскажешь что мне с ним нужно доделать чтоб он заработал ?

Author:  ADEPT_ABP [ 2009-01-13 22:09:19 ]
Post subject: 

Code:
sub Healing()
UO.SetArm('CWeapon')
UO.Exec("bandageself")
wait(500)

UO.Arm('CWeapon')


.. а где окончание...
Code:
end sub


Вот попробуй это

Code:
###############################################################
### Переменные ###############################################
###############################################################
var enemy, minlife, x, x1, y, y1, n
enemy='0x001568AC' ; ID оппонента
minlife=90 ; Минимальнае количество жизни для отступления
x=4248   ; WayPoint-b X 
y=709   ; WayPoint-b y
x1=4253   ; WayPoint-a X
y1=709   ; WayPoint-a y
n=2          ; Направление оппонента при бегстве :)
;0 - север                  ; верхний правый угол экрана
;1 - северо-восток     ; вправо
;2 - восток                ; нижний правый угол экрана
;3 - юго-восток         ; вниз
;4 - юг                      ; нижний левый угол экрана
;5 - юго-запад          ; влево
;6 - запад                 ; верхний левый угол экрана
;7 - северо-запад      ; вверх

###############################################################
### Начальная функция ########################################
###############################################################
sub main()
uo.print(str(uo.GetDir(enemy)))
uo.setarm('arm')
if uo.life==uo.str then
uo.exec('exec ataka')
else
uo.exec('exec bs')
endif
end sub

sub ataka()
var dist
uo.click(enemy)
; ходилка x,y
while uo.getdistance(enemy)>2
wait(200)
wend
uo.arm('arm')
uo.warmode('1')
uo.attack(enemy)
uo.warmode('1')
uo.attack(enemy)
wait(200)
while uo.life>minlife
dist=uo.getdistance(enemy)
if uo.getdir(enemy)==n || uo.getdistance(enemy)>2 then
uo.warmode('0')
uo.warmode('0')
uo.exec('terminate all; exec bs')
endif
wait(200)
wend
uo.exec('terminate all; exec main')
end sub

###############################################################
### Healing ###############################################
###############################################################
Sub bs()
uo.warmode('0')
uo.warmode('0')
; ходилка x,y
uo.warmode('0')
uo.waittargettype('0x1008')
uo.usetype('0x0E20')
wait(3000)
repeat
ws()
uo.BandageSelf()
wait(3500)
if uo.count('0x0E21')<1 then
uo.waittargettype('0x1008')
uo.usetype('0x0E20')
wait(3000)
endif
until uo.life==uo.str
uo.arm('arm')
wait(2000)
CheckLag()
main()
end sub

Sub ws()
 if uo.injournal("world is saving now...") then
   while not uo.injournal("world data saving")
      wait(100)
   wend
 endif
CheckLag()
end sub



Ходилку можешь оставить ту которая есть. Или выбирай из этих.
viewtopic.php?t=6743

Author:  Nightmare [ 2009-01-13 22:23:14 ]
Post subject: 

да я прост его не скопировал.... я с End'oм понять немогу.... его в ультиме нада биндить или прописать куда ?

Author:  ADEPT_ABP [ 2009-01-13 22:44:16 ]
Post subject: 

Code:
; или # - эти символы отделяют "код программы" ( :) ) от комментариев.

Не надо ничего с End делать, скрипт сам его нажмёт. Найди уроки скриптинга на форуме почитай, прояснишь для себя чего-нибудь... наверное... может быть...

Author:  666||TORCHKI [ 2009-01-14 12:11:28 ]
Post subject: 

Вот ешё можеш попробовать этот.
Почти все боевые на нём кочал и не один раз.
Code:
sub main() 
VAR E, t, Enemy='0x000A6F7E' , MinHP=70, G=true, L, Weap='0x13F8' ; type of weapon
UO.Attack(Enemy)
UO.DeleteJournal()
while G==true
wait(500)
if not UO.ObjAtLayer("Rhand") then
UO.FindType(Weap,-1,'backpack')
if UO.FindCount() then
UO.Equip('Rhand','finditem')
endif
endif
if UO.InJournal("stay") or UO.Life<MinHP then
UO.Say("stay")
t=UO.Timer()
repeat
E=true
UO.Exec('warmode 0')
wait(500)
if UO.WarMode()==1 then
E=false
UO.Say("stay")
t=UO.Timer()
endif
until E==true and UO.Timer()>=t+30
CheckLag()
UO.SetArm('myarm')
while UO.Life<UO.Str
L=UO.Life
UO.Exec('warmode 0')
DelJ("the")
t=UO.Timer()
UO.Exec('bandageself')
repeat
Wait(500)
until UO.InJournal("You put") or UO.InJournal("barely help") or UO.InJournal("need healing") or UO.Life<L or UO.Timer()>t+100
CheckLag()
if UO.Life<L then
UO.Say("stay")
endif
wend
CheckBandage()
UO.Arm('myarm')
if not UO.InJournal("go") then
UO.Say("go")
repeat
wait(50)
until UO.InJournal("go") or UO.Life<UO.Str
DelJ(UO.GetName()+": go")
repeat
wait(50)
until UO.InJournal("go") or UO.Life<UO.Str
else
UO.Say("go")
endif
UO.DeleteJournal()
UO.Attack(Enemy)
endif
if UO.Dead() then
UO.Exec('warmode 1')
endif
wend
end sub

sub DelJ(s)
VAR MN=UO.InJournal(s)
while MN > 0
UO.SetJournalLine(MN-1, '')
MN=UO.InJournal(s)
wend
end sub

sub CheckLag()
DelJ("backpack")
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub

sub CheckBandage()
VAR Banka='0x402A96E6' ; ID of wash basin
UO.waittargetobject(banka)
UO.usetype(0x0e20)
Wait(1000)
end sub

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/