Защита запуска.

Anything and all.

Moderators: Murderator+, Murderator

Krelyn
Posts: 9
Joined: 2005-07-24 17:54:03

Защита запуска.

Post by Krelyn »

Я не хочу чтобы скрипт запускался более чем в одном экземпляре т.е. как бы я не хитрил с переменными - заблокировать запуск скритов - всегда можно запустить второ скрипт просто зажав кнопку....
Пример того что должно быть

саб Вася()
иф саб Вася уже включен
конец скрипта
элс
уо.мсг("Хай, я Вася,не килл плиз!")
ендиф
енд саб


как можно сделать чтобы скрипт не запускался если аналогичный включен?
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Тоже ранее замарачивался такой штукой, когда нужен был хайдинг в пвп-но частенько жмёшь 2 раза и один хайд другому мешает ... я выходил из этой ситуации биндом на кнопку-отключение скрипта.
Krelyn
Posts: 9
Joined: 2005-07-24 17:54:03

Post by Krelyn »

я просто не весь скрипт выложил......я написал так что второй скрипт запустится только если зажать кнопку)т.е. независимо от скорости нажатия всёравно 2 открывается..не всегда но часто........для меня бинд на завершение скрипта- не выход =(...вот буду думать....
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Попробуй привязаться к журналу или же действию скрипта ...

( допустим при обкасте-привязка к увеличению брони ,
при лорах-привязка к месагам в журнале ).
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post by Mihail »

уо.сетГлобал
уо.гетГлобал
уо.сетИзиУо
уо.гетИзиУо
Krelyn
Posts: 9
Joined: 2005-07-24 17:54:03

Post by Krelyn »

Сет и Гет пробовал - работает, но второй всёранво проскакивает если кнопку зажать.......



Может попробовать запуск скрипта из конфига УО?


типа макрос в УО -
Say ,exec bot


там ненастолько сильно быстро залипание клавиш)

или может что нить можно сделать с залипанием клавиш чтоб помедленнее?)
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Krelyn wrote:Сет и Гет пробовал - работает, но второй всёранво проскакивает если кнопку зажать.......



Может попробовать запуск скрипта из конфига УО?


типа макрос в УО -
Say ,exec bot


там ненастолько сильно быстро залипание клавиш)

или может что нить можно сделать с залипанием клавиш чтоб помедленнее?)

В настройках клавиатуры в виндовсе поставь задержку перед началом повтора побольше, а скорость повтора уменьши =)
DerMeister сейчас на нейрале!
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

при использовании глобальных переменых ничего никогда не проскочит...
Но лутше всего устанавливать переменые на запрет на какоето время... не на все время действия это что бы избежать повторов при на чале действия (зажими и тд)
а если не обходими обезопасить скрипт полностью до завершенито больше интервал ожидания ставим или по завержению фцнкциональной ычасти скрипта.
в случаи таймера есть проблема в передачи параметров... Возникают сложности когда необходими гарантировать 100% передачу параметров

Code: Select all

sub SetTimer()
uo.setGlobal(uo.GetGlobal('valname'), '1')
wait(val(uo.GetGlobal('waittime')))
end sub
sub somescript()
if uo.GetGlobal('myscript') <> '1' then
uo.SetGlobal('valname', 'myscript')
uo.SetGlobal('waittime', '1500') #пауза после установки значения
uo.exec("exec SetTimer")
... #сам скрипт
end if
end sub


PS В новом скриптовом модуле планируется организзовать передачу параметров скриптам вызваных через exec
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

Grin wrote:В новом скриптовом модуле планируется организзовать передачу параметров скриптам вызваных через exec

Это хорошо...
Krelyn
Posts: 9
Joined: 2005-07-24 17:54:03

Post by Krelyn »

Grin wrote:при использовании глобальных переменых ничего никогда не проскочит...
Но лутше всего устанавливать переменые на запрет на какоето время... не на все время действия это что бы избежать повторов при на чале действия (зажими и тд)
а если не обходими обезопасить скрипт полностью до завершенито больше интервал ожидания ставим или по завержению фцнкциональной ычасти скрипта.
в случаи таймера есть проблема в передачи параметров... Возникают сложности когда необходими гарантировать 100% передачу параметров

Code: Select all

sub SetTimer()
uo.setGlobal(uo.GetGlobal('valname'), '1')
wait(val(uo.GetGlobal('waittime')))
end sub
sub somescript()
if uo.GetGlobal('myscript') <> '1' then
uo.SetGlobal('valname', 'myscript')
uo.SetGlobal('waittime', '1500') #пауза после установки значения
uo.exec("exec SetTimer")
... #сам скрипт
end if
end sub


