x3_inc_horse

Horse specific functionality.

This library has been set up to work with the default horses, but some effort was made to provide you with some simple methods to support your own custom mounts, mounting scripts, etc. using this library.

NOTE: This file includes x0_i0_position, x0_inc_henai, and x3_inc_skin.

Script to Override Skin System:

The player skin system is designed to supply the horse radial menus to older characters and it is also used to track some of the information about the state of the PC semi-persistently. The system is set up in such a way that systems that use skins such as PRC (Player Resource Consortium) or HCR (HardCore Ruleset) will still use their own skin as long as they run first. If the horse system does not detect a skin it will create one. Thus, if it runs before PRC or HCR create their skins there might be a problem. To make this less of an upgrade nightmare the horse script includes support for a hook script. If the developers of these packages that require the use of skin items on PCs create a script named x3_mod_pre_enter and have that script add their skin to the PC then this script will ALWAYS execute before the horse scripts create their skin. This means that if you are using custom skins, all you need to do is make such a script and have it add your skin and your scripts should function as they did before, even if the horse scripts execute other aspects before yours.

Debugging and Tweaking Scripts:

Press ~ in game to bring up console mode. Type DebugMode 1 and press enter.
Press ~ in game and this time type dm_runscript scriptname and press enter.
Press ~ in game and type DebugMode 0 when you want to disable debug mode.

SCRIPTS (replace scriptname with one of the following):
x3_fix_horse = use this when the PC is being treated as mounted when it is not
x3_fix_horseout = use this to make a module not designed with horses in mind only allow horses in outside areas.
x3_fix_nocmd = set it not to use the SetCommandable with mounting toggle
x3_fix_act = set to use actions when mounting toggle
x3_fix_speed100 = mount/dismount speed multiple set to normal 100%
x3_fix_speed125 = mount/dismount speed multiple set to 125% (25% slower)
x3_fix_speed150 = mount/dismount speed multiple set to 150% (50% slower)
x3_fix_speed200 = mount/dismount speed multiple set to 200% (100% slower)



The following variables can be set on the BLUEPRINT of a creature to extend this mounting system. These scripts could be used to add database functionality, or extend the system however, you like.
Local Variable NameVariable TypeDescription
bX3_IS_MOUNTIntegerSet to 1 if this is a custom mount blueprint to allow the horse functions to recognize that it is a mount.
X3_HORSE_POSTMOUNT_SCRIPTStringCan be set to a script that can be fired after this mount is mounted. This may be useful for adding things like feats and other after mounting needs. If this script does not exist then the standard Speed, Skill Decreases, Mounted Archery Adjustments, etc. will be applied. If you want your own post mount script then it is important to note you will have to apply these modifiers yourself if you also want them to be used within your own script. The horse that was mounted will be referenced by the local object variable oX3_TempHorse as stored on the Rider. If you use such a custom hook script make sure to set bX3_IS_MOUNTED to TRUE by using the SetSkinInt() function from x3_inc_skin on the rider after they mount. This is required in some cases for the dismount radial to work (mainly when working with custom mounts).
X3_HORSE_PREMOUNT_SCRIPTStringScript to fire before the horse is mounted. This script may prevent mounting from happening by setting the integer variable X3_HORSE_NOMOUNT to TRUE on the mount. You can use a script like this to create support for saddlebags or to use it to extend the mounting system. This will be executed by the rider and the local object variable oX3_TempHorse will be set on the rider pointing to the horse so that the custom script knows which horse this relates to.
X3_HORSE_POSTDISMOUNT_SCRIPTStringCan be set to a script to be executed after dismount to reverse steps that may have occurred with a POSTMOUNT script such as adding feats. This script could be used to remove feats.
X3_HORSE_PREDISMOUNT_SCRIPTStringCan be set to a script that needs to be executed before the dismount portion continues. If the local integer X3_HORSE_NODISMOUNT is set to TRUE on the rider then the horse dismount will be aborted.


