Defineprojectile: Difference between revisions
mNo edit summary |
Mblackwell (talk | contribs) mNo edit summary |
||
Line 5: | Line 5: | ||
To use this command, several things must be done. First, include the following defines somewhere before your defineprojectile lines: | To use this command, several things must be done. First, include the following defines somewhere before your defineprojectile lines: | ||
define PROJ_WORKSLIKE 1 | define [[PROJ_WORKSLIKE]] 1 | ||
define PROJ_SPAWNS 2 | define [[PROJ_SPAWNS]] 2 | ||
define PROJ_SXREPEAT 3 | define [[PROJ_SXREPEAT]] 3 | ||
define PROJ_SYREPEAT 4 | define [[PROJ_SYREPEAT]] 4 | ||
define PROJ_SOUND 5 | define [[PROJ_SOUND]] 5 | ||
define PROJ_ISOUND 6 | define [[PROJ_ISOUND]] 6 | ||
define PROJ_VEL 7 | define [[PROJ_VEL]] 7 | ||
define PROJ_EXTRA 8 | define [[PROJ_EXTRA]] 8 | ||
define PROJ_DECAL 9 | define [[PROJ_DECAL]] 9 | ||
define PROJ_TRAIL 10 | define [[PROJ_TRAIL]] 10 | ||
define PROJ_TXREPEAT 11 | define [[PROJ_TXREPEAT]] 11 | ||
define PROJ_TYREPEAT 12 | define [[PROJ_TYREPEAT]] 12 | ||
define PROJ_TOFFSET 13 | define [[PROJ_TOFFSET]] 13 | ||
define PROJ_TNUM 14 | define [[PROJ_TNUM]] 14 | ||
define PROJ_DROP 15 | define [[PROJ_DROP]] 15 | ||
define PROJ_CSTAT 16 | define [[PROJ_CSTAT]] 16 | ||
define PROJ_CLIPDIST 17 | define [[PROJ_CLIPDIST]] 17 | ||
define PROJ_SHADE 18 | define [[PROJ_SHADE]] 18 | ||
define PROJ_XREPEAT 19 | define [[PROJ_XREPEAT]] 19 | ||
define PROJ_YREPEAT 20 | define [[PROJ_YREPEAT]] 20 | ||
define PROJ_PAL 21 | define [[PROJ_PAL]] 21 | ||
define PROJ_EXTRA_RAND 22 | define [[PROJ_EXTRA_RAND]] 22 | ||
define PROJ_HITRADIUS 23 | define [[PROJ_HITRADIUS]] 23 | ||
define PROJ_VEL_MULT 24 | define [[PROJ_VEL_MULT]] 24 | ||
define PROJ_OFFSET 25 | define [[PROJ_OFFSET]] 25 | ||
define PROJ_BOUNCES 26 | define [[PROJ_BOUNCES]] 26 | ||
define PROJ_BSOUND 27 | define [[PROJ_BSOUND]] 27 | ||
Line 63: | Line 63: | ||
define WORKSLIKEBULLET 1 | define [[WORKSLIKEBULLET]] 1 | ||
define WORKSLIKERPG 2 | define [[WORKSLIKERPG]] 2 | ||
define WORKSLIKEBOUNCESOFFWALLS 4 | define [[WORKSLIKEBOUNCESOFFWALLS]] 4 | ||
define WORKSLIKEBOUNCESOFFMIRRORS 8 | define [[WORKSLIKEBOUNCESOFFMIRRORS]] 8 | ||
define WORKSLIKEKNEE 16 | define [[WORKSLIKEKNEE]] 16 | ||
define WORKSLIKEWATERBUBBLES 32 | define [[WORKSLIKEWATERBUBBLES]] 32 | ||
define WORKSLIKENOENEMYHITS 128 | define [[WORKSLIKENOENEMYHITS]] 128 | ||
define WORKSLIKESPIT 256 | define [[WORKSLIKESPIT]] 256 | ||
define WORKSLIKECOOLEXPLOSION1 512 | define [[WORKSLIKECOOLEXPLOSION1]] 512 | ||
define WORKSLIKEBLOOD 1024 | define [[WORKSLIKEBLOOD]] 1024 | ||
define WORKSLIKELOSESVELOCITY 2048 | define [[WORKSLIKELOSESVELOCITY]] 2048 | ||
define WORKSLIKENOAIM 4096 | define [[WORKSLIKENOAIM]] 4096 | ||
define WORKSLIKERANDDECALSIZE 8192 | define [[WORKSLIKERANDDECALSIZE]] 8192 | ||
Line 95: | Line 95: | ||
Here is an example of a working user-defined projectile: | Here is an example of a working user-defined projectile: | ||
defineprojectile 1653 PROJ_WORKSLIKE 6150 | defineprojectile 1653 [[PROJ_WORKSLIKE]] 6150 | ||
defineprojectile 1653 PROJ_SPAWNS EXPLOSION2 | defineprojectile 1653 [[PROJ_SPAWNS]] EXPLOSION2 | ||
defineprojectile 1653 PROJ_VEL 1000 | defineprojectile 1653 [[PROJ_VEL]] 1000 | ||
defineprojectile 1653 PROJ_EXTRA 300 | defineprojectile 1653 [[PROJ_EXTRA]] 300 | ||
defineprojectile 1653 PROJ_DROP -200 | defineprojectile 1653 [[PROJ_DROP]] -200 | ||
defineprojectile 1653 PROJ_ISOUND PIPEBOMB_EXPLODE | defineprojectile 1653 [[PROJ_ISOUND]] PIPEBOMB_EXPLODE | ||
defineprojectile 1653 PROJ_HITRADIUS 2560 | defineprojectile 1653 [[PROJ_HITRADIUS]] 2560 | ||
defineprojectile 1653 PROJ_BOUNCES 5 | defineprojectile 1653 [[PROJ_BOUNCES]] 5 | ||
defineprojectile 1653 PROJ_OFFSET 224 | defineprojectile 1653 [[PROJ_OFFSET]] 224 | ||
defineprojectile 1653 PROJ_CLIPDIST 24 | defineprojectile 1653 [[PROJ_CLIPDIST]] 24 | ||
defineprojectile 1653 | defineprojectile 1653 [[ROJ_TRAIL]] SMALLSMOKE | ||
Revision as of 20:08, 23 December 2004
defineprojectile <tilenum> <function> <value>
Defines a projectile to be fired by the shoot command and its variants.
To use this command, several things must be done. First, include the following defines somewhere before your defineprojectile lines:
define PROJ_WORKSLIKE 1
define PROJ_SPAWNS 2
define PROJ_SXREPEAT 3
define PROJ_SYREPEAT 4
define PROJ_SOUND 5
define PROJ_ISOUND 6
define PROJ_VEL 7
define PROJ_EXTRA 8
define PROJ_DECAL 9
define PROJ_TRAIL 10
define PROJ_TXREPEAT 11
define PROJ_TYREPEAT 12
define PROJ_TOFFSET 13
define PROJ_TNUM 14
define PROJ_DROP 15
define PROJ_CSTAT 16
define PROJ_CLIPDIST 17
define PROJ_SHADE 18
define PROJ_XREPEAT 19
define PROJ_YREPEAT 20
define PROJ_PAL 21
define PROJ_EXTRA_RAND 22
define PROJ_HITRADIUS 23
define PROJ_VEL_MULT 24
define PROJ_OFFSET 25
define PROJ_BOUNCES 26
define PROJ_BSOUND 27
Second, we must figure out a proper WORKSLIKE flag for our projectile. The WORKSLIKE flag can be determined by looking at the following defines:
define WORKSLIKEBULLET 1
define WORKSLIKERPG 2
define WORKSLIKEBOUNCESOFFWALLS 4
define WORKSLIKEBOUNCESOFFMIRRORS 8
define WORKSLIKEKNEE 16
define WORKSLIKEWATERBUBBLES 32
define WORKSLIKENOENEMYHITS 128
define WORKSLIKESPIT 256
define WORKSLIKECOOLEXPLOSION1 512
define WORKSLIKEBLOOD 1024
define WORKSLIKELOSESVELOCITY 2048
define WORKSLIKENOAIM 4096
define WORKSLIKERANDDECALSIZE 8192
To determine the proper WORKSLIKE flag for your projectile, simply add the numbers for the various functions you'd like your projectile to have together. Obviously, some flags are not compatible.
Here is an example of a working user-defined projectile:
defineprojectile 1653 PROJ_WORKSLIKE 6150
defineprojectile 1653 PROJ_SPAWNS EXPLOSION2
defineprojectile 1653 PROJ_VEL 1000
defineprojectile 1653 PROJ_EXTRA 300
defineprojectile 1653 PROJ_DROP -200
defineprojectile 1653 PROJ_ISOUND PIPEBOMB_EXPLODE
defineprojectile 1653 PROJ_HITRADIUS 2560
defineprojectile 1653 PROJ_BOUNCES 5
defineprojectile 1653 PROJ_OFFSET 224
defineprojectile 1653 PROJ_CLIPDIST 24
defineprojectile 1653 ROJ_TRAIL SMALLSMOKE
In this example, the projectile has the following WORKSLIKE flags set: WORKSLIKENOAIM, WORKSLIKELOSESVELOCITY, WORKSLIKERPG and WORKSLIKEBOUNCESOFFWALLS. This gives us an RPG-like projectile that doesn't automatically aim at enemies/players (we need this because the projectile in question fires in an arc), automatically slows down during flight, fires like an RPG and bounces off the walls.
Please take care not to set a projectile's velocity over 1000. Instead, set PROJ_VELMULT and a lower PROJ_VEL.