Page 1 of 2

Script.dll with INCLUDE feature

Posted: 2005-05-06 16:29:00
by Beyonder
<<EN
Ok, my 2 days work is over. The result is modifyed original version of script.dll (i hope yoko didnt add any new features there in his release :) ) with include feature.
The way it works can be seen from examples.

<<RUS
Наконец-то я закончил свою 2-ух дневную работу. В результате получился модифицированный скриптовый модуль с поддержкой инклудов. Смотрите примеры использование и все поймете :).

C:\UO\Inject\Scripts\mainfunct.sc

Code: Select all

<<include <funct1.sc>
<<include <\reserv\funct2.sc>
<<include <\reserv\out\funct3.sc>

sub main()
UO.Print("Hello from main function!")
FunctionInFunct1()
FunctionInFunct2()
FunctionInFunct3()
end sub


C:\UO\Inject\Scripts\funct1.sc

Code: Select all

sub FunctionInFunct1()
UO.Print("Hello from funct1!")
end sub


C:\UO\Inject\Scripts\reserv\funct2.sc

Code: Select all

sub FunctionInFunct2()
UO.Print("Hello from funct2!")
end sub


C:\UO\Inject\Scripts\reserv\out\funct3.sc

Code: Select all

sub FunctionInFunct3()
UO.Print("Hello from funct3!")
end sub


<<EN

Ok, the examples are over and now some docs.
1) Syntax is

Code: Select all

<<include <FILENAME>

2) FILENAME is a path to the included file FROM THE MAIN FILE.
That means that all includes are done looking on the dirs from the main script file.
Like if you open C:\main.sc and there is include "\funct\load.sc" then it will load the C:\funct\load.sc. AND if load.sc includes some "\dir\other.sc" then IT WILL NOT LOAD C:\funct\dir\other.sc . The file that will be loaded is C:\dir\other.sc because the main file is main.sc and it is on C:\ so that is the beginning of the search.
3) includes are fully recursive with the only limiting that is told about in N2.
4) Include includes files to the end of current script, so dunt try putting parts of functions in different files and then including them togather.

<<RU

Примеры закончились, теперь документация
1) Синтакс:

Code: Select all

<<include <FILENAME>

2) FILENAME это полный относительный (от запускаемого файла) путь и имя файла.
Тоесть если INCLUDE сделать в друго заинклуженом файле, то путь указанный там будет относительно самого основного открытого в инжекте файле.
3) Инклуды полностью рекурсивные с единственным ограничением описанным в пункте 2.
4) Все заинклуженные файлы помещаються в конец текущего файла где-бы они не находились. Тоесть не пытайтесь разбить одну функцию по частям на файлы, а потом пробовать заинклудить вместе.

LINK: http://beyonder.nm.ru/script.dll
ALTERNATIVE LINK OR DL Link.

PS. There is also Search and Replace feature included. Search for it by Ctrl+F.
ПС. Также встроенная функция поиска и замены в тексте скрипта. Вызываеться по Ctrl+F.

Posted: 2005-05-06 16:32:08
by Beyonder
Да и кстати, версия тестовая и поэтому пишет в файл C:\OutF.sc то что получилось после инклудов.
Так что если будут глюки, в первую очередь шлите свой скрипт и этот файл.

Жду критики.

Posted: 2005-05-08 09:50:20
by I'm
Звучит круто :D
Бум смотреть :)
О результатах доложу... если незабуду :roll:

Posted: 2005-05-09 08:56:39
by Beyonder
Ну как, кто-то еще пробовал?
Да и заодно напоминаю I'm-у сообщить о полученных результатах.

Posted: 2005-05-09 10:07:58
by I'm
Походу я тут первоиспытатель :lol:
Ну чтож поздравляю вас инклуд работает :lol:
Удобно и уневерсально :wink:
Сперва были праблеммы с парсером в первой строке, потом их нестало :lol: (ошибка с пунктом 2 :oops: )
Вобщем он роет он роет минут 15 :lol:

Posted: 2005-05-09 10:15:41
by I'm
Вот еще бы можно было бы "спуститься" вниз типо из Injection\Scripts\Bots в Injection\Scripts :roll:
Если уже можно то как у меня чето плохо думается по утрам :evil:

Posted: 2005-05-09 10:28:15
by Beyonder
Надо подумать над этой фичей. Может и сделаю когда лень пройдет :).
На данный момент ее помоему нет :).
В начале я думал сделать инклуды относительно файла инжекта, но потом оказалось что он себя приаттачивает к процессу УО и фиг ты его местонахождение вытянешь.

Posted: 2005-05-09 10:32:46
by Beyonder
Оказываеться эта фича уже есть :D. Просто винды позволяют это сделать без проблем.

Code: Select all

<<include <\..\included.sc>

Этот код заинклудит included.sc файл лежащий в верхней на 1 папке.

Posted: 2005-05-09 11:01:49
by I'm
Как надоест ленится пойду проверю :lol:

Posted: 2005-05-16 15:02:15
by J17
Круто!!!! Вот именно инклуда мне всегда и нехватало! Постоянно повторяющийся код в моих скриптах... Теперь всё будет поновому. %)
Респект.

PS Нет желания заделаться официальным девелопером скриптового модуля? :)

Posted: 2005-05-16 19:04:33
by Beyonder
Никакого желания =).
Просто у меня энтузиазм приходит раз в месяц.

Posted: 2005-05-17 09:59:45
by I'm
И этого достаточно :wink:

Posted: 2005-05-18 13:34:41
by Arthur
like your script.dll but dont have autoload can add pls thanks ;)

Posted: 2005-05-18 13:43:34
by Edred
Может проще отправить кусок кода, отвечающий за реализацию include к Йоко, чтобы он включил его в скриптовый модуль?

Posted: 2005-05-18 14:10:43
by Destruction
Edred wrote:Может проще отправить кусок кода, отвечающий за реализацию include к Йоко, чтобы он включил его в скриптовый модуль?

По-моему, он взял сорцы скриптового модуля дописал их и скомпилил, возможно проще отослать к Yoko, но зачем же его отвелкать от важных дел :?:

Posted: 2005-05-18 14:27:48
by Edred
Destruction wrote:
Edred wrote:Может проще отправить кусок кода, отвечающий за реализацию include к Йоко, чтобы он включил его в скриптовый модуль?

По-моему, он взял сорцы скриптового модуля дописал их и скомпилил, возможно проще отослать к Yoko, но зачем же его отвелкать от важных дел :?:


Мдя, ты совсем в вопросе не разбираешься... Он взял старую версию исходников скриптового модуля, последняя версия есть только у Йоко. А в этой последней версии - команда terminate, возможность использовать autoload и autostart.

Posted: 2006-04-29 10:37:57
by Krysa
Hmm, why ",temirnate all" not working in this super thing? :cry:

Posted: 2006-05-18 18:01:21
by rooney
link is broken, can u upload it to another one plz?

Posted: 2006-05-19 18:05:39
by rooney
terminate isnt working...

Posted: 2007-05-26 00:12:29
by I'm
Таки перенес тему куда следовало :)