Page 1 of 1

вопрос по вэйтингу

Posted: 2009-09-11 20:50:48
by volting
по какой системе работает команда UO.waiting() И можно ли менять её тайминг?

Re: вопрос по вэйтингу

Posted: 2009-09-11 20:56:13
by Kynep
Yoko Help wrote:Описание: Waiting •

Синтакс: number uo.Waiting()
Тема: Команды скриптов Ключевые слова: uoscript, system, waitsystem, targeting

Определяет, установлена ли ловушка прицела одной из команд wait*, например waittargetobject, или например cast 'Flame Strike' laststatus

Posted: 2009-09-11 21:01:49
by volting
ок, это понял..
проблема в том, что при этой фунции, зажимая кнопку, часто всплывает такой баг, что ничего невозможно инжей скастить, пока не сделаешь ,grab, вот и надо както избавится от этого бага -)

Posted: 2009-09-11 21:05:23
by Kynep
volting wrote:ок, это понял..
проблема в том, что при этой фунции, зажимая кнопку, часто всплывает такой баг, что ничего невозможно инжей скастить, пока не сделаешь ,grab, вот и надо както избавится от этого бага -)

А подробнее?

Posted: 2009-09-11 21:09:14
by volting
Kynep wrote:
volting wrote:ок, это понял..
проблема в том, что при этой фунции, зажимая кнопку, часто всплывает такой баг, что ничего невозможно инжей скастить, пока не сделаешь ,grab, вот и надо както избавится от этого бага -)

А подробнее?

допустим скрипт на мини-хил..
sub Heheal()
if not UO.waiting() then
UO.Exec("cast Heal self")
end if
if uo.injournal("cliloc# 0xA3A1") then
UO.Exec("cast Heal self")
uo.deletejournal()
end if
end sub

Допустим он забинден у меня на F я зажимаю F чтобы хилится и тут то оно всё и всплывает, в определённый момент ничего невозможно скастить пока не кинуть таргет ,grab'ом или чемнить еще...

Re: вопрос по вэйтингу

Posted: 2010-05-18 21:30:41
by volting
Проблема еще актуальна, всё также хочу знать, как определяется, сколько будет инжа ждать прицела от клиента, командой uo.waiting?

Re: вопрос по вэйтингу

Posted: 2010-05-18 21:59:26
by GAUHAR

Code: Select all

if UO.Waiting() then
   UO.CancelTarget()
endif

Синтакс: ,canceltarget
none uo.canceltarget()
В случае, если инициировано ожидание прицела одной из команд waittarget*, прерывает его и посылает ожидающей функции нулевое значение.
Узнать инициировано ли ожидание можно с помощью Waiting

Re: вопрос по вэйтингу

Posted: 2010-05-18 23:23:26
by volting
GAUHAR wrote:

Code: Select all

if UO.Waiting() then
   UO.CancelTarget()
endif

Синтакс: ,canceltarget
none uo.canceltarget()
В случае, если инициировано ожидание прицела одной из команд waittarget*, прерывает его и посылает ожидающей функции нулевое значение.
Узнать инициировано ли ожидание можно с помощью Waiting

Так просто системный флуд, Targeting cancelled..

Заметил, что UO.Waiting работает только при 2\6 фк\фкр.. суть в том, что на сервере стоит на каст дополнительная задержка поверх 2\6 500мс, и UO.Waiting просто остонавлиавает любой каст после первого же зажатия.

Re: вопрос по вэйтингу

Posted: 2010-05-19 10:38:10
by Beyonder
Чего-то ты со скриптом перемудрил... Как я понял, ты хочешь чтобы зажав кнопку оно делало только 1 хил, а не 20.
В таком случае что-то вроде такого:

Code: Select all

Sub castSpellWaiting(spell,target,maxCastTime)
    var lastCastEnds = val(UO.GetGlobal("lastCastEnds"))

    if (UO.Waiting() == false) OR (lastCastEnds == 0) OR (UO.Timer() > lastCastEnds) then
        UO.SetGlobal("lastCastEnds",UO.Timer()+maxCastTime/100)
        UO.Cast(spell,target)
        return true
    else
        return false
    endif
endsub

sub castHealSelf()
    castSpellWaiting('Heal','self',10000) //Сколдует на себя хил, максимальная длительность каста - 10 секунд. Когда пройдёт 10 секунд, либо закончится каст - разрешит снова колдовать хил
endsub

Re: вопрос по вэйтингу

Posted: 2010-05-19 11:47:06
by Destruction
Beyonder wrote:Чего-то ты со скриптом перемудрил... Как я понял, ты хочешь чтобы зажав кнопку оно делало только 1 хил, а не 20.
В таком случае что-то вроде такого:

Code: Select all

...

А не интереснее определять конец каста по отжиранию маны + сообщению fizzles ?

Re: вопрос по вэйтингу

Posted: 2010-05-19 12:04:56
by Beyonder
Ну, дык, напиши свой вариант, а человек сравнит какой лучше работает 8)

Re: вопрос по вэйтингу

Posted: 2010-05-19 23:20:28
by volting
А реально сделать, чтобы пока вэйтинг, он вообще запрещал каст и накладывание таргета, я сделал поменьше 10000 задержку, какбы всё норм, но если я перестаю кастить и кастю другой спел, он неприменно кидается автоматом на меня по Self который запомнился с хила..

Re: вопрос по вэйтингу

Posted: 2010-05-20 08:41:39
by Beyonder
Попробуй так:

Code: Select all

Sub castSpellWaiting(spell,target,maxCastTime)
    var lastCastEnds = val(UO.GetGlobal("lastCastEnds"))

    if (UO.Waiting() == false) OR (lastCastEnds == 0) OR (UO.Timer() > lastCastEnds) then
        if (UO.Waiting() == true) then
            UO.CancelTarget()
        endif
        UO.SetGlobal("lastCastEnds",UO.Timer()+maxCastTime/100)
        UO.Cast(spell,target)
        return true
    else
        return false
    endif
endsub

sub castHealSelf()
    castSpellWaiting('Heal','self',10000) //Сколдует на себя хил, максимальная длительность каста - 10 секунд. Когда пройдёт 10 секунд, либо закончится каст - разрешит снова колдовать хил
endsub

Re: вопрос по вэйтингу

Posted: 2010-05-20 09:24:49
by volting
2Beyonder Да, кастит уже более менее отлично. Но проблема с таргетом осталась, если отпускаю раньше чем скастит, таргет остается подвешенным под клиентом, тоесть самого прицела нет, но инжа ждет так сказать, и чтобы я не скастил следующее, оно неприменно полетит в меня, будь то позетивный спел или негативный =)