Page 1 of 1
Защита от двойного нажатия бинда..
Posted: 2007-06-19 07:56:08
by Laden
Целый день ломаю голову.. но видимо что-то не учитываю..
Задача:
Есть некий бинд на каст..
Есть время каста...
Необходимо, чтобы при нажатии кнопки бинда происходил каст..
Далее, если каст вызывается повторно в то время, как 1й каст ещё НЕ окончился (скадем спелл кастится 3 сек, а повторное нажатие на кнопку произошло через 1.5), то необходимо, чтобы скрипт(бинд) не перевызывался заново, сбивая тем самым неоконченный каст, а проверяя некое условие выводил бы сообщение мол "рано ещё"..
Вот только как заставить это работать ... не знаю)
Пробовал назначать глобальные переменные, но эффекта это не дало.. Всё равно сбивается...
Posted: 2007-06-19 11:07:54
by I'm
В начале присвоить X значение 1 допустим, в конце 0.
Если X не равно 0 то "рано".
Можешь сделать через UO.Get/SetEasyUO(number,"text")
Posted: 2007-06-19 11:16:32
by arch
I'm wrote:В начале присвоить X значение 1 допустим, в конце 0.
Если X не равно 0 то "рано".
Можешь сделать через UO.Get/SetEasyUO(number,"text")
есть ли в Инжекте стандартный метод, позволяющий узнать, запущен ли какой-то скрипт? Без объявления глобальный переменных?
Re: Защита от двойного нажатия бинда..
Posted: 2007-06-19 11:19:09
by Rivory
Laden wrote:Пробовал назначать глобальные переменные, но эффекта это не дало.. Всё равно сбивается...
Значит плохо пробовал
Code: Select all
sub cast()
if not uo.getglobal ('ccast') == '1' then
uo.setglobal ('ccast', '1')
uo.cast ('Magic Arrow','self') ###<--- меняем
wait(3000) ###<--- меняем
uo.setglobal ('ccast', '0')
else
uo.print ('Already casting')
end if
end sub
Posted: 2007-06-19 19:00:44
by Laden
Пробовал хорошо... только неправильно))
Ошибка была в условии проверки...
Большое спасибо.
I'm wrote:Можешь сделать через UO.Get/SetEasyUO(number,"text")
Насколько я помню.. Отличия в том, что это пишется в реестр. а не в память инжекта.., что несколько снижает скорость обработки, но увеличивает стабильность...
Что же.. потестируем и такой вариант.
Posted: 2007-06-19 21:23:28
by I'm
"На скорость не влияет

"
Posted: 2007-06-20 11:35:12
by Laden
Неее... где-то тут я видел, что влияет.. там то ли в сотых, то ли в десятых секунды
*и не надо мне доказывать, что это роли не играет.. я с этим и не спорю.. Просто факты

*
Posted: 2007-06-20 11:38:01
by arch
Laden wrote:Неее... где-то тут я видел, что влияет.. там то ли в сотых, то ли в десятых секунды
*и не надо мне доказывать, что это роли не играет.. я с этим и не спорю.. Просто факты

*
учитывая ПвП на моем шарде могу сказать, что и это влияет.
Posted: 2007-07-11 02:41:07
by MorbidAngel
Code: Select all
var mega
var cast=0
sub test()
if cast==0 then
mega=uo.mana
UO.Exec("waittargetself")
UO.cast("Cunning")
cast=1
While uo.mana>=mega
Wait(25);
Wend
cast=0
else
uo.print('WAIT!!!')
end if
end sub
чет не парит такая система....
Re: Защита от двойного нажатия бинда..
Posted: 2007-07-11 03:34:29
by MorbidAngel
Rivory wrote:Laden wrote:Пробовал назначать глобальные переменные, но эффекта это не дало.. Всё равно сбивается...
Значит плохо пробовал
Code: Select all
sub cast()
if not uo.getglobal ('ccast') == '1' then
uo.setglobal ('ccast', '1')
uo.cast ('Magic Arrow','self') ###<--- меняем
wait(3000) ###<--- меняем
uo.setglobal ('ccast', '0')
else
uo.print ('Already casting')
end if
end sub
Code: Select all
sub arrow()
var mana
mana=uo.mana
if not uo.getglobal ('ccast') == '1' then
uo.setglobal ('ccast', '1')
uo.cast ('Magic Arrow','self')
While uo.mana>=mana
wait(25)
wend
uo.setglobal ('ccast', '0')
else
uo.print ('Already casting')
end if
end sub
sub arrow1()
var mana
mana=uo.mana
if not uo.getglobal ('ccast') == '1' then
uo.setglobal ('ccast', '1')
uo.cast ('Magic Arrow','self')
While uo.mana>=mana
wait(25)
wend
uo.setglobal ('ccast', '0')
else
uo.print ('Already casting')
end if
end sub
а вот такая заработала....ыыыыыыыыыы
