7-8 攻击命中特效



准确来说,这个已经不算是教程了,需要高度自主研究性,只能靠你自己研究。



tactics所有攻击action都有<impacteffect>effects\impacts\xxxxxxx</impacteffect>语句,这个就是攻击命中特效文件,格式为impacteffect,可以在art1-5.bar里面找到这个文件。例如下面的CannonAttack,命中特效文件路径为effects\impacts\cannon.impacteffect,你能在art1.bar找到这个文件。
		<name stringid="38119">CannonAttack</name>
定义tactics的Action名及其名称
		<reloadanim>Bombard_reload</reloadanim>
装填动作【单位xml定义的动作】
		<type>Attack</type>
类型,攻击
		<attackaction>1</attackaction>
没有这句,整个攻击设定无效
		<rangedlogic>1</rangedlogic>
远距离攻击都带有的语句,作用不明
		<anim>Bombard_ranged_attack</anim>
攻击动作【单位xml定义的动作】
		<idleanim>Bombard_ranged_idle</idleanim>
默认动作【单位xml定义的动作】
		<boredanim>Bombard_bored</boredanim>
无聊动作【单位xml定义的动作】
		<maxheight>0</maxheight>
远程攻击抛物线最大高度,0为直线
		<accuracy>1.0</accuracy>
命中率
		<aimbonus>0</aimbonus>
作用不明
		<maxspread>5</maxspread>
作用不明
		<spreadfactor>0.25</spreadfactor>
作用不明
		<trackrating>12</trackrating>
发射物追踪效果,数值越大追踪能力越强
		<unintentionaldamagemultiplier>1.0</unintentionaldamagemultiplier>
作用不明
		<projectile>Cannonball</projectile>
发射物(单位调用名)
		<impacteffect>effects\impacts\cannon</impacteffect>
命中单位特效文件路径(格式为impacteffect),可在art1—5.bar找到该文件。
		<rate type="All">1.0 </rate>
攻击对象
		<throw>1</throw>
将单位打飞效果(只能给远距离攻击添加打飞效果,近战攻击不可以添加)
		<impactforcemin>500.0f</impactforcemin>
最小冲击力(击杀单位后,冲击力越大,<throw>1</throw>打飞单位距离越远)
		<impactforcemax>800.0f</impactforcemax>
最大冲击力(击杀单位后,冲击力越大,<throw>1</throw>打飞单位距离越远)
		<outerdamageareadistance>.25</outerdamageareadistance>
反弹伤害距离(.25是0.25的意思)
		<outerdamageareafactor>.20</outerdamageareafactor>
反弹伤害倍数,包括第一次命中也会算上这个倍数(.20是0.20倍伤害的意思)
		<impactlaunchangle>10.0</impactlaunchangle>
<throw>1</throw>击飞单位后,单位被击飞的角度,90就是垂直上上
		<areasortmode>Directional</areasortmode>
作用不明
		<targetground>1</targetground>
1为炮弹打到地上后会反弹出去造成二次伤害,0为击中单位1次后就失效,当设定了命中率后,如果有这个语句也是百发百中
		<numberbounces>1</numberbounces>
最大反弹次数(第一下为命中,反弹出去击中地面造成伤害计第一次反弹,我试验过10次,最多的一次是反弹3下)
		<basedamagecap>1</basedamagecap>
可以造成范围伤害
		<perfectaccuracy>1</perfectaccuracy>
完美射击???添加这语句后,就算你的命中率只有1%,除非对方移动,否则100%命中,就算没有打中对方,还是能造成伤害。



我们用AOE3ED将effects\impacts\cannon提取出来,语句如下:
  cannon.impacteffect - 记事本 __ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>
<impacteffect metercount="5" meterlength="1.0">
<rooftile>
<particleset>cannonball_impact_rooftile</particleset>
<soundset>CannonImpactWood</soundset>
<soundset>Explosion</soundset>
</rooftile>
<wood fireexisttime="4500">
<particleset>effects\\impacts\\cannonball_impact_wood.xml</particleset>
<secondaryparticleset>cannonball_impact_grass_light</secondaryparticleset>
<soundset>CannonImpactWood</soundset>
<soundset>Explosion</soundset>
</wood>
<stone exiteffectspawnchance="0.0">
<particleset>cannonball_impact_stone</particleset>
<soundset>CannonImpactStone</soundset>
<soundset>Explosion</soundset>
</stone>
<flesh>
<particleset>cannonball_impact_flesh</particleset>
<soundset>CannonImpactFlesh</soundset>
<soundset>Explosion</soundset>
</flesh>
<dirt>
<particleset>cannonball_impact_dirt</particleset>
<secondaryparticleset>cannonball_impact_flesh</secondaryparticleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</dirt>
<snow>
<particleset>cannonball_impact_snow</particleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</snow>
<animal>
<particleset>cannonball_impact_flesh</particleset>
<soundset>CannonImpactFlesh</soundset>
<soundset>Explosion</soundset>
</animal>
<terraingrass weight="1">
<particleset>cannonball_impact_grass</particleset>
<secondaryparticleset>cannonball_impact_grass_light</secondaryparticleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</terraingrass>
<terraingrass weight="10">
<particleset>cannonball_impact_grass2</particleset>
<secondaryparticleset>cannonball_impact_grass_light</secondaryparticleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</terraingrass>
<terrainwater>
<particleset>cannonball_impact_water</particleset>
<soundset>CannonImpactWater</soundset>
</terrainwater>
<terraindirt weight="1">
<particleset>cannonball_impact_grass</particleset>
<secondaryparticleset>cannonball_impact_grass_light</secondaryparticleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</terraindirt>
<terraindirt weight="1">
<particleset>cannonball_impact_grass2</particleset>
<secondaryparticleset>cannonball_impact_grass_light</secondaryparticleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</terraindirt>
<terrainstone>
<particleset>cannonball_impact_stone</particleset>
<soundset>CannonImpactStone</soundset>
<soundset>Explosion</soundset>
</terrainstone>
<terrainsnow>
<particleset>cannonball_impact_snow</particleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</terrainsnow>
<terrainsand>
<particleset>cannonball_impact_sand</particleset>
<soundset>CannonImpactDirt</soundset>
<soundset>Explosion</soundset>
</terrainsand>
<exitbuilding>
<particleset>cannonball_impact_gen</particleset>
<soundset>BuildingPartImpact</soundset>
<soundset>Explosion</soundset>
</exitbuilding>
</impacteffect>


rooftile、wood、stone、flesh、dirt等标签那些就是命中目标类型了,其中wood、flesh、stone、animal都是在data\protoy.xml的<ImpactType>XXXXXXXX</ImpactType>定义。terraingrass、terraindirt、terrainsnow、terrainsand、terrainrock在ar5.bar里面的terraintypes.xml与terraintypes2.xml定义。至于其他的你自己体会,我不知道。

<soundset>xxxxxxxxx</soundset>这个没什么好说的,你自己去sound文件夹的soundxml1-3.bar提取Soundsets.xml、Soundsetsx.xml、Soundsetsy.xml,然后查找。

<particleset>xxxxxx</particleset>这个是调用粒子效果,粒子效果必须在art1.bar\effects\particlesets.xml、art4.bar\effects\particlesets_xpack.xml、art5.bar\effects\particlesets_ypack.xml三个文件其中一个定义,否则无法调用及生效。
至于这三个xml文件,你打开就懂了,但是打开后,里面调用的粒子文件是怎样构成的,你自己研究,我也没有什么教程。