setDamage: Difference between revisions
Killzone Kid (talk | contribs) No edit summary |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 25: | Line 25: | ||
|gr1= Object Manipulation | |gr1= Object Manipulation | ||
|descr= Sets the damage (or lack thereof) of an object/unit. The alternative syntax allows to skip destruction effects for vehicles and buildings. | |alias= [[setDammage]] | ||
|descr= | |||
{{{!}} class="wikitable float-right align-center-col-2" | |||
{{!}}+ | |||
! {{Link|Category: Event Handlers|Event Handler}} | |||
! Triggered | |||
{{!}}- | |||
{{!}} {{hl|Hit}} | |||
{{!}} {{Icon|unchecked}} | |||
{{!}}- | |||
{{!}} {{hl|HandleDamage}} | |||
{{!}} {{Icon|unchecked}} | |||
{{!}}- | |||
{{!}} {{hl|Killed}} | |||
{{!}} {{Icon|checked}} | |||
{{!}}- | |||
{{!}} {{hl|MPKilled}} | |||
{{!}} {{Icon|checked}} | |||
{{!}}} | |||
Sets the damage (or lack thereof) of an object/unit. The alternative syntax allows to skip destruction effects for vehicles and buildings and set a tree/pole/wall fall direction (away from ''killer''). | |||
|s1= object [[setDamage]] damage | |s1= object [[setDamage]] damage | ||
Line 45: | Line 66: | ||
|p23= useEffects: [[Boolean]] (Optional, default [[true]]) - [[false]] to skip destruction effects | |p23= useEffects: [[Boolean]] (Optional, default [[true]]) - [[false]] to skip destruction effects | ||
|p24= killer: [[Object]] - (Optional, default [[objNull]]) | |p24= {{Icon|serverExec|28}} killer: [[Object]] - (Optional, default [[objNull]]) the entity that caused the damage (can be anything). If the damage leads to the death of the unit, the killer will be used as the object that caused the kill. | ||
* it can be used to show "killed by player" in debriefing statistics and kill messages in the chat (if death messages are enabled). | * it can be used to show "killed by player" in debriefing statistics and kill messages in the chat (if death messages are enabled). | ||
* it will alter the killer's [[rating]] as if the killer directly killed the unit | * it will alter the killer's [[rating]] as if the killer directly killed the unit | ||
* it will be listed as <sqf inline>_killer</sqf> parameter in the [[Arma 3: Event Handlers#Killed|Killed]] event handler | * it will be listed as <sqf inline>_killer</sqf> parameter in the [[Arma 3: Event Handlers#Killed|Killed]] event handler | ||
* it influences a tree/pole/wall fall direction (it will fall ''away'' from ''killer'') | |||
* ''killer'' is ignored if [[setDamage]] is called on a player client machine unless ''object'' is one of these three entity types - see {{Link|#Example 3}} | |||
* MP restricted similar to [[setShotParents]], will be ignored unless executed on the server or headless client in MP | * MP restricted similar to [[setShotParents]], will be ignored unless executed on the server or headless client in MP | ||
|p24since= arma3 2.12 | |p24since= arma3 2.12 | ||
|p25= instigator: [[Object]] - (Optional, default [[objNull]]) | |p25= {{Icon|serverExec|28}} instigator: [[Object]] - (Optional, default [[objNull]]) the person that instigated the damage. | ||
* if a tank is a killer, the tank gunner that pulled the trigger is instigator | * if a tank is a killer, the tank gunner that pulled the trigger is instigator | ||
* it will be listed as <sqf inline>_instigator</sqf> parameter in the [[Arma 3: Event Handlers#Killed|Killed]] event handler | * it will be listed as <sqf inline>_instigator</sqf> parameter in the [[Arma 3: Event Handlers#Killed|Killed]] event handler | ||
* MP restricted similar to [[setShotParents]], will be ignored unless executed on the server or headless client in MP | * MP restricted similar to [[setShotParents]], will be ignored unless executed on the server or headless client in MP | ||
** the above MP restriction does not apply to trees, poles and walls | |||
|p25since= arma3 2.12 | |p25since= arma3 2.12 | ||
Line 63: | Line 87: | ||
|x2= <sqf>_house1 setDamage [1, false];</sqf> | |x2= <sqf>_house1 setDamage [1, false];</sqf> | ||
|x3= <sqf> | |||
// executed on a client | |||
_remoteVehicle setDamage [1, true, player]; // killer (here, player) is not considered if the command is not called on the server | |||
// the vehicle still gets destroyed | |||
_tree setDamage [1, true, player]; // the tree is destroyed and falls away from the player | |||
_pole setDamage [1, true, player]; // these three cases are the only ones where ''killer'' is considered | |||
_wall setDamage [1, true, player]; // when setDamage is called on a non-server machine (neither server or headless client) | |||
</sqf> | |||
|seealso= [[setVehicleArmor]] [[damage]] [[setHit]] [[getHit]] [[getHitIndex]] [[setHitIndex]] [[getHitPointDamage]] [[setHitPointDamage]] | |seealso= [[setVehicleArmor]] [[damage]] [[setHit]] [[getHit]] [[getHitIndex]] [[setHitIndex]] [[getHitPointDamage]] [[setHitPointDamage]] | ||
Line 75: | Line 109: | ||
{{Note | {{Note | ||
|user= | |user= KamikazeXeX | ||
|timestamp= 20150529112300 | |timestamp= 20150529112300 | ||
|text= Using this possible overrides individual hit damages such as [[setHitPointDamage]] ["HitHead", _value]; if you're having issues try setting hitdamage ''after'' setdamage. | |text= Using this possible overrides individual hit damages such as [[setHitPointDamage]] ["HitHead", _value]; if you're having issues try setting hitdamage ''after'' setdamage. | ||
Line 84: | Line 118: | ||
|timestamp= 20210624103100 | |timestamp= 20210624103100 | ||
|text= You are able to repair buildings with this command if you just store the original object and use setDamage on this and not on the wreck which is shown after the building was destroyed. This works in debug console when pointing a house: | |text= You are able to repair buildings with this command if you just store the original object and use setDamage on this and not on the wreck which is shown after the building was destroyed. This works in debug console when pointing a house: | ||
<sqf> | <sqf> | ||
0 spawn | |||
{ | { | ||
private _house = cursorObject; | private _house = cursorObject; | ||
Line 90: | Line 125: | ||
sleep 5; | sleep 5; | ||
_house setDamage 0; | _house setDamage 0; | ||
};</sqf> | }; | ||
</sqf> | |||
}} | }} |
Latest revision as of 23:52, 18 May 2025
Description
- Description:
-
Event Handler Triggered Hit HandleDamage Killed MPKilled - Alias:
- setDammage
- Groups:
- Object Manipulation
Syntax
- Syntax:
- object setDamage damage
- Parameters:
- object: Object
- damage: Number - range 0..1, 0 = pristine/healthy condition, 1 = entirely destroyed/killed
- Return Value:
- Nothing
Alternative Syntax
- Syntax:
- object setDamage [damage, useEffects, killer, instigator]
- Parameters:
- object: Object
- damage: Number - range 0..1, 0 = pristine/healthy condition, 1 = entirely destroyed/killed
- useEffects: Boolean (Optional, default true) - false to skip destruction effects
- since
2.12
- SEServer killer: Object - (Optional, default objNull) the entity that caused the damage (can be anything). If the damage leads to the death of the unit, the killer will be used as the object that caused the kill.
- it can be used to show "killed by player" in debriefing statistics and kill messages in the chat (if death messages are enabled).
- it will alter the killer's rating as if the killer directly killed the unit
- it will be listed as _killer parameter in the Killed event handler
- it influences a tree/pole/wall fall direction (it will fall away from killer)
- killer is ignored if setDamage is called on a player client machine unless object is one of these three entity types - see Example 3
- MP restricted similar to setShotParents, will be ignored unless executed on the server or headless client in MP
- since
2.12
- SEServer instigator: Object - (Optional, default objNull) the person that instigated the damage.
- if a tank is a killer, the tank gunner that pulled the trigger is instigator
- it will be listed as _instigator parameter in the Killed event handler
- MP restricted similar to setShotParents, will be ignored unless executed on the server or headless client in MP
- the above MP restriction does not apply to trees, poles and walls
- Return Value:
- Nothing
Examples
- Example 1:
- _soldier1 setDamage 1;
- Example 2:
- Example 3:
- // executed on a client _remoteVehicle setDamage [1, true, player]; // killer (here, player) is not considered if the command is not called on the server // the vehicle still gets destroyed _tree setDamage [1, true, player]; // the tree is destroyed and falls away from the player _pole setDamage [1, true, player]; // these three cases are the only ones where killer is considered _wall setDamage [1, true, player]; // when setDamage is called on a non-server machine (neither server or headless client)
Additional Information
- See also:
- setVehicleArmor damage setHit getHit getHitIndex setHitIndex getHitPointDamage setHitPointDamage
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
- Posted on Apr 17, 2006 - 07:36 (UTC)
-
In Operation Flashpoint, setting a unit's damage to a negative value will set it is health to full, but impair their aim.
- Posted on May 29, 2015 - 11:23 (UTC)
- Using this possible overrides individual hit damages such as setHitPointDamage ["HitHead", _value]; if you're having issues try setting hitdamage after setdamage.
- Posted on Jun 24, 2021 - 10:31 (UTC)
-
You are able to repair buildings with this command if you just store the original object and use setDamage on this and not on the wreck which is shown after the building was destroyed. This works in debug console when pointing a house:
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Object Manipulation
- Scripting Commands: Global Effect