Jump to content

Home

Helpful stuff for making sabers/weapons:


Azrael666

Recommended Posts

***Discaimer!!! This is not my work!!!***

 

I was fiddling with some idea i have for a customised Saber, and wanted to make it a bit 'different'. Remembering that the superb melee mod features weapons that have had attributes changed to give them different effects and styles, I opened it up and had a poke around, and stumbled on this readme in with all the saber files. Not sure why Slice, Dice & Mince left it in there, but given they said we could do what we liked with the stuff in their mod, i thought i should bring it to your attention, with proper credit (and much is due) to the authors.

 

Anyway, the following document gives the loadown on making .sab files. Ill try to show you all the results later by making a broadsword style saber, with kinetic knockback.

 

 

* * * * *

 

 

 

//Lightsaber configurations, use by name

 

NOTE: add new sabers by putting their entries in a .sab file in ext_data/sabers

 

defaults and explanations of fields:

 

//saber type

saberType SABER_NONE - what kind of saber to use ( SABER_SINGLE, SABER_STAFF)

 

//saber hilt

saberModel "models/weapons2/saber_reborn/saber_w.glm" - what saber hilt model to use

 

A note about saber hilt models: the surface names on saber models should *always* start with "w_", the code expects it.

 

customSkin "" - a .skin file to apply to the saber hilt model, if any (overrides saber hilt model's internal texture mapping)

 

soundOn "sound/weapons/saber/enemy_saber_on.wav" - turn on sound

soundLoop "sound/weapons/saber/saberhum3.wav" - loop sound (must be a .wav file)

soundOff "sound/weapons/saber/enemy_saber_off.wav" - turn off sound

 

//blades

numBlades 1 - how many blades it has (min of 1, max of 8)

 

A note about blade tags: each blade will be drawn from it's corresponding tag's position and in the direction (negative X axis in ModView) of that tag.

The naming of the tags must be as follows:

"tag_blade1" for the first blade. I made the code fall back to "tag_flash" if it can't find the tag_blades so that the code will still work pre-JKA sabers, but we you should always use the new name.

All following blades (if applicable) should be "tag_blade2", "tag_blade3", etc., to a maximum of 8 blades ("tag_blade8")

 

//saber length

//NOTE: these should be inputted in order - setting "saberLength" automatically sets all of the others to the same length

saberLength 32 - how long the saber's first blade should be (minimum of 4)

saberLength2 saberLength - how long the saber's second blade should be (minimum of 4)

saberLength3 saberLength - how long the saber's third blade should be (minimum of 4)

saberLength4 saberLength - how long the saber's fourth blade should be (minimum of 4)

saberLength5 saberLength - how long the saber's fifth blade should be (minimum of 4)

saberLength6 saberLength - how long the saber's sixth blade should be (minimum of 4)

saberLength7 saberLength - how long the saber's seventh blade should be (minimum of 4)

saberLength8 saberLength - how long the saber's eigth blade should be (minimum of 4)

 

//saber radius

//NOTE: these should be inputted in order - setting "saberLength" automatically sets all of the others to the same length

saberRadius 3 - how wide the saber's first blade should be (minimum of 0.25)

saberRadius2 saberRadius - how wide the saber's second blade should be (minimum of 0.25)

saberRadius3 saberRadius - how wide the saber's third blade should be (minimum of 0.25)

saberRadius4 saberRadius - how wide the saber's fourth blade should be (minimum of 0.25)

saberRadius5 saberRadius - how wide the saber's fifth blade should be (minimum of 0.25)

saberRadius6 saberRadius - how wide the saber's sixth blade should be (minimum of 0.25)

saberRadius7 saberRadius - how wide the saber's seventh blade should be (minimum of 0.25)

saberRadius8 saberRadius - how wide the saber's eigth blade should be (minimum of 0.25)

 

//saberColor - valid colors: random, red, orange, yellow, green, blue, and purple

//NOTE: these should be inputted in order - setting "saberColor" automatically sets all of the others to the same color

saberColor red - what color the saber's 1st blade should be

saberColor2 saberColor - what color the saber's 2nd blade should be

saberColor3 saberColor - what color the saber's 3rd blade should be

saberColor4 saberColor - what color the saber's 4th blade should be

saberColor5 saberColor - what color the saber's 5th blade should be

saberColor6 saberColor - what color the saber's 6th blade should be

saberColor7 saberColor - what color the saber's 7th blade should be

saberColor8 saberColor - what color the saber's 8th blade should be

 

//locked style

saberStyle none - what one style it's limited to, if any (fast, medium, strong, desann, tavion, dual, staff)

 

//NOTE: the "saberStyle" field stomps these next two - don't use them together, use the above one if you only want to allow ONE style (that style is given to the person using that saber)

saberStyleLearned none - what styles they should get when they are given this saber (they don't have to use these, but they become available if they didn't know them before)

saberStyleForbidden none - what styles *cannot* be used with this saber (it doesn't take the style from them, it just doesn't allow them to use these styles if they try)

 

//maxChain

maxChain 0 - how many moves can be chained in a row with this weapon (-1 is infinite, 0 is use default behavior)

 

//lockable

lockable 1 - whether or not it can be stuck in a saber lock

 

//throwable

throwable 1 - whether or not it can be thrown

 

//disarmable

disarmable 1 - whether or not it can be disarmed (dropped)

 

//blocking

blocking 1 - whether or not user will try to block incoming shots (shots always bounce off it, this just determines if the user *tries* to block with it)

 

//twoHanded

twoHanded 0 - whether or not it requires 2 hands (makes it restrict force powers but makes it stronger in locks or parries)

 

//force power restrictions

forceRestrict 0 - what force powers it restricts, use these keys, a seperate entry per power:

FP_HEAL

FP_LEVITATION

FP_SPEED

FP_PUSH

FP_PULL

FP_TELEPATHY

FP_GRIP

FP_LIGHTNING

FP_SABERTHROW

FP_SABER_DEFENSE

FP_SABER_OFFENSE

//new Jedi Academy powers

FP_RAGE

FP_PROTECT

FP_ABSORB

FP_DRAIN

FP_SEE

 

//lockBonus

lockBonus 0 - this pushes harder/weaker in saberlocks

 

//parryBonus

parryBonus 0 - this is stronger/weaker in a parry (harder to break, more likely to knockaway)

 

//breakParryBonus

breakParryBonus 0 - this is more/less likely to break a parry

breakParryBonus2 0 - for second blade style (see bladeStyle2Start below)

 

//disarmBonus

disarmBonus 0 - this is more/less likely to disarm another saber in a saberlock or knockaway

disarmBonus2 0 - for second blade style (see bladeStyle2Start below)

 

singleBladeStyle none - makes it so that you use a different style if you only have the first blade active

 

singleBladeThrowable 0 - makes it so that you can throw this saber if only the first blade is on

 

brokenSaber1 none - if saber is actually hit by another saber, it can be cut in half/broken and will be replaced with this saber in your right hand

brokenSaber2 none - if saber is actually hit by another saber, it can be cut in half/broken and will be replaced with this saber in your left hand

 

returnDamage 0 - when returning from a saber throw, it keeps spinning and doing damage

 

//===The following fields were added after retail version:===========================================================================

//these values are global to the saber, like all of the ones above

 

//done in cgame (client-side code)

spinSound none - if set, plays this sound as it spins when thrown

swingSound1 - swingSound3 none - if set, plays one of these 3 sounds when swung during an attack - NOTE: must provide all 3!!!

fallSound1 - fallSound3 none - if set, plays one of these 3 sounds when weapon falls to the ground - NOTE: must provide all 3!!!

onInWater 0 - if set, weapon stays active even in water

 

//done in game (server-side code)

bounceOnWalls 0 - if non-zero, the saber will bounce back when it hits solid architecture (good for real-sword type mods)

moveSpeedScale 1.0 - you move faster/slower when using this saber

animSpeedScale 1.0 - plays normal attack animations faster/slower

boltToWrist 0 - if set, saber model is bolted to wrist, not in hand... useful for things like claws & shields, etc.

 

//replace certain anims

readyAnim none - anim to use when standing idle (use name of enum in anims.h or BehavEd's list)

drawAnim none - anim to use when drawing weapon (use name of enum in anims.h or BehavEd's list)

putawayAnim none - anim to use when putting weapon away (use name of enum in anims.h or BehavEd's list)

tauntAnim none - anim to use when hit "taunt" (use name of enum in anims.h or BehavEd's list)

bowAnim none - anim to use when hit "bow" (use name of enum in anims.h or BehavEd's list)

meditateAnim none - anim to use when hit "meditate" (use name of enum in anims.h or BehavEd's list)

flourishAnim none - anim to use when hit "flourish" (use name of enum in anims.h or BehavEd's list)

gloatAnim none - anim to use when hit "gloat" (use name of enum in anims.h or BehavEd's list)

 

//optionally disallow certain types of moves and attacks

noRollStab 0 - if set, cannot do roll-stab move at end of roll

noPullAttack 0 - if set, cannot do pull+attack move (move not available in MP anyway)

noBackAttack 0 - if set, cannot do back-stab moves

noStabDown 0 - if set, cannot do stabdown move (when enemy is on ground)

noWallRuns 0 - if set, cannot side-run or forward-run on walls

noWallFlips 0 - if set, cannot do backflip off wall or side-flips off walls

noWallGrab 0 - if set, cannot grab wall & jump off

noRolls 0 - if set, cannot roll

noFlips 0 - if set, cannot do flips

noCartwheels 0 - if set, cannot do cartwheels

noKicks 0 - if set, cannot do kicks (can't do kicks anyway if using a throwable saber/sword)

noMirrorAttacks 0 - if set, cannot do the simultaneous attack left/right moves (only available in Dual Lightsaber Combat Style)

 

//done in both cgame and game (BG code)

kataMove 0 - if set, player will execute this move when they press both attack buttons at the same time (see list below for valid values)

lungeAtkMove 0 - if set, player will execute this move when they crouch+fwd+attack (see list below for valid values)

jumpAtkUpMove 0 - if set, player will execute this move when they jump+attack (see list below for valid values)

jumpAtkFwdMove 0 - if set, player will execute this move when they jump+fwd+attack (see list below for valid values)

jumpAtkBackMove 0 - if set, player will execute this move when they jump+back+attack (see list below for valid values)

jumpAtkRightMove 0 - if set, player will execute this move when they jump+rightattack (see list below for valid values)

jumpAtkLeftMove 0 - if set, player will execute this move when they jump+left+attack (see list below for valid values)

//NOTE: these "move" fields refer to saber moves that are defined in code. Set to LS_NONE to have the normal move removed, set to one of the following values to override the current move

LS_NONE - Do a regular attack instead of a special move (overrides the usual special move with a normal attack)

// Attacks

LS_A_TL2BR

LS_A_L2R

LS_A_BL2TR

LS_A_BR2TL

LS_A_R2L

LS_A_TR2BL

LS_A_T2B

LS_A_BACKSTAB

LS_A_BACK

LS_A_BACK_CR

LS_ROLL_STAB

LS_A_LUNGE

LS_A_JUMP_T__B_

LS_A_FLIP_STAB

LS_A_FLIP_SLASH

LS_JUMPATTACK_DUAL

LS_JUMPATTACK_ARIAL_LEFT

LS_JUMPATTACK_ARIAL_RIGHT

LS_JUMPATTACK_CART_LEFT

LS_JUMPATTACK_CART_RIGHT

LS_JUMPATTACK_STAFF_LEFT

LS_JUMPATTACK_STAFF_RIGHT

LS_BUTTERFLY_LEFT

LS_BUTTERFLY_RIGHT

LS_A_BACKFLIP_ATK

LS_SPINATTACK_DUAL

LS_SPINATTACK

LS_LEAP_ATTACK

LS_SWOOP_ATTACK_RIGHT

LS_SWOOP_ATTACK_LEFT

LS_TAUNTAUN_ATTACK_RIGHT

LS_TAUNTAUN_ATTACK_LEFT

LS_KICK_F

LS_KICK_B

LS_KICK_R

LS_KICK_L

LS_KICK_S

LS_KICK_BF

LS_KICK_RL

LS_KICK_F_AIR

LS_KICK_B_AIR

LS_KICK_R_AIR

LS_KICK_L_AIR

LS_STABDOWN

LS_STABDOWN_STAFF

LS_STABDOWN_DUAL

LS_DUAL_SPIN_PROTECT

LS_STAFF_SOULCAL

LS_A1_SPECIAL

LS_A2_SPECIAL

LS_A3_SPECIAL

LS_UPSIDE_DOWN_ATTACK

LS_PULL_ATTACK_STAB

LS_PULL_ATTACK_SWING

LS_SPINATTACK_ALORA

LS_DUAL_FB

LS_DUAL_LR

LS_HILT_BASH

 

//***these values can be specified differently for different blades (see "bladeStyle2Start" below for more info)***

 

//done in cgame (client-side code)

noWallMarks 0 - if 1, stops the saber from drawing marks on the world (good for real-sword type mods)

noDlight 0 - if 1, stops the saber from drawing a dynamic light (good for real-sword type mods)

noBlade 0 - if 1, stops the saber from drawing a blade (good for real-sword type mods)

noClashFlare 0 - if non-zero, the saber will not do the big, white clash flare with other sabers

trailStyle 0 - default (0) is normal, 1 is a motion blur and 2 is no trail at all (good for real-sword type mods)

g2MarksShader none - if set, the game will use this shader for marks on enemies instead of the default "gfx/damage/saberglowmark"

hitSound1 - hitSound3 none - if set, plays one of these 3 sounds when saber hits a person - NOTE: must provide all 3!!!

blockSound1 - blockSound3 none - if set, plays one of these 3 sounds when saber/sword hits another saber/sword - NOTE: must provide all 3!!!

bounceSound1 - bounceSound3 none - if set, plays one of these 3 sounds when saber/sword hits a wall and bounces off (must set bounceOnWall to 1 to use these sounds) - NOTE: must provide all 3!!!

blockEffect none - if set, plays this effect when the saber/sword hits another saber/sword (instead of "saber/saber_block.efx")

hitPersonEffect none - if set, plays this effect when the saber/sword hits a person (instead of "saber/blood_sparks_mp.efx" in MP and "sparks/blood_sparks2" in SP)

hitOtherEffect none - if set, plays this effect when the saber/sword hits something else damagable (instead of "saber/saber_cut.efx")

 

//done in game (server-side code)

knockbackScale 0 - if non-zero, uses damage done to calculate an appropriate amount of knockback

damageScale 1 - scale up or down the damage done by the saber

noDismemberment 0 - if non-zero, the saber never does dismemberment (good for pointed/blunt melee weapons)

noIdleEffect 0 - if non-zero, the saber will not do damage or any effects when it is idle (not in an attack anim). (good for real-sword type mods)

splashRadius 0 - radius of splashDamage

splashDamage 0 - amount of splashDamage, 100% at a distance of 0, 0% at a distance = splashRadius

splashKnockback 0 - amount of splashKnockback, 100% at a distance of 0, 0% at a distance = splashRadius

alwaysBlock 0 - if set, the blades will always be blocking (good for things like shields that should always block)

noManualDeactivate 0 - if set, the blades cannot manually be toggled on and off (does not affect turning the whole saber on/off, just hitting the saber style cycle button when using dual sabers or a multi-blade saber)

 

//***The following can be different for the extra blades - not setting them individually defaults them to the value for the whole saber (and first blade)***

//***NOTE: you can only have a maximum of 2 "styles" of blades, so this next value, "bladeStyle2Start" is the number of the first blade to use these value on... all blades before this use the normal values above, all blades at and after this number use the secondary values below***

bladeStyle2Start 0 - if set, blades from this number and higher use the following values (otherwise, they use the normal values already set)

 

//done in cgame (client-side code)

noWallMarks2 0 - if 1, stops the saber from drawing marks on the world (good for real-sword type mods)

noDlight2 0 - if 1, stops the saber from drawing a dynamic light (good for real-sword type mods)

noBlade2 0 - if 1, stops the saber from drawing a blade (good for real-sword type mods)

noClashFlare2 0 - if non-zero, the saber will not do the big, white clash flare with other sabers

trailStyle2 0 - default (0) is normal, 1 is a motion blur and 2 is no trail at all (good for real-sword type mods)

g2MarksShader2 none - if set, the game will use this shader for marks on enemies instead of the default "gfx/damage/saberglowmark"

hit2Sound1 - hit2Sound3 none - if set, plays one of these 3 sounds when saber hits a person - NOTE: must provide all 3!!!

block2Sound1 - block2Sound3 none - if set, plays one of these 3 sounds when saber/sword hits another saber/sword - NOTE: must provide all 3!!!

bounce2Sound1 - bounce2Sound3 none - if set, plays one of these 3 sounds when saber/sword hits a wall and bounces off (must set bounceOnWall to 1 to use these sounds) - NOTE: must provide all 3!!!

blockEffect2 none - if set, plays this effect when the saber/sword hits another saber/sword (instead of "saber/saber_block.efx")

hitPersonEffect2 none - if set, plays this effect when the saber/sword hits a person (instead of "saber/blood_sparks_mp.efx" in MP and "sparks/blood_sparks2" in SP)

hitOtherEffect2 none - if set, plays this effect when the saber/sword hits something else damagable (instead of "saber/saber_cut.efx")

 

//done in game (server-side code)

knockbackScale2 0 - if non-zero, uses damage done to calculate an appropriate amount of knockback

damageScale2 1 - scale up or down the damage done by the saber

noDismemberment2 0 - if non-zero, the saber never does dismemberment (good for pointed/blunt melee weapons)

noIdleEffect2 0 - if non-zero, the saber will not do damage or any effects when it is idle (not in an attack anim). (good for real-sword type mods)

splashRadius2 0 - radius of splashDamage

splashDamage2 0 - amount of splashDamage, 100% at a distance of 0, 0% at a distance = splashRadius

splashKnockback2 0 - amount of splashKnockback, 100% at a distance of 0, 0% at a distance = splashRadius

alwaysBlock2 0 - if set, the blades will always be blocking (good for things like shields that should always block)

noManualDeactivate2 0 - if set, the blades cannot manually be toggled on and off (does not affect turning the whole saber on/off, just hitting the saber style cycle button when using dual sabers or a multi-blade saber)

//=========================================================================================================================================

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...