Page 1 of 1
Магери,прошу помощи
Posted: 2008-03-03 17:41:12
by NoMatter
Вообщем,вот мой скрипт.
Code: Select all
sub main()
While not UO.Dead()
If UO.Mana==UO.INT then
UO.Exec("cast 'Energy Bolt' self")
wait(3500);
else
While UO.Hits<Uo.STR
UO.Exec("bandageself")
wend
while UO.Mana<UO.Int
UO.UseSkill("Meditation");
wait(3000);
wend
endif
wend
end sub
Мне нужно,чтобы чар кастовал на себя энерджи болт,потом лечился и медитировал(вообще неважно ,в каком порядке).Перебровал уже кучу вариантов подобных скриптов,но этот работал,пока я не вставил в него bandageself.Помогите пожалуйста,подскажите,где ошибка,или поделитесь рабочим.заранее спасибо))
Posted: 2008-03-03 22:30:12
by stickman
uo.hits

разве такое есть? может uo.life лучше =)
Posted: 2008-03-03 22:45:26
by Destruction
Лучше uo.getHP() и uo.getMaxHP() соответственно.
Не на все шардах максхп = сила !!!
Posted: 2008-03-04 00:44:40
by NoMatter
Теперь работает,спасибо,но хилится не хочет почему-то,у меня сейчас вот так
Code: Select all
sub main()
While not UO.Dead()
If UO.Mana==UO.INT then
UO.Exec("cast 'Energy Bolt' self")
wait(3500);
else
While uo.getHP(30)<uo.getMaxHp(85)
UO.Exec("bandageself")
wait (6000)
wend
while UO.Mana<UO.Int
UO.UseSkill("Meditation");
wait(10000);
wend
endif
wend
end sub
Может хилинг переставить в конец? Или задержки еще больше поставить?
шард нова,рануо 2.0
Posted: 2008-03-04 01:04:44
by ntk
uo.getHP(30)<uo.getMaxHp(85)
Описание: GetHP •
Синтакс: number uo.GetHP([object])
Тема: Команды скриптов Ключевые слова: uoscript, objhandling
Возвращает параметр обьекта object (по умолчанию - персонажа игрока) - здоровье персонажа. Для другого персонажа кроме игрока обычно не имеет смысла абсолютное значение здоровья, так как выражается в абстрактных единицах, важно только отношение к максимальному здоровью GetMaxHP.
• Пример использования команд arm и disarm
Пример использования команд arm и disarm
Пример ждёт безоружным пока не пнут, после чего одевает то оружие что было надето при запуске скрипта.
sub test()
uo.setarm("default")
uo.disarm()
while uo.GetHP()==uo.GetMaxHP()
wait(50)
wend
uo.arm("default")
end sub
таким образом ты возвращаешь HP объектов 30 и 85.. в игре их нет.
тебе надо сравнивать полученные этими командами цифры..
Posted: 2008-03-04 10:57:17
by NoMatter
а поподробнее можно? не понимаю,какие цифры надо сравнивать..
Posted: 2008-03-04 14:46:42
by Grin
Code: Select all
sub main()
While not UO.Dead()
If UO.Mana==UO.INT then
UO.Exec("cast 'Energy Bolt' self")
wait(3500);
else
While uo.getHP()<uo.getMaxHp()
UO.Exec("bandageself")
wait (6000)
wend
while UO.Mana<UO.Int
UO.UseSkill("Meditation");
wait(10000);
wend
endif
wend
end sub
Posted: 2008-03-04 15:13:45
by NoMatter
Вот спасибо...)))
работает
Posted: 2008-05-18 21:19:04
by LonelyCat
Прошу помощи.
Скрипт на магию :
Code: Select all
sub Train_Magery()
var tim, k, flag
VAR SpiritTime = UO.Timer()
repeat
tim=UO.Timer()
flag=false
While not flag
If ( UO.Timer() - SpiritTime ) / 600 > 5 Then
;Ïðîøëî 5 ìèíóò ñ ìîìåíòà ïîñëåäíåé ïðîêà÷êè Spirit Speak
SpSpeak()
SpiritTime = UO.Timer()
Else
wait(500)
Endif
UO.DeleteJournal()
if ((UO.Timer()-tim) > 18000)then
tim=UO.Timer()
endif
While not ((UO.Mana<14) or flag)
CheckLag()
UO.Cast('Poison','self')
MyWait(500)
if UO.InJournal('lack') then
CheckLag()
UO.Cast('Poison','self')
MyWait(500)
if UO.InJournal('lack') then
flag=true
uo.Print("1")
endif
endif
MyWait(2000)
Wend
CheckLag()
While UO.Mana<UO.INT
UO.Warmode(0)
UO.UseSkill('Meditation')
k=0
Repeat
k=k+1
MyWait(200)
Until UO.InJournal("You are") or UO.InJournal("You lose") or k>200
UO.DeleteJournal()
MyWait(20000)
Wend
Wend
CheckLag()
until UO.Dead() OR uo.skillval('Magery',1)==1000
end sub # TrainMagery
Sub MyWait(time)
var i, i1, count
count = time/100
i1 = 1
for i = 1 to count
if (i-i1)>=10 then
i1 = i
endif
if UO.Life < (UO.Str - 5) then ; and ((i-i1) == 0) then
UO.Say("Guards !!!")
Wait(1000)
endif
Wait(100)
next
; else
; wait(time)
;endif
end sub # MyWait
Sub SpSpeak()
;Spirit Speak v.1.00b (c) Edred
;Ðàçîâàÿ ïðîêà÷êà ñïèðèò ñïèêà. Ïðåäíàçíà÷åíà äëÿ âûçîâà èç äðóãèõ ñêðèïòîâ.
VAR mod = UO.WarMode(), num1
VAR fizzle = 'You fail your attempt'
VAR success = 'You establish a connection'
UO.WarMode( 0 )
DeleteJournal( success )
repeat
DeleteJournal( fizzle )
UO.UseSkill( 'Spirit Speak' )
num1 = 1
repeat
wait(100)
num1 = num1 + 1
until UO.InJournal( fizzle ) OR UO.InJournal( success ) OR num1 > 600
until UO.InJournal( success )
UO.WarMode( mod )
end sub
Sub CheckLag()
DeleteJournal( 'backpack' )
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
return
end sub
Sub DeleteJournal( string1 )
VAR nom = UO.InJournal( string1 )
If nom > 0 Then
UO.SetJournalLine( Nom - 1, 'string replaced' )
DeleteJournal( string1 )
Endif
end sub
Реконнектор :
Code: Select all
sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (uo.ObjAtLayer('Bpack')=='')
if rFlag then
rFlag=0
end if
wait(20000)
uo.Say('')
wait(3000)
uo.Say('')
wait(3000)
uo.Say('')
wait(3000)
uo.LDblClick(357,164)
uo.LClick(616,459)
wait(3000)
wend
wait(3000)
if (rFlag==0) and (ReconnectTime<>'0') then
uo.TextOpen()
uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
rFlag=1
ReconnectTime='0'
end if
until false
end sub
Реконектор перезаходит в ультиму, но скрипт на магию не включается.
Как их прикрутить правильно друг к другу, я уже измотался эксперементировать

[/code]