вопрос по вэйтингу
Moderators: Murderator+, Murderator
вопрос по вэйтингу
по какой системе работает команда UO.waiting() И можно ли менять её тайминг?
Re: вопрос по вэйтингу
Yoko Help wrote:Описание: Waiting •
Синтакс: number uo.Waiting()
Тема: Команды скриптов Ключевые слова: uoscript, system, waitsystem, targeting
Определяет, установлена ли ловушка прицела одной из команд wait*, например waittargetobject, или например cast 'Flame Strike' laststatus
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: вопрос по вэйтингу
Проблема еще актуальна, всё также хочу знать, как определяется, сколько будет инжа ждать прицела от клиента, командой uo.waiting?
Re: вопрос по вэйтингу
Code: Select all
if UO.Waiting() then
UO.CancelTarget()
endif
Синтакс: ,canceltarget
none uo.canceltarget()
В случае, если инициировано ожидание прицела одной из команд waittarget*, прерывает его и посылает ожидающей функции нулевое значение.
Узнать инициировано ли ожидание можно с помощью Waiting
Re: вопрос по вэйтингу
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: вопрос по вэйтингу
Чего-то ты со скриптом перемудрил... Как я понял, ты хочешь чтобы зажав кнопку оно делало только 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
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Re: вопрос по вэйтингу
Beyonder wrote:Чего-то ты со скриптом перемудрил... Как я понял, ты хочешь чтобы зажав кнопку оно делало только 1 хил, а не 20.
В таком случае что-то вроде такого:Code: Select all
...
А не интереснее определять конец каста по отжиранию маны + сообщению fizzles ?
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Re: вопрос по вэйтингу
Ну, дык, напиши свой вариант, а человек сравнит какой лучше работает 

Re: вопрос по вэйтингу
А реально сделать, чтобы пока вэйтинг, он вообще запрещал каст и накладывание таргета, я сделал поменьше 10000 задержку, какбы всё норм, но если я перестаю кастить и кастю другой спел, он неприменно кидается автоматом на меня по Self который запомнился с хила..
Re: вопрос по вэйтингу
Попробуй так:
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: вопрос по вэйтингу
2Beyonder Да, кастит уже более менее отлично. Но проблема с таргетом осталась, если отпускаю раньше чем скастит, таргет остается подвешенным под клиентом, тоесть самого прицела нет, но инжа ждет так сказать, и чтобы я не скастил следующее, оно неприменно полетит в меня, будь то позетивный спел или негативный =)