Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс WeaponParticlesBase

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

void WeaponParticlesBase (ItemBase muzzle_owner, string config_OnFire_entry)
 
void OnActivate (ItemBase weapon, int muzzle_index, string ammoType, ItemBase muzzle_owner, ItemBase suppressor, string config_to_search)
 
void OnParticleCreated (ItemBase weapon, string ammoType, ItemBase muzzle_owner, ItemBase suppressor, string config_to_search, Particle p)
 
void OnDeactivate (ItemBase weapon, string ammoType, ItemBase muzzle_owner, ItemBase suppressor, string config_to_search)
 
void OnUpdate (ItemBase weapon, string ammoType, ItemBase muzzle_owner, ItemBase suppressor, string config_to_search)
 
bool CheckBoltStateCondition (ItemBase weapon)
 
bool CheckHealthCondition (int health_label)
 
bool CheckOverheatingCondition (float overheating_coef)
 
bool CheckRainCondition (float rain_coef)
 
int CheckParticleOverride (string ammoType)
 
vector CheckOrientationOverride (vector local_pos, ItemBase muzzle_owner)
 

Закрытые данные

bool m_IlluminateWorld
 
bool m_IgnoreIfSuppressed
 
bool m_OnlyIfBoltIsOpen
 
int m_MuzzleIndex
 
int m_OverrideParticle
 
int m_OnlyWithinHealthLabelMin
 
int m_OnlyWithinHealthLabelMax
 
float m_OnlyWithinOverheatLimitsMin
 
float m_OnlyWithinOverheatLimitsMax
 
float m_OnlyWithinRainLimitsMin
 
float m_OnlyWithinRainLimitsMax
 
string m_OverrideDirectionPoint
 
string m_OnlyIfBulletIs
 
string m_OnlyIfWeaponIs
 
string m_OverridePoint
 
vector m_OverrideDirectionVector
 
vector m_PositionOffset
 
string m_Name
 

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

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

◆ WeaponParticlesBase()

