Нужна помощь со скриптом на спаринг =(
Moderators: Murderator+, Murderator
Нужна помощь со скриптом на спаринг =(
Помогите пожалуйста... Нашел я скрипт на спаринг,вписал 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')
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')
Отредактируй пост, выдели весь скрипт и нажми кнопочку Code(выше окна где ты пишешь\редактируешь ответ). Хоть будет читабельно и понятно, и ещё ты весь скрипт выложил, или часть?
Означает нажатие клавиши End, в игре чар сделает шаг на Юг(левый нижний угол экрана), "uo.press" - это команда нажатия клавиши, "35" - это код клавиши.
Code: Select all
uo.press(35)
Означает нажатие клавиши End, в игре чар сделает шаг на Юг(левый нижний угол экрана), "uo.press" - это команда нажатия клавиши, "35" - это код клавиши.
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Code: Select all
sub Healing()
UO.SetArm('CWeapon')
UO.Exec("bandageself")
wait(500)
UO.Arm('CWeapon')
.. а где окончание...
Code: Select all
end sub
Вот попробуй это
Code: Select all
###############################################################
### Переменные ###############################################
###############################################################
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
Last edited by ADEPT_ABP on 2009-01-13 22:38:58, edited 1 time in total.
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Code: Select all
; или # - эти символы отделяют "код программы" ( :) ) от комментариев.
Не надо ничего с End делать, скрипт сам его нажмёт. Найди уроки скриптинга на форуме почитай, прояснишь для себя чего-нибудь... наверное... может быть...
Играю на drw.ru
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
Использую инжект 505.18 VeNd0r
Начинающий скриптер.
-
- Posts: 257
- Joined: 2006-11-14 16:19:03
- Contact:
Вот ешё можеш попробовать этот.
Почти все боевые на нём кочал и не один раз.
Почти все боевые на нём кочал и не один раз.
Code: Select all
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