DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
BarbedWireTrigger.c
См. документацию.
1
3{
5 const static int SOUNDS_COLLISION_COUNT = 4;
6 const static int SOUNDS_SHOCK_COUNT = 4;
7 const static string m_SoundsCollision[SOUNDS_COLLISION_COUNT] = {"barbedFenceCollision1", "barbedFenceCollision2", "barbedFenceCollision3", "barbedFenceCollision4"};
8 const static string m_SoundsShock[SOUNDS_SHOCK_COUNT] = {"electricFenceShock1", "electricFenceShock2", "electricFenceShock3", "electricFenceShock4"};
9
10 // When a player / AI touches the Barbed Wire
11 override void OnEnter( Object obj )
12 {
13 if ( g_Game.IsServer() )
14 {
16 {
17 if ( obj.IsInherited(PlayerBase) )
18 {
19 // When a player touches the barbed wire
20 string cfg = "CfgVehicles BarbedWire barbedWireShockEnergyConsumption";
21 float needed_energy = GetGame().ConfigGetFloat(cfg);
22 bool energy_consumed = m_ParentBarbedWire.GetCompEM().ConsumeEnergy(needed_energy);
23 PlayerBase player = PlayerBase.Cast( obj );
24
25 if ( energy_consumed )
26 {
27 // TO DO:
28 // -Do electrical damage.
29 // -Cause bleeding?
30 // -Do some damage!
31
32 player.MessageImportant( "*SCRATCH and ELECTROCUTION*" );
33
34 // Play sound
37 }
38 else
39 {
40 // TO DO:
41 // -Cause bleeding?
42 // -Do some damage!
43
44 player.MessageImportant( "*SCRATCH*" );
45
46 // Play sound
48 }
49 }
50 else
51 {
52 // When an AI Agent touches the barbed wire
53 if ( obj.IsInherited(ManBase) )
54 {
55 ManBase AI_unit = ManBase.Cast( obj );
56 AI_unit.SetHealth("", "", 0);
57 }
58 }
59 }
60 }
61 }
62
63 // Sets parent object for this trigger
65 {
66 if ( g_Game.IsServer() )
67 {
68 m_ParentBarbedWire = wire;
69 }
70 }
71
72 // Plays an electric shock sound
74 {
75 int random_index = Math.RandomInt(0, SOUNDS_SHOCK_COUNT);
76 string sound_type = m_SoundsShock[random_index];
77 PlaySound(sound_type, 50);
78 }
79
80 // Plays a collision sound
82 {
83 int random_index = Math.RandomInt(0, SOUNDS_COLLISION_COUNT);
84 string sound_type = m_SoundsCollision[random_index];
85 PlaySound(sound_type, 50);
86 }
87}
DayZGame g_Game
Определения DayZGame.c:3868
void PlaySound()
Определения HungerSoundHandler.c:38
ItemBase m_ParentBarbedWire
Определения BarbedWireTrigger.c:4
static const int SOUNDS_SHOCK_COUNT
Определения BarbedWireTrigger.c:6
void SetParentObject(ItemBase wire)
Определения BarbedWireTrigger.c:64
void SoundElectricShock()
Определения BarbedWireTrigger.c:73
void SoundCollision()
Определения BarbedWireTrigger.c:81
static const string m_SoundsShock[SOUNDS_SHOCK_COUNT]
Определения BarbedWireTrigger.c:8
static const int SOUNDS_COLLISION_COUNT
Определения BarbedWireTrigger.c:5
static const string m_SoundsCollision[SOUNDS_COLLISION_COUNT]
Определения BarbedWireTrigger.c:7
override void OnEnter(Object obj)
Определения BarbedWireTrigger.c:11
DEPRECATED UNUSED prototype for damage by BarbedWire, do not use as example.
Определения BarbedWireTrigger.c:3
proto native float ConfigGetFloat(string path)
Get float value from config on path.
Определения InventoryItem.c:731
Определения PlayerBase.c:2
Определения EnMath.c:7
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
void Trigger()
ctor
Определения Trigger.c:53
proto native CGame GetGame()
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].