It may be that you want to add a new horse/mount type that does not fit neatly into the appearance.2da or tails.2da with the other horse types. The following variables if set to any number greater than 0 will override the default settings and use what you specify instead.
Local Variable NameVariable TypeDescription
bX3_IS_MOUNTIntegerA variable that should be set to TRUE if a mount is added as a henchman but, is still mountable.
X3_CUSTOM_RACE_APPEARANCEIntegerA variable to set on a rider if they use a custom racial appearance. This value should be set to what appearance number they use from appearance.2da. This will prevent custom races from being denied mounting rights due to the script thinking the rider is shape shifted.
X3_CUSTOM_RACE_JOUST_PHENOIntegerThis variable should be used on the rider if they need a special phenotype when mounted in joust mode.
X3_CUSTOM_RACE_MOUNTED_APPEARANCEIntegerA variable to set on the rider to indicate which appearance they should use when mounted.
X3_CUSTOM_RACE_MOUNTED_PHENOIntegerThis variable should be used on the rider if they should use a special phenotype when mounted. This is provided to support custom races.
X3_CUSTOM_RACE_PHENOTYPEIntegerThis variable should be used on the rider if they need a special phenotype when not mounted.
X3_HORSE_DISMOUNT_DURATIONFloatThe duration in seconds 0.0f that the dismount animation should take with this horse. This only needs to be set if the dismounting animation for this blueprint is faster or longer than the default animations.
X3_HORSE_FOOTSTEPIntegerThe footstep number to use when this horse is mounted.
X3_HORSE_MOUNT_DURATIONFloatThe duration in seconds 0.0f that the mount animation should take with this horse. This only needs to be set if the mounting animation for this blueprint is faster or longer than the default animations.
X3_HORSE_MOUNT_SPEEDIntegerThe mount speed increase or decrease that should be used with this mount. If the value is 0 then it will use the HORSE_DEFAULT_SPEED_INCREASE constant value.
X3_HORSE_NOT_RIDEABLE_OWNERIntegerIf this integer is set to 1 on the horse then the Mount action will not be useable and the error it will return if asked is that it is NOT rideable due to it being owned by someone else. This is useful if you want horses around that the PCs and Henchmen cannot mount for reasons such as they are owned by a store, etc.
X3_HORSE_NULL_APPEARANCEIntegerThe appearance to use when scaling the horse for the mounting animation.
X3_HORSE_OWNER_TAGStringA string that can be set on the horse that will tell it to add itself as a henchman to an NPC with the specified tag.
X3_HORSE_RESTRICT_raceUNKOWNA variable that set to TRUE this horse cannot be mounted by the specified race. Supported races are ELF, HUMAN, HALFELF, DWARF, HALFORC, HALFLING, and GNOME, CUSTOM# = racial type number (RACIAL_TYPE_*).
X3_HORSE_TAILIntegerThe tail to use with the tails.2da that defines this horse.
X3_NO_MOUNT_ANIMATEIntegerIf this integer is set to 1 then this mount does not EVER animate mounting or dismounting.
X3_TOTAL_MOUNT_ANIMATION_DELAYFloatA variable containing a time lot indicating how much time the routine has before it needs to be finished. It is used for the sake of synchronizing animation and the process running in the background, exclusively used in mounting animation portion of the HorseMount() routine, but can be used elsewhere. Note, that the variable is artificially set even in case no animation is desired so that the code does not happen instantly. It is not meant to be changed, unless something bad is happening timing-wise. The value is precalculated and in our particular case it is supposed to hold the total animation length.


The following make it easier to implement existing mount support systems in conjunction with this one.
Local Variable NameVariable TypeDescription
bX3_HAS_SADDLEBAGSIntegerInteger that if set to 1 on the mount will indicate the horse has saddle bags. It will support inventory control if it is enabled (NOT: by default). You will also want to set the dialog X3_DLG_SADDLEBAG on the horse blueprint. Or, create your own dialog that handles what the saddlebags one does. You will only be able to access saddlebags of associates in your party.
X3_HORSE_SCRIPT_ASSIGNStringScript to call for assign mount instead of using the default one called by the horse menu feat. This is intended for making the radial menus do something different just for this horse and is not intended to alter the HorseMount(), HorseDismount(), etc. functions. There are already POSTMOUNT, POSTDISMOUNT, PREMOUNT, and PREDISMOUNT hooks which make that functionality possible so, that is not what this variable is for.
X3_HORSE_SCRIPT_DISMOUNTStringScript to call for dismounting instead of using the default one called by the horse menu feat. This is intended for making the radial menus do something different just for this horse and is not intended to alter the HorseMount(), HorseDismount(), etc. functions. There are already POSTMOUNT, POSTDISMOUNT, PREMOUNT, and PREDISMOUNT hooks which make that functionality possible so, that is not what this variable is for.
X3_HORSE_SCRIPT_MOUNTStringScript to call for mounting instead of using the default one called by the horse menu feat. This still checks to make sure mounting in the area is legal first. This is intended for making the radial menus do something different just for this horse and is not intended to alter the HorseMount(), HorseDismount(), etc. functions. There are already POSTMOUNT, POSTDISMOUNT, PREMOUNT, and PREDISMOUNT hooks which make that functionality possible, so that is not what this variable is for.

