вопрос по вэйтингу
Posted: 2009-09-11 20:50:48
по какой системе работает команда UO.waiting() И можно ли менять её тайминг?
Yoko Help wrote:Описание: Waiting •
Синтакс: number uo.Waiting()
Тема: Команды скриптов Ключевые слова: uoscript, system, waitsystem, targeting
Определяет, установлена ли ловушка прицела одной из команд wait*, например waittargetobject, или например cast 'Flame Strike' laststatus
volting wrote:ок, это понял..
проблема в том, что при этой фунции, зажимая кнопку, часто всплывает такой баг, что ничего невозможно инжей скастить, пока не сделаешь ,grab, вот и надо както избавится от этого бага -)
Kynep wrote:volting wrote:ок, это понял..
проблема в том, что при этой фунции, зажимая кнопку, часто всплывает такой баг, что ничего невозможно инжей скастить, пока не сделаешь ,grab, вот и надо както избавится от этого бага -)
А подробнее?
Code: Select all
if UO.Waiting() then
UO.CancelTarget()
endif
GAUHAR wrote:Code: Select all
if UO.Waiting() then
UO.CancelTarget()
endif
Синтакс: ,canceltarget
none uo.canceltarget()
В случае, если инициировано ожидание прицела одной из команд waittarget*, прерывает его и посылает ожидающей функции нулевое значение.
Узнать инициировано ли ожидание можно с помощью Waiting
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
Beyonder wrote:Чего-то ты со скриптом перемудрил... Как я понял, ты хочешь чтобы зажав кнопку оно делало только 1 хил, а не 20.
В таком случае что-то вроде такого:Code: Select all
...
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