GTA IV C++ Script Hook v0.5.0 & 0.5.1

Supports GTAIV 1.0.7.0 and EFLC 1.1.2.0. Released as BETA, not tested extensively, bug reports are welcome (don't PM me with them, just post them in this thread).

----

Version 0.5.0 (Apr 16 2010)

Supports GTAIV 1.0.6.0 and EFLC 1.1.1.0.

Please note that 0.4.0 onwards comes with a new License that is different from earlier versions. Make sure you read and understand ScriptHook-License.txt before you make use of ScriptHook.dll.

------------------------------------

Development Info

This one is for all you coders out there (hopefully, there's still a lot of you)...

This module will let you create a custom script thread in C++ and have GTAIV process it along with its real scripts threads. Additionally, a type-safe manner to access native functions in GTAIV is provided.

Currently headers and a compiled dynamic library (DLL) is provided. Some very naive samples are provided as well. This is meant to be a base to build on top of. Feel free to contribute your own samples!

Please note that 0.4.0 onwards comes with a new License that is different from earlier versions. Make sure you read and understand ScriptHook-License.txt before you make use of the ScriptHook SDK.

Developing for the 0.5.0 hook: You can continue to use the 0.4.0 SDK for development, and it is not being updated at this time. An updated DevLoader is available here:

Solution/Project files in zip are for VC++ 2008. Please read UpdateGuide.txt if you're upgrading your code to work from an older version of ScriptHook.

Whats New in 0.5.1

- Added support for GTAIV 1.0.7.0 and EFLC 1.1.2.0.
- Support for invoking undocumented natives by their "new" hash.

Whats New in 0.5.0

- Added support for GTAIV 1.0.6.0 and EFLC 1.1.1.0.
- Enabled MP on all unranked modes, however your multiplayer session will be isolated from people not using mods.
- Fixed bug with text flickering when using ScriptThread/NativeFiberThread
- Fixed bug with crashing when going in/out of video editor

Whats New in 0.4.0

- Added support for GTAIV 1.0.4 (Patch #5)
- New programming model replaces NativeThread and NativeFiberThread with ScriptThread
- A lot of performance enhancements, including:
---- Natives are now directly invoked using the native hash and not the name
---- "SpeedyInvoke" which dynamically rewrites parts of your compiled code to prevent repeated lookups of natives (only enabled for Release builds)
- Rewrote thread/service loading and now has better detection for when new game sessions start.
- Some minor bugs fixed

Whats New in 0.3.0

- New extensible services framework providing the following services currently:
---- D3DHook: Direct3D Device Hooking
---- Config: Configuration (ini and xml)
---- KeyboardHook: Keyboard hook to recieve events of key presses
---- Menu: A simple yet effective menu creation framework
- New "Speedo" sample demonstrating the use of services
- Added DevLoader which is an ASI loader with some development features such as module unload/reload.
- Improved thread hooking into the game -- less chances of crashing while hooking now (not that it crashed before).
- Added ability to unregister threads that were registered
- Added support for starting threads on demand
- Changed a lot of non-important log messages from Info to Debug
- Few internal bug fixes.

Whats New in 0.2.6

- Added support for GTAIV 1.0.4
- Support for Multiplayer when in LAN (any mode), or Online (Freeroam or Party mode only)
- Added a fix for world Z calculation for the Teleport sample in SampleCustomFiber

Whats New in 0.2.5

- Added support for GTAIV 1.0.3
- ScriptHook is now a DLL that can be updated independently of the mods that use it.
- Improved detection/hooking of scripts into the game engine
- Fixed invocation of natives that have Vector3* parameter types
- Fixed GetGlobalAddress/GetGlobalValue/SetGlobalValue for accessing Global variables
- Merged some of the Scripting native contributions back into the source (937 natives now available)
- A number of internal bug fixes
- ScriptHook is disabled for online play (currently its disabled regardless of which mode you play in or even Live/LAN, but this might change in the future)

Credits

- listener for some of the REing and natives mapping
- Seeman for some of the Natives documentation
- Reconsider for being my guinea pig on IRC during early development
- HazardX for some cleaned up natives
- sjaak327 for a lot of help with testing
- All of you guys PMing and emailing me and making me find the time to work on this smile.gif
- Last but not least, you (yes, you!) for creating (assuming that you will be creating) wonderful mods for this game.