config.cpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. #include "../../RD501_main/config_macros.hpp"
  2. class CfgPatches
  3. {
  4. class macro_patch_name(weapon_impact_effects)
  5. {
  6. addonRootClass = macro_patch_name(particle_effects)
  7. units[] = {};
  8. weapons[] = {};
  9. requiredVersion = 0.1;
  10. requiredAddons[] = {
  11. macro_patch_name(particle_effects)
  12. };
  13. version = 1;
  14. author[] = {"RD501"};
  15. };
  16. };
  17. class CfgCloudlets
  18. {
  19. class Default;
  20. class macro_new_cloudlet(impack_spark_plasma_base):Default
  21. {
  22. interval = 0.0004;
  23. circleRadius = 0;
  24. circleVelocity[] = {0, 0, 0};
  25. particleShape = "\A3\data_f\ParticleEffects\Universal\Universal";
  26. particleFSNtieth = 16;
  27. particleFSIndex = 13;
  28. particleFSFrameCount = 2;
  29. particleFSLoop = 0;
  30. angleVar = 360;
  31. animationName = "";
  32. particleType = "Billboard";
  33. timerPeriod = 3;
  34. lifeTime = 3.5;
  35. moveVelocity[] = {"(- inDirX * 2 + surfNormalX / 2) * inSpeed / 200", "( - inDirY * 2 + surfNormalY / 2) * inSpeed / 200", "( - inDirZ * 2 + surfNormalZ / 2) * inSpeed / 200"};
  36. rotationVelocity = 1;
  37. weight = 100;
  38. volume = 0.01;
  39. rubbing = 0.3;
  40. size[] = {0.12, 0};
  41. sizeCoef = 1;
  42. color[] = {{1, 0.6, 0.4, -50}};
  43. colorCoef[] = {1, 1, 1, 1};
  44. emissiveColor[] = {{10, 6, 4, 1}};
  45. animationSpeed[] = {1000};
  46. animationSpeedCoef = 1;
  47. randomDirectionPeriod = 0;
  48. randomDirectionIntensity = 0;
  49. onTimerScript = "";
  50. beforeDestroyScript = "";
  51. blockAIVisibility = 0;
  52. bounceOnSurface = 0.1;
  53. bounceOnSurfaceVar = 0.1;
  54. lifeTimeVar = 5;
  55. position[] = {0, 0, 0};
  56. positionVar[] = {0.01, 0.01, 0.01};
  57. moveVelocityVar[] = {1, 3, 1};
  58. rotationVelocityVar = 0;
  59. sizeVar = 0;
  60. colorVar[] = {0.05, 0.05, 0.05, 5};
  61. randomDirectionPeriodVar = 0;
  62. randomDirectionIntensityVar = 0;
  63. };
  64. class macro_new_cloudlet(impack_spark_plasma2_base):Default
  65. {
  66. interval = 0.01;
  67. circleRadius = 0;
  68. circleVelocity[] = {0, 0, 0};
  69. particleShape = "\A3\data_f\ParticleEffects\Universal\Universal";
  70. particleFSNtieth = 16;
  71. particleFSIndex = 13;
  72. particleFSFrameCount = 2;
  73. particleFSLoop = 0;
  74. angleVar = 360;
  75. animationName = "";
  76. particleType = "Billboard";
  77. timerPeriod = 3;
  78. lifeTime = 0.039;
  79. moveVelocity[] = {0, 0, 0};
  80. rotationVelocity = 1;
  81. weight = 1.275;
  82. volume = 1;
  83. rubbing = 0;
  84. size[] = {0.45, 0.225, 0};
  85. sizeCoef = 1;
  86. color[] = {{1, 0.6, 0.4, -50}};
  87. colorCoef[] = {1, 1, 1, 1};
  88. animationSpeed[] = {1000};
  89. animationSpeedCoef = 1;
  90. randomDirectionPeriod = 0;
  91. randomDirectionIntensity = 0;
  92. onTimerScript = "";
  93. beforeDestroyScript = "";
  94. blockAIVisibility = 0;
  95. lifeTimeVar = 0.02;
  96. position[] = {0, 0, 0};
  97. positionVar[] = {0, 0, 0};
  98. moveVelocityVar[] = {0, 0, 0};
  99. rotationVelocityVar = 0;
  100. sizeVar = 0.03;
  101. colorVar[] = {0.05, 0.05, 0.05, 5};
  102. randomDirectionPeriodVar = 0;
  103. randomDirectionIntensityVar = 0;
  104. };
  105. class macro_new_cloudlet(ImpactSmoke_base): Default
  106. {
  107. interval = 0.004;
  108. circleRadius = 0;
  109. circleVelocity[] = {0, 0, 0};
  110. particleShape = "\A3\data_f\ParticleEffects\Universal\Universal";
  111. particleFSNtieth = 16;
  112. particleFSIndex = 12;
  113. particleFSFrameCount = 8;
  114. particleFSLoop = 0;
  115. angleVar = 1;
  116. animationName = "";
  117. particleType = "Billboard";
  118. timerPeriod = 3;
  119. lifeTime = 1;
  120. moveVelocity[] = {"surfNormalX * inSpeed / 250 * 0.66", "surfNormalY * inSpeed / 250 * 0.66", "surfNormalZ * inSpeed / 250 * 0.66"};
  121. rotationVelocity = 1;
  122. weight = 1.28;
  123. volume = 1;
  124. rubbing = 0.5;
  125. size[] = {0.5, 0.7};
  126. sizeCoef = 1;
  127. color[] = {{0.3, 0.3, 0.3, 0.5}, {0.4, 0.4, 0.4, 0.25}, {0.5, 0.5, 0.5, 0.15}, {0.6, 0.6, 0.6, 0.07}, {0.8, 0.8, 0.8, 0}};
  128. colorCoef[] = {1, 1, 1, 1};
  129. animationSpeed[] = {1};
  130. animationSpeedCoef = 1;
  131. randomDirectionPeriod = 0.1;
  132. randomDirectionIntensity = 0.05;
  133. onTimerScript = "";
  134. beforeDestroyScript = "";
  135. lifeTimeVar = 1;
  136. position[] = {0, 0, 0};
  137. positionVar[] = {0.2, 0.2, 0.2};
  138. moveVelocityVar[] = {0.5, 0.5, 0.5};
  139. rotationVelocityVar = 0;
  140. sizeVar = 0.15;
  141. colorVar[] = {0.05, 0.05, 0.05, 0.3};
  142. randomDirectionPeriodVar = 0;
  143. randomDirectionIntensityVar = 0;
  144. };
  145. class macro_new_cloudlet(impack_spark_plasma): macro_new_cloudlet(impack_spark_plasma_base)
  146. {
  147. interval=0.0008;
  148. circleRadius=0;
  149. circleVelocity[]={0,0,0};
  150. particleShape="\A3\data_f\ParticleEffects\Universal\Universal";
  151. particleFSNtieth=16;
  152. particleFSIndex=13;
  153. particleFSFrameCount=2;
  154. particleFSLoop=0;
  155. angleVar=360;
  156. animationName="";
  157. particleType="Billboard";
  158. timerPeriod=3;
  159. lifeTime=0.5;
  160. moveVelocity[]=
  161. {
  162. "(- inDirX * 2 + surfNormalX / 2) * inSpeed / 300",
  163. "( - inDirY * 2 + surfNormalY / 2) * inSpeed / 300",
  164. "( - inDirZ * 2 + surfNormalZ / 2) * inSpeed / 300"
  165. };
  166. rotationVelocity=1;
  167. weight=100;
  168. volume=0.0099999998;
  169. rubbing=0.30000001;
  170. size[]={0.12,0};
  171. sizeCoef=1;
  172. color[]=
  173. {
  174. {1,0.60000002,0.40000001,-50}
  175. };
  176. colorCoef[]={1,1,1,1};
  177. emissiveColor[]=
  178. {
  179. {10,6,4,1}
  180. };
  181. animationSpeed[]={1000};
  182. animationSpeedCoef=1;
  183. randomDirectionPeriod=0;
  184. randomDirectionIntensity=0;
  185. onTimerScript="";
  186. beforeDestroyScript="";
  187. blockAIVisibility=0;
  188. bounceOnSurface=0.1;
  189. bounceOnSurfaceVar=0.1;
  190. lifeTimeVar=.5;
  191. position[]={0,0,0};
  192. positionVar[]={0.001,0.01,0.01};
  193. moveVelocityVar[]={1,1.5,1};
  194. rotationVelocityVar=0;
  195. sizeVar=0;
  196. colorVar[]={0.050000001,0.050000001,0.050000001,5};
  197. randomDirectionPeriodVar=0;
  198. randomDirectionIntensityVar=0;
  199. }
  200. class macro_new_cloudlet(impack_spark_plasma2):macro_new_cloudlet(impack_spark_plasma2_base)
  201. {
  202. size[] = {0.25, 0.125, 0};
  203. };
  204. class macro_new_cloudlet(impack_smoke):macro_new_cloudlet(ImpactSmoke_base)
  205. {
  206. interval = 0.008;
  207. size[] = {0.3, 0.5};
  208. sizeCoef = 0.8;
  209. };
  210. };
  211. class CfgLights
  212. {
  213. class macro_new_light(PlasmaLight)
  214. {
  215. diffuse[] = {1, 0.6, 0.4};
  216. color[] = {1, 0.6, 0.4};
  217. ambient[] = {0, 0, 0, 0};
  218. brightness = 10;
  219. size = 1;
  220. intensity = 10000;
  221. drawLight = 0;
  222. blinking = 1;
  223. class Attenuation
  224. {
  225. start = 0;
  226. constant = 0;
  227. linear = 0;
  228. quadratic = 2.2;
  229. hardLimitStart = 500;
  230. hardLimitEnd = 1000;
  231. };
  232. position[] = {0, 3.5, 0};
  233. };
  234. class macro_new_light(sparks_impact)
  235. {
  236. diffuse[] = {1, 0.8, 0.8};
  237. color[] = {1, 0.8, 0.8};
  238. ambient[] = {0, 0, 0, 0};
  239. brightness = 50;
  240. size = 1;
  241. intensity = 1000;
  242. drawLight = 0;
  243. blinking = 0;
  244. class Attenuation
  245. {
  246. start = 0;
  247. constant = 0;
  248. linear = 0;
  249. quadratic = 1;
  250. hardLimitStart = 40;
  251. hardLimitEnd = 80;
  252. };
  253. position[] = {0, 0, 0};
  254. };
  255. };
  256. class macro_new_complex_effect(impack_plasma)
  257. {
  258. class Light1
  259. {
  260. simulation = "light";
  261. type =macro_new_light(PlasmaLight);
  262. position[] = {0, 0, 0};
  263. intensity = 1;
  264. interval = 1;
  265. lifeTime = 0.3;
  266. };
  267. class SparksLight
  268. {
  269. simulation = "light";
  270. type = macro_new_light(sparks_impact);
  271. position[] = {0, 0, 0};
  272. intensity = 1;
  273. interval = 1;
  274. lifeTime = 0.5;
  275. };
  276. class ImpactSparks1
  277. {
  278. simulation = "particles";
  279. type = macro_new_cloudlet(impack_spark_plasma);
  280. position[] = {0, 0, 0};
  281. intensity = 1;
  282. interval = 1;
  283. lifeTime = 0.2;
  284. };
  285. class ImpactSparks2
  286. {
  287. simulation = "particles";
  288. type = macro_new_cloudlet(impack_spark_plasma2);
  289. position[] = {0, 0, 0};
  290. intensity = 1;
  291. interval = 1;
  292. lifeTime = 0.2;
  293. };
  294. class ImpactSmoke
  295. {
  296. simulation = "particles";
  297. type = macro_new_cloudlet(impack_smoke);
  298. position[] = {0, 0, 0};
  299. intensity = 1;
  300. interval = 1;
  301. lifeTime = 0.2;
  302. };
  303. };