Releases: cleolibrary/CLEO5
5.2.0
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
- Download CLEO v5.2.0 with Silent's ASI Loader
If you prefer Ultimate ASI Loader:
- Download CLEO v5.2.0 with Ultimate ASI Loader
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- added script execution log (
cleo\_cleo_script.log). By default, it's disabled. Configurable viacleo_plugins\DebugUtils.ini. - added call stack overflow error check to gosub and gosub_if_false commands
- added check for preceding gosub call in 0AA1 (return_if_false)
- added limit for memory allocated per script (see
cleo_plugins\SA.MemoryOperations.ini). Exceeding the limit will cause a warning in game - added listing of remaining memory blocks allocated by scripts to the cleo.log when closing or starting new game
- added support of string pointers as output type in 0AD4 (scan_string)
- added more checks for correctness of format string in 0AD4 (scan_string)
- fixed false positive
Code execution past script enderror messages when calling functions from CLEO modules - added error message when the script silently crashes in SAMP due to the script problem
- fixed problem with texture sprites corruption, now scripts can safely use sprites from multiple TXDs
- remove trailing whitespace from FXT entries preventing them from being displayed in game
- new SDK method:
CLEO_CallNativeOpcode. See SDK documentation: https://github.com/cleolibrary/CLEO5/wiki/CLEO-5-SDK
CLEO 5.1.0
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
- Download CLEO v5.1.0 with Silent's ASI Loader
If you prefer Ultimate ASI Loader:
- Download CLEO v5.1.0 with Ultimate ASI Loader
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- fixed collision of GXT texts hook with SAMP and other mods
- rewritten script drawing handling code. Logic moved from CLEO.asi to Text.cleo plugin
- relocated several opcodes from CLEO core into new GameEntities.cleo plugin
- fixed 0ADD (spawn_vehicle_by_cheating) crashing when invalid model id was used
- new CLEO plugin: Input.cleo
- new opcode 2080 (is_key_just_pressed)
- new opcode 2081 (get_key_pressed_in_range)
- new opcode 2082 (get_key_just_pressed_in_range)
- new opcode 2083 (emulate_key_press)
- new opcode 2084 (emulate_key_release)
- new opcode 2085 (get_controller_key)
- new opcode 2086 (get_key_name)
- added warning message to commands 0AC2-0AC5 if used with non-3d audio streams
- call function/method commands 0AA5-0AA7 are now setting logical result
- limited "previously called opcode" info in script error messages to show just commands of that script
- now more script error messages include previously executed command name
- added missing terminate_this_script command error message for scripts compiled with extra SCM info
CLEO 5.0.3
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
- Download CLEO v5.0.3 with Silent's ASI Loader
If you prefer Ultimate ASI Loader:
- Download CLEO v5.0.3 with Ultimate ASI Loader
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- added GxtHook.cleo plugin to ignored list
- fixed audio streams stopping when volume was set to 0.0
- fixed audio streams potentially not starting to play if still decoding or downloading
- volume of audio streams with type None and UserInterface no longer affected by screen fades
CLEO 5.0.2
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
- Download CLEO v5.0.2 with Silent's ASI Loader
If you prefer Ultimate ASI Loader:
- Download CLEO v5.0.2 with Ultimate ASI Loader
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- updated BASS library
- fixed Doppler effect calculations for 3d audio streams
- fixed sound glitches of 3d audio streams when playback starts or the camera mode changes
- fixed possible crashes when car/object/ped with attached 3d audio stream is deleted
- fixed CLEO sound artifacts when moving camera with mouse
- updated distance decay for 3d audio streams to match behavior of in-game sounds
- implemented proper support for 3d audio streams source size
- CLEO sounds volume is now affected by wide screen and fades in same way as in-game sounds
- updated "Audio_Demo" example script
- reverted muting 'music' type audio streams for game speeds other than default introduced in 5.0.1
- allow storing string result at static address (e.g.
get_name_of_vehicle_model 400 0xC16F98) - fixed path resolution issues when the game is installed in symlink or RAM Disk directory
- fixed audio playback not working in SAMP
CLEO 5.0.1
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
- Download CLEO v5.0.1 with Silent's ASI Loader
If you prefer Ultimate ASI Loader:
- Download CLEO v5.0.1 with Ultimate ASI Loader
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- cleo.log file moved back to the game root (as in CLEO4)
- Restored behavior of '.\' prefix for scripts in legacy compat mode
- fixed 0AB9 (get_audio_stream_state) not always returning Stopped, despite playback ended
- fixed 2507 (get_audio_stream_progress) sometimes returning values smaller than 1.0, despite playback ended
- fixed progress set with 2508 (set_audio_stream_progress) being ignored by stopped streams
- added new opcode 250B (get_audio_stream_progress_seconds)
- added new opcode 250C (set_audio_stream_progress_seconds)
- fixed 0AA3 (free_dynamic_library) clearing reference to libraries loaded more than once
CLEO 5.0.0
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
- Download CLEO v5.0.0 with Silent's ASI Loader
If you prefer Ultimate ASI Loader:
- Download CLEO v5.0.0 with Ultimate ASI Loader
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- support for CLEO modules feature sannybuilder/dev#264
- new Audio plugin
- audio related opcodes moved from CLEO core into separated plugin
- CLEO's audio now obey game's volume settings
- implemented Doppler effect for 3d audio streams (fast moving sound sources)
- CLEO's audio now follows game speed changes
- sound device can be now manually selected in .ini file
- new opcode 2500 (is_audio_stream_playing)
- new opcode 2501 (get_audio_stream_duration)
- new opcode 2502 (get_audio_stream_speed)
- new opcode 2503 (set_audio_stream_speed)
- new opcode 2504 (set_audio_stream_volume_with_transition)
- new opcode 2505 (set_audio_stream_speed_with_transition)
- new opcode 2506 (set_audio_stream_source_size)
- new opcode 2507 (get_audio_stream_progress)
- new opcode 2508 (set_audio_stream_progress)
- new opcode 2509 (get_audio_stream_type)
- new opcode 250A (set_audio_stream_type)
- new DebugUtils plugin
- new opcode 00C3 (debug_on)
- new opcode 00C4 (debug_off)
- new opcode 2100 (breakpoint)
- new opcode 2101 (trace)
- new opcode 2102 (log_to_file)
- implemented support of opcodes 0662, 0663 and 0664 (original Rockstar's script debugging opcodes. See DebugUtils.ini)
- new FileSystemOperations plugin
- forbidden scripts from accessing and changing any files outside game root or game settings directory
- file related opcodes moved from CLEO core into separated plugin
- opcode 0A9E (write_to_file) now supports literal numbers and strings
- opcode 0AD7 (read_string_from_file) no longer includes new line character(s) at end of read string
- fixed bug causing file stream opcodes not working correctly when read-write modes are used
- fixed buffer overflows in file stream read opcodes
- added/fixed support of all file stream opcodes in legacy mode (Cleo3)
- new opcode 2300 (get_file_position)
- new opcode 2301 (read_block_from_file)
- new opcode 2302 (write_block_to_file)
- new opcode 2303 (resolve_filepath)
- new opcode 2304 (get_script_filename)
- new Math plugin
- math related opcodes moved from CLEO core into separated plugin
- new opcode 2700 (is_bit_set)
- new opcode 2701 (set_bit)
- new opcode 2702 (clear_bit)
- new opcode 2703 (toggle_bit)
- new opcode 2704 (is_truthy)
- new opcode 2705 (pick_random_int)
- new opcode 2706 (pick_random_float)
- new opcode 2707 (pick_random_text)
- new opcode 2708 (random_chance)
- new MemoryOperations plugin
- memory related opcodes moved from CLEO core into separated plugin
- validation of input and output parameters for all opcodes
- opcode 0A8C (write_memory) now supports strings
- new opcode 2400 (copy_memory)
- new opcode 2401 (read_memory_with_offset)
- new opcode 2402 (write_memory_with_offset)
- new opcode 2403 (forget_memory)
- new opcode 2404 (get_script_struct_just_created)
- new opcode 2405 (is_script_running)
- new opcode 2406 (get_script_struct_from_filename)
- new opcode 2407 (is_memory_equal)
- new opcode 2408 (terminate_script)
- new Text plugin
- text related opcodes moved from CLEO core into separated plugin
- new opcode 2600 (is_text_empty)
- new opcode 2601 (is_text_equal)
- new opcode 2602 (is_text_in_text)
- new opcode 2603 (is_text_prefix)
- new opcode 2604 (is_text_suffix)
- new opcode 2605 (display_text_formatted)
- new opcode 2606 (load_fxt)
- new opcode 2607 (unload_fxt)
- new opcode 2608 (get_text_length)
- new opcode 2609 (add_text_label_formatted)
- new and updated opcodes
- implemented support for memory pointer string arguments for all game's native opcodes
- 0B1E (sign_extend)
- 0DD5 (get_game_platform)
- 2000 (get_cleo_arg_count)
- 2002 (cleo_return_with)
- 2003 (cleo_return_fail)
- 2800 (delete_section_from_ini_file)
- 2801 (delete_key_from_ini_file)
- 'argument count' parameter of 0AB1 (cleo_call) is now optional.
cleo_call @LABEL args 0can be written ascleo_call @LABEL - 'argument count' parameter of 0AB2 (cleo_return) is now optional.
cleo_return 0can be written ascleo_return - SCM functions can return string literals and string variables
- SCM functions (0AB1) now keep their own GOSUB's call stack
- fixed bug in 0AD4 (scan_string) causing data overruns when reading strings longer than target variable
- fixed result register not being cleared before function call in opcodes 0AA7 and 0AA8
- fixed 0ABA (terminate_all_custom_scripts_with_this_name) terminating only first found script
- changes in file operations
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
root:\for game root directoryuser:\for game save files directory.\for this script file directorycleo:\for CLEO directorymodules:\for CLEO\cleo_modules directory
- rewritten opcode 0A99 (set_current_directory). Now it no longer affects internal game sta...
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
CLEO 5.0.0 Release Candidate 6
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
If you prefer Ultimate ASI Loader:
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- support for CLEO modules feature sannybuilder/dev#264
- new Audio plugin
- audio related opcodes moved from CLEO core into separated plugin
- CLEO's audio now obey game's volume settings
- implemented Doppler effect for 3d audio streams (fast moving sound sources)
- CLEO's audio now follows game speed changes
- sound device can be now manually selected in .ini file
- new opcode 2500 (is_audio_stream_playing)
- new opcode 2501 (get_audio_stream_duration)
- new opcode 2502 (get_audio_stream_speed)
- new opcode 2503 (set_audio_stream_speed)
- new opcode 2504 (set_audio_stream_volume_with_transition)
- new opcode 2505 (set_audio_stream_speed_with_transition)
- new opcode 2506 (set_audio_stream_source_size)
- new opcode 2507 (get_audio_stream_progress)
- new opcode 2508 (set_audio_stream_progress)
- new opcode 2509 (get_audio_stream_type)
- new opcode 250A (set_audio_stream_type)
- new DebugUtils plugin
- new opcode 00C3 (debug_on)
- new opcode 00C4 (debug_off)
- new opcode 2100 (breakpoint)
- new opcode 2101 (trace)
- new opcode 2102 (log_to_file)
- implemented support of opcodes 0662, 0663 and 0664 (original Rockstar's script debugging opcodes. See DebugUtils.ini)
- new FileSystemOperations plugin
- forbidden scripts from accessing and changing any files outside game root or game settings directory
- file related opcodes moved from CLEO core into separated plugin
- opcode 0A9E (write_to_file) now supports literal numbers and strings
- opcode 0AD7 (read_string_from_file) no longer includes new line character(s) at end of read string
- fixed bug causing file stream opcodes not working correctly when read-write modes are used
- fixed buffer overflows in file stream read opcodes
- added/fixed support of all file stream opcodes in legacy mode (Cleo3)
- new opcode 2300 (get_file_position)
- new opcode 2301 (read_block_from_file)
- new opcode 2302 (write_block_to_file)
- new opcode 2303 (resolve_filepath)
- new opcode 2304 (get_script_filename)
- new Math plugin
- math related opcodes moved from CLEO core into separated plugin
- new opcode 2700 (is_bit_set)
- new opcode 2701 (set_bit)
- new opcode 2702 (clear_bit)
- new opcode 2703 (toggle_bit)
- new opcode 2704 (is_truthy)
- new opcode 2705 (pick_random_int)
- new opcode 2706 (pick_random_float)
- new opcode 2707 (pick_random_text)
- new opcode 2708 (random_chance)
- new MemoryOperations plugin
- memory related opcodes moved from CLEO core into separated plugin
- validation of input and output parameters for all opcodes
- opcode 0A8C (write_memory) now supports strings
- new opcode 2400 (copy_memory)
- new opcode 2401 (read_memory_with_offset)
- new opcode 2402 (write_memory_with_offset)
- new opcode 2403 (forget_memory)
- new opcode 2404 (get_script_struct_just_created)
- new opcode 2405 (is_script_running)
- new opcode 2406 (get_script_struct_from_filename)
- new opcode 2407 (is_memory_equal)
- new opcode 2408 (terminate_script)
- new Text plugin
- text related opcodes moved from CLEO core into separated plugin
- new opcode 2600 (is_text_empty)
- new opcode 2601 (is_text_equal)
- new opcode 2602 (is_text_in_text)
- new opcode 2603 (is_text_prefix)
- new opcode 2604 (is_text_suffix)
- new opcode 2605 (display_text_formatted)
- new opcode 2606 (load_fxt)
- new opcode 2607 (unload_fxt)
- new opcode 2608 (get_text_length)
- new opcode 2609 (add_text_label_formatted)
- new and updated opcodes
- implemented support for memory pointer string arguments for all game's native opcodes
- 0B1E (sign_extend)
- 0DD5 (get_game_platform)
- 2000 (get_cleo_arg_count)
- 2002 (cleo_return_with)
- 2003 (cleo_return_fail)
- 2800 (delete_section_from_ini_file)
- 2801 (delete_key_from_ini_file)
- 'argument count' parameter of 0AB1 (cleo_call) is now optional.
cleo_call @LABEL args 0can be written ascleo_call @LABEL - 'argument count' parameter of 0AB2 (cleo_return) is now optional.
cleo_return 0can be written ascleo_return - SCM functions can return string literals and string variables
- SCM functions (0AB1) now keep their own GOSUB's call stack
- fixed bug in 0AD4 (scan_string) causing data overruns when reading strings longer than target variable
- fixed result register not being cleared before function call in opcodes 0AA7 and 0AA8
- fixed 0ABA (terminate_all_custom_scripts_with_this_name) terminating only first found script
- changes in file operations
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
root:\for game root directoryuser:\for game save files directory.\for this script file directorycleo:\for CLEO directorymodules:\for CLEO\cleo_modules directory
- rewritten opcode 0A99 (set_current_directory). Now it no ...
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
CLEO 5.0.0 Release Candidate 5
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
If you prefer Ultimate ASI Loader:
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- support for CLEO modules feature sannybuilder/dev#264
- new Audio plugin
- audio related opcodes moved from CLEO core into separated plugin
- CLEO's audio now obey game's volume settings
- implemented Doppler effect for 3d audio streams (fast moving sound sources)
- CLEO's audio now follows game speed changes
- sound device can be now manually selected in .ini file
- new opcode 2500 (is_audio_stream_playing)
- new opcode 2501 (get_audio_stream_duration)
- new opcode 2502 (get_audio_stream_speed)
- new opcode 2503 (set_audio_stream_speed)
- new opcode 2504 (set_audio_stream_volume_with_transition)
- new opcode 2505 (set_audio_stream_speed_with_transition)
- new opcode 2506 (set_audio_stream_source_size)
- new opcode 2507 (get_audio_stream_progress)
- new opcode 2508 (set_audio_stream_progress)
- new opcode 2509 (get_audio_stream_type)
- new opcode 250A (set_audio_stream_type)
- new DebugUtils plugin
- new opcode 00C3 (debug_on)
- new opcode 00C4 (debug_off)
- new opcode 2100 (breakpoint)
- new opcode 2101 (trace)
- new opcode 2102 (log_to_file)
- implemented support of opcodes 0662, 0663 and 0664 (original Rockstar's script debugging opcodes. See DebugUtils.ini)
- new FileSystemOperations plugin
- forbidden scripts from accessing and changing any files outside game root or game settings directory
- file related opcodes moved from CLEO core into separated plugin
- opcode 0A9E (write_to_file) now supports literal numbers and strings
- opcode 0AD7 (read_string_from_file) no longer includes new line character(s) at end of read string
- fixed bug causing file stream opcodes not working correctly when read-write modes are used
- fixed buffer overflows in file stream read opcodes
- added/fixed support of all file stream opcodes in legacy mode (Cleo3)
- new opcode 2300 (get_file_position)
- new opcode 2301 (read_block_from_file)
- new opcode 2302 (write_block_to_file)
- new opcode 2303 (resolve_filepath)
- new opcode 2304 (get_script_filename)
- new Math plugin
- math related opcodes moved from CLEO core into separated plugin
- new opcode 2700 (is_bit_set)
- new opcode 2701 (set_bit)
- new opcode 2702 (clear_bit)
- new opcode 2703 (toggle_bit)
- new opcode 2704 (is_truthy)
- new opcode 2705 (pick_random_int)
- new opcode 2706 (pick_random_float)
- new opcode 2707 (pick_random_text)
- new opcode 2708 (random_chance)
- new MemoryOperations plugin
- memory related opcodes moved from CLEO core into separated plugin
- validation of input and output parameters for all opcodes
- opcode 0A8C (write_memory) now supports strings
- new opcode 2400 (copy_memory)
- new opcode 2401 (read_memory_with_offset)
- new opcode 2402 (write_memory_with_offset)
- new opcode 2403 (forget_memory)
- new opcode 2404 (get_script_struct_just_created)
- new opcode 2405 (is_script_running)
- new opcode 2406 (get_script_struct_from_filename)
- new opcode 2407 (is_memory_equal)
- new opcode 2408 (terminate_script)
- new Text plugin
- text related opcodes moved from CLEO core into separated plugin
- new opcode 2600 (is_text_empty)
- new opcode 2601 (is_text_equal)
- new opcode 2602 (is_text_in_text)
- new opcode 2603 (is_text_prefix)
- new opcode 2604 (is_text_suffix)
- new opcode 2605 (display_text_formatted)
- new opcode 2606 (load_fxt)
- new opcode 2607 (unload_fxt)
- new opcode 2608 (get_text_length)
- new opcode 2609 (add_text_label_formatted)
- new and updated opcodes
- implemented support for memory pointer string arguments for all game's native opcodes
- 0B1E (sign_extend)
- 0DD5 (get_game_platform)
- 2000 (get_cleo_arg_count)
- 2002 (cleo_return_with)
- 2003 (cleo_return_fail)
- 2800 (delete_section_from_ini_file)
- 2801 (delete_key_from_ini_file)
- 'argument count' parameter of 0AB1 (cleo_call) is now optional.
cleo_call @LABEL args 0can be written ascleo_call @LABEL - 'argument count' parameter of 0AB2 (cleo_return) is now optional.
cleo_return 0can be written ascleo_return - SCM functions can return string literals and string variables
- SCM functions (0AB1) now keep their own GOSUB's call stack
- fixed bug in 0AD4 (scan_string) causing data overruns when reading strings longer than target variable
- fixed result register not being cleared before function call in opcodes 0AA7 and 0AA8
- fixed 0ABA (terminate_all_custom_scripts_with_this_name) terminating only first found script
- changes in file operations
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
root:\for game root directoryuser:\for game save files directory.\for this script file directorycleo:\for CLEO directorymodules:\for CLEO\cleo_modules directory
- rewritten opcode 0A99 (set_current_directory). Now it no ...
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
CLEO 5.0.0 Release Candidate 4
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
If you prefer Ultimate ASI Loader:
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- support for CLEO modules feature sannybuilder/dev#264
- new Audio plugin
- audio related opcodes moved from CLEO core into separated plugin
- CLEO's audio now obey game's volume settings
- implemented Doppler effect for 3d audio streams (fast moving sound sources)
- CLEO's audio now follows game speed changes
- sound device can be now manually selected in .ini file
- new opcode 2500 (is_audio_stream_playing)
- new opcode 2501 (get_audio_stream_duration)
- new opcode 2502 (get_audio_stream_speed)
- new opcode 2503 (set_audio_stream_speed)
- new opcode 2504 (set_audio_stream_volume_with_transition)
- new opcode 2505 (set_audio_stream_speed_with_transition)
- new opcode 2506 (set_audio_stream_source_size)
- new opcode 2507 (get_audio_stream_progress)
- new opcode 2508 (set_audio_stream_progress)
- new opcode 2509 (get_audio_stream_type)
- new opcode 250A (set_audio_stream_type)
- new DebugUtils plugin
- new opcode 00C3 (debug_on)
- new opcode 00C4 (debug_off)
- new opcode 2100 (breakpoint)
- new opcode 2101 (trace)
- new opcode 2102 (log_to_file)
- implemented support of opcodes 0662, 0663 and 0664 (original Rockstar's script debugging opcodes. See DebugUtils.ini)
- new FileSystemOperations plugin
- forbidden scripts from accessing and changing any files outside game root or game settings directory
- file related opcodes moved from CLEO core into separated plugin
- opcode 0A9E (write_to_file) now supports literal numbers and strings
- fixed bug causing file stream opcodes not working correctly when read-write modes are used
- fixed buffer overflows in file stream read opcodes
- added/fixed support of all file stream opcodes in legacy mode (Cleo3)
- new opcode 2300 (get_file_position)
- new opcode 2301 (read_block_from_file)
- new opcode 2302 (write_block_to_file)
- new opcode 2303 (resolve_filepath)
- new opcode 2304 (get_script_filename)
- new Math plugin
- math related opcodes moved from CLEO core into separated plugin
- new opcode 2700 (is_bit_set)
- new opcode 2701 (set_bit)
- new opcode 2702 (clear_bit)
- new opcode 2703 (toggle_bit)
- new opcode 2704 (is_truthy)
- new opcode 2705 (pick_random_int)
- new opcode 2706 (pick_random_float)
- new opcode 2707 (pick_random_text)
- new opcode 2708 (random_chance)
- new MemoryOperations plugin
- memory related opcodes moved from CLEO core into separated plugin
- validation of input and output parameters for all opcodes
- opcode 0A8C (write_memory) now supports strings
- new opcode 2400 (copy_memory)
- new opcode 2401 (read_memory_with_offset)
- new opcode 2402 (write_memory_with_offset)
- new opcode 2403 (forget_memory)
- new opcode 2404 (get_script_struct_just_created)
- new opcode 2405 (is_script_running)
- new opcode 2406 (get_script_struct_from_filename)
- new opcode 2407 (is_memory_equal)
- new opcode 2408 (terminate_script)
- new Text plugin
- text related opcodes moved from CLEO core into separated plugin
- new opcode 2600 (is_text_empty)
- new opcode 2601 (is_text_equal)
- new opcode 2602 (is_text_in_text)
- new opcode 2603 (is_text_prefix)
- new opcode 2604 (is_text_suffix)
- new opcode 2605 (display_text_formatted)
- new opcode 2606 (load_fxt)
- new opcode 2607 (unload_fxt)
- new opcode 2608 (get_text_length)
- new opcode 2609 (add_text_label_formatted)
- new and updated opcodes
- implemented support for memory pointer string arguments for all game's native opcodes
- 0B1E (sign_extend)
- 0DD5 (get_game_platform)
- 2000 (get_cleo_arg_count)
- 2002 (cleo_return_with)
- 2003 (cleo_return_fail)
- 'argument count' parameter of 0AB1 (cleo_call) is now optional.
cleo_call @LABEL args 0can be written ascleo_call @LABEL - 'argument count' parameter of 0AB2 (cleo_return) is now optional.
cleo_return 0can be written ascleo_return - SCM functions can return string literals and string variables
- SCM functions (0AB1) now keep their own GOSUB's call stack
- fixed bug in 0AD4 (scan_string) causing data overruns when reading strings longer than target variable
- fixed result register not being cleared before function call in opcodes 0AA7 and 0AA8
- fixed 0ABA (terminate_all_custom_scripts_with_this_name) terminating only first found script
- changes in file operations
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
root:\for game root directoryuser:\for game save files directory.\for this script file directorycleo:\for CLEO directorymodules:\for CLEO\cleo_modules directory
- rewritten opcode 0A99 (set_current_directory). Now it no longer affects internal game state or current directory in other scripts
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
- improved error handling
- more detailed error messages in multiple scenarios
- some errors now cause the script to pause, instead of crashing the game
- updated included Silent's ASI Loader to version 1.3
Bug Fixes
- fixed error in **004E (terminate_th...
CLEO 5.0.0 Release Candidate 3
Download Instructions
An ASI loader is required for CLEO 5 to work. CLEO 5 comes pre-packaged with several popular ASI Loaders (Silent's ASI Loader and Ultimate ASI Loader).
If you don't have an ASI loader installed already or unsure which one to download:
If you prefer Ultimate ASI Loader:
If you have an ASI loader installed already:
- Download this archive which contains ONLY CLEO 5 library and plugins.
Installation
- Unzip the archive to GTA San Andreas game directory.
Changelog
- support for CLEO modules feature sannybuilder/dev#264
- new Audio plugin
- audio related opcodes moved from CLEO core into separated plugin
- CLEO's audio now obey game's volume settings
- implemented Doppler effect for 3d audio streams (fast moving sound sources)
- CLEO's audio now follows game speed changes
- sound device can be now manually selected in .ini file
- new opcode 2500 (is_audio_stream_playing)
- new opcode 2501 (get_audio_stream_duration)
- new opcode 2502 (get_audio_stream_speed)
- new opcode 2503 (set_audio_stream_speed)
- new opcode 2504 (set_audio_stream_volume_with_transition)
- new opcode 2505 (set_audio_stream_speed_with_transition)
- new opcode 2506 (set_audio_stream_source_size)
- new opcode 2507 (get_audio_stream_progress)
- new opcode 2508 (set_audio_stream_progress)
- new opcode 2509 (get_audio_stream_type)
- new opcode 250A (set_audio_stream_type)
- new DebugUtils plugin
- new opcode 00C3 (debug_on)
- new opcode 00C4 (debug_off)
- new opcode 2100 (breakpoint)
- new opcode 2101 (trace)
- new opcode 2102 (log_to_file)
- implemented support of opcodes 0662, 0663 and 0664 (original Rockstar's script debugging opcodes. See DebugUtils.ini)
- new FileSystemOperations plugin
- forbidden scripts from accessing and changing any files outside game root or game settings directory
- file related opcodes moved from CLEO core into separated plugin
- opcode 0A9E (write_to_file) now supports literal numbers and strings
- fixed bug causing file stream opcodes not working correctly when read-write modes are used
- fixed buffer overflows in file stream read opcodes
- added/fixed support of all file stream opcodes in legacy mode (Cleo3)
- new opcode 2300 (get_file_position)
- new opcode 2301 (read_block_from_file)
- new opcode 2302 (write_block_to_file)
- new opcode 2303 (resolve_filepath)
- new opcode 2304 (get_script_filename)
- new Math plugin
- math related opcodes moved from CLEO core into separated plugin
- new opcode 2700 (is_bit_set)
- new opcode 2701 (set_bit)
- new opcode 2702 (clear_bit)
- new opcode 2703 (toggle_bit)
- new opcode 2704 (is_truthy)
- new opcode 2705 (pick_random_int)
- new opcode 2706 (pick_random_float)
- new opcode 2707 (pick_random_text)
- new opcode 2708 (random_chance)
- new MemoryOperations plugin
- memory related opcodes moved from CLEO core into separated plugin
- validation of input and output parameters for all opcodes
- opcode 0A8C (write_memory) now supports strings
- new opcode 2400 (copy_memory)
- new opcode 2401 (read_memory_with_offset)
- new opcode 2402 (write_memory_with_offset)
- new opcode 2403 (forget_memory)
- new opcode 2404 (get_script_struct_just_created)
- new opcode 2405 (is_script_running)
- new opcode 2406 (get_script_struct_from_filename)
- new opcode 2407 (is_memory_equal)
- new opcode 2408 (terminate_script)
- new Text plugin
- text related opcodes moved from CLEO core into separated plugin
- new opcode 2600 (is_text_empty)
- new opcode 2601 (is_text_equal)
- new opcode 2602 (is_text_in_text)
- new opcode 2603 (is_text_prefix)
- new opcode 2604 (is_text_suffix)
- new opcode 2605 (display_text_formatted)
- new opcode 2606 (load_fxt)
- new opcode 2607 (unload_fxt)
- new opcode 2608 (get_text_length)
- new opcode 2609 (add_text_label_formatted)
- new and updated opcodes
- implemented support for memory pointer string arguments for all game's native opcodes
- 0B1E (sign_extend)
- 0DD5 (get_game_platform)
- 2000 (get_cleo_arg_count)
- 2002 (cleo_return_with)
- 2003 (cleo_return_fail)
- 'argument count' parameter of 0AB1 (cleo_call) is now optional.
cleo_call @LABEL args 0can be written ascleo_call @LABEL - 'argument count' parameter of 0AB2 (cleo_return) is now optional.
cleo_return 0can be written ascleo_return - SCM functions can return string literals and string variables
- SCM functions (0AB1) now keep their own GOSUB's call stack
- fixed bug in 0AD4 (scan_string) causing data overruns when reading strings longer than target variable
- fixed result register not being cleared before function call in opcodes 0AA7 and 0AA8
- fixed 0ABA (terminate_all_custom_scripts_with_this_name) terminating only first found script
- changes in file operations
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
root:\for game root directoryuser:\for game save files directory.\for this script file directorycleo:\for CLEO directorymodules:\for CLEO\cleo_modules directory
- rewritten opcode 0A99 (set_current_directory). Now it no longer affects internal game state or current directory in other scripts
- file paths can now use 'virtual absolute paths'. Use prefix in file path strings to access predefined locations:
- improved error handling
- more detailed error messages in multiple scenarios
- some errors now cause the script to pause, instead of crashing the game
- updated included Silent's ASI Loader to version 1.3
Bug Fixes
- fixed error in **004E (terminate_th...