setHit: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (2.16 -> 2.18)
 
(66 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma2 |Game name=
|game1= arma2
|version1= 1.00


|1.00|Game version=
|game2= arma2oa
|version2= 1.50


|arg= local |Multiplayer Arguments=
|game3= tkoh
|version3= 1.00


|eff= global |Multiplayer Effects=
|game4= arma3
____________________________________________________________________________________________
|version4= 0.50


| Set damage on a part of an object.
|arg= local
{{Informative | Some part names are in Czech; see [[Translations|translation table]]. }} |DESCRIPTION=
____________________________________________________________________________________________


| object [[setHit]] [part, damage, useEffects] |SYNTAX=
|eff= global


|p1 = [part, damage, useEffects]: [[Array]] |Parameter1=
|gr1= Object Manipulation


|p2= object: [[Object]] - |PARAMETER2=
|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}}
{{!}}}


|p3= part: [[String]] - Name of the part ([[Named_Selection|selection]] name) |Parameter3=
Set damage on a part of an object.
{{Feature|informative|Some part names are in Czech; see the [[ArmA: Armed Assault: Selection Translations|translation table]].}}


|p4= damage: [[Number]] - Damage value ranging 0..1, 0 being fully functional, 1 being destroyed |Parameter4=
|s1= object [[setHit]] [part, damage, useEffects, killer, instigator, breakRotor]


|p5 = {{GVI|arma3|1.67}} useEffects: [[Boolean]] - (Optional, default [[true]]) [[false]] to skip destruction effects |Parameter5=
|p1= object: [[Object]] - [[local]] object


| [[Nothing]] |RETURNVALUE=
|p2= part: [[String]] - name of the part ([[Named_Selection|selection]] name)
____________________________________________________________________________________________


|x1= <code>[[vehicle]] [[player]] [[setHit]] ["motor", 1];</code> |EXAMPLE1=
|p3= damage: [[Number]] - damage value ranging 0..1, 0 being fully functional, 1 being destroyed


|x2= <code>[[vehicle]] [[player]] [[setHit]] ["mala vrtule", 0.95];</code> |EXAMPLE2=
|p4= useEffects: [[Boolean]] - (Optional, default [[true]]) [[false]] to skip destruction effects
|p4since= arma3 1.68


