Page 1 of 1

Не кастует, пока не пройдет предыдущий каст

Posted: 2010-03-31 18:47:35
by xatifnaft
Вчера скинули интересный скрипт. В скриптах не силен, но насколько я понял, это скрипт, не дающий кастовать, пока не прошел предыдущий каст.

sub CheckFizzle()
var LastMana = UO.Mana
REPEAT
If UO.Mana < LastMana Then
If UO.InJournal("fizzle") Then
UO.CharPrint('0x0026',"*FIZZLE*")
DeleteJournal("fizzle")
LastMana = UO.Mana
Else
UO.CharPrint('0x0107',"*PASSED*")
LastMana = UO.Mana
End If
Else
If UO.Mana > LastMana Then
LastMana = UO.Mana
End If
End If
wait(150)
Until 1<>1
end sub

Как я понял, сначала он проверяет на физл, дальше
UO.CharPrint('0x0107',"*PASSED*") не понятно.

После проверяет: если мана отнялась, значит каст прошел.

UO.CharPrint('0x0107',"*PASSED*") выдает ошибку

Подскажете, что тут не так? )

Re: Не кастует, пока не пройдет предыдущий каст

Posted: 2010-04-01 12:52:04
by Beyonder
Этот скрипт всего навсего говорит игроку когда предыдущий каст прошёл. Тоесть ты его запускаешь на заднем фоне и любуешся надписями *fizzle* и *passed*.

Если ты хочешь то что описал в сабже, то скрипт намного проще:

Code: Select all

Sub waitForCast(timeout)
    var timeStep = 100
    var lastMana = UO.Mana
    var timeLeft = timeout

    while (lastMana >= UO.Mana) AND (timeLeft > 0)
        lastMana = UO.Mana
        timeLeft = timeLeft - timeStep
        Wait(timeStep)
    wend
endsub


Таймаут - сколько миллисекунд максимум можно ждать (чтобы скрипт не завис если вдруг что-то глюкнет).
Если при физле не уменьшается мана - то нужно еще скрипт слегка переделать.

Re: Не кастует, пока не пройдет предыдущий каст

Posted: 2010-04-01 15:59:38
by xatifnaft
Очень благодарен, сегодня проверю.

Не понятно, для чего нужен первый скрипт? ) Для тех, кто без звука играет видимо.

Re: Не кастует, пока не пройдет предыдущий каст

Posted: 2010-04-01 21:56:36
by xatifnaft
invalid number of arguments - waitforcast :lol:

Re: Не кастует, пока не пройдет предыдущий каст

Posted: 2010-04-02 08:09:13
by Beyonder
А ты его что, через меню инжекта запускаешь?

Запускать его надо из скрипта, примерно так:

Code: Select all

...
UO.WaitTargetObject('Enemy')
UO.Cast('Magic Arrow')
WaitForCast(10000)

Re: Не кастует, пока не пройдет предыдущий каст

Posted: 2010-04-02 18:08:18
by xatifnaft
Еще как =)) скинул вместе с остальными скриптами =)))