Terminate & function main error и мултипроцессы

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Terminate & function main error и мултипроцессы

Post by ruso »

Парочка вопросов возникла! +)

Есть проблема, как только я изменяю имя стартовой функции пример:

sub main()
...
end sub

меняю на

sub xxx()
...
end sub

сохраняю, выбираю в drop-boxе RUN FUNCTION - xxx
нажимаю кнопку RUN FUNCTION, мне выдаёт ошибку:

Line 5: FUNCTION NOT FOUND - xxx

потом при попытки запустить любой другой скрипт,
выдаёт ту же самую ошибку, изменяя только номер
последней линии. При чём я в drop-boxe выбираю
главную функцию для 1 скрипта - main.

---

Второй вопрос. +)

Как завершить нужный мне процесс ?

UO.terminate("main")
UO.terminate("all")
,terminate all
,terminate main

вроде как не работают или я не правильно пишу. =)
Last edited by ruso on 2004-07-09 03:38:46, edited 1 time in total.
ykka
Posts: 46
Joined: 2004-06-27 00:24:52
Location: xz

Post by ykka »

FUNCTION NOT FOUND
И У МЕНЯ ТОЖЕ САМОЕ ХОТЯ Я УЖЕ ОБ ЭТОМ ПИСАЛ
ТОВАРИШ YOKKO СКАЗАЛ ЧТО ЕТО ПРОВОКАЦИЯ_)))
bla bla
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Post by Ugrum. »

Code: Select all

 UO.Exec('terminate all')    
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

Ugrum. wrote:

Code: Select all

 UO.Exec('terminate all')    


Не работает!

Я сперва запустил этот скрипт:

sub main()
while not uo.dead()
uo.print("process")
wait(2000)
wend
end sub

потом запускаю второй скрипт:

sub main()
UO.Exec('terminate all')
end sub
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

Вообще я не понимаю если нельзя изменять названия MAIN функций, то как же можно остановить нужный мне процесс из другого процесса ? Так как все процессы с именем main.
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Post by Ugrum. »

ruso wrote:Вообще я не понимаю если нельзя изменять названия MAIN функций, то как же можно остановить нужный мне процесс из другого процесса ? Так как все процессы с именем main.

Да почемуж нельзя то?
не только можно но и нужно.
вот попробуй так:

Code: Select all

sub Test() 
var n=0
while not uo.dead()
uo.print("process")
wait(2000)
n=n+1
if n==5 then
uo.print("process terminate !!!")
UO.Exec('terminate all')
end if
wend
end sub
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Re: Terminate & function main error

Post by Yoko »

ruso wrote:выбираю в drop-boxе RUN FUNCTION - xxx
нажимаю кнопку RUN FUNCTION, мне выдаёт ошибку:
Line 5: FUNCTION NOT FOUND - xxx

У тебя старая модификация script.dll с ловушкой для невнимательных. Там лишний пробел дорисовывался, его надо было убирать вручную. Либо так делай либо перескачай с сайта.

ruso wrote:Как завершить нужный мне процесс ?
UO.terminate("main")
UO.terminate("all")
,terminate all
,terminate main
вроде как не работают или я не правильно пишу. =)

,terminate all
,terminate main
работают введённые с консоли
uo.exec("terminate main")
uo.exec("terminate all")
работают из скрипта
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Кстати, у меня в начале работы с инжектом был глюк - инжект не видел написанных мною скриптов. Оказалось, я писал
Sub
...
Endsub

Заглавные буквы оказались решающими... Как только их заменил на маленькие - все заработало. Причем заглавные буквы в любых других командах и функциях прекрасно работают...
SVG
Posts: 73
Joined: 2004-04-15 14:50:06
Location: Moscow

Post by SVG »

Edred wrote:Кстати, у меня в начале работы с инжектом был глюк - инжект не видел написанных мною скриптов. Оказалось, я писал
Sub
...
Endsub

Заглавные буквы оказались решающими... Как только их заменил на маленькие - все заработало. Причем заглавные буквы в любых других командах и функциях прекрасно работают...


Ну не знаю глюк ето или нет, но я его использую как плюс штоб не загромождать выбор запускаемых функций разными там проверочными функциями и т.д.
Я где то рядом... 8)
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

Ugrum. wrote:
ruso wrote:Вообще я не понимаю если нельзя изменять названия MAIN функций, то как же можно остановить нужный мне процесс из другого процесса ? Так как все процессы с именем main.

Да почемуж нельзя то?
не только можно но и нужно.
вот попробуй так:

Code: Select all

sub Test() 
var n=0
while not uo.dead()
uo.print("process")
wait(2000)
n=n+1
if n==5 then
uo.print("process terminate !!!")
UO.Exec('terminate all')
end if
wend
end sub


Попробовал, не работает, просто идёт по кругу, и как бы не выполняет строчку UO.Exec('terminate all').

Может у меня с инжектом проблема ? +)
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

С новой версией скрипт.длл всё заработало!!!

Всем спасибо за помощь! =)

--------------

Но возник ещё 1 вопрос, есть ли какая нибудь функция в инжекте, которая открывает msg-box в виндовсе поверх всех окон ?
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

вроде есть, посмотри scripting.txt
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

sub ww()
MessageBox("asdf")
end sub
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

SVG wrote:
Edred wrote:Кстати, у меня в начале работы с инжектом был глюк - инжект не видел написанных мною скриптов. Оказалось, я писал
Sub
...
Endsub

Заглавные буквы оказались решающими... Как только их заменил на маленькие - все заработало. Причем заглавные буквы в любых других командах и функциях прекрасно работают...


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


А такие скрипты только в список не попадают? Из других скриптов запускаются? Если так - то очень полезный совет... :) спасибо
SVG
Posts: 73
Joined: 2004-04-15 14:50:06
Location: Moscow

Post by SVG »

Edred wrote:А такие скрипты только в список не попадают? Из других скриптов запускаются? Если так - то очень полезный совет... :) спасибо


Да из других запускается нормально.
Я где то рядом... 8)
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

Появились ещё пара вопросов! :D

Как взять содержимое моей переменной из другово процесса ?

И как запустить из одного скрипта, другой скрипт ?
Lord Ruslan Nightmare
Expert!
Posts: 359
Joined: 2004-04-25 11:11:07
Contact:

Post by Lord Ruslan Nightmare »

sub a()
uo.exec("exec b") #породит параллельный независимый процесс
c() #вызовет c просто как любую другую функцию
end sub

sub b()
end sub

sub c()
end sub


насчет переменных - только через глобальные
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

А если у меня два скрипта в разных файлах, какой синтаксис для открытия и запуска второго скрипта ? (из первого процесса)

Насчёт глобальных переменных, можешь написать пример ?
Lord Ruslan Nightmare
Expert!
Posts: 359
Joined: 2004-04-25 11:11:07
Contact:

Post by Lord Ruslan Nightmare »

в разных файлах - хз, я всё в одном держу

Code: Select all

sub a()
  var delay
  uo.setglobal("global_var_a","NULL")
  while ...
    ...
    if ... then
      ...
      uo.setglobal("global_var_a","1")
      delay = uo.Timer()
      while uo.getglobal("global_var_b") == "NULL" and uo.Timer() - delay < 1000
        wait(100)
      wend
      uo.setglobal("global_var_b","NULL")
    endif
    wait(100)
  wend
end sub

sub b()
  uo.setglobal("global_var_b","NULL")
  while ...
    if uo.getglobal("global_var_a") == "1" then
      ...
      uo.setglobal("global_var_b","1")
      uo.setglobal("global_var_a","NULL")
    endif
    wait(100)
  wend
end sub


В данном "примере" скрипты a и b работают паралельно. В какой-то момент скрипт a выставляет глобальную переменную, скрипт b это ловит и что-то начинает делать, а в это время скрипт a выполняет какие-то другие действия (в моём случае - просто ждет). В какой-то момент скрипт b выставляет вторую глобальную переменную, скрипт a это ловит и всё возвращается к тому, с чего началось.
Вообще, как-то это всё надумано...Просто у меня нечто подобное реализовано для двух параллельно работающих клиентов...И слегка попроще :)
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...
ruso
Posts: 45
Joined: 2004-04-26 00:36:26

Post by ruso »

Огромное спасибо!! :)

Мне это надо для рубки и рекола от рипперов, что бы знать куда после рекола от риппера далше реколися и рубить. +)
Post Reply