setDamage: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "|1.5 " to "| ")
m (Text replacement - "{{Link|:Category:" to "{{Link|Category:")
 
(51 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


| ofp
|game1= ofp
|version1=


|
|game2= arma1
|version2= 1.00
 
|game3= arma2
|version3= 1.00
 
|game4= arma2oa
|version4= 1.50
 
|game5= tkoh
|version5= 1.00
 
|game6= arma3
|version6= 0.50


|eff= global
|eff= global
Line 11: Line 25:
|gr1= Object Manipulation
|gr1= Object Manipulation


| Sets an object's damage value in the range 0..1, 0 meaning fully functional and 1 completely destroyed / dead.<br>
|alias= [[setDammage]]
The alternative syntax allows to switch off destruction effects.


{{Informative | Identical to [[setDammage]], typo aside.}}
|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}}
{{!}}}


| object [[setDamage]] damage
Sets the damage (or lack thereof) of an object/unit. The alternative syntax allows to skip destruction effects for vehicles and buildings.
{{Feature|arma3|
Since {{arma3}} v2.12 it is possible to influence trees, poles and walls fall direction by supplying the ''killer'' entity param - the fall direction will then be away from ''killer''<nowiki/>'s position.
In multiplayer, the ''killer'' argument is ignored if the command is not executed on the server unless it targets trees, walls or poles - see {{Link|#Syntax 2}} and {{Link|#Example 3}}.
}}
 
|s1= object [[setDamage]] damage


|p1= object: [[Object]]
|p1= object: [[Object]]


|p2= damage: [[Number]]
|p2= damage: [[Number]] - range 0..1, 0 = pristine/healthy condition, 1 = entirely destroyed/killed


| [[Nothing]]
|r1= [[Nothing]]


|s2= object [[setDamage]] [damage, useEffects] {{Since|arma3|1.67|y}}
|s2= object [[setDamage]] [damage, useEffects, killer, instigator]


|p21= object: [[Object]] |PARAMETER21=
|s2since= arma3 1.68


|p22= [damage, useEffects]: [[Array]] |PARAMETER22=
|p21= object: [[Object]]


|p23= damage: [[Number]] |PARAMETER23=
|p22= damage: [[Number]] - range 0..1, 0 = pristine/healthy condition, 1 = entirely destroyed/killed


|p24= useEffects: [[Boolean]] - [[false]] to skip destruction effects. Default: [[true]] |PARAMETER24=
|p23= useEffects: [[Boolean]] (Optional, default [[true]]) - [[false]] to skip destruction effects
 
|p24= {{Icon|serverExec|28}} killer: [[Object]] - (Optional, default [[objNull]]) the entity that caused the damage. 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 <sqf inline>_killer</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
|p24since= arma3 2.12
 
|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
* 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
** the above MP restriction does not apply to trees, poles and walls
|p25since= arma3 2.12


|r2= [[Nothing]]
|r2= [[Nothing]]
 
|x1= <code>_soldier1 [[setDamage]] 1;</code>


|x2= <code>_house1 [[setDamage]] [1, [[false]]];</code>
|x1= <sqf>_soldier1 setDamage 1;</sqf>


| [[setVehicleArmor]], [[damage]], [[getDammage]], [[setHit]], [[getHit]], [[getHitIndex]], [[setHitIndex]], [[getHitPointDamage]], [[setHitPointDamage]]
|x2= <sqf>_house1 setDamage [1, false];</sqf>
}}


<dl class="command_description">
|x3= <sqf>
<!-- Note Section BEGIN -->
// executed on a client
_remoteVehicle setDamage [1, true, player]; // killer 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
</sqf>


<dd class="notedate">Posted on May 29, 2015 - 11:23 (UTC)</dd>
|seealso= [[setVehicleArmor]] [[damage]] [[setHit]] [[getHit]] [[getHitIndex]] [[setHitIndex]] [[getHitPointDamage]] [[setHitPointDamage]]
<dt class="note">[[User:KamikazeXeX|KamikazeXeX]]</dt>
}}
<dd class="note">
Using this possible overrides individual hit damages such as [[setHitPointDamage]] ["HitHead", _value]; if you're having issues try setting hitdamage ''after'' setdamage.
</dd>


<dd class="notedate">Posted on April 17, 2006‎ - 07:36 (CEST)</dd>
{{Note
<dt class="note">[[User:Fragorl|Fragorl]]
|user= Fragorl
<dd class="note">In '''OFP''', setting a unit's damage to a negative value will set it is health to full, but impair their aim.
|timestamp= 20060417073600
|text= In '''{{ofp}}''', setting a unit's damage to a negative value will set it is health to full, but impair their aim.
|game= ofp
}}


<!-- Note Section END -->
{{Note
</dl>
|user= KamikazXeX
|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.
}}


[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
{{Note
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
|user= Sarogahtyp
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
|timestamp= 20210624103100
{{GameCategory|arma1|Scripting Commands}}
|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:
{{GameCategory|arma2|Scripting Commands}}
<sqf>
{{GameCategory|arma3|Scripting Commands}}
0 spawn
{{GameCategory|tkoh|Scripting Commands}}
{
private _house = cursorObject;
_house setDamage 1;
sleep 5;
_house setDamage 0;
};
</sqf>
}}

Latest revision as of 14:52, 16 October 2024

Hover & click on the images for description

Description

Description:
Event Handler Triggered
Hit Unchecked
HandleDamage Unchecked
Killed Checked
MPKilled Checked

Sets the damage (or lack thereof) of an object/unit. The alternative syntax allows to skip destruction effects for vehicles and buildings.

Arma 3
Since Arma 3 v2.12 it is possible to influence trees, poles and walls fall direction by supplying the killer entity param - the fall direction will then be away from killer's position. In multiplayer, the killer argument is ignored if the command is not executed on the server unless it targets trees, walls or poles - see Syntax 2 and Example 3.
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 Arma 3 logo black.png2.12
SEServer killer: Object - (Optional, default objNull) the entity that caused the damage. 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
  • MP restricted similar to setShotParents, will be ignored unless executed on the server or headless client in MP
since Arma 3 logo black.png2.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:
_house1 setDamage [1, false];
Example 3:
// executed on a client _remoteVehicle setDamage [1, true, player]; // killer 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

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
Fragorl - c
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.

KamikazXeX - c
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.
Sarogahtyp - c
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:
0 spawn { private _house = cursorObject; _house setDamage 1; sleep 5; _house setDamage 0; };