Area related variables.
Local Variable NameVariable TypeDescription
bX3_MOUNT_NO_ZAXISIntegerValue to set to TRUE or 1 on the module, PC, or area to indicate when calculating the proper mounting location you do not want the Z Axis to be included in the measurement. This has been found to work well in areas where you do not want the Z axis to be measured in terms of whether to perform the mounting animation or not.
fX3_DISMOUNT_MULTIPLEUNKNOWNIs similar to fX3_MOUNT_MULTIPLE and should only be supplied if you want the dismount to use a different speed than the mount multiple. It can be set on the area or on the PC. The PC will take priority over the area.
fX3_MOUNT_MULTIPLEFloatIs a floating point value that is multiplied times all delays if it exists on the area. It can be used to make an area perform the mounting animations at a different speed if you have really busy areas and want to make the animation faster or slower. If this is not defined then it will always be a value of 1.0. If it is set to 0.5 then delays will be shortened by half. If it is set to 2.0 then the delays will take 200% longer. This is something a module builder will need to be aware of and can adjust.

NOTE: This can be set on the PC as well and whichever number is larger is the one that will be used.
X3_ABORT_WHEN_STUCKIntegerIf set to TRUE, distance between player and horse is recorded and checked in each cycle against the current one, when moving to a horse during the mounting procedure. Should the two ever be equal, meaning that the player got stuck on his way to horse, the mounting procedure will be terminated. This is handy in cases when horses are behind obstacles that are hard to overcome like walls, but the timer that ensures that rider can mount his horse even in difficult terrain, would eventually force-mount the potential rider, which could seem like an illogical act. This doesn't need to be used when using X3_HORSE_ACT_VS_DELAY option, where the timer starts ticking only after the player gets as close as 1.5m to a horse. The switch can be set on an area or horses (ie. using an OnEnter script of a trigger).
X3_HITCHING_POSTStringIf a placeable or waypoint in the area a person was in before entering a new area has a tag of this then it will move any horses to this object and set them to STAND_GUARD mode.
X3_MOUNT_OK_EXCEPTIONIntegerIs an integer that if set to 1 on this area will override the external and underground restrictions for this area that may be set module wide.
X3_NO_HORSESIntegerHorses are not allowed in this area.
X3_NO_MOUNTINGIntegerHorses may not be ridden in this area and anyone attempting to do so should be forcibly dismounted.

Module related variables.
Local Variable NameVariable TypeDescription
X3_ENABLE_MOUNT_DAMAGEIntegerIf set to 1 will attempt to transfer some damage to the mount when a rider dismounts if damage occurred while they were mounted.
X3_ENABLE_MOUNT_DBIntegerIf set to 1 will enable database and persistent world support with this script. You will want to modify the HORSE_Support functions related to the database so, that they write and read properly however you have the database setup in your module. You will also want to plan on using something like the x3_mod_def_hb script for your module heartbeat script if you are going to use the database. This is not used on modules by default.
X3_EXTEND_PALDMOUNTStringIf set on the module object will allow a person to extend this paladin mount script to call other scripts in a daisy chain type situation such as saddle bag handling ones.
X3_EXTEND_PALMOUNTStringIf set on the module object will allow a person to extend this paladin mount script to call other scripts in a daisy chain type situation such as saddle bag handling ones.
X3_HORSE_ACT_VS_DELAYIntegerSet on the module to 1 to indicate you want the system to use Actions as opposed to delays in some portions of the mounting sequence. Doing this might provide another way to handle inaccessible horses besides using X3_HORSE_NOT_RIDEABLE_OWNER. It may result in not being able to access accidentally poorly placed horses due to scripts or other factors, but it may be desired by some module designers so it has been provided as an option.
X3_HORSE_DISABLE_SPEEDIntegerIf set to 1 on the module object will indicate you do not want a speed increase applied when a person mounts.
X3_HORSE_DISABLE_SKILLIntegerIf set to 1 on the module object will indicate you do not want the skill decreases to be applied when a person mounts.
X3_HORSE_ENABLE_ACBOOSTIntegerIf set to 1 on the module object will indicate that you want the PCs AC to be increased if need be to at least match that of the horse that is being mounted.
X3_HORSE_ENABLE_HPBOOSTIntegerIf set to 1 on the module object will indicate that you want the PCs Hit Points to be increased by half of the hit points of the mount when it is mounted.
X3_HORSE_ENABLE_SADDLEBAGSIntegerIf set to 1 on the module will enable inventory support for the horse. NOTE: If you want it to use a quick non-database method for storing the inventory place a waypoint with the tag X3_HORSE_INVENTORY_STORAGE somewhere in an area that a PC can never get to. If this waypoint does not exist then it will assume that the database is to be used. If you are using a database it is advisable that you change the support functions because they use the standard database system and it will often prove slower than you may like.
X3_HORSE_MAX_HENCHMENIntegerSet on the module to indicate the maximum number to increase the maximum henchmen count setting to in order to make room for horses. By default there is no maximum.
X3_HORSE_NO_CORPSESIntegerSet on the module to 1 to indicate you do not want lootable horse corpses created when a mounted PC or NPC dies.
X3_HORSE_NO_HENCHMAN_INCREASEIntegerIf set to 1 on the module will prevent the maximum number of henchmen from being increased to make room for the horse.
X3_HORSE_PALADIN_USE_PHBIntegerIf set to 1 on the module object will cause the script to use paladin mount summoning durations as specified in the Player's Handbook 3.5 edition rather than just defaulting to 24 hours.
X3_MOUNT_NO_REST_DESPAWNIntegerIf set to 1 on the module, this setting will make it so that your paladin mount is not despawned when you rest and adheres strictly to his summoned duration. If time is advanced by resting then it is still possible it will despawn.
X3_MOUNT_NO_REST_DISMOUNTIntegerIf set to 1 on the module, this setting will make it so that you are able to rest while mounted.
X3_MOUNTS_EXTERNAL_ONLYIntegerIf set to 1 on the module will make it so mounts can only be ridden in external areas. There is an exception variable that can be set on an area to override this.
X3_MOUNTS_NO_UNDERGROUNDIntegerIf set to 1 on the module will make it so mounts cannot be ridden in underground areas. There is an exception variable that can be set on an area to override this.
X3_NO_MOUNT_COMMANDABLEIntegerIf set to 1 on the module object will indicate that you do not want the SetCommandable() commands to be used with the module.
X3_NO_MOUNTED_COMBAT_FEATIntegerIf set to 1 on the module object will indicate that you do not want the special code added to Bioware scripts to try to support Mounted Combat close to how it is in Player's Handbook to be used.
X3_NO_SHAPESHIFT_SPELL_CHECKIntegerIf set to 1 on the module will prevent the script from checking to see if a shapeshifted spell is targeted on a mounted creature. If this variable is set to 1 then the x2_inc_spellhook scripts will work exactly like they did before horses were introduced with no concern whether the target is mounted or not.
X3_RESTORE_HENCHMEN_LOCATIONSIntegerSet to 1 on the module if you want henchmen's henchmen to be restored to a location near the henchman that is their master when a PC master of the henchman connects. This is NOT enabled by default to prevent problems with older modules.
X3_SADDLEBAG_DATABASEStringSet to the name of the database to use for storing saddlebag inventory. If no name is specified it will use the module tag and a small modifier.

These variables can be set on the module or the player.
Local Variable NameVariable TypeDescription
X3_PALMOUNT_SUMMONOVRStringIf set on the module or the player (player has priority) it will do all the checks to see if a summon is okay. Then if this variable is set it will execute the script you define here rather than using the standard summon paladin mount function.

