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

◆ EEHitBy()

override void ManBase::EEHitBy ( TotalDamageResult damageResult,
int damageType,
EntityAI source,
int component,
string dmgZone,
string ammo,
vector modelPos,
float speedCoef )
inlineprotected

DamageType.EXPLOSION & FlashGrenade

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

1087 {
1088 super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
1089
1090 if (m_AdminLog)
1091 {
1092 m_AdminLog.PlayerHitBy(damageResult, damageType, this, source, component, dmgZone, ammo);
1093 }
1094
1095 if (damageResult != null && damageResult.GetDamage(dmgZone, "Shock") > 0)
1096 {
1098
1099 if (!IsUnconscious())
1100 {
1101 if (GetGame().ConfigIsExisting("cfgAmmo " + ammo + " unconRefillModifier"))
1102 {
1103 m_UnconRefillModifier = GetGame().ConfigGetInt("cfgAmmo " + ammo + " unconRefillModifier");
1104 }
1105 else
1106 {
1108 }
1109 }
1110 }
1111
1113 if (damageType == DamageType.EXPLOSION && ammo == "FlashGrenade_Ammo")
1114 {
1116 }
1117
1118 //new bleeding computation
1119 //---------------------------------------
1120 if (damageResult != null && GetBleedingManagerServer())
1121 {
1122 float dmg = damageResult.GetDamage(dmgZone, "Blood");
1123 GetBleedingManagerServer().ProcessHit(dmg, source, component, dmgZone, ammo, modelPos);
1124 }
1125 //---------------------------------------
1126
1127 #ifdef DIAG_DEVELOPER
1128 if (DiagMenu.GetBool(DiagMenuIDs.MELEE_DEBUG))
1129 Print("EEHitBy() | " + GetDisplayName() + " hit by " + source.GetDisplayName() + " to " + dmgZone);
1130
1131 PluginRemotePlayerDebugServer plugin_remote_server = PluginRemotePlayerDebugServer.Cast(GetPlugin(PluginRemotePlayerDebugServer));
1132 if (plugin_remote_server)
1133 {
1134 plugin_remote_server.OnDamageEvent(this, damageResult);
1135 }
1136 #endif
1137
1138 if (GetGame().IsDebugMonitor())
1139 m_DebugMonitorValues.SetLastDamage(source.GetDisplayName());
1140
1141 if (m_ActionManager)
1142 m_ActionManager.Interrupt();
1143
1144 int transferShockToDamageCoef = g_Game.ConfigGetInt(string.Format("%1 %2 DamageApplied transferShockToDamage", CFG_AMMO, ammo));
1145 if (transferShockToDamageCoef == 1)
1146 {
1147 //Print("PlayerBase | EEHitBy | nonlethal hit");
1148 AddHealth("", "Health", -ConvertNonlethalDamage(damageResult.GetDamage(dmgZone, "Shock"), damageType));
1149 if (dmgZone != "Head")
1150 AddHealth(dmgZone, "Health", -damageResult.GetDamage(dmgZone, "Shock")); //Also deal damage to zone health, no dmg reduction
1151 }
1152
1153 if (GetGame().IsServer())
1154 {
1155 if (GetHealth("RightLeg", "Health") <= 1 || GetHealth("LeftLeg", "Health") <= 1 || GetHealth("RightFoot", "Health") <= 1 || GetHealth("LeftFoot", "Health") <= 1)
1156 {
1157 if (GetModifiersManager().IsModifierActive(eModifiers.MDF_BROKEN_LEGS))//effectively resets the modifier
1158 {
1159 GetModifiersManager().DeactivateModifier(eModifiers.MDF_BROKEN_LEGS);
1160 }
1161 GetModifiersManager().ActivateModifier(eModifiers.MDF_BROKEN_LEGS);
1162 }
1163
1164 if (ammo == "Bullet_CupidsBolt" && IsAlive())
1165 {
1166 DamageSystem.ResetAllZones(this);
1167 m_ModifiersManager.ResetAll();
1168 m_ModifiersManager.ActivateModifier(eModifiers.MDF_IMMUNITYBOOST);
1169
1170 // bleeding sources
1172 m_BleedingManagerServer.RemoveAllSources();
1173
1174 // Stats
1175 if (GetPlayerStats())
1176 {
1177 int bloodType = GetStatBloodType().Get();
1178 float energyValue = GetStatEnergy().Get();
1179 float waterValue = GetStatWater().Get();
1180 float heatBuffer = GetStatHeatBuffer().Get();
1181 float heatComfort = GetStatHeatComfort().Get();
1182
1183 GetPlayerStats().ResetAllStats();
1184
1185 GetStatBloodType().Set(bloodType);
1186 GetStatWater().Set(waterValue);
1187 GetStatEnergy().Set(energyValue);
1188 GetStatHeatBuffer().Set(heatBuffer);
1189 GetStatHeatComfort().Set(heatComfort);
1190 }
1191
1192 // Agents
1193 if (m_AgentPool)
1194 m_AgentPool.RemoveAllAgents();
1195
1196 if (m_StaminaHandler)
1197 m_StaminaHandler.SetStamina(GameConstants.STAMINA_MAX);
1198
1199 // uncon
1200 if (IsUnconscious())
1201 DayZPlayerSyncJunctures.SendPlayerUnconsciousness(this, false);
1202 }
1203 }
1204
1205 m_ShockHandler.CheckValue(true);
1206
1207 //analytics
1208 GetGame().GetAnalyticsServer().OnEntityHit(source, this);
1209 }
DamageType
exposed from C++ (do not change)
Определения DamageSystem.c:11
DayZGame g_Game
Определения DayZGame.c:3868
DiagMenuIDs
Определения EDiagMenuIDs.c:2
EStaminaModifiers
Определения EStaminaModifiers.c:2
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
static string GetDisplayName(int liquid_type)
Определения Liquid.c:382
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:316
void OnEntityHit(EntityAI source, Man target)
Определения AnalyticsManagerServer.c:25
proto native int ConfigGetInt(string path)
Get int value from config on path.
AnalyticsManagerServer GetAnalyticsServer()
Определения Game.c:1508
proto int GetTime()
returns mission time in milliseconds
override bool IsUnconscious()
Определения PlayerBase.c:3536
ref PlayerAgentPool m_AgentPool
Определения PlayerBase.c:44
float m_LastShockHitTime
Определения PlayerBase.c:120
BleedingSourcesManagerServer GetBleedingManagerServer()
Определения PlayerBase.c:2655
PlayerStat< float > GetStatEnergy()
Определения PlayerBase.c:7618
ModifiersManager GetModifiersManager()
Определения PlayerBase.c:7595
ref DebugMonitorValues m_DebugMonitorValues
Определения PlayerBase.c:56
ref BleedingSourcesManagerServer m_BleedingManagerServer
Определения PlayerBase.c:38
PlayerStat< float > GetStatHeatComfort()
Определения PlayerBase.c:7627
float m_UnconRefillModifier
Определения PlayerBase.c:154
ref ModifiersManager m_ModifiersManager
Определения PlayerBase.c:41
PlayerStat< float > GetStatWater()
Определения PlayerBase.c:7600
PlayerStat< int > GetStatBloodType()
Определения PlayerBase.c:7681
StaminaHandler GetStaminaHandler()
Определения PlayerBase.c:1854
float ConvertNonlethalDamage(float damage, DamageType damageType)
Определения PlayerBase.c:1231
PluginAdminLog m_AdminLog
Определения PlayerBase.c:272
PlayerStats GetPlayerStats()
Определения PlayerBase.c:1844
ref StaminaHandler m_StaminaHandler
Определения PlayerBase.c:50
ActionManagerBase m_ActionManager
Определения PlayerBase.c:43
ref ShockHandler m_ShockHandler
Определения PlayerBase.c:52
PlayerStat< float > GetStatHeatBuffer()
Определения PlayerBase.c:7690
void DepleteStamina(EStaminaModifiers modifier, float dT=-1)
Определения StaminaHandler.c:970
proto native float GetDamage(string zoneName, string healthType)
eModifiers
Определения eModifiers.c:2
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
const string CFG_AMMO
Определения constants.c:223
proto native bool IsModifierActive()
is modifier active

Перекрестные ссылки CFG_AMMO, component, CGame::ConfigGetInt(), ConvertNonlethalDamage(), g_Game, CGame::GetAnalyticsServer(), GetBleedingManagerServer(), DiagMenu::GetBool(), TotalDamageResult::GetDamage(), GetDisplayName(), GetGame(), GetModifiersManager(), GetPlayerStats(), GetPlugin(), GetStaminaHandler(), GetStatBloodType(), GetStatEnergy(), GetStatHeatBuffer(), GetStatHeatComfort(), GetStatWater(), CGame::GetTime(), IsModifierActive(), IsUnconscious(), m_ActionManager, m_AdminLog, m_AgentPool, m_BleedingManagerServer, m_DebugMonitorValues, m_LastShockHitTime, m_ModifiersManager, m_ShockHandler, m_StaminaHandler, m_UnconRefillModifier, AnalyticsManagerServer::OnEntityHit(), Print(), DayZPlayerSyncJunctures::SendPlayerUnconsciousness() и GameConstants::STAMINA_MAX.