...
The games ammo types are hardcoded - ie the AmmunitionType column in this 2da.
The other rows can be reordered or changed as needed - the main thing is that there should be always a matching pair of AmmunitionType and DamageRangedProjectile combination.
...
The gist is make 6 new rows and have a new DamageRangedProjectile entry, which links to the same column in damagetypes.2da
Do not use values 6 or 7 which are reserved for spell projectiles.
Note on client versions earlier than 1.88.8193.36 it will default back to the non-elemental lines (0 through 5) when a new row is specified, since the 2da can't be used. They also make assumptions that rows 0 through 35 are as-is in regards to the type of projectile and damage type (eg row 23 is always an electric throwing axe).
2da Columns
| Column Name | Example | Valid Values | Description |
|---|---|---|---|
| Label | acidarrow | Text | Human readable label. Not used by the engine. |
| Model | WAmAr_fxacid | ResRef of MDL | MDL to fire from the shooter to the enemy |
| ShotSound | cb_sh_prjtlacid | ResRef of sound | Sound to play from the shooters position |
| ImpactSound | scm_hitacid | ResRef of sound | Sound to play when the projectile hits the enemy |
| AmmunitionType | 1 | baseitems.2da AmmunitionType column ID | IE: Arrows are 1, Bolts are 2. etc. This is hardcoded. |
| DamageRangedProjectile | 1 | damagetypes.2da DamageRangedProjectile column reference | These map and so you can have new ones |
. Note: use values |
8 and up for custom damage types to get them recognised. 6 and 7 are special cases used for spell projectiles. |
2da Contents
| Code Block |
|---|
da2DA V2.0
label Model ShotSound ImpactSound AmmunitionType DamageRangedProjectile
0 arrow wamar_001 **** cb_ht_arrow1 1 0
1 bolt wambo_001 **** cb_ht_arrow1 2 0
2 bullet wambu_001 **** cb_ht_bullet1 3 0
3 dart wthdt_001 **** cb_ht_dart1 4 0
4 shuriken wthsh_001 **** cb_ht_dart1 5 0
5 throwingaxe wthax_001 **** cb_ht_throwaxe1 6 0
6 acidarrow WAmAr_fxacid cb_sh_prjtlacid scm_hitacid 1 1
7 acidbolt WAmBo_fxacid cb_sh_prjtlacid scm_hitacid 2 1
8 acidbullet WAmBu_fxacid cb_sh_prjtlacid scm_hitacid 3 1
9 aciddart WThDt_fxacid cb_sh_prjtlacid scm_hitacid 4 1
10 acidshuriken WThSh_fxacid cb_sh_prjtlacid scm_hitacid 5 1
11 acidthrowingaxe WThAx_fxacid cb_sh_prjtlacid scm_hitacid 6 1
12 coldarrow WAmAr_fxfrost cb_sh_prjtlcold scm_hitcold 1 2
13 coldbolt WAmBo_fxfrost cb_sh_prjtlcold scm_hitcold 2 2
14 coldbullet WAmBu_fxfrost cb_sh_prjtlcold scm_hitcold 3 2
15 colddart WThDt_fxfrost cb_sh_prjtlcold scm_hitcold 4 2
16 coldshuriken WThSh_fxfrost cb_sh_prjtlcold scm_hitcold 5 2
17 coldthrowingaxe WThAx_fxfrost cb_sh_prjtlcold scm_hitcold 6 2
18 elecarrow WAmAr_fxelect cb_sh_prjtlelec scm_elec 1 3
19 elecbolt WAmBo_fxelect cb_sh_prjtlelec scm_elec 2 3
20 elecbullet WAmBu_fxelect cb_sh_prjtlelec scm_elec 3 3
21 elecdart WThDt_fxelect cb_sh_prjtlelec scm_elec 4 3
22 elecshuriken WThSh_fxelect cb_sh_prjtlelec scm_elec 5 3
23 electhrowingaxe WThAx_fxelect cb_sh_prjtlelec scm_elec 6 3
24 firearrow WAmAr_fxfire cb_sh_prjtlfire scm_fire 1 4
25 firebolt WAmBo_fxfire cb_sh_prjtlfire scm_fire 2 4
26 firebullet WAmBu_fxfire cb_sh_prjtlfire scm_fire 3 4
27 firedart WThDt_fxfire cb_sh_prjtlfire scm_fire 4 4
28 fireshuriken WThSh_fxfire cb_sh_prjtlfire scm_fire 5 4
29 firethrowingaxe WThAx_fxfire cb_sh_prjtlfire scm_fire 6 4
30 sonicarrow WAmAr_fxsonic cb_sh_prjtlsonc scm_sonc 1 5
31 sonicbolt WAmBo_fxsonic cb_sh_prjtlsonc scm_sonc 2 5
32 sonicbullet WAmBu_fxsonic cb_sh_prjtlsonc scm_sonc 3 5
33 sonicdart WThDt_fxsonic cb_sh_prjtlsonc scm_sonc 4 5
34 sonicshuriken WThSh_fxsonic cb_sh_prjtlsonc scm_sonc 5 5
35 sonicthrowingaxe WThAx_fxsonic cb_sh_prjtlsonc scm_sonc 6 5
|
...