Beware: If you use this then handling all other aspects of this mount become your responsibility.
fX3_TIMEOUT_TO_MOUNTFloatSet on the module or PC to indicate how long the PC/NPC should attempt to move into a proper mounting animation to perform the mounting animation. When this time is reached if it is still not in position it will instant mount instead and will not animate. If this value is lower than 6.0 or is not set, then the default value of 18.0 will be used.
fX3_FREQUENCYFloatFrequency of recursive call of the HorseMount() function to try and initiate new pathfinding to the horse every time until the character reaches the mounting position or until the time limit for mounting is up or unless X3_HORSE_ACT_VS_DELAY is set to TRUE, in which case the action queue is not locked and moving towards a horse is interruptible, ie. by clicking. If set larger than 9.0 or less than 1.0 the value defaults to 2.0 seconds.
bX3_MOUNT_NO_ZAXISIntegerSet to TRUE or 1 on the module, PC, or area to indicate when calculating the proper mounting location you do not want the Z Axis to be included in the measurement. This has been found to work well in areas where you do not want the Z axis to be measured in terms of whether to perform the mounting animation or not.

Constants

NameValueBrief Description
HORSE_ANIMATION_DISMOUNT42The following constants indicate which animation numbers indicate which animations can be used well with the horse system.
HORSE_ANIMATION_LOOPING_JOUST_FALLANIMATION_LOOPING_CUSTOM5Indicate which animation numbers indicate which animations can be used well with the horse system.

ANIMATION_LOOPING_CUSTOM5 is defined in nwscript as 25.
HORSE_ANIMATION_LOOPING_JOUST_GLANCEANIMATION_LOOPING_CUSTOM4Indicate which animation numbers indicate which animations can be used well with the horse system.

ANIMATION_LOOPING_CUSTOM4 is defined in nwscript as 24.

NOTE: This is the same integer value as HORSE_ANIMATION_LOOPING_JOUST_HELMOFF.
HORSE_ANIMATION_LOOPING_JOUST_HELMOFFANIMATION_LOOPING_CUSTOM4Indicate which animation numbers indicate which animations can be used well with the horse system.

ANIMATION_LOOPING_CUSTOM4 is defined in nwscript as 24.

NOTE: This is the same integer value as HORSE_ANIMATION_LOOPING_JOUST_GLANCE.
HORSE_ANIMATION_LOOPING_JOUST_STABANIMATION_LOOPING_CUSTOM10Indicate which animation numbers indicate which animations can be used well with the horse system.

ANIMATION_LOOPING_CUSTOM10 is defined in nwscript as 30.
HORSE_ANIMATION_LOOPING_JOUST_VIOLENT_FALLANIMATION_LOOPING_CUSTOM3Indicate which animation numbers indicate which animations can be used well with the horse system.

