Page 1 of 1

По поводу Running functions

Posted: 2005-08-21 17:51:06
by Entertainer
как сделать так, чтобы можно было запустить только один sub с конкретным названием
т.е. у меня в автолоде допустим есть скрипт на хилинг и в бою я нервно хапускаю этот скрипт несколько раз, дак вот как сделать так, чтобы если я пустил 1, то его же я уже не мог запустить
т.е. существует ли какая-то проверка либо программная либо в самом скрипт

типа
if uo.execed('main') then
uo.terminate('current sub')

типа такого

Posted: 2005-08-21 17:55:16
by flake

Code: Select all

; глобалка
Sub autostart()
UO.SetGlobal( 'check', '0' )
endsub

Sub Heal()
  If UO.GetGlobal(  'check' ) == 0 Then
    UO.SetGlobal( 'check', '1' )
       #
       # тут собственно твой макр
       #
    UO.SetGlobal( 'check', '0' ) 
  EndIf
endsub

Posted: 2005-08-21 22:05:25
by Entertainer
хмхм, сделал вроде как ты сказал
но почему-то ни автостарта ни хила нет в списке функций
и простой exec не помогает
т.е. пускаю то автостарт то хил то вместе - ничего не происходит

Posted: 2005-08-22 13:28:43
by flake
автостарт просто запусти когда заходишь в УО. 1 раз.

Posted: 2005-08-22 15:09:14
by Entertainer
в смысле когда уже в игре, или когда только захожу
его просто нет в списке функций, запускать нечего
если запускать с хоткея - ничего не происходит

Posted: 2005-08-22 15:11:12
by Leo
Что бы запускались Sub напиши с маленькой буквы (sub).

Posted: 2005-08-22 15:44:16
by Entertainer
все понятно, должны быть == '0' в апострофах

Posted: 2005-08-22 15:57:50
by PCGamer
Entertainer wrote:все понятно, должны быть == '0' в апострофах


Да. Либо используй val()

Code: Select all

If val(UO.GetGlobal(  'check' )) == 0 Then 

Posted: 2005-08-22 16:12:47
by flake
Упс, моя ошибка.
З.Ы.
Ты когда запускаешь автостарт ниче и не должно происходить.