DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс ArrowManagerPlayer
+ Граф наследования:ArrowManagerPlayer:

Закрытые члены

void ArrowManagerPlayer (PlayerBase player)
 
bool Save (ParamsWriteContext ctx)
 
bool Load (ParamsReadContext ctx)
 
- Закрытые члены унаследованные от ArrowManagerBase
void ArrowManagerBase (EntityAI owner)
 
void AddArrow (EntityAI arrow)
 
void RemoveArrow (EntityAI arrow)
 
void ClearArrows ()
 
int GetArrowsCount ()
 
void DropArrow (int index)
 
void DropFirstArrow ()
 
void DropAllArrows ()
 
EntityAI GetArrow (int index)
 
EntityAI GetFirstArrow ()
 
EntityAI AcquireFirstArrow (bool keepTransform=false)
 

Закрытые статические члены

static void InitializeHash ()
 
static void AddArrowTypeToHash (string ArrowType)
 
static GetArrowTypeFromHash (int hash)
 

Закрытые статические данные

static ref map< int, typenamem_TypeHashTable
 

Дополнительные унаследованные члены

- Закрытые данные унаследованные от ArrowManagerBase
const int VERSION = 2
 
ref array< EntityAIm_Arrows
 
EntityAI m_Owner
 

Подробное описание

Конструктор(ы)

◆ ArrowManagerPlayer()

void ArrowManagerPlayer ( PlayerBase player)
inlineprivate
6 {
8 {
10 }
11 }
static ref map< int, typename > m_TypeHashTable
Definition ArrowManagerPlayer.c:3
static void InitializeHash()
Definition ArrowManagerPlayer.c:13

Перекрестные ссылки InitializeHash() и m_TypeHashTable.

Методы

◆ AddArrowTypeToHash()

static void AddArrowTypeToHash ( string ArrowType)
inlinestaticprivate
24 {
25 m_TypeHashTable.Insert(ArrowType.Hash(), ArrowType.ToType());
26 }
Definition EntityAI.c:95

Перекрестные ссылки m_TypeHashTable.

Используется в InitializeHash().

◆ GetArrowTypeFromHash()

static GetArrowTypeFromHash ( int hash)
inlinestaticprivate
29 {
30 return m_TypeHashTable.Get(hash);
31 }

Перекрестные ссылки m_TypeHashTable.

Используется в Load().

◆ InitializeHash()

static void InitializeHash ( )
inlinestaticprivate
14 {
16
17 AddArrowTypeToHash("Ammo_HuntingBolt");
18 AddArrowTypeToHash("Ammo_ImprovisedBolt_1");
19 AddArrowTypeToHash("Ammo_ImprovisedBolt_2");
20 AddArrowTypeToHash("Ammo_ImprovisedBolt_3");
21 }
static void AddArrowTypeToHash(string ArrowType)
Definition ArrowManagerPlayer.c:23

Перекрестные ссылки AddArrowTypeToHash() и m_TypeHashTable.

Используется в ArrowManagerPlayer().

◆ Load()

bool Load ( ParamsReadContext ctx)
inlineprivate
76 {
77 int version;
78 if (!ctx.Read(version))
79 {
80 return false;
81 }
82
83 int count;
84 if (!ctx.Read(count))
85 {
86 return false;
87 }
88
89 for (int i = 0; i < count; i++)
90 {
91
92 if (version >= 1)
93 {
94 int hash;
95 if (!ctx.Read(hash))
96 {
97 return false;
98 }
99
100 float angleF[3];
101 float posF[3];
102 float value;
103
104 if (!ctx.Read(value))
105 {
106 return false;
107 }
108 angleF[0] = value;
109
110 if (!ctx.Read(value))
111 {
112 return false;
113 }
114 angleF[1] = value;
115
116 if (!ctx.Read(value))
117 {
118 return false;
119 }
120 angleF[2] = value;
121
122 if (!ctx.Read(value))
123 {
124 return false;
125 }
126 posF[0] = value;
127
128 if (!ctx.Read(value))
129 {
130 return false;
131 }
132 posF[1] = value;
133
134 if (!ctx.Read(value))
135 {
136 return false;
137 }
138 posF[2] = value;
139
140 vector angle = "0 0 0";
141 vector pos = "0 0 0";
142
144 pos = vector.ArrayToVec(posF);
145
146 int pivot;
147 if (!ctx.Read(pivot))
148 {
149 return false;
150 }
151
152 if (version >= 2)
153 {
154 #ifdef SERVER
156 #else
158 #endif
159
161 EntityAI arrow = EntityAI.Cast(GetGame().CreateObjectEx(arrowType.ToString(), pos, spawnFlags));
162 if (arrow)
163 {
164 arrow.SetQuantityToMinimum();
165 arrow.SetYawPitchRoll(angle);
166 m_Owner.AddChild(arrow, pivot);
167 }
168 }
169 }
170
171 }
172
173 return true;
174 }
const int ECE_LOCAL
Definition CentralEconomy.c:24
const int ECE_KEEPHEIGHT
Definition CentralEconomy.c:27
const int ECE_DYNAMIC_PERSISTENCY
Definition CentralEconomy.c:32
EntityAI m_Owner
Definition ArrowManagerBase.c:5
static GetArrowTypeFromHash(int hash)
Definition ArrowManagerPlayer.c:28
Definition Building.c:6
Definition EnConvert.c:106
static vector ArrayToVec(float arr[])
Convert static array of floats into a vector.
Definition EnConvert.c:502
proto native CGame GetGame()

Перекрестные ссылки vector::ArrayToVec(), ECE_DYNAMIC_PERSISTENCY, ECE_KEEPHEIGHT, ECE_LOCAL, GetArrowTypeFromHash(), GetGame() и ArrowManagerBase::m_Owner.

◆ Save()

bool Save ( ParamsWriteContext ctx)
inlineprivate
34 {
35 ctx.Write(VERSION);
36 int count = m_Arrows.Count();
37 int i;
38 //TODO MW Delete after find why sometimes arrow missing - most likely Life span
39 for (i = count - 1; i >= 0; i--)
40 {
41 if (!m_Arrows.Get(i))
42 {
43 m_Arrows.Remove(i);
44 }
45 }
46 count = m_Arrows.Count();
47
48 ctx.Write(count);
49
50 for (i = 0; i < count; i++)
51 {
52 EntityAI arrow = m_Arrows.Get(i);
53
54 string type = arrow.GetType();
55 ctx.Write(type.Hash());
56
57 vector angle = arrow.GetLocalYawPitchRoll();
58 vector pos = arrow.GetLocalPosition();
59
60 ctx.Write(angle[0]);
61 ctx.Write(angle[1]);
62 ctx.Write(angle[2]);
63 ctx.Write(pos[0]);
64 ctx.Write(pos[1]);
65 ctx.Write(pos[2]);
66
67 int pivot = arrow.GetHierarchyPivot();
68 ctx.Write(pivot);
69 }
70
71 return true;
72 }
const int VERSION
Definition ArrowManagerBase.c:3
ref array< EntityAI > m_Arrows
Definition ArrowManagerBase.c:4
proto native int Hash()
Returns hash of string.

Перекрестные ссылки string::Hash(), ArrowManagerBase::m_Arrows и ArrowManagerBase::VERSION.

Поля

◆ m_TypeHashTable

ref map<int,typename> m_TypeHashTable
staticprivate

Объявления и описания членов класса находятся в файле: