DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
PluginTransmissionAgents.c
См. документацию.
7
13class PluginTransmissionAgents extends PluginBase
14{
17 bool m_IsConstructed = false;
18
20 {
21 //add new agents here
23 RegisterAgent(new CholeraAgent);
24 RegisterAgent(new SalmonellaAgent);
25 RegisterAgent(new BrainAgent);
27 RegisterAgent(new ChemicalAgent);
29 RegisterAgent(new NerveAgent);
33 }
34
40 {
41 m_AgentList.Insert(agent.GetAgentType(), agent);
42 }
43
48 {
49 string agent_name;
50 int agent_type;
51
52 for(int i = 0; i < m_AgentList.Count();i++)
53 {
54 AgentBase agent = m_AgentList.GetElement(i);
55 agent_name = agent.GetName();
56 agent_type = agent.GetAgentType();
57 m_SimpleAgentList.Insert(agent_type, agent_name);
58 }
59 }
60
69
83
89 static string GetNameByID(int agent_id)
90 {
91 return m_AgentList.Get(agent_id).GetName();
92 }
93
99 {
100 target.RemoveAllAgents();
101 }
102
108 static void RemoveAgent(EntityAI target, int agent_id)
109 {
110 target.RemoveAgent(agent_id);
111 }
112
118 protected float GetAgentTransferabilityIn(int agent_id)
119 {
120 if( !m_AgentList.Get(agent_id) ) return 0;
121 return m_AgentList.Get(agent_id).GetTransferabilityIn();
122 }
123
125 {
126 AgentBase agent = m_AgentList.Get(agentId);
127 if (!agent)
128 return true;
129
130 return agent.GrowDuringMedicalDrugsAttack(drugType, player);
131 }
132
136 float GetDieOffSpeed( int agent_id )
137 {
138 if( !m_AgentList.Get(agent_id) )
139 return 0;
140 return m_AgentList.Get(agent_id).GetDieOffSpeed();
141 }
142
149 float GetAgentDieOffSpeedEx(int agent_id, PlayerBase player)
150 {
151 if( !m_AgentList.Get(agent_id) )
152 return true;
153 return m_AgentList.Get(agent_id).GetDieOffSpeedEx(player);
154 }
155
159 EStatLevels GetPotency( int agent_id )
160 {
161 if( !m_AgentList.Get(agent_id) )
162 return 0;
163 return m_AgentList.Get(agent_id).GetPotency();
164 }
165
173 {
174 if( !m_AgentList.Get(agent_id) )
175 return true;
176 return m_AgentList.Get(agent_id).GetPotencyEx(player);
177 }
178
185 float GetAgentInvasibilityEx(int agent_id, PlayerBase player)
186 {
187 if( !m_AgentList.Get(agent_id) )
188 return true;
189 return m_AgentList.Get(agent_id).GetInvasibilityEx(player);
190 }
191
196 {
197 if(!m_AgentList.Get(agent_id))
198 return 0;
199 return m_AgentList.Get(agent_id).GetDrugResistance(drugType, player);
200 }
201
202
206 float GetAgentAntiboticsResistance( int agent_id )
207 {
208 if( !m_AgentList.Get(agent_id) )
209 return 0;
210 return m_AgentList.Get(agent_id).GetAntiboticsResistance();
211 }
212
219 float GetAgentAntiboticsResistanceEx( int agent_id , PlayerBase player)
220 {
221 if( !m_AgentList.Get(agent_id) )
222 return 0;
223 return m_AgentList.Get(agent_id).GetAntibioticsResistanceEx(player);
224 }
225
231 protected float GetAgentTransferabilityOut( int agent_id )
232 {
233 if(!m_AgentList.Get(agent_id))
234 return 0;
235 return m_AgentList.Get(agent_id).GetTransferabilityOut();
236 }
237
243 protected float GetAgentTransferabilityAirOut( int agent_id )
244 {
245 if(!m_AgentList.Get(agent_id))
246 return 0;
247 return m_AgentList.Get(agent_id).GetTransferabilityAirOut();
248 }
249
255 float GetAgentInvasibility( int agent_id )
256 {
257 if( !m_AgentList.Get(agent_id) )
258 return 0;
259 return m_AgentList.Get(agent_id).GetInvasibility();
260 }
261
265 float GetAgentDigestibility( int agent_id )
266 {
267 if( !m_AgentList.Get(agent_id) )
268 return 0;
269 return m_AgentList.Get(agent_id).GetDigestibility();
270 }
271
278 float GetAgentDigestibilityEx(int agent_id, PlayerBase player)
279 {
280 if (!m_AgentList.Get(agent_id))
281 return 0;
282 return m_AgentList.Get(agent_id).GetDigestibilityEx(player);
283 }
284
290 static int GetAgentMaxCount( int agent_id )
291 {
292 if( !m_AgentList.Get(agent_id) )
293 return 0;
294 return m_AgentList.Get(agent_id).GetMaxCount();
295 }
296
306 float TransmitAgentsEx(EntityAI source, EntityAI target, int pathway, int dose_size = 1000, int agents = 0)
307 {
308 //Debug.Log("Transmitting agents for source: " +source.ToString()+", target: " +target.ToString(),"Agents");
309 int sourceAgents = agents;
310 int targetAgents;
311
312 if (!sourceAgents && source)
313 sourceAgents = source.GetAgents();//do not set sourceAgents again if already set
314
315 if (target)
316 targetAgents = target.GetAgents();
317
318 int pollution = g_Game.GetMission().GetWorldData().GetPollution();
319
320 float count = 0;
321
322 switch (pathway)
323 {
324 case AGT_INV_OUT: //item leaving inventory
325 break;
326
327 case AGT_INV_IN: //item entering inventory
328 break;
329
330 case AGT_UACTION_TOUCH: //player touched the item
331 //InjectAgents( source, targetAgents ,GetProtectionLevel(DEF_BIOLOGICAL,InventorySlots.GLOVES, player) );
332 break;
333
334 case AGT_WATER_POND:
335 if (pollution & EPollution.HEAVYMETAL)
336 {
337 sourceAgents = sourceAgents | eAgents.HEAVYMETAL;
338 }
339 sourceAgents = sourceAgents | eAgents.CHOLERA;
340 InjectAgentsWithPlayer( target, sourceAgents , 0, 1, InjectTypes.ITEM_TO_PLAYER );
341 break;
342
344 sourceAgents = sourceAgents | eAgents.FOOD_POISON | eAgents.HEAVYMETAL;
345 InjectAgentsWithPlayer( target, sourceAgents , 0, 1, InjectTypes.ITEM_TO_PLAYER );
346 break;
347
348 case AGT_SNOW:
349 if (pollution & EPollution.HEAVYMETAL)
350 {
351 sourceAgents = sourceAgents | eAgents.HEAVYMETAL;
352 }
353 InjectAgentsWithPlayer( target, sourceAgents , 0, 1, InjectTypes.ITEM_TO_PLAYER );
354 break;
355
357 //InjectAgentsWithPlayer( target, sourceAgents , 0, dose_size, InjectTypes.ITEM_TO_PLAYER );
358 InjectAgentsWithPlayer( source, targetAgents , 0, 1, InjectTypes.PLAYER_TO_ITEM );
359 break;
360
361 case AGT_UACTION_TO_PLAYER: //user action of a consumption, only from item to player
362 InjectAgentsWithPlayerCount( target, sourceAgents , 0, dose_size, InjectTypes.ITEM_TO_PLAYER );
363 break;
364
365 case AGT_UACTION_TO_ITEM: //to transfer from the player to the consumed item
366 InjectAgentsWithPlayer( target, sourceAgents , 0, 1, InjectTypes.PLAYER_TO_ITEM );
367 break;
368
369 case AGT_TRANSFER_COPY: //transferring liquid
370 InjectAgentsWithoutPlayer( target, sourceAgents );
371 break;
372
373 case AGT_ITEM_TO_FLESH: //transferring liquid
374 InjectAgentsWithPlayer( target, sourceAgents , 0, 1, InjectTypes.ITEM_TO_PLAYER);
375 break;
376
378 Man manTarget = Man.Cast(target);
379 Man manSource = Man.Cast(source);
380 float targetMaskProtection = GetProtectionLevelCachedEquipment(
383 manTarget,
384 );
385 float sourceMaskProtection = GetProtectionLevelCachedEquipment(
388 manSource,
389 );
390 float targetHeadgearProtection = GetProtectionLevelCachedEquipment(
393 manTarget,
394 );
395 float sourceHeadgearProtection = GetProtectionLevelCachedEquipment(
398 manSource,
399 );
400 float targetProtection = Math.Max(targetMaskProtection, targetHeadgearProtection);
401 float sourceProtection = Math.Max(sourceMaskProtection, sourceHeadgearProtection);
402 float combinedProtection = 1 - (1 - targetProtection) * (1 - sourceProtection);
403 InjectAgentsWithPlayer(target, sourceAgents , combinedProtection, 1, InjectTypes.PLAYER_AIR_PLAYER);
404 break;
406 float targetMaskProtectionChemical = GetProtectionLevelCachedEquipment(
409 Man.Cast(target),
410 );
411
412 count = InjectAgentWithPlayerDose(target, agents, targetMaskProtectionChemical, dose_size, InjectTypes.PLAYER_AIR_PLAYER);
413 break;
415 switch (sourceAgents)
416 {
417 float protectionLevel = 0.0;
418 Man man = Man.Cast(target);
419
420 case eAgents.SILICOSIS:
421 protectionLevel = GetProtectionLevelCachedEquipment(
424 man,
425 );
426 break;
427 case eAgents.EYES_IRRITATION:
428 protectionLevel = GetProtectionLevelCachedEquipment(
431 man,
432 );
433 break;
434 }
435
436 count = InjectAgentWithPlayerDose(target, sourceAgents , protectionLevel, dose_size, InjectTypes.ITEM_TO_PLAYER);
437 break;
438 default:
439 break;
440 }
441 return count;
442 }
443
447 void TransmitAgents(EntityAI source, EntityAI target, int pathway, int dose_size = 1000)
448 {
449 TransmitAgentsEx(source, target, pathway, dose_size);
450 }
451
457 protected void InjectAgentsWithoutPlayer(EntityAI target, int agents)
458 {
459 if( target.IsItemBase() )
460 {
461 ItemBase ib_target = ItemBase.Cast( target );
462 ib_target.TransferAgents(agents);
463 }
464 }
465
474 protected void InjectAgentsWithPlayer(EntityAI target, int agents, float protection, int dose_size, int inject_type)//target,array_of_agents,protection_lvl
475 {
476 if(target && (agents != 0) && target.IsEntityAI() )
477 {
478 int bit_count = Math.GetNumberOfSetBits(agents);
479
480 for (int i = 0; i < bit_count; i++)
481 {
482 int agent_bit = Math.Pow(2,Math.GetNthBitSet(agents,i));
483 if( DetermineChanceToTransmit(agent_bit, protection, inject_type))
484 {
485 target.InsertAgent(agent_bit,dose_size);
486 }
487 }
488 }
489 }
490
499 protected void InjectAgentsWithPlayerCount(EntityAI target, int agents, float protection, int dose_size, int inject_type)//target,array_of_agents,protection_lvl
500 {
501 if(target && (agents != 0) && target.IsEntityAI() )
502 {
503 int bit_count = Math.GetNumberOfSetBits(agents);
504
505 for (int i = 0; i < bit_count; i++)
506 {
507 int agent_bit = Math.Pow(2,Math.GetNthBitSet(agents,i));
508 float count = CalculateAgentsToTransmit(agent_bit, protection, dose_size, inject_type);
509 target.InsertAgent(agent_bit,count);
510 }
511 }
512 }
513
523 protected float InjectAgentWithPlayerDose(EntityAI target, int agent, float protection, float dose_size, int inject_type)//target,array_of_agents,protection_lvl
524 {
525 float count = CalculateAgentsToTransmit(agent, protection, dose_size, inject_type);
526 {
527 if(count > 0)
528 {
529 target.InsertAgent(agent, count);
530 return count;
531 }
532 }
533 return 0;
534 }
535
536 // !performance hog, avoid
537 static void BuildAgentArray(int agents, array<int> agents_out)
538 {
539 int mask = 1;
540 for(int i = 0; i < BIT_INT_SIZE; i++)
541 {
542 if( mask & agents )
543 agents_out.Insert(mask);
544 mask = mask * 2;
545 }
546 }
547
557 static float GetProtectionLevelEx(int type, int slot, Man player, bool consider_filter = true, int system = 0)
558 {
559 ItemBase attachment = ItemBase.Cast(player.GetInventory().FindAttachment(slot));
560
561 if(!attachment)
562 return 0;
563
564 return attachment.GetProtectionLevel(type, consider_filter, system);
565
566 }
567
577 static float GetProtectionLevelCachedEquipment(int type, int cachedEquipmentStorageMask, Man player)
578 {
580 query.m_Category = cachedEquipmentStorageMask;
581 query.m_Placement = ECachedEquipmentPlacement.ATTACHMENT;
582 query.m_MaximumDepth = 2;
583
584 float protectionLevel = 0.0;
585 array<Entity> attachments = player.GetCachedEquipment().GetEntitiesByCategory(query);
586 foreach (Entity attachmentEntity : attachments)
587 {
588 ItemBase attachment = ItemBase.Cast(attachmentEntity);
589 protectionLevel += attachment.GetProtectionLevel(type);
590 }
591
592 return protectionLevel;
593
594 }
595
599 protected float GetProtectionLevel(int type, int slot, Man player)
600 {
601 return GetProtectionLevelEx(type, slot, player);
602 }
603
604 //------------------------------------------------------------------------------------------------------
605
614 protected float CalculateAgentsToTransmit(int agent_id, float protection, int dose_size, int inject_type)
615 {
616
617 //Debug.Log("protection: "+protection.ToString());
618 //reverse the value (in config, the higher the value, the higher the protection: 0 - 1) so that we can easily interpolate between 0 and 1 by multiplication
619 float prot = 1 - protection;
620 //Debug.Log("prot: "+prot.ToString(), "Agents");
621 float transf;
622
623 if( inject_type == InjectTypes.PLAYER_TO_ITEM )
624 {
625 transf = GetAgentTransferabilityOut(agent_id);
626 }
627 else if( inject_type == InjectTypes.ITEM_TO_PLAYER )
628 {
629 transf = GetAgentTransferabilityIn(agent_id);
630 }
631 else if( inject_type == InjectTypes.PLAYER_AIR_PLAYER )
632 {
633 transf = GetAgentTransferabilityAirOut(agent_id);
634 }
635
636 //Debug.Log("transf: "+transf.ToString(), "Agents");
637 //float result = GetAgentInitialCount(agent_id) * prot * transf * dose_size;//final formula
638 float result = 1 * prot * transf * dose_size;//final formula
639 //result = Math.Ceil(result);
640 //Debug.Log("result: "+result.ToString(), "Agents");
641 return result;
642 }
643
644 //------------------------------------------------------------------------------------------------------
652 protected bool DetermineChanceToTransmit(int agent_id, float protection, int inject_type)
653 {
654
655 //Debug.Log("protection: "+protection.ToString());
656 //reverse the value (in config, the higher the value, the higher the protection: 0 - 1) so that we can easily interpolate between 0 and 1 by multiplication
657 float prot = 1 - protection;
658 //Debug.Log("prot: "+prot.ToString(), "Agents");
659 float transf;
660
661 if( inject_type == InjectTypes.PLAYER_TO_ITEM )
662 {
663 transf = GetAgentTransferabilityOut(agent_id);
664 }
665 else if( inject_type == InjectTypes.ITEM_TO_PLAYER )
666 {
667 transf = GetAgentTransferabilityIn(agent_id);
668 }
669 else if( inject_type == InjectTypes.PLAYER_AIR_PLAYER )
670 {
671 transf = GetAgentTransferabilityAirOut(agent_id);
672 }
673 #ifdef DEVELOPER
674 //Debug.Log("transf: "+transf.ToString(), "Agents");
675 #endif
676 //float result = GetAgentInitialCount(agent_id) * prot * transf * dose_size;//final formula
677 bool dice = Math.RandomFloat01() < (prot * transf);
678 //result = Math.Ceil(result);
679
680 return dice;
681 }
682 //------------------------------------------------------------------------------------------------------
683
684
685 [Obsolete("replaced by GrowDuringMedicalDrugsAttack")]
686 bool GrowDuringAntibioticsAttack(int agent_id, PlayerBase player)
687 {
688 if (!m_AgentList.Get(agent_id))
689 return true;
690
691 return m_AgentList.Get(agent_id).GrowDuringMedicalDrugsAttack(EMedicalDrugsType.ANTIBIOTICS, player);
692 }
693}
const int BIT_INT_SIZE
Определения BitArray.c:4
DayZGame g_Game
Определения DayZGame.c:4074
eAgents
Определения EAgents.c:3
ECachedEquipmentItemCategory
Определения ECachedEquipmentItemCategory.c:2
ECachedEquipmentPlacement
Определения ECachedEquipmentPlacement.c:2
EMedicalDrugsType
Определения EMedicalDrugsType.c:2
EStatLevels
Определения EStatLevels.c:2
InjectTypes
Определения PluginTransmissionAgents.c:2
@ PLAYER_AIR_PLAYER
Определения PluginTransmissionAgents.c:5
@ PLAYER_TO_ITEM
Определения PluginTransmissionAgents.c:3
@ ITEM_TO_PLAYER
Определения PluginTransmissionAgents.c:4
int GetAgentType()
Определения AgentBase.c:33
bool GrowDuringMedicalDrugsAttack(EMedicalDrugsType drugType, PlayerBase player)
should this agent grow based on invasibility even during usage of specific medical drugs attack
Определения AgentBase.c:88
string GetName()
Определения AgentBase.c:146
Определения AgentBase.c:2
ECachedEquipmentItemCategory m_Category
Определения CachedEquipmentStorageBase.c:5
ECachedEquipmentPlacement m_Placement
Определения CachedEquipmentStorageBase.c:6
Определения Camera.c:2
Определения FoodPoisonAgent.c:2
Определения HeavyMetalAgent.c:2
Определения InfluenzaAgent.c:2
Определения EnMath.c:7
Определения PlayerBaseClient.c:2
float InjectAgentWithPlayerDose(EntityAI target, int agent, float protection, float dose_size, int inject_type)
Injects agent to a given target.
Определения PluginTransmissionAgents.c:523
bool GrowDuringMedicalDrugsAttack(int agentId, EMedicalDrugsType drugType, PlayerBase player)
Определения PluginTransmissionAgents.c:124
static int GetAgentMaxCount(int agent_id)
Returns max count attribute for given agent.
Определения PluginTransmissionAgents.c:290
void RemoveAllAgents(EntityAI target)
Removes all agents from given entity.
Определения PluginTransmissionAgents.c:98
static float GetProtectionLevelEx(int type, int slot, Man player, bool consider_filter=true, int system=0)
Protection level of an attachment against enviromental hazard (mask/filters for example)
Определения PluginTransmissionAgents.c:557
int GetAgentSpecificDrugResistance(int agent_id, EMedicalDrugsType drugType, PlayerBase player)
Определения PluginTransmissionAgents.c:195
map< int, string > GetSimpleAgentList()
Returns map of all registered agents in simplified format(for non-gameplay purposas mainly)
Определения PluginTransmissionAgents.c:74
float GetAgentInvasibilityEx(int agent_id, PlayerBase player)
Returns invasibility attribute for given agent.
Определения PluginTransmissionAgents.c:185
float CalculateAgentsToTransmit(int agent_id, float protection, int dose_size, int inject_type)
Calculates number of agents that can be transmitted (based on given dose_size)
Определения PluginTransmissionAgents.c:614
void ConstructSimpleAgentList()
Builds simplified list of agents in <id, name> format.
Определения PluginTransmissionAgents.c:47
static float GetProtectionLevelCachedEquipment(int type, int cachedEquipmentStorageMask, Man player)
Protection level of an attachment against enviromental hazard (mask/filters for example) based on res...
Определения PluginTransmissionAgents.c:577
bool DetermineChanceToTransmit(int agent_id, float protection, int inject_type)
Agent transmission chance processing.
Определения PluginTransmissionAgents.c:652
void TransmitAgents(EntityAI source, EntityAI target, int pathway, int dose_size=1000)
Process transmission of agents between entities (for specified transmission type) (see TransmitAgents...
Определения PluginTransmissionAgents.c:447
float GetAgentDigestibility(int agent_id)
Returns stomach digetibility attribute for given agent (see GetAgentDigestibilityEx())
Определения PluginTransmissionAgents.c:265
float GetDieOffSpeed(int agent_id)
Returns dieOfSpeed attribute for given agent (see GetDieOffSpeedEx())
Определения PluginTransmissionAgents.c:136
static void RemoveAgent(EntityAI target, int agent_id)
Removes given agent from given entity.
Определения PluginTransmissionAgents.c:108
void InjectAgentsWithPlayer(EntityAI target, int agents, float protection, int dose_size, int inject_type)
Injects agents to a given target, using chance of transmission and full dose size if chance succeeds.
Определения PluginTransmissionAgents.c:474
static ref map< int, ref AgentBase > m_AgentList
Определения PluginTransmissionAgents.c:15
float GetAgentTransferabilityAirOut(int agent_id)
Returns transferabilitAiryOut attribute for given agent.
Определения PluginTransmissionAgents.c:243
float GetAgentInvasibility(int agent_id)
Returns invasibility attribute for given agent.
Определения PluginTransmissionAgents.c:255
EStatLevels GetPotency(int agent_id)
Returns potency attribute for given agent (see GetAgentPotencyEx())
Определения PluginTransmissionAgents.c:159
void InjectAgentsWithPlayerCount(EntityAI target, int agents, float protection, int dose_size, int inject_type)
Injects agents to a given target, with no probability, but the dose size is modified by m_Transferabi...
Определения PluginTransmissionAgents.c:499
void InjectAgentsWithoutPlayer(EntityAI target, int agents)
Injects specified agents directly to target.
Определения PluginTransmissionAgents.c:457
float GetAgentDieOffSpeedEx(int agent_id, PlayerBase player)
Returns dieOfSpeed attribute for given agent.
Определения PluginTransmissionAgents.c:149
bool m_IsConstructed
simple <eAgents, agentName> pair
Определения PluginTransmissionAgents.c:17
float GetProtectionLevel(int type, int slot, Man player)
Protection level of an attachment against enviromental hazard (mask/filters for example) (see GetProt...
Определения PluginTransmissionAgents.c:599
float GetAgentDigestibilityEx(int agent_id, PlayerBase player)
Returns stomach digetibility attribute for given agent.
Определения PluginTransmissionAgents.c:278
bool GrowDuringAntibioticsAttack(int agent_id, PlayerBase player)
Определения PluginTransmissionAgents.c:686
static void BuildAgentArray(int agents, array< int > agents_out)
Определения PluginTransmissionAgents.c:537
void RegisterAgent(AgentBase agent)
Registers new agent into system.
Определения PluginTransmissionAgents.c:39
map< int, ref AgentBase > GetAgentList()
Returns map of all registered agent classes.
Определения PluginTransmissionAgents.c:65
float GetAgentAntiboticsResistanceEx(int agent_id, PlayerBase player)
Returns antibiotics resistance attribute for given agent.
Определения PluginTransmissionAgents.c:219
float TransmitAgentsEx(EntityAI source, EntityAI target, int pathway, int dose_size=1000, int agents=0)
Process transmission of agents between entities (for specified transmission type)
Определения PluginTransmissionAgents.c:306
float GetAgentAntiboticsResistance(int agent_id)
Returns antibiotics resistance attribute for given agent see GetAgentAntiboticsResistanceEx()
Определения PluginTransmissionAgents.c:206
EStatLevels GetAgentPotencyEx(int agent_id, PlayerBase player)
Returns potency attribute for given agent.
Определения PluginTransmissionAgents.c:172
void PluginTransmissionAgents()
Определения PluginTransmissionAgents.c:19
static string GetNameByID(int agent_id)
Returns agent's name from given id.
Определения PluginTransmissionAgents.c:89
float GetAgentTransferabilityIn(int agent_id)
Returns transferabilityIn attribute for given agent.
Определения PluginTransmissionAgents.c:118
ref map< int, string > m_SimpleAgentList
Определения PluginTransmissionAgents.c:16
float GetAgentTransferabilityOut(int agent_id)
Returns transferabilityOut attribute for given agent.
Определения PluginTransmissionAgents.c:231
Plugin interface for controlling of agent pool system.
Определения PluginBase.c:2
Определения SilicosisAgent.c:2
Определения WoundAgent.c:2
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения Transport.c:70
const int AGT_UACTION_CONSUME
Определения 3_Game/DayZ/constants.c:533
const int DEF_DUST_PARTICLE_BREATH
Определения 3_Game/DayZ/constants.c:549
const int AGT_ITEM_TO_FLESH
Определения 3_Game/DayZ/constants.c:540
const int AGT_UACTION_TOUCH
Определения 3_Game/DayZ/constants.c:535
const int DEF_BIOLOGICAL
Определения 3_Game/DayZ/constants.c:547
const int DEF_CHEMICAL
Определения 3_Game/DayZ/constants.c:548
const int AGT_AIRBOURNE_BIOLOGICAL
Определения 3_Game/DayZ/constants.c:537
const int DEF_DUST_PARTICLE_EYES
Определения 3_Game/DayZ/constants.c:550
const int AGT_TRANSFER_COPY
Определения 3_Game/DayZ/constants.c:534
const int AGT_WATER_HOT_SPRING
Определения 3_Game/DayZ/constants.c:544
const int AGT_WATER_POND
Определения 3_Game/DayZ/constants.c:536
const int AGT_INV_OUT
Определения 3_Game/DayZ/constants.c:532
const int AGT_UACTION_TO_PLAYER
Определения 3_Game/DayZ/constants.c:538
const int AGT_AIRBOURNE_CHEMICAL
Определения 3_Game/DayZ/constants.c:541
const int AGT_UACTION_TO_ITEM
Определения 3_Game/DayZ/constants.c:539
const int AGT_AIRBOURNE_SOLID
Определения 3_Game/DayZ/constants.c:545
const int AGT_SNOW
Определения 3_Game/DayZ/constants.c:542
const int AGT_INV_IN
Определения 3_Game/DayZ/constants.c:531
void Obsolete(string msg="")
Определения EnScript.c:371
static float RandomFloat01()
Returns a random float number between and min [inclusive] and max [inclusive].
Определения EnMath.c:126
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto int GetNthBitSet(int value, int n)
returns the the index of n-th bit set in a bit mask counting from the right, for instance,...
static proto float Pow(float v, float power)
Return power of v ^ power.
static proto int GetNumberOfSetBits(int i)
returns the number of bits set in a bitmask i