|x3= <code>[[if]] ([[local]] _heli) [[then]] {
|p5= 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.
_heli [[setHit]] ["velka vrtule", 0];
* it can be used to show "killed by player" in debriefing statistics and kill messages in the chat (if death messages are enabled).
} [[else]] {
* it will alter the killer's [[rating]] as if the killer directly killed the unit.
[[hint]] ("Vehicle " + [[str]] _heli + " must be local to this machine to do that!");
* it will be listed as <sqf inline>_killer</sqf> parameter in the [[Arma 3: Event Handlers#Killed|Killed]] event handler.
};</code> |EXAMPLE3=
|p5since= arma3 2.08
____________________________________________________________________________________________


| [[getHit]], [[getHitPointDamage]], [[setHitPointDamage]], [[damage]], [[setDamage]], [[setFuel]], [[setAmmo]], [[getHitIndex]], [[setHitIndex]] |SEEALSO=
|p6= 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.
|p6since= arma3 2.12


<h3 style='display:none'>Notes</h3>
|p7= breakRotor: [[Boolean]] - (Optional, default [[false]]) if the hitpoint is rotor on a helicopter, [[true]] will break the rotor as well as play corresponding sound if 'useEffects' is also [[true]].
<dl class='command_description'>
|p7since= arma3 2.18
<!-- Note Section BEGIN -->


<dd class="notedate">
|r1= [[Nothing]]
<dt class="note">[[User:Deadfast|Deadfast]]
<dd class="note">Damaging specific parts of the vehicle will not update its overall [[damage]] value (as of v1.03):
<code>[[player]] [[setHit]] ["hands", 0.9];
[[hint]] [[str]] ([[damage]] [[player]]); {{cc|will return 0}}</code>


<dd class="notedate">
|x1= <sqf>vehicle player setHit ["motor", 1];</sqf>
<dt class="note">[[User:DenV|denisko.redisko]]
<dd class="note">Direct use of the names of sections of the model is likely a bad practice, and will not work on some addons.
So instead:
<code>_MH60S [[setHit]] ["elektronika", _hit];</code>
should be used:
<code>_MH60S [[setHit]] [<nowiki/>[[getText]] ([[configFile]] >> "cfgVehicles" >> "MH60S" >> "HitPoints" >> "HitAvionics" >> "name"), _hit];</code>


<dd class="notedate">
|x2= <sqf>vehicle player setHit ["mala vrtule", 0.95];</sqf>
<dt class="note">[[User:LongEnoughName|Sa-Matra]]
<dd class="note">Since there is no [[getHit]] (as of A2OA 1.61), you can use [[canMove]] command to check if vehicle is capable of moving.<br>
For land wheeled vehicles canMove will return false if any real wheel (damaging nonexistent wheels doesn't count) has hitpoint damage greater than 0.9.
Having HitEngine damage greater than 0.9 will make canMove to return false as well (plus will result in vehicle exploding).
HitFuel however doesn't make canMove return false even though having high HitFuel damage will make car explode.<br>


For helicopters HitEngine with damage greater than 0.9 will make [[canMove]] return false as well. Having HitHRotor (main rotor) damaged even up to 1 will never make canMove return false. However, if HitVRotor (tail rotor) will have damage greater than 0.703608 it will make [[canMove]] return false (even though some helicopters are controllable and flyable by player with broken tail rotor).<br>
|x3= <sqf>
if (local _heli) then
{
_heli setHit ["velka vrtule", 0];
}
else
{
hint ("Vehicle " + str _heli + " must be local to this machine to do that!");
};
</sqf>


You can use [[canFire]] the same way in order to check if turret hitpoints are not damaged enough to be able to fire. ([[canFire]] always returns [[false]] if there is no gunner in the vehicle).
|seealso= [[getHit]] [[getHitPointDamage]] [[setHitPointDamage]] [[damage]] [[setDamage]] [[setFuel]] [[setAmmo]] [[getHitIndex]] [[setHitIndex]] [[forceHitPointsDamageSync]]
}}


'''Update:''' Since ArmA 3 1.31 [[getHit|getHit]] has been introduced.
{{Note
|user= Deadfast
|timestamp= 20090824110900
|text= Damaging specific parts of the vehicle will not update its overall [[damage]] value (as of v1.03):
<sqf>
player setHit ["hands", 0.9];
hint str (damage player); // will return 0
</sqf>
|game= arma2
}}


<!-- Note Section END -->
{{Note
</dl>
|user= DenV
 
|timestamp= 20110329142500
<h3 style='display:none'>Bottom Section</h3>
|text= Direct use of the names of sections of the model is likely a bad practice, and will not work on some addons.
[[Category:ArmA 2: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
So instead:
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
<sqf>_MH60S setHit ["elektronika", _hit];</sqf>
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
should be used:
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
<sqf>_MH60S setHit [getText (configFile >> "cfgVehicles" >> "MH60S" >> "HitPoints" >> "HitAvionics" >> "name"), _hit];</sqf>
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
}}
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on September 11, 2018 - 19:37 (UTC)</dd>
<dt class="note">[[User:HazJ|HazJ]]</dt>
<dd class="note">
You can use [[getHit]] if you are using 1.64 EOL version.
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 16:06, 8 February 2024

Hover & click on the images for description

Description

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

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, killer, instigator, breakRotor]
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
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.
since Arma 3 logo black.png2.12
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.
since Arma 3 logo black.png2.18
breakRotor: Boolean - (Optional, default false) if the hitpoint is rotor on a helicopter, true will break the rotor as well as play corresponding sound if 'useEffects' is also true.
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 forceHitPointsDamageSync

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];