PS В новом скриптовом модуле планируется организзовать передачу параметров скриптам вызваных через exec

просто по привычке юзаю переменную Изи т.к. работаю тесно с ней...попробую через глобальную.......надеюсь помогет) спасибо
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

да хоть СетИзи
разници почти 0 просто лезть в рееестор что бы хранить там переменые... помойму это бредовато;) куда ближе сетглобал;)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Grin wrote:лезть в рееестор что бы хранить там переменые... помойму это бредовато;) куда ближе сетглобал;)


Объясни это Дестракшену... :wink:
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Это оправдано токо в одном случае, когда с переменной работают несколько запущенных инжектов.
Krelyn
Posts: 9
Joined: 2005-07-24 17:54:03

Post by Krelyn »

sub healcast()
if uo.GetGlobal("Cast")== "0" then
uo.SetGlobal('Cast','1')
uo.cast("Heal","self")
var xmana = uo.mana
while xmana == uo.mana
wait(5)
wend
uo.SetGlobal('Cast','0')
endif
endsub



как не пытаюсь.....если зажать кнопку с хилом проскакивают 2.....
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

страна почему он вообще работал;)) Просто в твоем случаи нужно проинициализировать глобальную переменую...
а в скрипте в самом начале просто поставь задержку маленьку... хотястрано времени в полне должно хватать что бы запуск был только единожды... одно дело что утебя не много другая система магии и мана забирается сразуже

Code: Select all

sub healcast()
wait(100) #prigelanii mogno umen'shit'
if uo.GetGlobal("Cast")<>"1" then
uo.SetGlobal('Cast','1')
uo.cast("Heal","self")
var xmana = uo.mana
while xmana == uo.mana
wait(5)
wend
uo.SetGlobal('Cast','0')
endif
endsub
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Попробуй так что ли, но лучше наверное делать через очередь. Видел тут кто то кидал конвейер кастов.
А может проще тренировать руки? :)

Code: Select all

sub healcast() 
   wait(200)
   if uo.GetGlobal("Cast")== "0" then
      uo.SetGlobal('Cast','1')
      uo.cast("Heal","self")
      var xmana = uo.mana
      while UO.Mana >= xmana
         wait(300)
      wend
      uo.SetGlobal('Cast','0')
   endif
endsub
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Толку от конвеера? Если там и тут используются глобальные переменый которые почемуто не успевают выстовиться...
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Ну если отрывисто нажимать кнопки но раньше времени окончания работы скрипта то все будет норм, а если зажимать то и никакая пауза в начале скрипта не поможет.

А от конвейера будет толк - либо он удалит из очереди лишний вызов скрипта либо исполнит его. При зажимании хоткея просто очередь наполнится вызовами скрипта. А процедура обработки конвейера не станет два раза одновременно запускать один скрипт. Вообщем такой подход надежнее по моему.
Krelyn
Posts: 9
Joined: 2005-07-24 17:54:03

Post by Krelyn »

я скрипт не себе пишу......я итак кастую далеко не медленно......уу меня на конекте руками быстрее намного т.к. заранее таргет кидаю ......а с этим лучше придумайте что нить)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Savage wrote:Ну если отрывисто нажимать кнопки но раньше времени окончания работы скрипта то все будет норм, а если зажимать то и никакая пауза в начале скрипта не поможет.

А от конвейера будет толк - либо он удалит из очереди лишний вызов скрипта либо исполнит его. При зажимании хоткея просто очередь наполнится вызовами скрипта. А процедура обработки конвейера не станет два раза одновременно запускать один скрипт. Вообщем такой подход надежнее по моему.

ну а как потвойму очеред заполняетя?;)) Если тут в пары строчках глобаьная переменая не успеет востановится...
то в конвеер она полюбомуц пройдет... только эфлеект может получится двойного каста... то он откастит нормально но потом все равно еще каст сделает;)) Выход это писать по мима имя скрипта еще и время что бы сравнивал с предыдущим. но как бы это не крак бы это не было плохо;) все зависет как очередь формируется... Если копированием срок то возможно и так все пройдет тосто одновременно сформируется 2 строки которые друг друга переапишут... вообще чушь какого фига глобальная переменая так медленно срабатывает;)))

Krelyn там пару постов раньше я предложил тебе вариант с задержкой в начале попробуй его.
Post Reply