http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=12917

基础知识：什么是粒子和粒子系统？
粒子和动画、单位等一样，是游戏中的一种“物体”，粒子系统则是控制粒子产生的一种逻辑
举个例子：工程师步兵车维修时会冒出火花，每一个火花“点”都是一个粒子，而控制这些粒子的产生数量、分布方式和产生速度的是粒子系统
其他的还有病毒狙击手的病毒、坦克损伤时的烟雾、喷火器、轨道炮等

粒子不一定必须由粒子系统产生 例如动画也能直接产生粒子

粒子和粒子系统皆须注册才能使用。
反正某些自学能力低下的菜逼找个注册表都懒得找，就直接贴上来吧
[ParticleSystems]粒子系统
[Particles]粒子


粒子及粒子系统的调用方式:

1 下文的[XXXWeapon]为在武器上调用粒子系统的方式

注：武器发射粒子系统时 必须等上一次发射的粒子消失 才能再次发射
举个栗子:某轨道炮武器burst=2 粒子持续时间为20 则第二发要等20帧才能发出来

注2：同一单位同一级别下不能同时携带两个带有粒子系统的武器，否则可能无法正常开火。
举个栗子：主武器、副武器、盖特武器

2 动画调用粒子(非系统) 动画结束产生粒子
art里
[XXXAnim]
…
SpawnsParticle=填写粒子名
NumParticles=粒子数量

3 弹头调用粒子系统
[XXXXWH]
…
Particle= 填写粒子系统名称 (你可以做个远程维修车 火花在被维修的目标上产生)

4 覆盖物调用粒子系统 (比如打死金矿后刷出一团毒气)
[TIB01];一种金矿
…
Explodes=yes ;必须
BarrelParticle=填写粒子系统名称

5 单位损伤调用粒子系统 (坦克残血冒烟)
[MTNK]
…
DamageParticleSystems= 填粒子系统名称
(ares有更多相关功能 具体看ares说明书)
运用实例 来自mk 受损粒子刷维修罩:http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=10177

6 ares新功能 抛射体调用烟雾粒子系统 具体看ares说明书


粒子系统通用代码
[XXXSys]
HoldsWhat = 粒子系统产生的粒子名称
BehavesLike= 填写系统类型  Gas Smoke Fire Spark Railgun

注:粒子系统和粒子的BehavesLike不一定是同类的。你完全可以用smoke系统产生毒气粒子
例如:Railgun粒子系统如果用smoke粒子形态就可以自定义轨道炮粒子的图像，用GAS的话更可以直接散布大量毒气粒子


毒气粒子系统 无甚可说 (弹头和覆盖物刷毒气专用?)
[GasCloudSys]
HoldsWhat=GasCloud1
BehavesLike=Gas

烟雾粒子系统(车辆黄血冒烟等)
[SmallGreySSys]
HoldsWhat=SmallGreySmoke
Spawns=yes 是否用此系统不停刷出粒子
SpawnFrames=10 和上一句连用，刷粒子的间隔
SpawnRadius=5 产生粒子的范围 单位为像素
Slowdown=.0025 系统速率衰减
ParticleCap=7 最高同时存在的粒子数目
SpawnCutoff=13.0 多长时间后停止产生粒子
SpawnTranslucencyCutoff=12.5 多长时间后粒子变为半透明
BehavesLike=Smoke






喷火粒子系统和喷火粒子 放在一起
特征为射出一团向目标运动的粒子
(西木SB 逻辑糟糕 懒得说明 也就改改什么速度、伤害、图像、持续时间之类的吧)
中文解释参考坛友双杀步枪做好的实例→http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=14734
[XXXWeapon]
…
UseFireParticles=yes
AttachedParticleSystem=FireStreamSys
[FireStreamSys]
HoldsWhat=FireStream
Spawns=yes
SpawnFrames=4
BehavesLike=Fire
Image=TWLT036
Lifetime=30
[FireStream]
Image=FLAMEALL
Deacc=0.01
Velocity=28.0
BehavesLike=Fire
MaxEC=400
MaxDC=1
Warhead=Fire
Damage=4
StartStateAI=1
EndStateAI=19
StateAIAdvance=6
Translucent50State=15
Translucent25State=10
DeleteOnStateLimit=yes
Normalized=yes
FinalDamageState=14
Report=FLAMTNK1

