https://www.dropbox.com/sh/yj01yv4rsl4u6xd/AABbxi7fznHiAB0C-zzHWxlfa?dl=0This ScriptAPI.txt file contains all the exposed functions to the scripting engine in Turok 2 as of the 2017-03-22 update.Some small explanations on whatever I know and the rest is question marks or the same as Turok 1. Hope this helps someone. If you want to help fill out the missing parts of these please post here so I can update it. Thanks!Also since I went and found the enemy actor types that were not defined in the scripts for some reason, heres the remaining defs:#define kActor_AI_Fireborn 203#define kActor_AI_FleshSentinel 400#define kActor_AI_DeathGuard 401#define kActor_AI_LordoftheFlesh 402#define kActor_AI_CaveSpider 503#define kActor_AI_Nala 507#define kActor_AI_WarClub 600#define kActor_AI_HiveSoldier 710#define kActor_AI_LordoftheDead 803#define kActor_AI_SisterofDespair 804#define kActor_AI_PrimagenTrooper 900#define kActor_AI_BioBot 901#define kActor_AI_PrimagenGuard 902the Compsognathus is the same as the Leaper with different properties.And zPlaceholder_67.particle is the annoying Deadman seeking blood projectile.
After you unzip the "game.kpf" file use this to view and copy files to your Turok 2 directory. In your Turok 2 directory create a "scripts" folder and a "defs/actors" folder.If we wanted to display the damage done to an enemy on the screen, the first thing we need to do is create a script for enemies.So first create a new file and call it "Enemy.txt" and place it in the scripts folder. Edit the file and create a class named Enemy and add the OnDamage callback function like so:Code: [Select]class Enemy : ScriptObject{ kActor@ self; Enemy(kActor@ actor) { @self = actor; } void OnDamage(kDamageInfo& in dmgInfo) { Hud.AddMessage("Enemy took " + dmgInfo.hits + " damage"); }}Now we just have to hook this script up to all the enemies in the game, but for testing let's just hook it up to the Raptoid enemy.All the definitions of everything in the game is in the folder "defs". enemies are in "defs/actors/enemies.txt"So first let's copy the "defs/actors/enemies.txt" file that was in the game.kpf that you unzipped before, and paste that into "Turok 2 - Seeds of Evil/defs/actors/enemies.txt"Edit the file and the first entry is the Raptoid enemy. It's already defined all the properties and components needed by enemies in the game so we are going to add our custom script component class to the enemy by adding:Code: [Select] Begin_Component "kexScriptComponent" scriptClass "Enemy" End_Component That's all you need to do. Run the game - make sure you're in developer mode by opening the console and typing "developer 1" if you weren't you need to close and reopen the game after setting it. When a Raptoid is damaged it should display that damage text.
class Enemy : ScriptObject{ kActor@ self; Enemy(kActor@ actor) { @self = actor; } void OnDamage(kDamageInfo& in dmgInfo) { Hud.AddMessage("Enemy took " + dmgInfo.hits + " damage"); }}
Begin_Component "kexScriptComponent" scriptClass "Enemy" End_Component
Fireborn kActor_AI_Fireborn{ className "kexActor" placeable TRUE health 40 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Fireborn.skinnedmesh" anim "anims/Fireborn.anim" End_Component Begin_Component "kexWorldComponent" radius 40.959999 wallRadius 51.199997 height 122.879997 deadHeight 20.480000 heightOffset 0.000000 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 40372 startHealth 40 startAnimID 0 startSoundID 0 painSoundID 0 deathItemDropFlags1 0 deathItemDropFlags2 0 leashRadius 2048.000000 aggressionLevel 0 tranqHealth 2 flags 17072176 attackCombatRadius 163.839996 attackLeapRadius 245.759995 attackDartRadius 245.759995 attackProjectileRadius 1024.000000 attackWeaponRadius 1228.799927 groundBehavior 1 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 1 explodeDeathModelIndex 1 headBlownDeathModelIndex 1 leftArmBlownDeathModelIndex 2 rightArmBlownDeathModelIndex 3 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7315 explodeDeathAnimID 7310 headBlownDeathAnimID 7310 leftArmBlownDeathAnimID 7345 rightArmBlownDeathAnimID 7345 bodyHoleDeathAnimID 0 idleAnimFlags 33 moveAnimFlags 8452 patrolAnimFlags 1057 evadeAnimFlags 0 combatAnimFlags 1 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 4 weaponAnimFlags 0 comboAnimFlags 0 normalDeathAnimFlags 8452 movingDeathAnimFlags 4 violentDeathAnimFlags 0 explosiveDeathAnimFlags 1 alertAnimFlags 1 takeCoverAnimFlags 0 leftArmWoundAnimFlags 1 rightArmWoundAnimFlags 1 fleeAnimFlags 1 End_Component}CaveSpider kActor_AI_CaveSpider{ className "kexActor" placeable TRUE health 150 initialScale "0.500000 0.500000 0.500000" Begin_Component "kexRenderMeshComponent" mesh "char/Spider_Adult.skinnedmesh" anim "anims/Spider_Adult.anim" End_Component Begin_Component "kexWorldComponent" radius 61.4 wallRadius 92.2 height 112.6 deadHeight 61.43 heightOffset 0.000000 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 6420 startAnimID 11200 deathItemDropFlags1 0 deathItemDropFlags1 0 leashRadius 2560.0 aggressionLevel 0 tranqHealth 20 startSoundID 0 painSoundID 841 flags 0 attackCombatRadius 204.799988 attackLeapRadius 163.83 attackDartRadius 163.83 attackProjectileRadius 921.59 attackWeaponRadius 1842.19 groundBehavior 1 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex -1 explodeDeathModelIndex -1 headBlownDeathModelIndex -1 leftArmBlownDeathModelIndex -1 rightArmBlownDeathModelIndex -1 bodyHoleDeathModelIndex -1 extremeDeathAnimID 0 explodeDeathAnimID 0 headBlownDeathAnimID 0 leftArmBlownDeathAnimID 0 rightArmBlownDeathAnimID 0 bodyHoleDeathAnimID 0 idleAnimFlags 1057 moveAnimFlags 1057 patrolAnimFlags 1056 evadeAnimFlags 0 combatAnimFlags 1 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 0 weaponAnimFlags 1 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 0 violentDeathAnimFlags 0 explosiveDeathAnimFlags 1 alertAnimFlags 0 takeCoverAnimFlags 0 leftArmWoundAnimFlags 0 rightArmWoundAnimFlags 0 fleeAnimFlags 0 startHealth 150 pathTID -1 End_Component}Nala kActor_AI_Nala{ className "kexActor" placeable TRUE health 30 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Nala_normal.skinnedmesh" anim "anims/Nala_normal.anim" End_Component Begin_Component "kexWorldComponent" radius 10.2 wallRadius 51.199997 height 71.68 deadHeight 20.480000 heightOffset 0.000000 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 7444 startAnimID 0 startSoundID 0 painSoundID 0 deathItemDropFlags1 0 deathItemDropFlags2 0 leashRadius 2560.000000 aggressionLevel 0 tranqHealth 20 flags 0 attackCombatRadius 81.839996 attackLeapRadius 163.8 attackDartRadius 163.8 attackProjectileRadius 1024.000000 attackWeaponRadius 409.599927 groundBehavior 1 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 1 explodeDeathModelIndex 1 headBlownDeathModelIndex 1 leftArmBlownDeathModelIndex -1 rightArmBlownDeathModelIndex -1 bodyHoleDeathModelIndex 1 extremeDeathAnimID 7300 explodeDeathAnimID 7300 headBlownDeathAnimID 7300 leftArmBlownDeathAnimID 0 rightArmBlownDeathAnimID 0 bodyHoleDeathAnimID 7300 idleAnimFlags 1057 moveAnimFlags 1059 patrolAnimFlags 1056 evadeAnimFlags 0 combatAnimFlags 0 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 1 weaponAnimFlags 0 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 0 violentDeathAnimFlags 0 explosiveDeathAnimFlags 0 alertAnimFlags 0 takeCoverAnimFlags 0 leftArmWoundAnimFlags 0 rightArmWoundAnimFlags 0 fleeAnimFlags 0 startHealth 30 pathTID -1 End_Component}PrimagenGuard kActor_AI_PrimagenGuard { className "kexActor" placeable TRUE health 100 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Elite_Guard.skinnedmesh" anim "anims/Elite_Guard.anim" End_Component Begin_Component "kexWorldComponent" radius 51.959999 wallRadius 51.199997 height 174.879997 deadHeight 51.480000 heightOffset -2.500000 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 40324 startAnimID 0 deathItemDropFlags1 33554432 deathItemDropFlags2 0 leashRadius 1024.000000 aggressionLevel 0 tranqHealth 20 startSoundID 0 painSoundID 0 flags 0 attackCombatRadius 225.279 attackLeapRadius 358.759995 attackDartRadius 163.759995 attackProjectileRadius 409.000000 attackWeaponRadius 2048.799927 groundBehavior 0 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 1 explodeDeathModelIndex 5 headBlownDeathModelIndex 4 leftArmBlownDeathModelIndex 2 rightArmBlownDeathModelIndex 3 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7300 explodeDeathAnimID 7325 headBlownDeathAnimID 7325 leftArmBlownDeathAnimID 7100 rightArmBlownDeathAnimID 7100 bodyHoleDeathAnimID 0 idleAnimFlags 1057 moveAnimFlags 1057 patrolAnimFlags 1057 evadeAnimFlags 0 combatAnimFlags 1 leapAnimFlags 1 dartAnimFlags 0 projectileAnimFlags 0 weaponAnimFlags 3 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 0 violentDeathAnimFlags 1 explosiveDeathAnimFlags 0 alertAnimFlags 1 takeCoverAnimFlags 0 leftArmWoundAnimFlags 0 rightArmWoundAnimFlags 0 fleeAnimFlags 0 startHealth 100 pathTID 5000 End_Component}Biobot kActor_AI_BioBot{ className "kexActor" placeable TRUE health 40 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Bio-bot.skinnedmesh" anim "anims/Bio-bot.anim" End_Component Begin_Component "kexWorldComponent" radius 71.959999 wallRadius 40.199997 height 81.879997 deadHeight 30.480000 heightOffset -17.500000 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 530692 startAnimID 0 deathItemDropFlags1 8192 deathItemDropFlags2 0 leashRadius 1024.000000 aggressionLevel 0 tranqHealth 20 startSoundID 0 painSoundID 0 flags 0 attackCombatRadius 307.279 attackLeapRadius 614.759995 attackDartRadius 163.759995 attackProjectileRadius 409.000000 attackWeaponRadius 2560.799927 groundBehavior 1 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 3 explodeDeathModelIndex -1 headBlownDeathModelIndex 3 leftArmBlownDeathModelIndex 1 rightArmBlownDeathModelIndex 2 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7300 explodeDeathAnimID 0 headBlownDeathAnimID 7300 leftArmBlownDeathAnimID 7345 rightArmBlownDeathAnimID 7345 bodyHoleDeathAnimID 0 idleAnimFlags 1072 moveAnimFlags 1057 patrolAnimFlags 1057 evadeAnimFlags 0 combatAnimFlags 1 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 0 weaponAnimFlags 1 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 0 violentDeathAnimFlags 0 explosiveDeathAnimFlags 1 alertAnimFlags 0 takeCoverAnimFlags 0 leftArmWoundAnimFlags 0 rightArmWoundAnimFlags 0 fleeAnimFlags 0 startHealth 40 pathTID -1 End_Component}PrimagenTrooper kActor_AI_PrimagenTrooper { className "kexActor" placeable TRUE health 60 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Trooper.skinnedmesh" anim "anims/Trooper.anim" End_Component Begin_Component "kexWorldComponent" radius 40.959999 wallRadius 40.199997 height 174.879997 deadHeight 40.480000 heightOffset -2.500000 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 34196 startAnimID 0 deathItemDropFlags1 262144 deathItemDropFlags2 0 leashRadius 2560.000000 aggressionLevel 0 tranqHealth 20 startSoundID 0 painSoundID 0 flags 0 attackCombatRadius 225.279 attackLeapRadius 256.759995 attackDartRadius 163.759995 attackProjectileRadius 409.000000 attackWeaponRadius 3072.799927 groundBehavior 0 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 1 explodeDeathModelIndex 4 headBlownDeathModelIndex 5 leftArmBlownDeathModelIndex 2 rightArmBlownDeathModelIndex 3 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7300 explodeDeathAnimID 7325 headBlownDeathAnimID 7335 leftArmBlownDeathAnimID 7345 rightArmBlownDeathAnimID 7345 bodyHoleDeathAnimID 0 idleAnimFlags 1057 moveAnimFlags 1057 patrolAnimFlags 1057 evadeAnimFlags 1 combatAnimFlags 1 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 0 weaponAnimFlags 0 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 0 violentDeathAnimFlags 1 explosiveDeathAnimFlags 3 alertAnimFlags 1 takeCoverAnimFlags 0 leftArmWoundAnimFlags 0 rightArmWoundAnimFlags 0 fleeAnimFlags 0 startHealth 60 pathTID 5005 End_Component}LordoftheFlesh kActor_AI_LordoftheFlesh { className "kexActor" placeable TRUE health 80 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Lord_Of_The_Flesh.skinnedmesh" anim "anims/Lord_Of_The_Flesh.anim" End_Component Begin_Component "kexWorldComponent" radius 20.959999 wallRadius 61.199997 height 122.879997 deadHeight 20.480000 heightOffset 0.0 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 40340 startAnimID 0 deathItemDropFlags1 0 deathItemDropFlags2 0 leashRadius 2560.000000 aggressionLevel 0 tranqHealth 5 startSoundID 0 painSoundID 0 flags 0 attackCombatRadius 81.91 attackLeapRadius 163.839 attackDartRadius 163.839 attackProjectileRadius 409.59 attackWeaponRadius 1843.199 groundBehavior 0 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 1 explodeDeathModelIndex 5 headBlownDeathModelIndex 4 leftArmBlownDeathModelIndex 2 rightArmBlownDeathModelIndex 3 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7300 explodeDeathAnimID 7500 headBlownDeathAnimID 7000 leftArmBlownDeathAnimID 7345 rightArmBlownDeathAnimID 7345 bodyHoleDeathAnimID 0 idleAnimFlags 1057 moveAnimFlags 1057 patrolAnimFlags 1057 evadeAnimFlags 0 combatAnimFlags 1 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 0 weaponAnimFlags 6 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 1 violentDeathAnimFlags 1 explosiveDeathAnimFlags 1 alertAnimFlags 1 takeCoverAnimFlags 0 leftArmWoundAnimFlags 1 rightArmWoundAnimFlags 1 fleeAnimFlags 1 startHealth 80 pathTID 5000 End_Component}DeathGuard kActor_AI_DeathGuard{ className "kexActor" placeable TRUE health 50 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Death_Guard.skinnedmesh" anim "anims/Death_Guard.anim" End_Component Begin_Component "kexWorldComponent" radius 20.959999 wallRadius 61.199997 height 122.879997 deadHeight 20.480000 heightOffset 0.0 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 40852 startAnimID 0 deathItemDropFlags1 0 deathItemDropFlags2 0 leashRadius 2560.000000 aggressionLevel 0 tranqHealth 3 startSoundID 0 painSoundID 0 flags 0 attackCombatRadius 81.91 attackLeapRadius 163.839 attackDartRadius 163.839 attackProjectileRadius 1024.59 attackWeaponRadius 1843.199 groundBehavior 0 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 3 explodeDeathModelIndex 4 headBlownDeathModelIndex 5 leftArmBlownDeathModelIndex 1 rightArmBlownDeathModelIndex 2 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7300 explodeDeathAnimID 7200 headBlownDeathAnimID 7335 leftArmBlownDeathAnimID 7345 rightArmBlownDeathAnimID 7345 bodyHoleDeathAnimID 0 idleAnimFlags 1057 moveAnimFlags 1057 patrolAnimFlags 1057 evadeAnimFlags 3 combatAnimFlags 7 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 1 weaponAnimFlags 1 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 1 violentDeathAnimFlags 1 explosiveDeathAnimFlags 3 alertAnimFlags 1 takeCoverAnimFlags 0 leftArmWoundAnimFlags 1 rightArmWoundAnimFlags 1 fleeAnimFlags 1 startHealth 50 pathTID 5000 End_Component}FleshSentinel kActor_AI_FleshSentinel{ className "kexActor" placeable TRUE health 30 initialScale "0.5 0.5 0.5" Begin_Component "kexRenderMeshComponent" mesh "char/Sentinel.skinnedmesh" anim "anims/Sentinel.anim" End_Component Begin_Component "kexWorldComponent" radius 10.959999 wallRadius 51.199997 height 117.879997 deadHeight 20.480000 heightOffset 0.0 bTrackGround TRUE End_Component Begin_Component "kexEnemyAIComponent" commonFlags 8084 startAnimID 0 deathItemDropFlags1 0 deathItemDropFlags2 0 leashRadius 2560.000000 aggressionLevel 0 tranqHealth 2 startSoundID 0 painSoundID 0 flags 2 attackCombatRadius 81.91 attackLeapRadius 163.839 attackDartRadius 163.839 attackProjectileRadius 1024.59 attackWeaponRadius 409.199 groundBehavior 1 airBehavior 0 underwaterBehavior 0 extremeDeathModelIndex 3 explodeDeathModelIndex 5 headBlownDeathModelIndex 4 leftArmBlownDeathModelIndex 1 rightArmBlownDeathModelIndex 2 bodyHoleDeathModelIndex -1 extremeDeathAnimID 7300 explodeDeathAnimID 7201 headBlownDeathAnimID 7335 leftArmBlownDeathAnimID 7345 rightArmBlownDeathAnimID 7345 bodyHoleDeathAnimID 0 idleAnimFlags 1057 moveAnimFlags 1057 patrolAnimFlags 1058 evadeAnimFlags 3 combatAnimFlags 3 leapAnimFlags 0 dartAnimFlags 0 projectileAnimFlags 1 weaponAnimFlags 0 comboAnimFlags 0 normalDeathAnimFlags 1057 movingDeathAnimFlags 1 violentDeathAnimFlags 1 explosiveDeathAnimFlags 3 alertAnimFlags 0 takeCoverAnimFlags 0 leftArmWoundAnimFlags 1 rightArmWoundAnimFlags 1 fleeAnimFlags 1 startHealth 30 pathTID -1 End_Component}