Спаринг, скрипт
Старшина (1476282)11 лет
Paladin
Сообщений: 36
Рег. 9.09.2013
24 сентября 2013 18:26
Сообщение #1
Ребята помогите кто нить закинте скрипт на спаринг, в готовых есть но я там не разобралась как пить рефрешки и он почему то через раз берет щит и мейс=(
Старшина (1476282)11 лет
Paladin
Сообщений: 36
Рег. 9.09.2013
24 сентября 2013 21:08
Сообщение #2
sub Sparring()
var oppHpThreshold = 50/100 #????? ?? ?????????, ??? ??????? ????????
var selfHpThreshold = 50/100 #????? ?????? ??, ??? ??????? ????????

uo.AddObject('opponent')
while uo.targeting()
wait(300)
wend

var done = 0
var oppHpLow = 0
var selfHpLow = 0
var selfX = uo.GetX()
var selfY = uo.GetY()
var oppX = uo.GetX('opponent')
var oppY = uo.GetY('opponent')
var dx = oppX - selfX
var dy = oppY - selfY

var Rhand = uo.GetGraphic(uo.ObjAtLayer('Rhand')) #??? ??????? ? ?????? ???? (0x0000 ???? ?????)
var Lhand = uo.GetGraphic(uo.ObjAtLayer('Lhand')) #??? ??????? ? ????? ???? (0x0000 ???? ?????)

uo.WarMode(1)
uo.Attack('opponent')

repeat

if (uo.GetHP('opponent') < uo.GetMaxHP('opponent') * oppHpThreshold) then
oppHpLow = 1
end if

if (uo.Life < uo.str * selfHpThreshold) then
selfHpLow = 1
end if

#???? ? ????-?? ???? ??, ?????? ? ???????
if (oppHpLow or selfHpLow) then
Step(-dx, -dy)
uo.WarMode(0)

if (oppHpLow) then
HealOpponent()
oppHpLow = 0
end if

if (selfHpLow) then
HealSelf()
selfHpLow = 0
end if

Step(dx, dy)
uo.WarMode(1)
uo.Attack('opponent')
end if

wait(500)

#?????? ?? ?????? ??????? ???
if (not uo.WarMode()) then
uo.WarMode(1)
uo.Attack('opponent')
end if

#???? ? ?????? ???? ?? ??, ??? ???? ? ????? ??????,
#? ???? ? ????? ?????? ??? ???-?? ????, ???????? ????? ???? ?????
#???? ????-?? ?????? ???, ?????? ???? ??????????

if (uo.GetGraphic(uo.ObjAtLayer('Rhand')) <> Rhand and Rhand <> '0x0000') then
uo.FindType(Rhand)
if (uo.FindCount()) then
uo.Equipt('Rhand', Rhand)
uo.print('Equip Rhand device')
else
done = 1
uo.print('no more Rhand devices')
end if
end if

#?????????? ?????? ????
if (uo.GetGraphic(uo.ObjAtLayer('Lhand')) <> Lhand and Lhand <> '0x0000') then
uo.FindType(Lhand)
if (uo.FindCount()) then
uo.Equipt('Lhand', Lhand)
uo.print('Equip Lhand device')
else
done = 1
uo.print('no more Lhand devices')
end if
end if

#???????? ?? ????????
if (uo.GetHP('opponent') == 0 or uo.Life == 0) then
done = 1
uo.print('somebody is dead')
end if
#???? ????? ?????????, ???????????
if (uo.B == 0) then
done = 1
uo.print('no more bandages')
end if

until done

Step(-dx, -dy)
uo.WarMode(0)
uo.print('Done traning')

end sub

#---------------------------------------------
#??????????????? ???????

Sub HealOpponent()
uo.print('heal opponent')
repeat
uo.waittargetobject('opponent')
uo.usetype('0x0E21') #?????
wait(5000)
until uo.getHP('opponent') == uo.getMaxHP('opponent')
uo.print('opponent heal complete')
end Sub

Sub HealSelf()
uo.print('heal self')
repeat
uo.bandageself()
wait(5100)
until uo.Life == uo.STR
uo.print('self heal complete')
uo.usetype(0x097B)
wait(100)
end Sub

Sub Step(dx, dy)
var direction
dim directions[9]
directions[1] = 8
directions[2] = 7
directions[3] = 4
directions[4] = 9
directions[5] = 5
directions[6] = 1
directions[7] = 6
directions[8] = 3
directions[9] = 2
var idx = (sign(dx) + 1) * 3 + (sign(dy) + 1) + 1

uo.AddStep(directions[idx])
end Sub

Sub sign(n)
if (n < 0) then
n = -1
end if

if (n > 0) then
n = 1
end if

return n
end Sub




вот этот скрипт, но почему они не пьют рефрешки? подскажите плиз!!! и еще как то странно хилятся =)
Подполковник (13273161)11 летИнквизитор
Inquisitor
Сообщений: 1644
Рег. 4.03.2013
25 сентября 2013 12:08
Сообщение #3
не пьют рефреху, потому что в скрипте нет ни строчки про бутылки =) вставь вот этот кусок в скрипт свой, в процедуры отхила например (условие такое: если у перса стамина упала ниже 30, пьет тотал рефрешку).


          if UO.Stamina < 30 then
         UO.Usetype ("0x0E24","0x0676") # в скобках указаны тип и цвет бутылки
          wait(300)
          endif


з.ы. чтобы узнать тип и цвет бутылки, надо прописать команду ,info и таргетом ткнуть на бутылку (на всякий случай, если вдруг не знаешь этого, хотя врядли).

Старший Лейтенант (5006416)15 лет
Администратор
Сообщений: 19675
Рег. 31.07.2009
25 сентября 2013 12:15
Сообщение #4
Разве не проще .drink_stam использовать?)

--------------------
Подполковник (13273161)11 летИнквизитор
Inquisitor
Сообщений: 1644
Рег. 4.03.2013
25 сентября 2013 12:17
Сообщение #5
Jose Cuervo, привычка - дело серьезное )

з.ы. мы не ищем легких путей ))
Старшина (1476282)11 лет
Paladin
Сообщений: 36
Рег. 9.09.2013
26 сентября 2013 23:20
Сообщение #6
скажите вроде сделала, а теперь скрипт перестал повторятся один круг проходит и все стопается что делать?
Подполковник (13273161)11 летИнквизитор
Inquisitor
Сообщений: 1644
Рег. 4.03.2013
27 сентября 2013 07:03
Сообщение #7
Цитата: Valeriya
что делать?


проверять наличие цикла
Старшина (1476282)11 лет
Paladin
Сообщений: 36
Рег. 9.09.2013
28 сентября 2013 22:42
Сообщение #8
sub up.Meditation()
VAR msg1="In Por Ylem"
VAR msg2="You are at peace."
VAR msg3="You lose your concentration."
var fish = '0x097B'
repeat
uo.DeleteJournal()
uo.WaitTargetObject("self")
uo.Cast("Magic Arrow")
repeat
Wait(2000)
until uo.InJournal(msg1)
uo.Warmode(0)
repeat
uo.DeleteJournal()
uo.usetype(fish)
UO.SetArm('CWeapon')
UO.bandageself()
wait(5000)
UO.Arm('CWeapon')
uo.UseSkill("Meditation")
repeat
Wait(50)
until uo.InJournal(msg2) or uo.InJournal(msg3)
until uo.InJournal(msg2)
until not uo.Ns or uo.Dead()
end sub


ВОт этот скрипт долен нон стоп работать а он один раз работает=( и надо снова запускать что делать?
Последние посетители (0):

 
Сейчас: 25 ноября 2024 08:40