火花粒子系统(维修车)
[XXXWeapon]
…
UseSparkParticles=yes
AttachedParticleSystem=WeldingSys
[WeldingSys]
HoldsWhat=WeldingSpark
BehavesLike=Spark
ParticleCap=15 此粒子系统最高产生的粒子数目
SparkSpawnFrames=20 产生粒子的所用的帧数
SpawnSparkPercentage=.4 每次产生粒子的几率
LightSize=25 闪光大小
OneFrameLight=true 是否产生闪光


轨道炮粒子系统(特征为 在发射者和目标之间的连线上立刻产生一列螺旋分布的粒子)
[XXXWeapon]
…
IsRailgun=true
AttachedParticleSystem=PsyBeamSys
[XXXRailgunSys]
HoldsWhat=XXXPart (该粒子类型非Railgun时 粒子不会运动)
BehavesLike=Railgun
SpiralRadius=6 轨道炮粒子扩散的最大半径
ParticlesPerCoord=a 这是粒子密度,越大越密 算法为 1/a (例:填写.05 即每1/.05=20个像素产生一个粒子)
SpiralDeltaPerCoord=b 波长 控制粒子排列的弯曲度 越大弯曲度越小 算法为b/a (例:填写 .3 即.3/.05=6 每像素粒子方向绕圆柱轴心旋转.3，那么每相邻的两个粒子之间角度相差6)以上两条具体算法来自耗神
VelocityPerturbationCoefficient=0 速度扰动系数 算法不明 影响railgun粒子出膛后的运动速度
MovementPerturbationCoefficient=0 运动扰动系数 算法不明 影响railgun粒子出膛后的运动方向
PositionPerturbationCoefficient=0 位置扰动系数 算法不明 影响railgun粒子出膛后的位置
增大以上三条的数值能让轨道炮粒子的弥散运动更加不确定
Laser=yes 是否产生一条激光细线
LaserColor=255,0,255 线的颜色


;粒子注释
;乱七八糟的太多 说几个常见的 (以下代码并非对所有类型粒子都有效，建议用的时候复制原版写好的粒子再改数据)
; BehavesLike= 粒子类型
Spark   火花(维修车)
Smoke   烟雾(车辆损伤等)
Fire    火焰(喷火)
Gas  毒气
RailGun 轨道炮
; Image = 此粒子的外形 直接写shp名 无需且无法在art里定义 色盘默认为anim (Spark和RailGun无效)
; Translucency= 图像透明度 25 50 75
; MaxEC = 此粒子的存在时间
; StartFrame = 粒子动画的起始帧号
; EndStateAI = 粒子动画的结束帧号
; StateAIAdvance= 图像每帧持续多少帧时间 控制图像播放速度 越大越慢（相当于art里的rate，算法相反）
; Damage = 每次产生的伤害
; Warhead = 用来产生伤害的弹头(弹头范围无效)
; MaxDC = 间隔多少帧产生一次伤害
; NumLoopFrames =多少帧是一个循环
; NextParticle= 循环结束后产生另一粒子的名称
; ColorList=(255,0,0),(150,150,150) 轨道炮粒子颜色渐变始末
; ColorSpeed=.009 变色速度
; Persistent =永远是yes，当成无效代码好了
; WindEffect = 风力影响，改数值貌似没用
; Velocity = 粒子运动的速度，默认0 
; Deacc= 速度衰减
; DeleteOnStateLimit=yes 图像播放结束后立刻移除粒子
; Radius = 伤害范围？貌似无效，粒子最多影响1X1


编写修订： 紫色放逐
协力：moderKenosis

2017 03 12