DamageCore is an extension module for the Wire Expression 2 Chip. It enables players to detect and/or deal damage to other entities.
The DamageCore is available on the Steam Workshop! Go to the DamageCore Workshop Page and press Subscribe
. For can go to the Expression 2 Core Collection for more extensions.
Clone this repository into your steamapps\common\GarrysMod\garrysmod\addons
folder using this command if you are using git:
git clone https://github.com/sirpapate/damagecore.git
Declaration |
Replacing |
Description |
event damage(Victim:entity, Damage:damage) |
runOnDmg, dmgClk, lastDamage, lastDamageVictim |
Triggered when an entity takes damage. |
event trackedDamage(Victim:entity, Damage:damage) |
|
Triggered when an entity in the list of tracked (with "E:trackDamage()") entities takes damage. |
event playerDamage(Victim:entity, Damage:damage) |
|
Triggered when a player takes damage. |
Function |
Return |
Description |
runOnDmg(N) |
|
If set to 1, E2 will run when an entity takes damage. |
runOnDmg(N,E) |
|
If set to 1, E2 will run when specified entity takes damage. |
runOnDmg(N,R) |
|
If set to 1, E2 will run when specified entities take damage. |
E:trackDamage() |
|
E2 will run when the specified entity takes damage. |
T:trackDamage() |
|
E2 will run when the specified entities take damage. |
E:stopTrackDamage() |
|
E2 will no longer run when the specified entity takes damage. |
R:stopTrackDamage() |
|
E2 will no longer run when the specified entities take damage. |
getDamageTrackedEntities() |
R |
Returns a array of all tracked entities. |
E:isDamageTracked() |
N |
Returns 1 if the entity is tracked. Returns 0 otherwise. |
dmgClk() |
N |
Returns 1 if the chip is being executed because of a damage event. Returns 0 otherwise. |
lastDamage() |
XDM |
Returns the last damage. |
lastDamageVictim() |
E |
Returns the victim of the last damage. |
Function |
Return |
Description |
damage() |
XDM |
Makes an empty damage. |
XDM:clone() |
XDM |
Returns a copy of the damage. |
XDM:toTable() |
T |
Converts the damage into a table. |
XDM:getDamage() |
N |
Returns the damage amount. |
XDM:getAttacker() |
E |
Returns the attacker of damage. |
XDM:getForce() |
V |
Returns a vector representing the damage force. |
XDM:getPosition() |
V |
Returns the position where the damage was or is going to be applied to. |
XDM:getType() |
N |
Returns a bitflag which indicates the damage type of the damage. |
XDM:getInflictor() |
E |
Returns the inflictor of the damage. This is not necessarily a weapon. |
XDM:isBulletDamage() |
N |
Returns 1 if the damage was caused by a bullet. |
XDM:isExplosionDamage() |
N |
Returns 1 if the damage contains explosion damage. |
XDM:isFallDamage() |
N |
Returns 1 if the damage contains fall damage. |
XDM:setDamage(N) |
XDM |
Sets the amount of damage. Returns itself. |
XDM:setAttacker(E) |
XDM |
Sets the attacker of the damage. Returns itself. |
XDM:setForce(V) |
XDM |
Sets the directional force of the damage. Returns itself. |
XDM:setPosition(V) |
XDM |
Sets the position of where the damage gets applied to. Returns itself. |
XDM:setType(N) |
XDM |
Sets the damage type. Returns itself. |
XDM:setInflictor(E) |
XDM |
Sets the inflictor of the damage for example a weapon. Returns itself. |
Applying Damage Functions
Function |
Return |
Description |
canDamage(E) |
N |
Returns 1 if the entity can be damaged by the player. |
E:takeDamage(XDM) |
|
Applies the damage specified by the damage info to the entity. |
E:takeDamage(N,E) |
|
Applies the specified amount of damage to the entity. (Damage Amount) |
E:takeDamage(N,E) |
|
Applies the specified amount of damage to the entity. (Damage Amount, Attacker) |
E:takeDamage(N,E,E) |
|
Applies the specified amount of damage to the entity. (Damage Amount, Attacker, Inflictor) |
blastDamage(XDM,V,N) |
|
Applies spherical damage based on damage info to all entities in the specified radius. (Damage, Position, Radius) |
blastDamage(E,E,V,N,N) |
|
Applies explosion damage to all entities in the specified radius. (Attacker, Inflictor, Position, Radius, Damage Amount) |