NOTICE (Updated 2018-02-23):
I no longer host scripts from this blog – they are now located at my github repository. Most of the scripts below have broken download links and nearly all of them are out of date. I am in process of re-writing them to match the latest OpenBOR engine updates.
In the list below, you will find several items already linked to the library that replaced them. If you do not see a replacement link, I would suggest browsing my my github – you will likely find what you’re looking for.
Thanks,
DC
Update log for common script and functions used by all modules. I have found that I often forget which script from identical working copies is the newest version. This should help track them.
A copy of or (preferably) link to this license is required for use of the materials below or any other resources provided by Damon Caskey.
Event Scripts
Self contained scripts run immediately in response to an engine event. Most will be used to call a user custom defined function.
z_ani
Generic animationscript event script.
z_blank
Blank script file. Allows @cmd tags with entities that do not need user defined functions.
z_block
Universal didblockscript event script.
z_blocka
Universal onblockascript event script.
z_datk
Universal ondoattackscript event script.
Functions
Custom predefined functions to be called by event scripts.
ani0009
Animation switching wrapper. Validates animation before a switch attempt is performed and allows quick use of both available animation switch methods. Handles basic animation switching needs for almost every other function.
ani0012
Specialized animation switch; performs Grabattack2 if opponent is “Bad Brother”. I normally prefer more a more generic approach using parameters, but this is in place already and it does do the job.
Moved to Avalanche repository.
ani0014
If target can be grappled, caller is set to passed animation. Otherwise alternate animation is used if available. If not, nothing is done.
ani0016
Perform alternate animation if target is rising or performing a rise attack.
ani0020
Wrapper to perform animation when triggered by key script.
bind0010
Primary grapple binding function. Binds and sets target entity into desired pose, or sets position and releases.
bind0017
Find preexisting entity with same name and warp to location. Primary use is to spawn self on top of old corpse. Creates effect of a “dead” character standing back up when player continues or has lives remaining; much less jarring then a new copy appearing out of nowhere.
bind0021
Shunt self away from wall if bound entity is inside of it (wall). Prevents getting a bound entity stuck within areas meant to be inaccessible or bounced to infinity by wall functions.
dama0004
Damage caller’s bound entity by index. Differs from dama0001 in that a mode is provided to allow non-lethal damage, and attack types are passed as integers rather than a string.
- 2010_02_02 – Fatal Fury Chronicles
- 2011_07_19 – Golden Axe The Hackjob
- iDam variant now initialized as 0. It seems OpenBOR will occasionally keep the value of a NULL initialized variant in a given script across multiple callings. Such a bug would be virtually impossible to find and eliminate, especially given its inconsistency; it is more pragmatic to simply adapt scripts accordingly. In the case of dama0004, retention of an iDam value of -1 could cause targets to have their hit points reduced to 0 immediately. In turn applied damage would always be lethal regardless of intended amount.
debug0001
A very messy but (to me) invaluable function to view and modify various system values in game. Its most powerful use is to edit grapple move poses during live game play and log the resulting command for use in a model text.
draw0001
Primary setdrawmethod() wrapper. Enables the classic pseudo 3D scaling and rotation effects when entities move about the screen as in many golden age arcade games, particularly the Neo-Geo.
draw0002
Support function for draw0001. Applies ratio parameter to offset parameter, ensuring the result is always a whole number. Main use is to integrate zoom effect with binding (bind adjustments must be whole numbers).
draw0003
Assign a group of draw method parameters to model, to be applied by draw0001.
ht0001
Returns entity’s current height, including current draw adjustment.
jump0003
Enable double jumping, wall jumping, etc.
Replaced by Hansburg library.
jump0005
Enable Mario Brothers style jump height control.
Replaced by Hansburg library.
mode0001
Wrapper to switch entity’s weapon and model name.
mode0002
Find out what weapon models (if any) players have and store them for placement into next level. Originally written to enable the feature in Golden Axe where an animal was retained from previous level, only to automatically run away during bonus stage.
- 2011_03_29 – Golden Axe The Hackjob
- Copied directly from “saveanimal” by Utunnels (contains a previous modification by myself to accommodate Joe & Alex). Will likely need a rewrite to take advantage of new string functions; it currently uses a limited static list and I am enabling playability for nearly every character in the game.
parr0001
Parry functionality. Check for Key timing and apply parry settings accordingly.
path0001
Returns full path of passed entity, minus file name.
path0002
Returns folder of passed entity.
rnd0001
Generate random numbers.
Replaced by Eggball library.
run0001
Simple “stop running” function useful for adding a controllable dash movement.
soun0005
Sound catalog and player. Catalogs sounds by tiers and selects sound from group at random. :
- entity/sounds folder
- global sounds/throwdamage
- global sounds
May also play specific sound from group if needed.
soun0009
Sound effect wrapper. Verify sample and last play time, then play sample with location based stereo effect.
velo0001
Wrapper for velocity control.
wall0001
Primary wall function. Damages and bounces self in opposite direction of current X velocity when falling and obstructed by wall/platform. Also provides optional jumping/climbing onto an obstacle along Z axis for AI controlled entities. OpenBOR already allows optional Z jumping, but AI controlled entities always use their full jump height/length and may overshoot if the target platform is small. There are also cases where a custom animation would simply provide greater aesthetics.
- 2009_10_10 – Fatal Fury Chronicles
- Authored (wall bounce only). Optional climbing added later (unknown date).
- 2011_07_22 – Golden Axe The Hackjob
- Wall bounce velocity is now a % of original velocity instead of a static value. This adjustment adds nuance to the timing needed for wall juggles. It also improves visual appeal, as a harder impact is now rewarded with a harder bounce. Additionally, victims caught between two walls will no longer infinitely bounce and “climb” upward; the gradual loss of velocity means they will eventually lose momentum and fall as expected.
z_block
Universal ondidblock function.
z_datk
Universal ondoattack function.
z_spawn
Universal onspawn event function.