Защита от двойного нажатия бинда..

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Laden
Posts: 36
Joined: 2007-05-03 12:51:55

Защита от двойного нажатия бинда..

Post by Laden »

Целый день ломаю голову.. но видимо что-то не учитываю..
Задача:
Есть некий бинд на каст..
Есть время каста...
Необходимо, чтобы при нажатии кнопки бинда происходил каст..
Далее, если каст вызывается повторно в то время, как 1й каст ещё НЕ окончился (скадем спелл кастится 3 сек, а повторное нажатие на кнопку произошло через 1.5), то необходимо, чтобы скрипт(бинд) не перевызывался заново, сбивая тем самым неоконченный каст, а проверяя некое условие выводил бы сообщение мол "рано ещё"..

Вот только как заставить это работать ... не знаю)
Пробовал назначать глобальные переменные, но эффекта это не дало.. Всё равно сбивается...
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

В начале присвоить X значение 1 допустим, в конце 0.
Если X не равно 0 то "рано".
Можешь сделать через UO.Get/SetEasyUO(number,"text")
The End.
arch
Posts: 38
Joined: 2004-05-26 16:39:57
Location: www.myruo.ru
Contact:

Post by arch »

I'm wrote:В начале присвоить X значение 1 допустим, в конце 0.
Если X не равно 0 то "рано".
Можешь сделать через UO.Get/SetEasyUO(number,"text")

есть ли в Инжекте стандартный метод, позволяющий узнать, запущен ли какой-то скрипт? Без объявления глобальный переменных?
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Re: Защита от двойного нажатия бинда..

Post 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
Laden
Posts: 36
Joined: 2007-05-03 12:51:55

Post by Laden »

Пробовал хорошо... только неправильно))
Ошибка была в условии проверки...

Большое спасибо.

I'm wrote:Можешь сделать через UO.Get/SetEasyUO(number,"text")

Насколько я помню.. Отличия в том, что это пишется в реестр. а не в память инжекта.., что несколько снижает скорость обработки, но увеличивает стабильность...
Что же.. потестируем и такой вариант.
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

"На скорость не влияет ;)"
The End.
Laden
Posts: 36
Joined: 2007-05-03 12:51:55

Post by Laden »

Неее... где-то тут я видел, что влияет.. там то ли в сотых, то ли в десятых секунды :P
*и не надо мне доказывать, что это роли не играет.. я с этим и не спорю.. Просто факты ;)*
arch
Posts: 38
Joined: 2004-05-26 16:39:57
Location: www.myruo.ru
Contact:

Post by arch »

Laden wrote:Неее... где-то тут я видел, что влияет.. там то ли в сотых, то ли в десятых секунды :P
*и не надо мне доказывать, что это роли не играет.. я с этим и не спорю.. Просто факты ;)*
учитывая ПвП на моем шарде могу сказать, что и это влияет.
MorbidAngel
Posts: 51
Joined: 2004-08-26 16:47:05

Post 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

чет не парит такая система....
MorbidAngel
Posts: 51
Joined: 2004-08-26 16:47:05

Re: Защита от двойного нажатия бинда..

Post 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

а вот такая заработала....ыыыыыыыыыы :D
Post Reply