CLEO 4库 (4.3.16)



































-
depositfiles.com下载
2014年3月19日发布的新CLEO 4库
脚本
使用CLEO时,可以将新脚本添加到游戏中,这些脚本是用Sanny Builder或其他脚本编辑器编写的,无需重新开始游戏。将脚本放入CLEO文件夹即可。脚本将在游戏开始后运行。要从游戏中删除脚本,只需删除相应的文件。
所有脚本均由游戏粉丝编写,与CLEO开发者无关。虽然CLEO库本身应与不同版本的游戏兼容,但单个脚本可能有自己的限制和文件要求。如需了解特定脚本的功能,请联系其作者。
操作码
CLEO 4为游戏添加了100个新的脚本命令,允许与外部文件交互,修改游戏内存中的数据,调用具有自定义参数的游戏功能,以及更多其他功能。
第四版新增了处理声音和字符串的命令,增加了在不使用外部文件(.gxt, .fxt)的情况下在屏幕上显示文本的能力。要体验新功能并在脚本中使用它们,请安装最新版本的CLEO 4库。
插件
CLEO插件是普通的DLL文件,但扩展名为.CLEO。启动时,CLEO库会在CLEO文件夹中查找具有该扩展名的文件并尝试加载它们。如果加载成功,插件将开始工作并执行其编写的功能。
CLEO 4允许使用CLEO SDK的源代码创建新的操作码。在库的启动包中可以找到三个此类插件的示例。
插件的安装和删除方式与脚本相同。可用插件的列表可以在 此页面找到。
安装
CLEO 4以自动安装程序的形式发布。要安装库,请运行安装程序并按照说明进行操作。
CLEO 4.3支持三个版本的GTA圣安地列斯:1.0,1.01,3.0(steam)。
CLEO需要安装与库一起提供的ASI Loader。ASI Loader是一个程序,在游戏启动时自动加载扩展名为.asi的文件。ASI Loader用自己的文件替换了游戏的一个原始文件'vorbisFile.dll',因此请确保您已备份该文件。
其他游戏文件不会被替换,但会添加以下文件和文件夹:
- cleo\(CLEO文件夹,所有脚本和插件复制到此)
- cleo\FileSystemOperations.cleo(用于文件操作的插件)
- cleo\IniFiles.cleo(用于INI操作的插件)
- cleo\IntOperations.cleo(用于位级整数操作的插件)
- cleo\cleo_save\(CLEO保存文件夹)
- cleo.asi(CLEO库核心)
- bass.dll(用于音频操作的库)
- vorbisHooked.dll(Silent的ASI Loader)
所有插件都是可选的,但其功能可以被不同的CLEO脚本使用。
CLEO 4在圣安地列斯中播放音频文件需要安装BASS.dll版本2.4的库,可以从 Un4seen Developments Ltd的官方网站下载。
与CLEO 3的兼容性
CLEO不断改进和扩展。在极少数情况下,某些为CLEO 3编写的脚本可能无法与CLEO 4一起使用。从CLEO 4.3开始,您可以为CLEO 3脚本启用特殊的兼容模式。为此,请将脚本文件的扩展名(通常为'.cs')更改为'.cs3'。CLEO 4.3将在特殊模式下处理这些脚本,该模式包括对某些脚本命令行为的更改。同时,在绝大多数情况下,CLEO 3脚本可以与CLEO 4无缝工作,无需使用兼容模式。
Fdnjhs
CLEO库的作者和初始开发者是 Seemann。
开发者与Take 2 Interactive或Rockstar Games无关,并且对使用本产品或与库一起分发的任何其他产品可能导致的负面后果不承担任何责任。使用时请自行承担风险。
CLEO 4.3使用 ASI Loader 来自 Silent。
有关4.3版本更改的信息和CLEO功能的详细描述可以在与库一起提供的readme文件中找到。
致谢
感谢斯坦尼斯拉夫·戈洛温 (又名listener)为研究GTA游戏所做的巨大努力。
感谢mfisto对CLEO 4库的alpha测试、建议和支持
感谢NTAuthority和LINK/2012对CLEO 4.3的帮助。
CLEO 4
--------------------
更改日志
-- 4.3.15 --
* 改进了对操作码0AE1、0AE2和0AE3的兼容性修复,修正了不正确的find_next用法
-- 4.3.14 --
* 修复了0AAA仅返回自定义脚本的问题
* 修复了许多使用'SCM Block'或'Mission Local Storage'空间的内容的问题
* 修复了通过0A94将参数传递到脚本本地存储而不是任务本地存储的问题
* 修复了通过脚本队列迭代时可能出现的问题(可能导致罕见且难以追踪的错误)
-- 4.3.13 --
* 修复了在已安装CLEO脚本的情况下启动新游戏时崩溃的问题
* 可能修复了在已安装CLEO脚本的情况下启动游戏的其他问题
-- 4.3.12 --
* 修复了CLEO插件使用的'SkipOpcodeParams'中跳过字符串参数的问题
* 0AC8现在在分配失败时向输出变量返回NULL值(与4.3a之前相同)
* 0AC9现在在尝试释放内存之前检查内存是否由0AC8分配
* FXT引用现在不区分大小写(与4.3a之前相同)
* 文件操作现在检查输入句柄是否为null(似乎在4.3a之前是这样)
* 'Loaded mission'状态现在在新/加载的游戏中重置(与4.3a之前相同)
* 脚本不再提前加载(如4.3a之前)
* 解决了与其他菜单钩子(如'HUME')的冲突
* 其他小调整
-- 4.3.11 --
* 修复了在以'00'结尾的操作码开头的脚本中使用0ADA时崩溃的问题
-- 4.3.10 --
* 改进了操作码0AE1、0AE2和0AE3 - 即使未正确使用'find_next'标志,现在也能在池中循环
* 修复了0AD2未返回用鼠标瞄准的行人,而用手柄瞄准则有效的问题
-- 4.3.9 --
* 现在可以在最近完成标准任务后启动CLEO任务
* 当脚本无法打开时不再出错并终止,而是简单地记录错误
* 不再因警告而终止
* 不再在自动生成的脚本名称中包含路径(例如cleo\dir\demo.cs现在命名为'demo.cs'而不是'dir\dem')
* 改进了脚本加载错误的处理
-- 4.3.8 --
* 修复了在任务以004E结束时可能发生的崩溃问题
-- 4.3.7 --
* CLEO脚本启动的自定义任务现在继承其兼容模式 - 可能修复与使用自定义任务的mod的不兼容问题
* 由0A99设置的当前目录现在依赖于脚本,仅影响正在运行的CLEO脚本(不影响整个游戏或main.scm)
* 文本和纹理/精灵绘制现在依赖于脚本(不影响main.scm脚本)
-- 4.3 --
* 替换了每次调用0AA5-0AA8时动态分配和释放脚本参数内存的代码,改为使用静态数组
* 移除了一个未用于任何重要内容且奇怪地仅在1.0US下有效的脚本执行循环替换,这导致了与脚本日志插件的崩溃
* 添加了对Steam(v3)版本的gta_sa.exe的支持
* 防止在脚本处于CLEO 3兼容模式('.cs3'扩展名)时在SCM函数中初始化本地存储
* 更新了以下操作码的行为:
0A99
CHANGE_DIRECTORY现在可以正确更改为程序目录
0A9A
OPEN_FILE现在在将整数作为模式参数传递时使用'legacy'模式,以兼容CLEO文件句柄和SA文件句柄
请注意,您确实不应将CLEO文件句柄传递给游戏函数。然而,这种遗留模式现在确保句柄是兼容的。
其他文件函数也已更新,确保将游戏文件句柄传递给相关的游戏函数。
建议不要依赖将文件传递给游戏函数,而是将来使用CLEO 4内置的文件函数。
0AD1
CALL现在接受字符串输入,作为字符串指针传递,遵循字符串约定
0AD4
SCAN_STRING现在返回条件结果
0AE6
FIND_FIRST_FILE现在接受字符串数组输出
0AE3
FIND_ALL_RANDOM_OBJECTS_IN_SPHERE现在确保不返回淡出对象,并在失败时返回-1而不是0
0AE2
FIND_ALL_RANDOM_CARS_IN_SPHERE现在确保不返回脚本车辆或淡出车辆,并在失败时返回-1而不是0
0AE1
FIND_ALL_RANDOM_CHARS_IN_SPHERE现在确保不返回脚本角色或淡出角色,并在失败时返回-1而不是0
0ADF
ADD_TEXT_LABEL现在更新已存在的文本标签,如果它们已经存在
0AD6
IS_END_OF_FILE_REACHED现在在发生文件错误时返回true
0AD2
GET_CHAR_PLAYER_IS_TARGETING现在在未找到目标时返回-1而不是0
0AB5
STORE_CLOSEST_ENTITIES现在确保不返回脚本实体或淡出实体,并确保不返回玩家角色
Новая библиотека CLEO 4 от 19 марта 2014
Скрипты
При использовании CLEO в игру можно добавлять новые скрипты, написанные в Sanny Builder или другом редакторе скриптов, без необходимости начала новой игры. Все, что требуется для добавления такого скрипта в игру, - это поместить его в папку CLEO. Cкрипт начнет работу после начала игры. Для удаления скрипта из игры - удалите соответствующий файл.
Все скрипты написаны фанатами игры и не имеют отношения к разработчикам CLEO. Хотя сама библиотека CLEO должна работать с различными версиями игры, отдельные скрипты могут иметь собственные ограничения и требования к файлам игры. По вопросам работоспособности конкретного скрипта обращайтесь к его автору.
Опкоды
CLEO 4 добавляет в игру 100 новых скриптовых команд, которые позволяют работать с внешними файлами, изменять данные в памяти игры, вызывать игровые функции со своими параметрами, а также многое другое.
В четвертой версии появились новые команды для работы со звуками, строками, была добавлена возможность выводить на экран текст без использования внешних файлов (.gxt, .fxt). Чтобы оценить новые достижения и использовать их в ваших скриптах, установите последнюю версию библиотеки CLEO 4.
Плагины
CLEO-плагины - это обычные DLL-файлы, но имеющие расширение .CLEO. При запуске библиотека CLEO ищет в папке CLEO файлы с данным расширением и пытается загрузить их. В случае удачной загрузки плагин начинает работать и выполнять те функции, для которых он написан.
CLEO 4 позволяет создавать новые опкоды, используя исходные коды CLEO SDK. В стартовом комплекте библиотеки можно найти три примера таких плагинов.
Плагины устанавливаются и удаляются также как и скрипты. Список доступных плагинов можно найти на этой странице.
Установка
СLEO 4 распространяется в виде автоматического инсталлятора. Для установки библиотеки запустите инсталлятор и следуйте его инструкциям.
CLEO 4.3 поддерживает три версии игры GTA San Andreas: 1.0, 1.01, 3.0 (steam).
CLEO требует установки ASI Loader, который идет совместно с библиотекой. ASI Loader - это программа, которая автоматически загружает файлы с расширением .asi при старте игры. ASI Loader заменяет один из оригинальных файлов игры 'vorbisFile.dll' собственным, поэтому убедитесь, что вы сделали копию этого файла.
Другие файлы игры не заменяются, однако добавляются следующие файлы и папки:
- cleo\ (папка CLEO, в которую копируются все скрипты и плагины)
- cleo\FileSystemOperations.cleo (плагин для работы с файлами)
- cleo\IniFiles.cleo (плагин для работы с INI)
- cleo\IntOperations.cleo (плагин для работы с целыми числами на уровне битов)
- cleo\cleo_save\ (папка сохранений CLEO)
- cleo.asi (ядро библиотеки CLEO)
- bass.dll (библиотека для работы с аудио)
- vorbisHooked.dll (Silent's ASI Loader)
Все плагины опциональны, но их функционал может быть использован различными CLEO скриптами.
CLEO 4 для San Andreas для проигрывания звуковых файлов требует установленной библиотеки BASS.dll версии 2.4, которую можно скачать с официального сайта Un4seen Developments Ltd.
Совместимость с CLEO 3
CLEO постоянно улучшается и расширяется с течением времени. В очень редких случаях некоторые скрипты, написанные для CLEO 3, могут не работать с CLEO 4. Начиная с CLEO 4.3, вы можете включить специальный режим совместимости для скриптов CLEO 3. Для этого измените расширение файла скрипта (обычно это '.cs') на '.cs3'. CLEO 4.3 будет работать с такими скриптами в особом режиме, который включает в себя изменение поведения некоторых скриптовых команд. В тоже время в абсолютном большинстве случаев скрипты CLEO 3 работают с CLEO 4 без каких-либо проблем, и использование режима совместимости не требуется.
Fdnjhs
Автор и первоначальный разработчик библиотеки CLEO - Seemann.
Разработчики не имеют отношения к Take 2 Interactive или Rockstar Games и не несут никакой ответственности за возможные негативные последствия, вызванные использованием данного продукта или любых других продуктов, распространяемых вместе с библиотекой. Используйте его на свой страх и риск.
В CLEO 4.3 используется ASI Loader от Silent.
Информацию об изменениях в версии 4.3 и более подробное описание возможностей CLEO можно найти в readme-файлах, которые идут в комплекте с библиотекой.
Благодарности
Станиславу Головину (a.k.a. listener) - за огромный труд в исследовании игр GTA.
mfisto - за альфа-тестинг библиотеки CLEO 4, советы и поддержку
NTAuthority и LINK/2012 - за помощь с CLEO 4.3.
CLEO 4
--------------------
Change Log
-- 4.3.15 --
* Improvemed compatibility fix for opcodes 0AE1, 0AE2 and 0AE3 with incorrect find_next usage
-- 4.3.14 --
* Fixed 0AAA only returning custom scripts
* Fixed many things which use the 'SCM Block' or 'Mission Local Storage' space
* Fixed parameters being passed to script local storage instead of mission local storage through 0A94
* Fixed potential problems with iteration through the script queues (may cause rare and hard to trace bugs)
-- 4.3.13 --
* Fixed crashing when starting a new game after a game has already started with CLEO scripts installed
* Possibly fixed other issues with starting a game with CLEO scripts installed
-- 4.3.12 --
* Fixed string parameter skipping in 'SkipOpcodeParams' used by CLEO plugins
* 0AC8 now returns a NULL value to the output var if allocation failed (as it did before 4.3a)
* 0AC9 now checks the memory was allocated by 0AC8 before attempting to free it
* FXT references are now case insensitive (as they were before 4.3a)
* File operations now check the input handle isn't null (as it seems was the way before 4.3a)
* 'Loaded mission' status now reset on new/loaded game (as it was before 4.3a)
* Scripts no longer load prematurely (like before 4.3a)
* Resolved conflicts with other menu hooks such as 'HUME'
* Other minor tweaks
-- 4.3.11 --
* Fixed crash with 0ADA in scripts beginning with an opcode ending in '00'
-- 4.3.10 --
* Improvements to opcodes 0AE1, 0AE2 and 0AE3 - now loops around the pool even when the 'find_next' flag isn't used correctly
* Fixed 0AD2 not returning peds targetted with the mouse, while targetting with a pad worked
-- 4.3.9 --
* Will now be able to start a CLEO mission after recently finishing a standard mission
* Will no longer error & terminate when scripts fail to open and instead simply log the error
* Will no longer terminate on warnings
* No longer includes paths in automatically generated script names (e.g. cleo\dir\demo.cs is now named 'demo.cs' and not 'dir\dem')
* Improved handling of script load errors
-- 4.3.8 --
* Fixed crash which would occur when missions were ended with 004E
-- 4.3.7 --
* Custom missions launched by CLEO scripts now inherit their compatibility mode - possibly fixing incompatibilities with mods using custom missions
* The current directory set by 0A99 is now script-dependant and only affects running CLEO scripts (not the entire game or the main.scm)
* Text and texture/sprite draws are now script-dependant (doesn't affect main.scm scripts)
-- 4.3 --
* Replaced code which dynamically allocated and deallocated memory for script parameters every time 0AA5-0AA8 were called with static arrays
* Removed a script execution loop replacement which wasn't used for anything important and weirdly only worked with 1.0US that caused crashes with script logging plugins
* Added support for Steam (v3) versions of gta_sa.exe
* Prevented the local storage from being initialized in SCM functions when the script is in CLEO 3 compatibility mode ('.cs3' extension)
* Updates to behaviour of following opcodes:
0A99
CHANGE_DIRECTORY can now correctly change to the program directory
0A9A
OPEN_FILE now uses a 'legacy' mode when passing an integer as the mode parameter for compatibility of CLEO file handles and SA file handles
Note that you should really not pass CLEO file handles to game functions. However, this legacy mode now ensures that the handles are compatible.
Other file functions have also been updated ensuring that game file handles are passed to relevant game functions.
It is recommended to not rely on passing files to game functions and instead use CLEO 4's in-built file functions in future.
0AD1
CALL now accepts string input, which is passed as a string pointer following string convention
0AD4
SCAN_STRING now returns a condition result
0AE6
FIND_FIRST_FILE now accepts string array output
0AE3
FIND_ALL_RANDOM_OBJECTS_IN_SPHERE now ensures no fading objects are returned and returns -1 instead of 0 on failure
0AE2
FIND_ALL_RANDOM_CARS_IN_SPHERE now ensures no script vehicles or fading vehicle are returned and returns -1 instead of 0 on failure
0AE1
FIND_ALL_RANDOM_CHARS_IN_SPHERE now ensures no script characters or fading characters are returned and returns -1 instead of 0 on failure
0ADF
ADD_TEXT_LABEL now updates existing text labels if they already exist
0AD6
IS_END_OF_FILE_REACHED now returns true if a file error occured
0AD2
GET_CHAR_PLAYER_IS_TARGETING now returns -1 instead of 0 when no target is found
0AB5
STORE_CLOSEST_ENTITIES now ensures no script entities or fading entities are returned and ensures the player ped is not returned