setHit: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Some wiki formatting)
Line 41: Line 41:
|r1= [[Nothing]]
|r1= [[Nothing]]


|x1= <code>[[vehicle]] [[player]] [[setHit]] ["motor", 1];</code>
|x1= <sqf>vehicle player setHit ["motor", 1];</sqf>


|x2= <code>[[vehicle]] [[player]] [[setHit]] ["mala vrtule", 0.95];</code>
|x2= <sqf>vehicle player setHit ["mala vrtule", 0.95];</sqf>


|x3= <code>[[if]] ([[local]] _heli) [[then]]
|x3= <sqf>
if (local _heli) then
{
{
_heli [[setHit]] ["velka vrtule", 0];
_heli setHit ["velka vrtule", 0];
}
}
[[else]]
else
{
{
[[hint]] ("Vehicle " + [[str]] _heli + " must be local to this machine to do that!");
hint ("Vehicle " + str _heli + " must be local to this machine to do that!");
};</code>
};
</sqf>


|seealso= [[getHit]] [[getHitPointDamage]] [[setHitPointDamage]] [[damage]] [[setDamage]] [[setFuel]] [[setAmmo]] [[getHitIndex]] [[setHitIndex]]
|seealso= [[getHit]] [[getHitPointDamage]] [[setHitPointDamage]] [[damage]] [[setDamage]] [[setFuel]] [[setAmmo]] [[getHitIndex]] [[setHitIndex]]
Line 61: Line 63:
|timestamp= 20090824110900
|timestamp= 20090824110900
|text= Damaging specific parts of the vehicle will not update its overall [[damage]] value (as of v1.03):
|text= Damaging specific parts of the vehicle will not update its overall [[damage]] value (as of v1.03):
<code>[[player]] [[setHit]] ["hands", 0.9];
<sqf>
[[hint]] [[str]] ([[damage]] [[player]]); {{cc|will return 0}}</code>
player setHit ["hands", 0.9];
hint str (damage player); // will return 0
</sqf>
|game= arma2
|game= arma2
}}
}}
Line 71: Line 75:
|text= Direct use of the names of sections of the model is likely a bad practice, and will not work on some addons.
|text= Direct use of the names of sections of the model is likely a bad practice, and will not work on some addons.
So instead:
So instead:
<code>_MH60S [[setHit]] ["elektronika", _hit];</code>
<sqf>_MH60S setHit ["elektronika", _hit];</sqf>
should be used:
should be used:
<code>_MH60S [[setHit]] [<nowiki/>[[getText]] ([[configFile]] >> "cfgVehicles" >> "MH60S" >> "HitPoints" >> "HitAvionics" >> "name"), _hit];</code>
<sqf>_MH60S setHit [getText (configFile >> "cfgVehicles" >> "MH60S" >> "HitPoints" >> "HitAvionics" >> "name"), _hit];</sqf>
}}
}}

Revision as of 16:20, 10 May 2022

Hover & click on the images for description

Description

Description:
Set damage on a part of an object.
Some part names are in Czech; see the translation table.
Groups:
Object Manipulation

Syntax

Syntax:
object setHit [part, damage, useEffects, instigator]
Parameters:
object: Object - local object
part: String - Name of the part (selection name)
damage: Number - Damage value ranging 0..1, 0 being fully functional, 1 being destroyed
since Arma 3 logo black.png1.68
useEffects: Boolean - (Optional, default true) false to skip destruction effects
since Arma 3 logo black.png2.08
instigator: Object - (Optional, default objNull) The object that caused the damage. If the damage leads to the death of the unit, the instigator 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 instigator's rating as if the instigator directly killed the unit.
  • it will be listed as _killer parameter in the Killed event handler.
Return Value:
Nothing

Examples

Example 1:
vehicle player setHit ["motor", 1];
Example 2:
vehicle player setHit ["mala vrtule", 0.95];
Example 3:
if (local _heli) then { _heli setHit ["velka vrtule", 0]; } else { hint ("Vehicle " + str _heli + " must be local to this machine to do that!"); };

Additional Information

See also:
getHit getHitPointDamage setHitPointDamage damage setDamage setFuel setAmmo getHitIndex setHitIndex

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
Deadfast - c
Posted on Aug 24, 2009 - 11:09 (UTC)

Damaging specific parts of the vehicle will not update its overall damage value (as of v1.03):

player setHit ["hands", 0.9]; hint str (damage player); // will return 0

DenV - c
Posted on Mar 29, 2011 - 14:25 (UTC)
Direct use of the names of sections of the model is likely a bad practice, and will not work on some addons. So instead:
_MH60S setHit ["elektronika", _hit];
should be used:
_MH60S setHit [getText (configFile >> "cfgVehicles" >> "MH60S" >> "HitPoints" >> "HitAvionics" >> "name"), _hit];