The NGLE Manual
Customising
Ammo for Weapons
by Wayne
Scales
With the Customize= command we have the
ability to do many things. In this tutorial I will show you
how to customize the ammo of the Grenade gun.
Here is the syntax we will follow.
Syntax: Customize=CUST_AMMO, SlotOfAmmo, Ammo flags
(AMMO_....), Damage,
ShotsForBox, ShotsWithWeapon, Extra,
IdTriggerGroupWhenHitEnemy, DamageForExplosion, Speed,
Gravity, IdAddEffectToAmmo, IdTriggerGroupAtEnd
This goes in the level section of the
script.
Field Descriptions
SlotOfAmmo field= Here you choose the
ammo slot you wish to customize. Here is the list you can
select from:
PISTOLS_AMMO_ITEM
UZI_AMMO_ITEM
SHOTGUN_AMMO1_ITEM (normal)
SHOTGUN_AMMO2_ITEM (wideshot)
CROSSBOW_AMMO1_ITEM (normal)
CROSSBOW_AMMO2_ITEM (explosive)
CROSSBOW_AMMO3_ITEM (poisoned)
GRENADE_GUN_AMMO1_ITEM (normal)
GRENADE_GUN_AMMO2_ITEM (power)
GRENADE_GUN_AMMO3_ITEM (lightning)
SIXSHOOTER_AMMO_ITEM
Ammo flags (AMMO_....) field
Here you can add ammo flags to make different features for
different ammo. Here is the possible flags. Just type IGNORE
if you don't want this feature.
AMMO_PUSH_LARA= This is a cool
feature as Lara will move back when she fires her weapon,
like the recoil from a shotgun. You would not use this on
pistols because it wouldn't be realistic but it works well
with a grenade launcher. You have to type a distance value
in the Extra field for the distance of movement. The
distance units are 1024 = one sector, 256 = one click.
AMMO_PUSH_TARGET= When the ammo will
hit the enemy, he will be pushed (moved) like if the impact
of ammo had moved him. You have to type in Extra field, the
distance of movement. The distance units are 1024 = one
sector, 256 = one click.
AMMO_SET_GRENADE_TIMER= To use only
with greande ammo. You can change the number of seconds
required to explode the grenade. The default value is 4
seconds. You have to type the number of seconds in Extra
field.
Damage field
Here you can change the damage for the ammo.
Remarks:
this is a normal damage, while if this ammo is also
explosive you have to set the damage for explosion in the
other field named DamageForExplosion (see below)
Default values:
Ammo Default MaxValue
-----------------------------------
Pistols 1 255
UZI 1 255
Revolver 21 255
ShotGun normal 3 (*6) 255
ShotGun Wide 3 (*5) 1000
GrenadeGun Normal 20 255
GrenadeGun Power 20 1000
CrossBow Normal 5 255
CrossBow Explos. 5 1000
-----------------------------------
Remarks: Some ammo have 0
damage because their damage is only for explosion, anyway
you can force also a common damage for them.
* The wideshot shotgun ammo is not more
powerful like people think. The damage for them is computed
like a random rain of fragments where the wide property
reduces the number of fragments reaching the target. Usually
this number is only 5 while for normal shotgun ammo it is 6,
hence the normal shotgun ammo is more powerful than wideshot
ammo. The only exception is when the enemy is really big.
If you wish really powerful wideshot
shotgun ammo set a value for damage in this field and it
will be added to compute for damage.
ShotsForBox field
When lara picks up an ammo item she will automatically be
given a number of bullets. In this field we can change that!
Here are the default values and the maximum we can add.
Ammo Default MaxForBox
------------------------------------------------------------
PISTOLS_AMMO_ITEM Unlimited (-2) 1000
UZI_AMMO_ITEM 30 1000
SHOTGUN_AMMO1_ITEM 6 1000
SHOTGUN_AMMO2_ITEM 6 42
CROSSBOW_AMMO1_ITEM 10 1000
CROSSBOW_AMMO2_ITEM 10 255
CROSSBOW_AMMO3_ITEM 10 255
GRENADE_GUN_AMMO1_ITEM 10 255
GRENADE_GUN_AMMO2_ITEM 4 255
GRENADE_GUN_AMMO3_ITEM 4 255
SIXSHOOTER_AMMO_ITEM 6 1000
------------------------------------------------------------
Remarks: If you want to
leave this field unchanged type IGNORE
* There are technical reasons (within the orignal tomb4
code) why some ammo has a different max value you can set.
Please don't exceed the limits otherwise you'll have crashes
or other problems within the TRNG engine.
* The value -1 should mean "unlimited ammo" but really this
is not possible because the -1 value is the same as the
IGNORE value used in NG_Center. For this reason if you want
to set number of shot for box as unlimited ammo you should
type another negative number different than -1, for example
-2.
ShotsWithWeapon field
When lara picks up a weapon item like a shotgun she will
automatically be given a number of bullets, maybe to
simulate that there was still bullets present in the
shotgun. We can change the settings for this now. You could
be mean and give you player no rounds with a shotgun!!!!!
Given with weapon Number Shots MaxAllowedValue
----------------------------------------------------------------
Pistols Unlimited (-2) 1000
Revolver 6 255
UZI 30 255
ShotGun 6 (normal) 42
CrossBow 10 (normal) 255
GrenadeGun 10 (normal) 255
----------------------------------------------------------------
Remarks: If you want to
leave this field unchanged type IGNORE
* There are technical reasons (within the orignal tomb4
code) why some ammo has a different max value you can set.
Please don't exceed the limits otherwise you'll have crashes
or other problems within the TRNG engine.
* The value -1 should mean "unlimited ammo" but really this
is not possible because the -1 value is the same as the
IGNORE value used in NG_Center. For this reason if you want
to set number of shot for box as unlimited ammo you should
type another negative number different than -1, for example
-2.
Extra field
This optional field could be used in some circumstance for
special ammo. Read the AMMO_ constant descriptions to
discover the possible usage of this field.
IdTriggerGroupWhenHitEnemy field
From reference:
You can perform a TriggerGroup script command when this
ammo hits enemy.
If you wish to use this feature you have to type the ID of
TriggerGroup script command.
Remarks: If you don't
want perform any trigger group type IGNORE in this field.
* When the enemy will be hit by ammo, the
game engine will perform the TriggerGroup you set and it
will set as "Found item" the index of enemy hit by ammo.
If you want to perform some special
ACTION stored in trigger group on hit enemy, remember to add
to exported trigger the flag TGROUP_USE_FOUND_ITEM_INDEX.
The action trigger you placed in trigger group will then use
the index of enemy hit by ammo, instead of the moveable you
had set originally in exported action trigger. Using this
method you can give special functions to this ammo.
DamageForExplosion field
We can set the damage for explosive ammo in this field. Like
the grenade and crossbow explosive ammo for example.
Remark: when you customize
crossbow poison dart ammo, you can use this field to set the
intensity of poison. The default value for poison is 1
Default value is 30 for all explosive ammo kinds.
Max value for damage is 1000.
Speed field
For the visible ammo (like grenades and crossbow darts) you
can change the (horizontal) speed.
Default values: Default MaxValue
-------------------------------------------------
Grenade (all types): 128 1024
Darts (all types): 512 1024
-------------------------------------------------
Remarks: you can set
different speeds for each grenade or dart type. This mean
you can have, for example, a dart (like explosive) moving
faster than poisoned dart.
Gravity field
For the visible ammo (like grenades and crossbow darts) you
can change the gravity.
Default values: Default MaxValue
------------------------------------------------
Grenade (all types) 3 255
Darts (all types) 0 255
------------------------------------------------
Remarks: The gravity is not
simply a vertical (down) speed but it is an acceleration
value used to incread the vertical speed.
* For darts
gravity was not foreseen, but you can use it if you wish.
IdAddEffectToAmmo field
This setting works only for visible ammo (grenade and dart).
If you wish you can set a special effect using an AddEffect
script command and then type in this field its id to attach
that effect to this ammo everytime it will be used. For
example if you create an AddEffect to add a blue mist wake
and then type the id in this field, the ammo will have a
blue mist wake.
IdTriggerGroupAtEnd field
This setting works only for visible ammo (grenade and dart).
This field works in a similar way to the previously
described field "IdTriggerGroupWhenHitEnemy" but in this
case it's not important if the ammo hits more or less of the
enemy. The TriggerGroup where you typed the id will be
performed when the ammo hits anything at all - enemies,
wall, floor, statics etc.
In this TriggerGroup the "found enemy index"
will be the index of current ammo. If you place in the
triggergroup some ACTION you can force the performance of
this action on ammo item (in final position) using the
constant TGROUP_USE_FOUND_ITEM_INDEX.
Here is a script I have put together.
Customize=
CUST_AMMO,GRENADE_GUN_AMMO1_ITEM,AMMO_PUSH_LARA,0,7,
IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE,IGNORE
This is for my mission so i don't need some of the other
fields so i just type IGNORE.