ANIMATION_LOOPING_CUSTOM3 is defined in nwscript as 23.
HORSE_ANIMATION_MOUNT41The following constants indicate which animation numbers indicate which animations can be used well with the horse system.
HORSE_APPEARANCE_OFFSET496Points to the location in the appearance.2da where the unmounted horse appearances occur.
HORSE_DEFAULT_SPEED_INCREASE99Designates the default speed increase that should be granted when a person mounts a horse.
HORSE_DISMOUNT_DURATION3.0Defines the duration in seconds that it should take to complete the default animation.
HORSE_FOOTSTEP_SOUND17Defines what footstep sound should be used when the horse is mounted.
HORSE_MOUNT_DURATION2.0Defines the duration in seconds that it should take to complete the default animation.
HORSE_NUMBER_OF_HORSES65Lists how many horses are listed beginning at the location specified by the offset.
HORSE_NULL_RACE_DWARF562What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_NULL_RACE_ELF563What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_NULL_RACE_GNOME564What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_NULL_RACE_HALFELF566What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_NULL_RACE_HALFLING565What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_NULL_RACE_HALFORC567What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_NULL_RACE_HUMAN568What appearance to use when scaling the horse as a tail during mounting process to make the animation be handled properly.
HORSE_PALADIN_PREFIXx3_palhrsThe prefix that should be used with the paladin mounts when spawning them.
HORSE_PHENOTYPE_MOUNTED_L5Indicate which phenotype numbers should be used by the mounting system. _N specifies the mounting race started as a normal phenotype, and _L specifies the race started as a large phenotype.
HORSE_PHENOTYPE_MOUNTED_N3Indicate which phenotype numbers should be used by the mounting system. _N specifies the mounting race started as a normal phenotype, and _L specifies the race started as a large phenotype.
HORSE_PHENOTYPE_JOUSTING_L8Indicate which phenotype numbers should be used by the mounting system. _N specifies the mounting race started as a normal phenotype, and _L specifies the race started as a large phenotype.
HORSE_PHENOTYPE_JOUSTING_N6Indicate which phenotype numbers should be used by the mounting system. _N specifies the mounting race started as a normal phenotype, and _L specifies the race started as a large phenotype.
HORSE_RACE_MOUNTED_DWARFF482Specifies the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_DWARFM483Specifies the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_ELFF484Specifies the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_ELFM485Specifies the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_GNOMEF486Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_GNOMEM487Specifies the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HALFELFF490Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HALFELFM491Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HALFLINGF488Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HALFLINGM489Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HALFORCF492Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HALFORCM493Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HUMANF494Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_RACE_MOUNTED_HUMANM495Specify the appearance that should be used when the specified mount is mounted. These appearances are often required to set the proper speeds, radiuses, etc. They also have the complete phenotypes and animations associated with them.
HORSE_TAIL_OFFSET15Points to the location in the tails.2da where the horse appearances begin.
IP_CONST_HORSE_MENU40The specific feats that might be needed to handle horses
X3_ACTION_DELAY0.8This constant is a safety to be inserted between the ClearAllActions and a command to play a dismount animation. If set to 0.0 or if missing, the dismount animation will not play properly when trying to dismount a horse while in motion. If you ever encounter problems with mounting animation, try inserting this small delay in the same fashion in the animated mounting procedure. All pending DelayCommands shall respect this delay accordingly for the sake of precise timing. Values of 0.8f and above are safe to use.
X3_HORSE_DATABASEX3HORSEUNKNOWN

Functions