void WeaponParticlesBase ( ItemBase muzzle_owner,
string config_OnFire_entry )
inlineprivate
34 {
36
37 // ignoreIfSuppressed
38 m_IgnoreIfSuppressed = GetGame().ConfigGetFloat(string.Format("%1 ignoreIfSuppressed", m_Name));
39
40 // onlyIfBoltIsOpen
41 m_OnlyIfBoltIsOpen = GetGame().ConfigGetFloat(string.Format("%1 onlyIfBoltIsOpen", m_Name));
42
43 // illuminateWorld
44 m_IlluminateWorld = GetGame().ConfigGetFloat(string.Format("%1 illuminateWorld", m_Name));
45
46 m_MuzzleIndex = -1;
47 if (GetGame().ConfigIsExisting(string.Format("%1 muzzleIndex", m_Name)))
48 {
49 m_MuzzleIndex = GetGame().ConfigGetInt(string.Format("%1 muzzleIndex", m_Name));
50 }
51
52 // onlyIfWeaponIs
54 GetGame().ConfigGetText(string.Format("%1 onlyIfWeaponIs", m_Name), m_OnlyIfWeaponIs);
55
56 // onlyIfBulletIs
58 GetGame().ConfigGetText(string.Format("%1 onlyIfBulletIs", m_Name), m_OnlyIfBulletIs);
59
60 // onlyWithinHealthLabel[]
62 GetGame().ConfigGetFloatArray(string.Format("%1 onlyWithinHealthLabel", m_Name), health_limit);
63
64 if (health_limit.Count() == 2)
65 {
68 }
69 else
70 {
71 // Disable this filter
74 }
75
76 // onlyWithinOverheatLimits[]
78 GetGame().ConfigGetFloatArray(string.Format("%1 onlyWithinOverheatLimits", m_Name), overheat_limit);
79
80 if (overheat_limit.Count() == 2)
81 {
84 }
85 else
86 {
87 // Disable this filter
90 }
91
92 // onlyWithinRainLimits[]
94 GetGame().ConfigGetFloatArray(string.Format("%1 onlyWithinRainLimits", m_Name), rain_limit);
95
96 if (rain_limit.Count() == 2)
97 {
100 }
101 else
102 {
103 // Disable this filter
106 }
107
108 // overridePoint
109 m_OverridePoint = "";
110 GetGame().ConfigGetText(string.Format("%1 overridePoint", m_Name), m_OverridePoint);
111
112 if (m_OverridePoint == "")
113 m_OverridePoint = "Usti hlavne"; // default memory point name
114
115 // overrideParticle
116 string particle_name = "";
117 GetGame().ConfigGetText( string.Format("%1 overrideParticle", m_Name), particle_name);
118
119 if (particle_name != "")
120 {
122 }
123 else
124 {
126 ErrorEx(string.Format("'%1' does not contain a definition for 'overrideparticle'",
128 }
129
130 // overrideDirectionPoint
132 GetGame().ConfigGetText(string.Format("%1 overrideDirectionPoint", m_Name), m_OverrideDirectionPoint);
133
134 if (m_OverrideDirectionPoint == "")
135 {
136 // overrideDirectionVector
137 vector test_ori = GetGame().ConfigGetVector(string.Format("%1 overrideDirectionVector", m_Name));
138
139 if (test_ori != vector.Zero)
140 {
142 }
143 }
144
145 // positionOffset[]
147 GetGame().ConfigGetFloatArray(string.Format("%1 positionOffset", m_Name), v);
148
149 if (v.Count() == 3)
150 {
151 float v1 = v.Get(0);
152 float v2 = v.Get(1);
153 float v3 = v.Get(2);
155 }
156 }
Definition EntityAI.c:95
Definition ParticleList.c:12
static int GetParticleIDByName(string name)
Returns particle's ID based on the filename (without .ptc suffix)
Definition ParticleList.c:415
float m_OnlyWithinOverheatLimitsMin
Definition WeaponParticles.c:16
bool m_IlluminateWorld
Definition WeaponParticles.c:9
vector m_OverrideDirectionVector
Definition WeaponParticles.c:24
string m_Name
Definition WeaponParticles.c:27
int m_OverrideParticle
Definition WeaponParticles.c:13
string m_OverrideDirectionPoint
Definition WeaponParticles.c:20
float m_OnlyWithinRainLimitsMax
Definition WeaponParticles.c:19
bool m_OnlyIfBoltIsOpen
Definition WeaponParticles.c:11
vector m_PositionOffset
Definition WeaponParticles.c:25
string m_OnlyIfWeaponIs
Definition WeaponParticles.c:22
string m_OnlyIfBulletIs
Definition WeaponParticles.c:21
int m_MuzzleIndex
Definition WeaponParticles.c:12
float m_OnlyWithinRainLimitsMin
Definition WeaponParticles.c:18
bool m_IgnoreIfSuppressed
Definition WeaponParticles.c:10
string m_OverridePoint
Definition WeaponParticles.c:23
int m_OnlyWithinHealthLabelMin
Definition WeaponParticles.c:14
float m_OnlyWithinOverheatLimitsMax
Definition WeaponParticles.c:17
int m_OnlyWithinHealthLabelMax
Definition WeaponParticles.c:15
Definition EnConvert.c:106
static const vector Zero
Definition EnConvert.c:110
proto native CGame GetGame()
ErrorExSeverity
Definition EnDebug.c:62
enum ShapeType ErrorEx
proto native vector Vector(float x, float y, float z)
Vector constructor from components.

Перекрестные ссылки ErrorEx, GetGame(), ParticleList::GetParticleIDByName(), m_IgnoreIfSuppressed, m_IlluminateWorld, m_MuzzleIndex, m_Name, m_OnlyIfBoltIsOpen, m_OnlyIfBulletIs, m_OnlyIfWeaponIs, m_OnlyWithinHealthLabelMax, m_OnlyWithinHealthLabelMin, m_OnlyWithinOverheatLimitsMax, m_OnlyWithinOverheatLimitsMin, m_OnlyWithinRainLimitsMax, m_OnlyWithinRainLimitsMin, m_OverrideDirectionPoint, m_OverrideDirectionVector, m_OverrideParticle, m_OverridePoint, m_PositionOffset, Vector() и vector::Zero.

Методы

◆ CheckBoltStateCondition()

bool CheckBoltStateCondition ( ItemBase weapon)
inlineprivate
256 {
257 if ( m_OnlyIfBoltIsOpen )
258 {
260 WeaponStateBase current_state = wb.GetCurrentState();
261 return current_state.IsBoltOpen();
262 }
263
264 return true;
265 }
shorthand
Definition BoltActionRifle_Base.c:6
represent weapon state base
Definition BulletHide.c:2

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

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

◆ CheckHealthCondition()

bool CheckHealthCondition ( int health_label)
inlineprivate

Перекрестные ссылки m_OnlyWithinHealthLabelMax и m_OnlyWithinHealthLabelMin.

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

◆ CheckOrientationOverride()

vector CheckOrientationOverride ( vector local_pos,
ItemBase muzzle_owner )
inlineprivate
328 {
329 vector particle_ori = "0 0 0";
330 if (m_OverrideDirectionPoint != "")
331 {
332 vector target_pos = muzzle_owner.GetSelectionPositionLS(m_OverrideDirectionPoint);
334 particle_ori = target_pos.VectorToAngles();
335 }
336 else
337 {
338 if (m_OverrideDirectionVector != Vector(0, 0, 0))
339 {
341 }
342
343 if (muzzle_owner.IsInherited(ItemSuppressor))
344 {
345 particle_ori = particle_ori + Vector(0,0,270); // This rotation is necesarry due to suppressors being rotated into ground in their p3d files
346 }
347 }
348
349 return particle_ori;
350 }
Definition Mosin_Compensator.c:2
static vector Direction(vector p1, vector p2)
Returns direction vector from point p1 to point p2.
Definition EnConvert.c:220

Перекрестные ссылки vector::Direction(), m_OverrideDirectionPoint, m_OverrideDirectionVector и Vector().

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

◆ CheckOverheatingCondition()

bool CheckOverheatingCondition ( float overheating_coef)
inlineprivate

Перекрестные ссылки m_OnlyWithinOverheatLimitsMax и m_OnlyWithinOverheatLimitsMin.

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

◆ CheckParticleOverride()

int CheckParticleOverride ( string ammoType)
inlineprivate
287 {
288 int particle_id = -1;
289
290 string particle_file = "";
291 string cfg_path = "CfgAmmo " + ammoType + " muzzleFlashParticle";
292 if (GetGame().ConfigGetText( cfg_path, particle_file))
294
295 // Config is accessed only once because the data is saved into a map for repeated access.
296
297 if ( particle_id > 0 || m_OverrideParticle == -1)
298 {
299 if (particle_file == "")
300 {
301 ErrorEx(string.Format("Cannot spawn particle effect because item %1 is missing config parameter muzzleFlashParticle!", ammoType), ErrorExSeverity.INFO);
302 }
303 else
304 {
306
307 if (particle_id == 0)
308 {
309 string devStr;
310 #ifdef DEVELOPER
311 devStr = " Make sure it's registered there and then rebuild Scripts and Graphics PBOs.";
312 #endif
313 ErrorEx(string.Format("Cannot play particle effect with name %1 because no such file is registered in ParticleList.c!%2", particle_file, devStr));
314 m_OverrideParticle = particle_id; // Prevents another appearence of the above error.
315 }
316 }
317 }
318 else
319 {
321 }
322
323 return particle_id;
324 }
int particle_id
Definition SmokeSimulation.c:28

Перекрестные ссылки ErrorEx, GetGame(), ParticleList::GetParticleIDByName(), m_OverrideParticle и particle_id.

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

◆ CheckRainCondition()

bool CheckRainCondition ( float rain_coef)
inlineprivate
281 {
283 }

Перекрестные ссылки m_OnlyWithinRainLimitsMax и m_OnlyWithinRainLimitsMin.

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

◆ OnActivate()

void OnActivate ( ItemBase weapon,
int muzzle_index,
string ammoType,
ItemBase muzzle_owner,
ItemBase suppressor,
string config_to_search )
inlineprivate
166 {
167 if ( !GetGame().IsServer() || !GetGame().IsMultiplayer() )
168 {
169 // Handle effect's parameters
170 if ( PrtTest.m_GunParticlesState ) // Check if particles are enabled by debug
171 {
172 if ( m_MuzzleIndex == -1 || m_MuzzleIndex == muzzle_index )
173 {
174 if ( CheckBoltStateCondition(weapon) ) // onlyIfBoltIsOpen
175 {
176 if ( !suppressor || suppressor.IsRuined() || !(m_IgnoreIfSuppressed) ) // ignoreIfSuppressed
177 {
178 if ( CheckHealthCondition( muzzle_owner.GetHealthLevel() ) ) // onlyWithinHealthLabel
179 {
180 if ( CheckOverheatingCondition( muzzle_owner.GetOverheatingCoef() ) ) // onlyWithinOverheatLimits
181 {
182 if ( CheckRainCondition( GetGame().GetWeather().GetRain().GetActual() ) ) // onlyWithinRainLimits
183 {
184 if ( m_OnlyIfBulletIs == "" || m_OnlyIfBulletIs == ammoType ) // onlyIfBulletIs
185 {
186 if ( m_OnlyIfWeaponIs == "" || m_OnlyIfWeaponIs == weapon.GetType() ) // onlyIfWeaponIs
187 {
188 // Get particle ID
190
192 {
193 // Get position of the particle
194 vector local_pos = muzzle_owner.GetSelectionPositionLS(m_OverridePoint);
196
197 // Set orientation of the particle
199
200 // Create particle
201 Particle p = ParticleManager.GetInstance().PlayOnObject( particle_id, muzzle_owner, local_pos, particle_ori );
203 }
204 else
205 {
206 ErrorEx(string.Format("No valid particle found for: '%1'", m_Name));
207 }
208
209 // Create light
211 {
212 vector global_pos = muzzle_owner.ModelToWorld(local_pos + Vector(-0.2, 0, 0));
213 int randX = Math.RandomInt( 0,10 );
214 if ( randX > 8 )
215 ScriptedLightBase.CreateLight( MuzzleFlashLight_2, global_pos );
216 else if ( randX > 4 )
218 else
219 ScriptedLightBase.CreateLight(MuzzleFlashLight, global_pos);
220 }
221 }
222 }
223 }
224 }
225 }
226 }
227 }
228 }
229 }
230 }
231 }
void MuzzleFlashLight_1()
Definition MuzzleFlashLight.c:24
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Definition ParticleManager.c:84
Definition EnMath.c:7
Legacy way of using particles in the game.
Definition Particle.c:7
static bool IsValidId(int id)
Purely checks for an invalid number, does NOT mean it is actually registered.
Definition ParticleList.c:385
Definition gameplay.c:1514
static bool m_GunParticlesState
Definition gameplay.c:1515
Definition PointLightBase.c:2
vector CheckOrientationOverride(vector local_pos, ItemBase muzzle_owner)
Definition WeaponParticles.c:327
bool CheckHealthCondition(int health_label)
Definition WeaponParticles.c:268
void OnParticleCreated(ItemBase weapon, string ammoType, ItemBase muzzle_owner, ItemBase suppressor, string config_to_search, Particle p)
Definition WeaponParticles.c:233
bool CheckOverheatingCondition(float overheating_coef)
Definition WeaponParticles.c:274
int CheckParticleOverride(string ammoType)
Definition WeaponParticles.c:286
bool CheckRainCondition(float rain_coef)
Definition WeaponParticles.c:280
bool CheckBoltStateCondition(ItemBase weapon)
Definition WeaponParticles.c:255
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].

Перекрестные ссылки CheckBoltStateCondition(), CheckHealthCondition(), CheckOrientationOverride(), CheckOverheatingCondition(), CheckParticleOverride(), CheckRainCondition(), ErrorEx, GetGame(), ParticleList::IsValidId(), PrtTest::m_GunParticlesState, m_IgnoreIfSuppressed, m_IlluminateWorld, m_MuzzleIndex, m_Name, m_OnlyIfBulletIs, m_OnlyIfWeaponIs, m_OverridePoint, m_PositionOffset, MuzzleFlashLight_1(), OnParticleCreated(), particle_id, ParticleManager(), Math::RandomInt() и Vector().

◆ OnDeactivate()

void OnDeactivate ( ItemBase weapon,
string ammoType,
ItemBase muzzle_owner,
ItemBase suppressor,
string config_to_search )
inlineprivate
239 {
240
241 }

◆ OnParticleCreated()

void OnParticleCreated ( ItemBase weapon,
string ammoType,
ItemBase muzzle_owner,
ItemBase suppressor,
string config_to_search,
Particle p )
inlineprivate
234 {
235
236 }

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

◆ OnUpdate()

void OnUpdate ( ItemBase weapon,
string ammoType,
ItemBase muzzle_owner,
ItemBase suppressor,
string config_to_search )
inlineprivate
244 {
245
246 }

Поля

◆ m_IgnoreIfSuppressed

bool m_IgnoreIfSuppressed
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_IlluminateWorld

bool m_IlluminateWorld
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_MuzzleIndex

int m_MuzzleIndex
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_Name

string m_Name
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_OnlyIfBoltIsOpen

bool m_OnlyIfBoltIsOpen
private

Используется в CheckBoltStateCondition() и WeaponParticlesBase().

◆ m_OnlyIfBulletIs

string m_OnlyIfBulletIs
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_OnlyIfWeaponIs

string m_OnlyIfWeaponIs
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_OnlyWithinHealthLabelMax

int m_OnlyWithinHealthLabelMax
private

Используется в CheckHealthCondition() и WeaponParticlesBase().

◆ m_OnlyWithinHealthLabelMin

int m_OnlyWithinHealthLabelMin
private

Используется в CheckHealthCondition() и WeaponParticlesBase().

◆ m_OnlyWithinOverheatLimitsMax

float m_OnlyWithinOverheatLimitsMax
private

Используется в CheckOverheatingCondition() и WeaponParticlesBase().

◆ m_OnlyWithinOverheatLimitsMin

float m_OnlyWithinOverheatLimitsMin
private

Используется в CheckOverheatingCondition() и WeaponParticlesBase().

◆ m_OnlyWithinRainLimitsMax

float m_OnlyWithinRainLimitsMax
private

Используется в CheckRainCondition() и WeaponParticlesBase().

◆ m_OnlyWithinRainLimitsMin

float m_OnlyWithinRainLimitsMin
private

Используется в CheckRainCondition() и WeaponParticlesBase().

◆ m_OverrideDirectionPoint

string m_OverrideDirectionPoint
private

Используется в CheckOrientationOverride() и WeaponParticlesBase().

◆ m_OverrideDirectionVector

vector m_OverrideDirectionVector
private

Используется в CheckOrientationOverride() и WeaponParticlesBase().

◆ m_OverrideParticle

int m_OverrideParticle
private

Используется в CheckParticleOverride() и WeaponParticlesBase().

◆ m_OverridePoint

string m_OverridePoint
private

Используется в OnActivate() и WeaponParticlesBase().

◆ m_PositionOffset

vector m_PositionOffset
private

Используется в OnActivate() и WeaponParticlesBase().


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