Вызов функции из файла.

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
TAHK
Posts: 36
Joined: 2005-04-30 18:52:09

Вызов функции из файла.

Post by TAHK »

Хотелось бы создать библиотеку функций в отдельном файле.
Можно ли это сделать в инже?

к примеру в autoload.sc :

вызываем Function1(param1) находящуюся в другом файле File2.sc

Если возможно дайте плиз пример кода.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Вызов функции из файла.

Post by Juicy Fruit »

Если используешь новый инжект то можно с помощью #include подключить внешний файл скриптов к текущему скрипту и спокойно вызывать функции из подгруженного файла.
viewtopic.php?f=12&t=16689
По ссылке описание есть.
-=Tiger=-
Posts: 20
Joined: 2015-03-17 04:02:00

Re: Вызов функции из файла.

Post by -=Tiger=- »

Кто-нибудь может привести пример работы с GList, все функции желательно.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Вызов функции из файла.

Post by Juicy Fruit »

Так же, как и с UO.SetGlobal/UO.GetGlobal за исключением плюшки в качестве полной очистки списка.
Остальные функции не популярны думаю, но если уж очень хочется - можно пройтись по всему списку и получить названия и значения переменных:

Code: Select all

var i
uo.TextClear()
for i = 0 to UO.GListSize() - 1
   uo.TextPrint('gList[' + str(i) + '] have name = "' + UO.GListPosName(i) + '" and have value = ' + UO.GListPosValue(i))
next
uo.TextOpen()
-=Tiger=-
Posts: 20
Joined: 2015-03-17 04:02:00

Re: Вызов функции из файла.

Post by -=Tiger=- »

Juicy Fruit wrote:Так же, как и с UO.SetGlobal/UO.GetGlobal за исключением плюшки в качестве полной очистки списка.
Остальные функции не популярны думаю, но если уж очень хочется - можно пройтись по всему списку и получить названия и значения переменных:

Code: Select all

var i
uo.TextClear()
for i = 0 to UO.GListSize() - 1
   uo.TextPrint('gList[' + str(i) + '] have name = "' + UO.GListPosName(i) + '" and have value = ' + UO.GListPosValue(i))
next
uo.TextOpen()

А по скорости работы как? Могу ли использовать для своеобразного игнор листа? Так как с встроенным игнор листом мешать не хочу. Обычные глобальные переменные довольно медленно работают для таких целей.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Вызов функции из файла.

Post by Juicy Fruit »

Принцип работы тот же, по скорости врятли сильно отличаются, но проверь, может быть этот вариант подойдет больше.
-=Tiger=-
Posts: 20
Joined: 2015-03-17 04:02:00

Re: Вызов функции из файла.

Post by -=Tiger=- »

У меня такая задача, не запускать скрипт дважды, то есть проверить если в памяти есть данный скрипт то не запускать копию.
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Вызов функции из файла.

Post by Juicy Fruit »

-=Tiger=- wrote:У меня такая задача, не запускать скрипт дважды, то есть проверить если в памяти есть данный скрипт то не запускать копию.

Code: Select all

UO.FunRunning(String Name)
При частом повторении почти без задержек может крашить.
-=Tiger=-
Posts: 20
Joined: 2015-03-17 04:02:00

Re: Вызов функции из файла.

Post by -=Tiger=- »

Juicy Fruit wrote:
-=Tiger=- wrote:У меня такая задача, не запускать скрипт дважды, то есть проверить если в памяти есть данный скрипт то не запускать копию.

Code: Select all

UO.FunRunning(String Name)
При частом повторении почти без задержек может крашить.

Code: Select all

sub test()
If Not UO.FunRunning("test") Then
uo.print("test")
End If
end sub

такой номер не прокатит
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Вызов функции из файла.

Post by Mirage »

Code: Select all

Sub startexec(index)
   while not UO.FunRunning(index)
      uo.exec('exec ' +index)
   wend
endsub
Sub stopexec(index)
   while UO.FunRunning(index)
      uo.exec('terminate ' +index)
   wend
endsub


а чтобы 2 раза не запускался

Code: Select all

Sub autostart()
   uo.setGlobal("running",1)
end sub

sub test()
   UO.Set('quiet','1')
   if val(uo.getGlobal('running'))==1 then
      uo.setGlobal('running',2)
; какое то событие
      wait(2000)
      uo.setGlobal('running',1)
   endif
   UO.Set('quiet','0')
end sub
-=Tiger=-
Posts: 20
Joined: 2015-03-17 04:02:00

Re: Вызов функции из файла.

Post by -=Tiger=- »

Code: Select all

sub Tracking_Players()
   WarMode_Off()
   UO.WaitMenu("Tracking","Players")
   If Not UO.WaitingForMenu(5000, 0, 0, 'Tracking', 'Tracking') Then
      UO.CancelMenu()   
   End If
end sub


Нормальная запись или лишнего много? и еще почему у меня при первом юзе сразу выбирается кто-то из списка в трекинге.
Post Reply