NameBrief Description
HorseAddHorseMenuAdd horse menu to a Player Character.
HorseChangeToDefaultChange a creature to its standard race appearance.
HorseCreateHorseCreate a horse.
HorseDismountAction - Dismount from horse.
HorseForceJumpForce a creature to jump to an object.
HorseGetCanBeMountedCheck whether an object can be mounted.
HorseGetHasAHorseCheck if a creature has a horse.
HorseGetHorseRetrieves the horses owned by a creature.
HorseGetIsAMountCheck whether a creature is a mount.
HorseGetIsDisabledDetect whether a creature is disabled.
HorseGetIsMountedCheck if a creature is mounted.
HorseGetMountFailureMessageObtain the horse mount error message.
HorseGetMountTailRetrieves the tail used for a horse.
HorseGetMyHorseRetrieves an object's assigned horse.
HorseGetOwnerRetrieves the owner of a horse.
HorseGetPaladinMountRetrieves a creature's Paladin mount.
HorseHitchHorsesHitch a party's horses.
HorseIfNotDefaultAppearanceChangeChange a creature to its standard race appearance if necessary.
HorseInstantDismountDismount instantly.
HorseInstantMountChange a creature to a mounted appearance instantly.
HorseMountAction - Mount a horse.
HorseMoveAssociatesMove associates away from master.
HorsePreloadAnimationsPreload horse animations.
HorseReloadFromDatabaseReload horse system from database.
HorseRemoveOwnerRemove the owner from a horse.
HorseRestoreHenchmenLocationsLocate henchman's horses correctly.
HorseRestoreInventoryReturn inventory (saddlebags) to a horse.
HorseSaveToDatabaseSave party horses.
HorseSetOwnerSet horse owner.
HorseSetPhenotypeSet a creature to the riding phenotype.
HorseStoreInventoryStore a horse's inventory (saddlebags).
HorseSummonPaladinMountAction - Summon a Paladin mount.
HorseUnsummonPaladinMountAction - Unsummon a Paladin mount.
HORSE_Support_AssignRemainingMountInternal function. Make a link between the oOwner and one of the horses he may own.
HORSE_SupportAbsoluteMinuteInternal function. Returns the current absolute time expressed in minutes.
HORSE_SupportAdjustMountedArcheryPenaltyInternal function. Check for feats and adjust penalties to archery while mounted.
HORSE_SupportApplyACBonusInternal function. Apply AC bonus.
HORSE_SupportApplyHPBonusInternal function. Apply HP bonus.
HORSE_SupportApplyMountedSkillDecreasesInternal function. Applies decreases to skills while mounted.
HORSE_SupportCleanVariablesInternal function. Remove any mount related variables after dismount.
HORSE_SupportCountHenchmenInternal function. Return the number of henchmen.
HORSE_SupportDeleteFromDatabaseInternal function. Delete Henchmen information from the database.
HORSE_SupportDeleteMountedPCFromDatabaseInternal function. This will remove the info about this PC being mounted.
HORSE_SupportDismountWrapperInternal function.
HORSE_SupportGetHenchmanExistsInDatabaseInternal function. Return TRUE if there is a henchman saved in the database.
HORSE_SupportGetMountedAppearanceInternal function. Return which appearance the rider should use when mounted.
HORSE_SupportGetMountLocationInternal function. To Locate the location to place the mount.
HORSE_SupportHandleDamageInternal function. Handle resetting damage to the horse back to its original setting and also support damage sharing with the horse if that feature is enabled.
HORSE_SupportIncreaseSpeedInternal function. Change the movement speed based on that of the horse (wont work unless EffectMovementSpeedIncrease() bug is fixed).
HORSE_SupportMonitorPaladinUnsummonInternal function. Monitor whether to unsummon the paladin mount.
HORSE_SupportMountAppearanceInternal function. Return the appearance of the mount oRider is on.
HORSE_SupportMountCleanVariablesInternal function. Clean variables off of oRider related to the mount.
HORSE_SupportMountFootstepInternal function. Return the footstep sound of the rider is supposed to be when not mounted.
HORSE_SupportMountResRefInternal function. Return the resref of the mount oRider is on.
HORSE_SupportMountScriptInternal function. Return the post spawn script to run for the horse oRider is riding.
HORSE_SupportMountTagInternal function. Return the tag of the mount that rider is riding.
HORSE_SupportMountTailInternal function. Return the tail of the mount oRider is on.
HORSE_SupportNullAppearanceInternal function. This will return which appearance should be used to handle animation.
HORSE_SupportOriginalSpeedInternal function. Remove speed increases based upon mounted.
Horse_SupportRaceAppearanceInternal function. This will return TRUE if the appearance passed as a parameter is an appearance used as part of the mounting process.
HORSE_SupportRaceRestrictStringInternal function. This will return the race restriction string to use for oRider.
HORSE_SupportReloadMountedPCFromDatabaseInternal function. This will restore the mounted information about the PC.
HORSE_SupportRemoveACBonusInternal function. Remove AC Bonus.
HORSE_SupportRemoveHPBonusInternal function. Remove HP Bonus.
HORSE_SupportRemoveMountedSkillDecreasesInternal function. To remove any negative effects caused by being mounted.
HORSE_SupportResetUnmountedAppearanceInternal function. Reset oRider to an unmounted appearance
HORSE_SupportRestoreFromPreloadInternal function. Restore to previous appearance before preload.
HORSE_SupportRestoreHenchmanFromDatabaseInternal function. This will reload and assign the henchman to the PC.
HORSE_SupportRiderAppearanceInternal function. Return the appearance of oRider when not mounted.
HORSE_SupportRiderPhenotypeInternal function. Return the phenotype of the rider when not mounted.
HORSE_SupportSaveToDatabaseInternal function. Save henchman to database.
HORSE_SupportSetMountingSentinelInternal function. This will set a mounting process that will make sure the PC or NPC is returned to commandable.
HORSE_SupportStoreMountedPCInDatabaseInternal function. This will store the PCs information about being mounted.
HORSE_SupportTransferInventoryInternal function. Delay Command transfer to handle moving inventory.
HORSE_SupportTransferPreservedValuesInternal function. This will transfer preserved values for the mounted horse to oHorse from oRider and then will remove them from oRider.
HorseDismountWrapperInternal function.
HorseHandleDeathInternal function. Handle horses, re-assigning dying henchman's horse, handle mounted henchman's death (dismount, transfer saddlebag content to horse, re-assign horse to PC or free it).
HorseReassignInternal function. To handle horse reassign
KillTheHorseInternal function. To Kill the horse.

Version

1.69


author: Mistress, editor: Fireboar, contributor: Proleric