Page 1 of 1
Вызов функции из файла.
Posted: 2015-05-07 09:52:35
by TAHK
Хотелось бы создать библиотеку функций в отдельном файле.
Можно ли это сделать в инже?
к примеру в autoload.sc :
вызываем Function1(param1) находящуюся в другом файле File2.sc
Если возможно дайте плиз пример кода.
Re: Вызов функции из файла.
Posted: 2015-05-07 10:12:25
by Juicy Fruit
Если используешь новый инжект то можно с помощью #include подключить внешний файл скриптов к текущему скрипту и спокойно вызывать функции из подгруженного файла.
viewtopic.php?f=12&t=16689По ссылке описание есть.
Re: Вызов функции из файла.
Posted: 2015-05-07 19:09:33
by -=Tiger=-
Кто-нибудь может привести пример работы с GList, все функции желательно.
Re: Вызов функции из файла.
Posted: 2015-05-07 20:12:57
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()
Re: Вызов функции из файла.
Posted: 2015-05-08 00:35:45
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()
А по скорости работы как? Могу ли использовать для своеобразного игнор листа? Так как с встроенным игнор листом мешать не хочу. Обычные глобальные переменные довольно медленно работают для таких целей.
Re: Вызов функции из файла.
Posted: 2015-05-08 06:43:42
by Juicy Fruit
Принцип работы тот же, по скорости врятли сильно отличаются, но проверь, может быть этот вариант подойдет больше.
Re: Вызов функции из файла.
Posted: 2015-05-09 19:09:21
by -=Tiger=-
У меня такая задача, не запускать скрипт дважды, то есть проверить если в памяти есть данный скрипт то не запускать копию.
Re: Вызов функции из файла.
Posted: 2015-05-09 20:05:58
by Juicy Fruit
-=Tiger=- wrote:У меня такая задача, не запускать скрипт дважды, то есть проверить если в памяти есть данный скрипт то не запускать копию.
При частом повторении почти без задержек может крашить.
Re: Вызов функции из файла.
Posted: 2015-05-09 22:24:53
by -=Tiger=-
Juicy Fruit wrote:-=Tiger=- wrote:У меня такая задача, не запускать скрипт дважды, то есть проверить если в памяти есть данный скрипт то не запускать копию.
При частом повторении почти без задержек может крашить.
Code: Select all
sub test()
If Not UO.FunRunning("test") Then
uo.print("test")
End If
end sub
такой номер не прокатит
Re: Вызов функции из файла.
Posted: 2015-05-10 16:27:38
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
Re: Вызов функции из файла.
Posted: 2015-05-12 21:16:59
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
Нормальная запись или лишнего много? и еще почему у меня при первом юзе сразу выбирается кто-то из списка в трекинге.