DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnSteppedOn()

override void OnSteppedOn ( EntityAI victim)
private

CarScript specific reaction on LandMineTrap

См. определение в файле Trap_LandMine.c строка 101

102 {
103 int i;
104
105 if (GetGame().IsServer() && victim)
106 {
107 if (!victim.GetAllowDamage())
108 {
109 return;
110 }
111
112 if (victim.IsInherited(CarScript))
113 {
115 Param1<EntityAI> params = new Param1<EntityAI>(victim);
116 m_UpdateTimer.Run(UPDATE_TIMER_INTERVAL, this, "OnUpdate", params, true);
117
118 return;
119 }
120 else
121 {
122 //Check if we have a player
123 PlayerBase victim_PB = PlayerBase.Cast(victim);
124 if (victim_PB && victim_PB.IsAlive())
125 {
126 int randNum; //value used for probability evaluation
127 randNum = Math.RandomInt(0, 100);
128 if (randNum <= BROKEN_LEG_PROB)
129 {
130 float damage = victim_PB.GetMaxHealth("RightLeg", ""); //deal 100% damage to break legs
131 victim_PB.DamageAllLegs( damage );
132 }
133
134 randNum = Math.RandomInt(0, 100);
135 if (randNum < BLEED_SOURCE_PROB)
136 {
137 for (i = 0; i < MAX_BLEED_SOURCE; i++)
138 {
139 //We add two bleeding sources max to lower half
140 randNum = Math.RandomIntInclusive(0, PlayerBase.m_BleedingSourcesLow.Count() - 1);
141
142 victim_PB.m_BleedingManagerServer.AttemptAddBleedingSourceBySelection(PlayerBase.m_BleedingSourcesLow[randNum]);
143 }
144 }
145
146 DamageClothing(victim_PB);
147 }
148 else
149 {
150 ItemBase victim_IB = ItemBase.Cast(victim);
151 if (victim_IB)
152 {
153 MiscGameplayFunctions.DealAbsoluteDmg(victim_IB, DAMAGE_TRIGGER_MINE);
154 }
155 }
156
157 Explode(DamageType.EXPLOSION);
158 }
159
160 DeleteThis();
161 }
162
163 super.OnSteppedOn(victim);
164 }
DamageType
exposed from C++ (do not change)
Определения DamageSystem.c:11
ref Timer m_UpdateTimer
Определения RadialMenu.c:20
override void Explode(int damageType, string ammoType="")
Определения Trap_LandMine.c:220
void DeleteThis()
Определения Trap_LandMine.c:193
const int BROKEN_LEG_PROB
Определения Trap_LandMine.c:13
const int MAX_BLEED_SOURCE
Определения Trap_LandMine.c:15
const int BLEED_SOURCE_PROB
Определения Trap_LandMine.c:14
const float UPDATE_TIMER_INTERVAL
Определения TrapBase.c:15
const int DAMAGE_TRIGGER_MINE
Определения TrapBase.c:14
void DamageClothing(PlayerBase player)
Определения TrapBase.c:664
Определения CivilianSedan.c:2
Определения InventoryItem.c:731
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
proto native CGame GetGame()
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Определения EnMath.c:54

Перекрестные ссылки BLEED_SOURCE_PROB, BROKEN_LEG_PROB, DAMAGE_TRIGGER_MINE, DamageClothing(), DeleteThis(), Explode(), GetGame(), m_UpdateTimer, MAX_BLEED_SOURCE, Math::RandomInt(), Math::RandomIntInclusive() и UPDATE_TIMER_INTERVAL.