Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
particlelist.c
Go to the documentation of this file.
1// Register all particles below!
2
3// Example how to register particles from a mod
4/*
5modded class ParticleList
6{
7 static const int MODDED_PARTICLE = RegisterParticle( "mod_folder/" , "my_modded_particle");
8}
9*/
10
12{
13 ref static map<int, string> m_ParticlePaths; // Contains full paths to all particles. WARNING: Paths are without the '.ptc' suffix!
14 ref static map<string, int> m_ParticleNames; // Contains file NAME (without suffix) to id.
15
16 static int m_lastID = 0;
17
18 // REGISTER ALL PARTICLES BELOW:
19
20 static const int INVALID = -1;
21 static const int NONE = 0; // 0 does not exist either, valid particle starts from 1
22 static const int PARTICLE_TEST = RegisterParticle("_test_orientation");
23 static const int DEBUG_DOT = RegisterParticle("debug_dot");
24 static const int DEBUG_DOT5M = RegisterParticle("debug_dot5m");
25
26 // FIREPLACE
27 // Normal fireplace
28 static const int CAMP_FIRE_START = RegisterParticle("fire_small_camp_01_start");
29 static const int CAMP_SMALL_FIRE = RegisterParticle("fire_small_camp_01");
30 static const int CAMP_NORMAL_FIRE = RegisterParticle("fire_medium_camp_01");
31 static const int CAMP_SMALL_SMOKE = RegisterParticle("smoke_small_camp_01");
32 static const int CAMP_NORMAL_SMOKE = RegisterParticle("smoke_medium_camp_01");
33 static const int CAMP_FIRE_END = RegisterParticle("fire_small_camp_01_end");
34 static const int CAMP_STEAM_2END = RegisterParticle("steam_medium_camp_2end");
35 static const int CAMP_STEAM_EXTINGUISH_START = RegisterParticle("default_01");
36 static const int CAMP_STOVE_FIRE = RegisterParticle("fire_small_stove_01");
37 static const int CAMP_STOVE_FIRE_START = RegisterParticle("fire_small_stove_01_start");
38 static const int CAMP_STOVE_FIRE_END = RegisterParticle("fire_small_stove_01_end");
39 static const int CAMP_NO_IGNITE_WIND = RegisterParticle("fire_extinguish_wind");
40 // Fireplace indoor
41 static const int HOUSE_FIRE_START = RegisterParticle("fire_small_house_01_start");
42 static const int HOUSE_SMALL_FIRE = RegisterParticle("fire_small_house_01");
43 static const int HOUSE_SMALL_SMOKE = RegisterParticle("smoke_small_house_01");
44 static const int HOUSE_NORMAL_FIRE = RegisterParticle("fire_medium_house_01");
45 static const int HOUSE_NORMAL_SMOKE = RegisterParticle("smoke_medium_house_01");
46 static const int HOUSE_FIRE_END = RegisterParticle("fire_small_house_01_end");
47 static const int HOUSE_FIRE_STEAM_2END = RegisterParticle("steam_medium_house_2end");
48 // Fireplace in barrel with holes
49 static const int BARREL_FIRE_START = RegisterParticle("fire_small_barrel_01_start");
50 static const int BARREL_SMALL_FIRE = RegisterParticle("fire_small_barrel_01");
51 static const int BARREL_SMALL_SMOKE = RegisterParticle("smoke_small_barrel_01");
52 static const int BARREL_NORMAL_FIRE = RegisterParticle("fire_medium_barrel_01");
53 static const int BARREL_NORMAL_SMOKE = RegisterParticle("smoke_medium_barrel_01");
54 static const int BARREL_FIRE_END = RegisterParticle("fire_small_barrel_01_end");
55 static const int BARREL_FIRE_STEAM_2END = RegisterParticle("steam_medium_camp_2end");
56 // Fireplace in indoor oven
57 static const int OVEN_FIRE_START = RegisterParticle("fire_small_oven_01_start");
58 static const int OVEN_SMALL_FIRE = RegisterParticle("fire_small_oven_01");
59 static const int OVEN_NORMAL_FIRE = RegisterParticle("fire_medium_oven_01");
60 static const int OVEN_FIRE_END = RegisterParticle("fire_small_ovenl_01_end");
61
62 // COOKING
63 static const int COOKING_BOILING_EMPTY = RegisterParticle("cooking_boiling_empty");
64 static const int COOKING_BOILING_START = RegisterParticle("cooking_boiling_start");
65 static const int COOKING_BOILING_DONE = RegisterParticle("cooking_boiling_done");
66 static const int COOKING_BAKING_START = RegisterParticle("cooking_baking_start");
67 static const int COOKING_BAKING_DONE = RegisterParticle("cooking_baking_done");
68 static const int COOKING_DRYING_START = RegisterParticle("cooking_drying_start");
69 static const int COOKING_DRYING_DONE = RegisterParticle("cooking_drying_done");
70 static const int COOKING_BURNING_DONE = RegisterParticle("cooking_burning_done");
71 static const int ITEM_HOT_VAPOR = RegisterParticle("item_hot_vapor");
72
73 // TORCH
74 static const int TORCH_T3 = RegisterParticle("fire_small_torch_01");
75 static const int TORCH_T1 = RegisterParticle("fire_small_torch_02");
76 static const int TORCH_T2 = RegisterParticle("fire_small_torch_03");
77
78 //BROOM TORCH
79 static const int BROOM_TORCH_T1 = RegisterParticle("fire_small_broom_torch_01");
80 static const int BROOM_TORCH_T2 = RegisterParticle("fire_small_broom_torch_02");
81 static const int BROOM_TORCH_T3 = RegisterParticle("fire_small_broom_torch_03");
82
83 // ROADFLARE
84 static const int ROADFLARE_BURNING_INIT = RegisterParticle("fire_small_roadflare_red_04");
85 static const int ROADFLARE_BURNING_MAIN = RegisterParticle("fire_small_roadflare_red_01");
86 static const int ROADFLARE_BURNING_ENDING = RegisterParticle("fire_small_roadflare_red_02");
87 static const int ROADFLARE_BURNING_SMOKE = RegisterParticle("fire_small_roadflare_red_03");
88
89 // FLARE PROJECTILE
90 static const int FLAREPROJ_FIRE = RegisterParticle("fire_small_roadflare_red_04");
91 static const int FLAREPROJ_ACTIVATE = RegisterParticle("fire_small_flare_yellow_01");
92 static const int FLAREPROJ_ACTIVATE_RED = RegisterParticle("fire_small_flare_red_01");
93 static const int FLAREPROJ_ACTIVATE_GREEN = RegisterParticle("fire_small_flare_green_01");
94 static const int FLAREPROJ_ACTIVATE_BLUE = RegisterParticle("fire_small_flare_blue_01");
95
96 // DIGGING
97 static const int DIGGING_STASH = RegisterParticle("digging_ground");
98
99 // SMOKE GRENADES
101 static const int GRENADE_RDG2_BLACK_START = RegisterParticle("smoke_RDG2_black_01");
102 static const int GRENADE_RDG2_BLACK_LOOP = RegisterParticle("smoke_RDG2_black_02");
103 static const int GRENADE_RDG2_BLACK_END = RegisterParticle("smoke_RDG2_black_03");
104 static const int GRENADE_RDG2_WHITE_START = RegisterParticle("smoke_RDG2_white_01");
105 static const int GRENADE_RDG2_WHITE_LOOP = RegisterParticle("smoke_RDG2_white_02");
106 static const int GRENADE_RDG2_WHITE_END = RegisterParticle("smoke_RDG2_white_03");
108 static const int GRENADE_M18_GREEN_START = RegisterParticle("smoke_M18_green_01");
109 static const int GRENADE_M18_GREEN_LOOP = RegisterParticle("smoke_M18_green_02");
110 static const int GRENADE_M18_GREEN_END = RegisterParticle("smoke_M18_green_03");
111 static const int GRENADE_M18_PURPLE_START = RegisterParticle("smoke_M18_purple_01");
112 static const int GRENADE_M18_PURPLE_LOOP = RegisterParticle("smoke_M18_purple_02");
113 static const int GRENADE_M18_PURPLE_END = RegisterParticle("smoke_M18_purple_03");
114 static const int GRENADE_M18_RED_START = RegisterParticle("smoke_M18_red_01");
115 static const int GRENADE_M18_RED_LOOP = RegisterParticle("smoke_M18_red_02");
116 static const int GRENADE_M18_RED_END = RegisterParticle("smoke_M18_red_03");
117 static const int GRENADE_M18_WHITE_START = RegisterParticle("smoke_M18_white_01");
118 static const int GRENADE_M18_WHITE_LOOP = RegisterParticle("smoke_M18_white_02");
119 static const int GRENADE_M18_WHITE_END = RegisterParticle("smoke_M18_white_03");
120 static const int GRENADE_M18_YELLOW_START = RegisterParticle("smoke_M18_yellow_01");
121 static const int GRENADE_M18_YELLOW_LOOP = RegisterParticle("smoke_M18_yellow_02");
122 static const int GRENADE_M18_YELLOW_END = RegisterParticle("smoke_M18_yellow_03");
123 static const int GRENADE_M18_BLACK_START = RegisterParticle("smoke_M18_black_01");
124 static const int GRENADE_M18_BLACK_LOOP = RegisterParticle("smoke_M18_black_02");
125 static const int GRENADE_M18_BLACK_END = RegisterParticle("smoke_M18_black_03");
126
129 static const int GRENADE_M84 = RegisterParticle("explosion_M84_01");
130
131 // FRAGMENTATION GRENADES
132 static const int RGD5 = RegisterParticle("explosion_RGD5_01");
133 static const int M67 = RegisterParticle("explosion_M67_01");
134
135 // GRENADE EXPLOSION BY SURFACE
136 static const int EXPLOSION_GRENADE_SNOW = RegisterParticle("explosion_grenade_snow");
137 static const int EXPLOSION_GRENADE_ICE = RegisterParticle("explosion_grenade_ice");
138
139 // ELECTRICITY
140 static const int POWER_GENERATOR_SMOKE = RegisterParticle("smoke_small_generator_01");
141 static const int BARBED_WIRE_SPARKS = RegisterParticle("electro_shortc2");
142 static const int LEVER_SPARKS = RegisterParticle("electro_sparks");
143 static const int EASTER_EGG_ACTIVATE = RegisterParticle("easter_egg_activate");
144
145 // PLAYER
146 static const int BLEEDING_SOURCE = RegisterParticle("blood_bleeding_01");
147 static const int BLEEDING_SOURCE_LIGHT = RegisterParticle("blood_bleeding_02");
148 static const int BLOOD_SURFACE_DROPS = RegisterParticle("blood_surface_drops");
149 static const int BLOOD_SURFACE_CHUNKS = RegisterParticle("blood_surface_chunks");
150 static const int VOMIT = RegisterParticle("character_vomit_01");
151 static const int BREATH_VAPOUR_LIGHT = RegisterParticle("breath_vapour_light");
152 static const int BREATH_VAPOUR_MEDIUM = RegisterParticle("breath_vapour_medium");
153 static const int BREATH_VAPOUR_HEAVY = RegisterParticle("breath_vapour_heavy");
154 static const int VOMIT_CHUNKS = RegisterParticle("character_vomit_puddle");
155
156 // GUNS
157 static const int GUN_MUZZLE_FLASH_SVD_STAR = RegisterParticle("weapon_shot_Flame_3D_4star");
158 static const int GUN_SOLO_MUZZLE_FLASH = RegisterParticle("weapon_shot_Flame_3D");
159 static const int GUN_FNX = RegisterParticle("weapon_shot_fnx_01");
160 static const int GUN_FNX_SUPPRESSED = RegisterParticle("weapon_shot_fnx_02");
161 static const int GUN_PARTICLE_TEST = RegisterParticle("weapon_shot_fnx_01");
162 static const int GUN_PARTICLE_CASING = RegisterParticle("weapon_shot_chamber_smoke");
163 static const int GUN_PARTICLE_CASING_RAISE = RegisterParticle("weapon_shot_chamber_smoke_raise");
164 static const int GUN_CZ75 = RegisterParticle("weapon_shot_cz75_01");
165 static const int GUN_AKM = RegisterParticle("weapon_shot_akm_01");
166 static const int GUN_AKM_SUPPRESSED = RegisterParticle("weapon_shot_akm_02");
167 static const int GUN_IZH18 = RegisterParticle("weapon_shot_izh18_01");
168 static const int GUN_IZH18_SUPPRESSED = RegisterParticle("weapon_shot_izh18_02");
169 static const int GUN_MP5K = RegisterParticle("weapon_shot_mp5k_01");
170 static const int GUN_MP5K_2 = RegisterParticle("weapon_shot_mp5k_02_boris");
171 static const int GUN_MP5K_SUPPRESSED = RegisterParticle("weapon_shot_mp5k_02");
172 static const int GUN_MP5K_COMPENSATOR = RegisterParticle("weapon_shot_mp5k_02");
173 static const int GUN_UMP45 = RegisterParticle("weapon_shot_ump45_01");
174 static const int GUN_M4A1 = RegisterParticle("weapon_shot_m4a1_01");
175 static const int GUN_MP133 = RegisterParticle("weapon_shot_mp133_01");
176 static const int GUN_PELLETS = RegisterParticle("weapon_shot_pellets");
177 static const int GUN_MOSIN9130 = RegisterParticle("weapon_shot_mosin9130_01");
178 static const int GUN_MOSIN_COMPENSATOR = RegisterParticle("weapon_shot_mosin_compensator_01");
179 static const int GUN_CZ527 = RegisterParticle("weapon_shot_cz527_01");
180 static const int GUN_SKS = RegisterParticle("weapon_shot_sks_01");
181 static const int GUN_WINCHESTER70 = RegisterParticle("weapon_shot_winch70_01");
182 static const int GUN_VSS = RegisterParticle("weapon_shot_vss_01");
183 static const int GUN_AK74 = RegisterParticle("weapon_shot_ak74_01");
184 static const int GUN_AK101 = RegisterParticle("weapon_shot_ak101_01");
185
186 static const int GUN_MAGNUM = RegisterParticle("weapon_shot_magnum_01");
187
188 static const int GUN_CZ61 = RegisterParticle("weapon_shot_cz61_01");
189 static const int GUN_LONG_WINDED_SMOKE = RegisterParticle("weapon_shot_winded_smoke");
190 static const int GUN_LONG_WINDED_SMOKE_SMALL = RegisterParticle("weapon_shot_winded_smoke_small");
191 static const int SMOKING_BARREL = RegisterParticle("smoking_barrel");
192 static const int SMOKING_BARREL_SMALL = RegisterParticle("smoking_barrel_small");
193 static const int SMOKING_BARREL_HEAVY = RegisterParticle("smoking_barrel_heavy");
194 static const int SMOKING_BARREL_STEAM = RegisterParticle("smoking_barrel_steam");
195 static const int SMOKING_BARREL_STEAM_SMALL = RegisterParticle("smoking_barrel_steam_small");
196 static const int SMARKS_CHAMBER = RegisterParticle("weapon_shot_chamber_spark");
197
198 // BULLET & MELEE IMPACTS
199 static const int IMPACT_TEST = RegisterParticle("impacts/bullet_impact_placeholder");
200 static const int IMPACT_DISTANT_DUST = RegisterParticle("impacts/distant_dust");
201 static const int IMPACT_TEST_RICOCHET = RegisterParticle("impacts/bullet_riochet_placeholder");
202 static const int IMPACT_TEST2 = RegisterParticle("_test_orientation_02");
203 static const int IMPACT_TEST_ENTER_DEBUG = RegisterParticle("impacts/_test_impact_enter_debug");
204 static const int IMPACT_TEST_RICOCHET_DEBUG = RegisterParticle("impacts/_test_impact_ricochet_debug");
205 static const int IMPACT_TEST_EXIT_DEBUG = RegisterParticle("impacts/_test_impact_exit_debug");
206 static const int IMPACT_TEST_NO_MATERIAL_ERROR = RegisterParticle("_test_no_material");
207 static const int IMPACT_WOOD_ENTER = RegisterParticle("impacts/hit_wood_ent_01");
208 static const int IMPACT_WOOD_RICOCHET = RegisterParticle("impacts/hit_wood_ric_01");
209 static const int IMPACT_WOOD_EXIT = RegisterParticle("impacts/hit_wood_ext_01");
210 static const int IMPACT_CONCRETE_ENTER = RegisterParticle("impacts/hit_concrete_ent_01");
211 static const int IMPACT_CONCRETE_RICOCHET = RegisterParticle("impacts/hit_concrete_ric_01");
212 static const int IMPACT_CONCRETE_EXIT = RegisterParticle("impacts/hit_concrete_ext_01");
213 static const int IMPACT_FOLIAGE_ENTER = RegisterParticle("impacts/hit_foliage_ent_01");
214 static const int IMPACT_FOLIAGE_RICOCHET = RegisterParticle("impacts/hit_foliage_ric_01");
215 static const int IMPACT_FOLIAGE_EXIT = RegisterParticle("impacts/hit_foliage_ext_01");
216 static const int IMPACT_FOLIAGE_GREEN_ENTER = RegisterParticle("impacts/hit_foliage_green_ent_01");
217 static const int IMPACT_FOLIAGE_GREEN_RICOCHET = RegisterParticle("impacts/hit_foliage_green_ric_01");
218 static const int IMPACT_FOLIAGE_GREEN_EXIT = RegisterParticle("impacts/hit_foliage_green_ext_01");
219 static const int IMPACT_FOLIAGE_CONIFER_ENTER = RegisterParticle("impacts/hit_foliage_conifer_ent_01");
220 static const int IMPACT_FOLIAGE_CONIFER_RICOCHET= RegisterParticle("impacts/hit_foliage_conifer_ric_01");
221 static const int IMPACT_FOLIAGE_CONIFER_EXIT = RegisterParticle("impacts/hit_foliage_conifer_ext_01");
222 static const int IMPACT_GRASS_ENTER = RegisterParticle("impacts/hit_grass_ent_01");
223 static const int IMPACT_GRASS_RICOCHET = RegisterParticle("impacts/hit_grass_ric_01");
224 static const int IMPACT_DIRT_ENTER = RegisterParticle("impacts/hit_dirt_ent_01");
225 static const int IMPACT_DIRT_RICOCHET = RegisterParticle("impacts/hit_dirt_ric_01");
226 static const int IMPACT_DIRT_EXIT = RegisterParticle("impacts/hit_dirt_ext_01");
227 static const int IMPACT_RUBBER_ENTER = RegisterParticle("impacts/hit_rubber_ent_01");
228 static const int IMPACT_RUBBER_RICOCHET = RegisterParticle("impacts/hit_rubber_ric_01");
229 static const int IMPACT_RUBBER_EXIT = RegisterParticle("impacts/hit_rubber_ext_01");
230 static const int IMPACT_GRAVEL_ENTER = RegisterParticle("impacts/hit_gravel_ent_01");
231 static const int IMPACT_GRAVEL_RICOCHET = RegisterParticle("impacts/hit_gravel_ric_01");
232 static const int IMPACT_GRAVEL_EXIT = RegisterParticle("impacts/hit_gravel_ext_01");
233 static const int IMPACT_PLASTER_ENTER = RegisterParticle("impacts/hit_plaster_ent_01");
234 static const int IMPACT_PLASTER_RICOCHET = RegisterParticle("impacts/hit_plaster_ric_01");
235 static const int IMPACT_PLASTER_EXIT = RegisterParticle("impacts/hit_plaster_ext_01");
236 static const int IMPACT_METAL_ENTER = RegisterParticle("impacts/hit_metal_ent_01");
237 static const int IMPACT_METAL_RICOCHET = RegisterParticle("impacts/hit_metal_ric_01");
238 static const int IMPACT_METAL_EXIT = RegisterParticle("impacts/hit_metal_ext_01");
239 static const int IMPACT_MEAT_ENTER = RegisterParticle("impacts/hit_meat_ent_01");
240 static const int IMPACT_MEAT_RICOCHET = RegisterParticle("impacts/hit_meat_ric_01");
241 static const int IMPACT_MEAT_EXIT = RegisterParticle("impacts/hit_meat_ext_01");
242 static const int IMPACT_MEATBONES_ENTER = RegisterParticle("impacts/hit_meatbones_ent_01");
243 static const int IMPACT_MEATBONES_RICOCHET = RegisterParticle("impacts/hit_meatbones_ent_01");
244 static const int IMPACT_MEATBONES_EXIT = RegisterParticle("impacts/hit_meatbones_ext_01");
245 static const int IMPACT_GLASS_ENTER = RegisterParticle("impacts/hit_glass_ent_01");
246 static const int IMPACT_GLASS_RICOCHET = RegisterParticle("impacts/hit_glass_ric_01");
247 static const int IMPACT_GLASS_EXIT = RegisterParticle("impacts/hit_glass_ext_01");
248 static const int IMPACT_WATER_SMALL_ENTER = RegisterParticle("impacts/hit_water_ent_01");
249 static const int IMPACT_WATER_MEDIUM_ENTER = RegisterParticle("impacts/hit_water_ent_02");
250 static const int IMPACT_WATER_LARGE_ENTER = RegisterParticle("impacts/hit_water_ent_03");
251 static const int IMPACT_TEXTILE_ENTER = RegisterParticle("impacts/hit_textile_ent_01");
252 static const int IMPACT_TEXTILE_RICOCHET = RegisterParticle("impacts/hit_textile_ric_01");
253 static const int IMPACT_TEXTILE_EXIT = RegisterParticle("impacts/hit_textile_ext_01");
254 static const int IMPACT_SAND_ENTER = RegisterParticle("impacts/hit_sand_ent_01");
255 static const int IMPACT_SAND_RICOCHET = RegisterParticle("impacts/hit_sand_ric_01");
256 static const int IMPACT_SAND_EXIT = RegisterParticle("impacts/hit_sand_ext_01");
257 static const int IMPACT_PLASTIC_ENTER = RegisterParticle("impacts/hit_plastic_ent_01");
258 static const int IMPACT_PLASTIC_RICOCHET = RegisterParticle("impacts/hit_plastic_ric_01");
259 static const int IMPACT_PLASTIC_EXIT = RegisterParticle("impacts/hit_plastic_ext_01");
260 static const int IMPACT_SNOW_ENTER = RegisterParticle("impacts/hit_snow_ent_01");
261 static const int IMPACT_SNOW_RICOCHET = RegisterParticle("impacts/hit_snow_ric_01");
262 static const int IMPACT_SNOW_EXIT = RegisterParticle("impacts/hit_snow_ext_01");
263 static const int IMPACT_ICE_ENTER = RegisterParticle("impacts/hit_ice_ent_01");
264 static const int IMPACT_ICE_RICOCHET = RegisterParticle("impacts/hit_ice_ric_01");
265 static const int IMPACT_ICE_EXIT = RegisterParticle("impacts/hit_ice_ext_01");
266
267 // EXPLOSIONS
268 static const int EXPLOSION_LANDMINE = RegisterParticle("explosion_landmine_01");
269 static const int EXPLOSION_TEST = RegisterParticle("explosion_placeholder");
270 static const int EXPLOSION_GOAT = RegisterParticle("explosion_goat");
271
272 // ENVIRO EFX
273 static const int SMOKING_HELI_WRECK = RegisterParticle("smoke_heli_wreck_01");
274 static const int AURORA_SANTA_WRECK = RegisterParticle("smoke_santa_wreck");
275 static const int SMOKE_GENERIC_WRECK = RegisterParticle("smoke_generic_wreck");
276 static const int SMOKING_CAR_ENGINE = RegisterParticle("menu_engine_fire");
277 static const int EVAPORATION = RegisterParticle("menu_evaporation");
278
279 // VEHICLES
280 static const int HATCHBACK_COOLANT_OVERHEATING = RegisterParticle("Hatchback_coolant_overheating");
281 static const int HATCHBACK_COOLANT_OVERHEATED = RegisterParticle("Hatchback_coolant_overheated");
282 static const int HATCHBACK_ENGINE_OVERHEATING = RegisterParticle("Hatchback_engine_failing");
283 static const int HATCHBACK_ENGINE_OVERHEATED = RegisterParticle("Hatchback_engine_failure");
284 static const int HATCHBACK_EXHAUST_SMOKE = RegisterParticle("Hatchback_exhaust");
285 static const int BOAT_WATER_FRONT = RegisterParticle("vehicles/boat/boat_water_front");
286 static const int BOAT_WATER_BACK = RegisterParticle("vehicles/boat/boat_water_back");
287 static const int BOAT_WATER_SIDE = RegisterParticle("vehicles/boat/boat_water_side");
288
289 // CORPSE DECAY
290 static const int ENV_SWARMING_FLIES = RegisterParticle("env_fly_swarm_01");
291
292 // BONFIRE
293 static const int BONFIRE_FIRE = RegisterParticle("fire_bonfire");
294 static const int BONFIRE_SMOKE = RegisterParticle("smoke_bonfire");
295 static const int TIREPILE_FIRE = RegisterParticle("fire_tirepile");
296 static const int SPOOKY_MIST = RegisterParticle("spooky_mist");
297
298 static const int VOMIT_BLOOD = RegisterParticle("character_vomitBlood_01");
299
300 // CONTAMINATED AREAS
301 static const int CONTAMINATED_AREA_GAS_TINY = RegisterParticle("contaminated_area_gas_around_tiny");
302 static const int CONTAMINATED_AREA_GAS_AROUND = RegisterParticle("contaminated_area_gas_around");
303 static const int CONTAMINATED_AREA_GAS_BIGASS = RegisterParticle("contaminated_area_gas_bigass");
304 static const int CONTAMINATED_AREA_GAS_GROUND = RegisterParticle("contaminated_area_gas_ground");
305 static const int CONTAMINATED_AREA_GAS_SHELL = RegisterParticle("contaminated_area_gas_shell");
306 static const int CONTAMINATED_AREA_GAS_DEBUG = RegisterParticle("contaminated_area_gas_bigass_debug");
307
308 //Fireworks
309 static const int FIREWORKS_SHOT = RegisterParticle("fireworks_small_01");
310 static const int FIREWORKS_EXPLOSION_RED = RegisterParticle("fireworks_large_01_Red");
311 static const int FIREWORKS_EXPLOSION_GREEN = RegisterParticle("fireworks_large_01_Green");
312 static const int FIREWORKS_EXPLOSION_BLUE = RegisterParticle("fireworks_large_01_Blue");
313 static const int FIREWORKS_EXPLOSION_YELLOW = RegisterParticle("fireworks_large_01_Yellow");
314 static const int FIREWORKS_EXPLOSION_PINK = RegisterParticle("fireworks_large_01_Pink");
315
316 static const int FIREWORKS_FUSE = RegisterParticle("fireworks_small_04");
317 static const int FIREWORKS_AFTERBURN_START = RegisterParticle("fireworks_small_02");
318 static const int FIREWORKS_AFTERBURN_END = RegisterParticle("fireworks_small_03");
319
320 //Fireworks anniversary
321 static const int FIREWORKS_EXPLOSION_THANKS1 = RegisterParticle("fireworks_ThankYou_anim");
322 static const int FIREWORKS_EXPLOSION_THANKS2 = RegisterParticle("fireworks_For10_anim");
323 static const int FIREWORKS_EXPLOSION_THANKS3 = RegisterParticle("fireworks_Amazing_anim");
324 static const int FIREWORKS_EXPLOSION_THANKS4 = RegisterParticle("fireworks_Years_anim");
325 static const int FIREWORKS_EXPLOSION_THANKS5 = RegisterParticle("fireworks_Dayz_anim");
326
327
328 //pox grenade
329 static const int GRENADE_CHEM_BREAK = RegisterParticle("contaminated_area_gas_grenade");
330 //Claymore
331 static const int CLAYMORE_EXPLOSION = RegisterParticle("explosion_claymore_01");
332 static const int PLASTIC_EXPLOSION = RegisterParticle("explosion_plastic_01");
333
334 // Water jet/spilling
335 static const int WATER_JET = RegisterParticle("water_jet");
336 static const int WATER_JET_WEAK = RegisterParticle("water_jet_weak");
337 static const int WATER_SPILLING = RegisterParticle("water_spilling");
338
339 // Drowning bubbles
340 static const int DROWNING_BUBBLES = RegisterParticle("breath_bubbles");
341
343 static const int BOLT_CUPID_TAIL = RegisterParticle("cupid_bolt");
344 static const int BOLT_CUPID_HIT = RegisterParticle("cupid_hit");
345
346 // VOLCANIC
347 static const int HOTPSRING_WATERVAPOR = RegisterParticle("hotspring_watervapor");
348 static const int GEYSER_NORMAL = RegisterParticle("geyser_normal");
349 static const int GEYSER_STRONG = RegisterParticle("geyser_strong");
350 static const int GEYSER_SPLASH = RegisterParticle("geyser_strong_splash");
351 static const int GEYSER_BUBBLES = RegisterParticle("geyser_bubbles");
352 static const int VOLCANO = RegisterParticle("volcano_smoke");
353
354 // FISHING
355 static const int FISHING_SIGNAL_SPLASH = RegisterParticle("fishing_signal_splash");
356
357 // STEPS
358 static const int STEP_SNOW = RegisterParticle("step_snow");
359 static const int STEP_DESERT = RegisterParticle("step_desert");
360 static const int STEP_SOIL = RegisterParticle("step_soil");
361
362 // STEPS
363 static const int VEHICLE_WHEEL_SNOW = RegisterParticle("vehicle_wheel_snow");//
364 static const int VEHICLE_WHEEL_GRAVEL = RegisterParticle("vehicle_wheel_gravel");//
365 static const int VEHICLE_WHEEL_ASPHALT = RegisterParticle("vehicle_wheel_asphalt");//
366
367 //TREE FALLING PARTICLES
368 static const int TREE_FALLING_SNOW = RegisterParticle("tree_falling_snow");//
369 static const int TREE_SOFT_FALLING_SNOW = RegisterParticle("tree_soft_falling_snow");//
370 static const int TREE_SOFT_LARGE_FALLING_SNOW = RegisterParticle("tree_soft_large_falling_snow");//
371 static const int TREE_SMALL_FALLING_SNOW = RegisterParticle("tree_small_falling_snow");//
372 static const int TREE_FALLING_NEEDLE = RegisterParticle("tree_falling_needle");//
373 static const int TREE_FALLING_LEAF = RegisterParticle("tree_falling_leaf");//
374 static const int BUSH_FALLING_SNOW = RegisterParticle("bush_falling_snow");//
375 //TREE PASSING ParticleSource
376 static const int TREE_PASSING_SNOW = RegisterParticle("tree_passing_snow");//
377 static const int BUSH_PASSING_SNOW = RegisterParticle("bush_passing_snow");// same as bush_falling_snow
378
379
380 static int RegisterParticle(string file_name)
381 {
382 return RegisterParticle(GetPathToParticles(), file_name);
383 }
384
387 static int RegisterParticleByFullPath(string fullPath)
388 {
390#ifdef DIAG_DEVELOPER
391 if (fullPath.Replace("\\", "/") > 0)
392 {
393 ErrorEx(string.Format("Using wrong path delimiter for particle registering! Use '/' instead of '\\'. fullPath=%1", fullPath), ErrorExSeverity.WARNING);
394 }
395#endif
396
397 int lastIndex = fullPath.LastIndexOf("/");
398 if (lastIndex < 0)
399 {
401#ifdef WAITING_FOR_PBOS_TO_BE_UPDATED
402 ErrorEx(string.Format("No root path found! fullPath=%1", fullPath), ErrorExSeverity.ERROR);
403 return ParticleList.INVALID;
404#else
406#endif
407 }
408
409 // 'graphics/particles/vehicle_wheel_snow' becomes 'graphics/particles/' and 'vehicle_wheel_snow'
410
411 string rootPath = fullPath.Substring(0, lastIndex + 1);
412 string fileName = fullPath.Substring(lastIndex + 1, fullPath.Length() - (lastIndex + 1));
413
414 return RegisterParticle(rootPath, fileName);
415 }
416
418 static int RegisterParticle(string root_path, string file_name)
419 {
420 if (!m_ParticlePaths)
422
423 if (!m_ParticleNames)
425
426 string path = string.Format("%1%2", root_path, file_name);
427 string fullPath = string.Format("%1.ptc", path);
428
429 if ( !FileExist(fullPath) )
430 {
431 string devMsgSuffix;
432 #ifdef DEVELOPER
433 devMsgSuffix = " Then rebuild 'scripts' and 'graphics' PBOs.";
434 #endif
435 ErrorEx(string.Format("Particle file not found! <%1> Correct path to this particle in script file ParticleList.c!%2",
436 fullPath, devMsgSuffix), ErrorExSeverity.WARNING);
437 //return ParticleList.INVALID;
438 }
439
440 int existingNameId;
441 if (m_ParticleNames.Find(file_name, existingNameId))
442 {
443 int existingPathId;
444 if (m_ParticlePaths.GetKeyByValueChecked(path, existingPathId))
445 {
446 if (existingNameId == existingPathId)
447 {
448 return existingNameId; // We have already registered this exact file
449 }
450 else
451 {
452 ErrorEx(string.Format("ParticleNames and ParticlePaths array are containing conflicting data. ID %1 vs ID %2", existingNameId, existingPathId));
453 }
454 }
455 else
456 {
457 ErrorEx(string.Format("Duplicate particle filename: %1; GetParticleIDByName will only work with the first path if there are two different paths.", file_name), ErrorExSeverity.WARNING);
458 }
459 }
460 else
461 {
462 m_ParticleNames.Insert(file_name, m_lastID + 1);
463 }
464
465 ++m_lastID;
467 return m_lastID;
468 }
469
471 {
472 return m_lastID;
473 }
474
476 static bool IsValidId(int id)
477 {
478 return id != NONE && id != INVALID;
479 }
480
482 static string GetParticlePath(int particle_id)
483 {
484 string path;
485 if (!m_ParticlePaths.Find(particle_id, path))
486 ErrorEx(string.Format("No particle registered with id: %1", particle_id), ErrorExSeverity.WARNING);
487 return path;
488 }
489
492 {
493 return string.Format("%1.ptc", GetParticlePath(particle_id));
494 }
495
497 static int GetParticleID(string particle_file)
498 {
499 int id = m_ParticlePaths.GetKeyByValue(particle_file);
500 if (!IsValidId(id)) // valid id starts from 1, 0 is invalid
501 ErrorEx(string.Format("No particle registered with path: %1", particle_file), ErrorExSeverity.WARNING);
502 return id;
503 }
504
506 static int GetParticleIDByName(string name)
507 {
508 int id = 0;
509 if (!m_ParticleNames.Find(name, id))
510 ErrorEx(string.Format("No particle registered with name: %1", name), ErrorExSeverity.WARNING);
511 return id;
512 }
513
515 static string GetPathToParticles()
516 {
517 return "graphics/particles/";
518 }
519
521 static void PreloadParticles()
522 {
523 if ( !g_Game.IsServer() || !g_Game.IsMultiplayer() ) // client side
524 {
525 int count = m_ParticlePaths.Count();
526
527 for (int i = 0; i < count; ++i)
528 {
529 vobject vobj = GetObject( string.Format("%1.ptc", m_ParticlePaths[i]) );
530 ReleaseObject(vobj);
531 }
532 }
533 }
534}
Object GetObject()
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
static const int GRENADE_RDG2_BLACK_LOOP
static const int IMPACT_TEST_ENTER_DEBUG
static const int GUN_VSS
static const int IMPACT_DIRT_ENTER
static const int GUN_SOLO_MUZZLE_FLASH
static const int IMPACT_GRASS_RICOCHET
static const int IMPACT_PLASTER_RICOCHET
static const int VOMIT_CHUNKS
static const int GUN_IZH18_SUPPRESSED
static const int GUN_FNX
static const int LEVER_SPARKS
static int RegisterParticleByFullPath(string fullPath)
Splits the full path into name of particle and it's directory path, then registers the particle with ...
static const int TREE_PASSING_SNOW
static const int IMPACT_GRAVEL_EXIT
static const int BOAT_WATER_BACK
static const int SMOKING_BARREL
static const int HOUSE_NORMAL_SMOKE
static const int IMPACT_MEATBONES_EXIT
static const int WATER_JET_WEAK
static const int FIREWORKS_EXPLOSION_RED
static const int GUN_MP5K_2
static const int BARREL_NORMAL_SMOKE
static const int GUN_AK74
static const int CONTAMINATED_AREA_GAS_SHELL
static const int DROWNING_BUBBLES
static const int BLEEDING_SOURCE_LIGHT
static const int GUN_MP5K
static const int HOTPSRING_WATERVAPOR
static const int GUN_CZ61
static const int TORCH_T1
static const int IMPACT_GLASS_RICOCHET
static const int VEHICLE_WHEEL_GRAVEL
static const int FIREWORKS_EXPLOSION_THANKS1
static const int IMPACT_SAND_RICOCHET
static const int CAMP_STOVE_FIRE
static const int IMPACT_PLASTIC_ENTER
static const int GUN_CZ75
static const int GRENADE_M18_PURPLE_END
static const int FLAREPROJ_ACTIVATE_GREEN
static const int EXPLOSION_GRENADE_ICE
static const int CONTAMINATED_AREA_GAS_DEBUG
static const int IMPACT_WATER_MEDIUM_ENTER
static const int BLOOD_SURFACE_DROPS
static const int GUN_AK101
static const int FIREWORKS_AFTERBURN_END
static const int IMPACT_MEAT_ENTER
static string GetParticleFullPath(int particle_id)
Returns particle's full path (with .ptc suffix) based on its ID.
static const int IMPACT_GLASS_EXIT
static const int AURORA_SANTA_WRECK
static const int IMPACT_PLASTER_EXIT
static const int TREE_FALLING_NEEDLE
static const int SMOKING_CAR_ENGINE
static const int PARTICLE_TEST
static const int VOLCANO
static const int HOUSE_SMALL_SMOKE
static const int GUN_MOSIN_COMPENSATOR
static string GetParticlePath(int particle_id)
Returns particle's full path (without .ptc suffix) based on its ID.
static const int FIREWORKS_EXPLOSION_YELLOW
static const int GRENADE_RDG2_WHITE_START
static const int IMPACT_ICE_ENTER
static const int CAMP_STOVE_FIRE_END
static const int GUN_UMP45
static const int FIREWORKS_EXPLOSION_THANKS3
static const int BROOM_TORCH_T1
static const int IMPACT_CONCRETE_ENTER
static const int CAMP_STEAM_EXTINGUISH_START
static const int HATCHBACK_COOLANT_OVERHEATED
static const int FIREWORKS_AFTERBURN_START
static const int BUSH_FALLING_SNOW
static int RegisterParticle(string root_path, string file_name)
Registers a particle and returns its ID.
static const int GRENADE_M18_BLACK_START
static const int HOUSE_FIRE_END
static const int GUN_AKM_SUPPRESSED
static const int BONFIRE_FIRE
static const int IMPACT_RUBBER_ENTER
static const int HATCHBACK_ENGINE_OVERHEATING
static const int IMPACT_FOLIAGE_GREEN_ENTER
static const int CAMP_FIRE_START
static const int HATCHBACK_EXHAUST_SMOKE
static const int TREE_SOFT_FALLING_SNOW
static const int TREE_SMALL_FALLING_SNOW
static const int SMOKING_BARREL_STEAM
static const int GRENADE_M18_RED_START
static const int IMPACT_TEST_NO_MATERIAL_ERROR
static const int BREATH_VAPOUR_MEDIUM
static const int SMOKING_BARREL_STEAM_SMALL
static const int IMPACT_TEST_RICOCHET_DEBUG
static const int IMPACT_SNOW_RICOCHET
static const int EASTER_EGG_ACTIVATE
static const int GUN_LONG_WINDED_SMOKE_SMALL
static const int IMPACT_DISTANT_DUST
static const int GRENADE_M18_YELLOW_END
static const int TREE_FALLING_LEAF
static const int FLAREPROJ_ACTIVATE_RED
static ref map< string, int > m_ParticleNames
static const int IMPACT_WATER_LARGE_ENTER
static const int VEHICLE_WHEEL_SNOW
static const int BARBED_WIRE_SPARKS
static string GetPathToParticles()
Returns base path to all particles.
static const int GRENADE_M18_RED_END
static const int IMPACT_TEST_RICOCHET
static const int VEHICLE_WHEEL_ASPHALT
static const int IMPACT_FOLIAGE_CONIFER_EXIT
static const int IMPACT_METAL_EXIT
static const int GUN_PARTICLE_TEST
static const int BARREL_NORMAL_FIRE
static const int TREE_SOFT_LARGE_FALLING_SNOW
static const int GRENADE_M18_BLACK_LOOP
static const int IMPACT_TEST
static const int GRENADE_M18_WHITE_LOOP
static const int BOAT_WATER_SIDE
static const int EXPLOSION_TEST
static const int IMPACT_ICE_RICOCHET
static const int IMPACT_SAND_ENTER
static const int IMPACT_WATER_SMALL_ENTER
static const int SMARKS_CHAMBER
static const int OVEN_NORMAL_FIRE
static const int FISHING_SIGNAL_SPLASH
static const int IMPACT_MEATBONES_RICOCHET
static const int COOKING_BOILING_DONE
static const int BOLT_CUPID_TAIL
Cupid's bolt.
static int m_lastID
static const int CONTAMINATED_AREA_GAS_TINY
static const int IMPACT_CONCRETE_EXIT
static const int IMPACT_TEXTILE_RICOCHET
static const int IMPACT_MEAT_EXIT
static const int GRENADE_M18_PURPLE_START
static const int GUN_SKS
static const int TORCH_T2
static const int GRENADE_M18_RED_LOOP
static const int CAMP_FIRE_END
static bool IsValidId(int id)
Purely checks for an invalid number, does NOT mean it is actually registered.
static const int IMPACT_MEAT_RICOCHET
static const int GRENADE_M18_GREEN_LOOP
static const int GRENADE_RDG2_WHITE_END
static const int CAMP_STOVE_FIRE_START
static const int TORCH_T3
static const int FIREWORKS_EXPLOSION_GREEN
static const int CLAYMORE_EXPLOSION
static const int WATER_JET
static const int GRENADE_M18_GREEN_START
M18.
static const int FIREWORKS_EXPLOSION_THANKS4
static const int POWER_GENERATOR_SMOKE
static const int NONE
static const int GRENADE_M18_YELLOW_LOOP
static const int IMPACT_DIRT_RICOCHET
static const int GUN_IZH18
static const int GRENADE_RDG2_WHITE_LOOP
static const int GRENADE_M18_WHITE_END
static const int BLEEDING_SOURCE
static const int IMPACT_GLASS_ENTER
static const int OVEN_SMALL_FIRE
static const int CONTAMINATED_AREA_GAS_AROUND
static const int IMPACT_RUBBER_RICOCHET
static const int FIREWORKS_FUSE
static const int COOKING_BAKING_DONE
static const int GUN_LONG_WINDED_SMOKE
static const int CAMP_NORMAL_FIRE
static const int GUN_M4A1
static const int FIREWORKS_EXPLOSION_BLUE
static const int GUN_WINCHESTER70
static const int FIREWORKS_EXPLOSION_THANKS5
static const int GUN_AKM
static const int COOKING_DRYING_START
static const int HOUSE_NORMAL_FIRE
static const int DIGGING_STASH
static const int IMPACT_SNOW_ENTER
static const int GRENADE_M18_YELLOW_START
static const int ROADFLARE_BURNING_INIT
static const int IMPACT_TEST2
static int RegisterParticle(string file_name)
static const int GUN_MUZZLE_FLASH_SVD_STAR
static const int TREE_FALLING_SNOW
static const int IMPACT_SNOW_EXIT
static const int HOUSE_FIRE_START
static const int TIREPILE_FIRE
static const int BUSH_PASSING_SNOW
static const int BROOM_TORCH_T2
static const int IMPACT_FOLIAGE_CONIFER_RICOCHET
static const int COOKING_BOILING_EMPTY
static const int IMPACT_TEXTILE_ENTER
static const int FLAREPROJ_ACTIVATE_BLUE
static const int CONTAMINATED_AREA_GAS_GROUND
static const int RGD5
static const int OVEN_FIRE_START
static int GetParticleIDByName(string name)
Returns particle's ID based on the filename (without .ptc suffix).
static const int IMPACT_TEST_EXIT_DEBUG
static const int BARREL_FIRE_END
static const int SPOOKY_MIST
static const int GUN_MP5K_COMPENSATOR
static const int SMOKING_HELI_WRECK
static const int IMPACT_WOOD_RICOCHET
static const int HOUSE_FIRE_STEAM_2END
static const int BOLT_CUPID_HIT
static const int GRENADE_M18_WHITE_START
static const int GEYSER_BUBBLES
static const int DEBUG_DOT
static const int GRENADE_M84
FLASH GRENADE M84.
static const int INVALID
static const int ENV_SWARMING_FLIES
static void PreloadParticles()
Preloads all particles.
static const int FIREWORKS_SHOT
static const int GRENADE_M18_GREEN_END
static const int GUN_PELLETS
static ref map< int, string > m_ParticlePaths
static const int GUN_MP133
static const int IMPACT_PLASTIC_EXIT
static const int GUN_FNX_SUPPRESSED
static const int COOKING_BURNING_DONE
static const int IMPACT_FOLIAGE_CONIFER_ENTER
static const int BARREL_FIRE_START
static const int SMOKING_BARREL_SMALL
static const int IMPACT_METAL_ENTER
static const int IMPACT_FOLIAGE_ENTER
static const int GRENADE_RDG2_BLACK_START
RDG2.
static const int VOMIT_BLOOD
static const int IMPACT_CONCRETE_RICOCHET
static const int STEP_SOIL
static const int GUN_PARTICLE_CASING
static const int M67
static const int ITEM_HOT_VAPOR
static const int SMOKING_BARREL_HEAVY
static const int IMPACT_DIRT_EXIT
static const int HATCHBACK_COOLANT_OVERHEATING
static const int GRENADE_RDG2_BLACK_END
static const int IMPACT_METAL_RICOCHET
static const int COOKING_DRYING_DONE
static const int GUN_MOSIN9130
static const int BREATH_VAPOUR_HEAVY
static const int GEYSER_SPLASH
static const int BONFIRE_SMOKE
static int GetParticleID(string particle_file)
Returns particle's ID based on the path (without .ptc suffix).
static const int GEYSER_STRONG
static const int GUN_MP5K_SUPPRESSED
static const int BARREL_SMALL_SMOKE
static const int IMPACT_FOLIAGE_GREEN_EXIT
static const int IMPACT_FOLIAGE_GREEN_RICOCHET
static const int CAMP_NORMAL_SMOKE
static const int CAMP_SMALL_FIRE
static const int FLAREPROJ_FIRE
static const int BLOOD_SURFACE_CHUNKS
static const int EXPLOSION_LANDMINE
static const int IMPACT_GRAVEL_RICOCHET
static const int CAMP_NO_IGNITE_WIND
static const int BREATH_VAPOUR_LIGHT
static const int FIREWORKS_EXPLOSION_THANKS2
static const int EXPLOSION_GRENADE_SNOW
static const int IMPACT_FOLIAGE_RICOCHET
static const int BARREL_SMALL_FIRE
static const int GRENADE_M18_BLACK_END
static const int IMPACT_MEATBONES_ENTER
static const int WATER_SPILLING
static const int HATCHBACK_ENGINE_OVERHEATED
static const int COOKING_BAKING_START
static const int HOUSE_SMALL_FIRE
static const int STEP_DESERT
static const int IMPACT_PLASTER_ENTER
static const int IMPACT_RUBBER_EXIT
static const int PLASTIC_EXPLOSION
static const int CAMP_STEAM_2END
static const int CONTAMINATED_AREA_GAS_BIGASS
static const int CAMP_SMALL_SMOKE
static const int FIREWORKS_EXPLOSION_PINK
static const int COOKING_BOILING_START
static const int IMPACT_TEXTILE_EXIT
static const int GUN_MAGNUM
static const int ROADFLARE_BURNING_SMOKE
static const int IMPACT_PLASTIC_RICOCHET
static const int VOMIT
static const int EVAPORATION
static const int FLAREPROJ_ACTIVATE
static const int GUN_PARTICLE_CASING_RAISE
static const int IMPACT_FOLIAGE_EXIT
static int GetRegisteredParticlesCount()
static const int EXPLOSION_GOAT
static const int BOAT_WATER_FRONT
static const int IMPACT_GRASS_ENTER
static const int GRENADE_M18_PURPLE_LOOP
static const int OVEN_FIRE_END
static const int IMPACT_WOOD_EXIT
static const int SMOKE_GENERIC_WRECK
static const int DEBUG_DOT5M
static const int GRENADE_CHEM_BREAK
static const int ROADFLARE_BURNING_ENDING
static const int ROADFLARE_BURNING_MAIN
static const int IMPACT_WOOD_ENTER
static const int IMPACT_GRAVEL_ENTER
static const int BROOM_TORCH_T3
static const int GUN_CZ527
static const int BARREL_FIRE_STEAM_2END
static const int GEYSER_NORMAL
static const int STEP_SNOW
static const int IMPACT_ICE_EXIT
static const int IMPACT_SAND_EXIT
DayZGame g_Game
Definition dayzgame.c:3942
ErrorExSeverity
Definition endebug.c:62
enum ShapeType ErrorEx
proto bool FileExist(string name)
Check existence of file.
proto string Substring(int start, int len)
Substring of 'str' from 'start' position 'len' number of characters.
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
proto int Replace(string sample, string replace)
Replace all occurrances of 'sample' in 'str' by 'replace'.
proto native int Length()
Returns length of string.
proto native int LastIndexOf(string sample)
Finds last 'sample' in 'str'.
proto native void ReleaseObject(vobject object, int flag=0)
Release object.
int particle_id