???? ???一、狂犬病Rabies的技能运行原理(Game Mechanics in TXT Code)
1. 软代码解析:
首先看看被狂犬病击中的首个感染者:
从skills.txt中找到Rabies所在行,srvmissile列为空,srvmissilea列=“rabiesplague”。Auratargetstate列= “rabies”,range列=“ h2h”,anim列=“ S3”。狂犬病必须近身攻击,使用S3动画,击中后不但会对击中的目标产生毒伤害,还会附加一个状态效果。近身攻击命中后会产生一个投射物rabiesplague,具体作用下面再谈。
我们来看看它给怪物附加了一个什么状态,在states.txt中rabies一行,overlay1=“rabiesplague”。看下面关于rabiesplague投射物的分析可以知道这个状态代表了被感染的怪物同时将成为新的传染者。
再来看传染的过程:
在Missiles.txt中
rabiesplague一行CollideKill=0这是一个过渡投射物,不要把它理解为中了狂犬病的怪物身上的红光,因为CelFile=”null”说明它没有使用任何DCC图片文件,Red Green Blue=0,在游戏中表现为不可见的。Param1=“4”(freq),Param2=“7”(radius),SubMissile1=“rabiescontagion”它会以7 sub-tiles=4又2/3码为半径,每隔4帧就发射子投射物rabiescontagion。Vel=0,因此其静止不动。
AB的onderduiker认为其运行机理是每4F向半径7内的随机一个水平方向发射1个rabiescontagion,大概是他认为NumDirections=1即随机一个方向。
但本轻寒个人认为这里的NumDirections值因无DCC文件引用的关系而并不被使用,这里应该按照:“在半径7的范围内选取目标向其投射rabiescontagion”更为合理。
再看子投射物Rabiescontagion一行,它也是在游戏中不可见的。Vel=5,Accel=0,因此其以5的初始速度被发射出去并匀速飞行,CollideKill=0,ToHit=0,即它在命中后会穿刺而继续飞行,且击中目标时不计算AR和格挡而直接命中。Skill=“ Rabies”,它会给目标附加狂犬病技能的伤害效果和狂犬病状态(rabies states)效果
2. 流程分析:
?? ??? 狂犬病首次击中:
当一次狂犬病攻击成功命中后,它将给击中的目标怪物附加2项东西:1.毒素伤害2.狂犬病状态(rabies states)(该状态持续时间=该等级的狂犬病的基础毒素持续时间)
?? ???【狂犬病状态(rabies states)】:
该状态的外观为怪物身上出现红色光晕。实际效果为附加了一个rabiesplague的无形物体。狂犬病状态(rabies states)一旦附加,则不会被驱散,也不会被覆盖。一直按照其第一次附加时的持续时间运行直到状态结束。
?? ???【狂犬病瘟疫(rabiesplague)】:
它的本体是一个size3的静止的无形物体,自身不直接产生作用。而是通过每隔4F向7sub-tiles的半径内的敌人发射子投射物Rabiescontagion来完成传染。
你可以形象地将其理解为一个笼罩在有狂犬病状态(rabies states)的怪物身上的看不见的云雾,其会对7sub-tiles内的敌人(包括其自己)进行传染。
*因此,虽然在一次中毒中,玩家角色的生命值最多降至1点就会强制结束本次中毒状态,但一次狂犬病就可直接杀死玩家角色。因为当人物生命值因狂犬病毒素降至1点时,中毒状态被强制结束,但身上的狂犬病状态(rabies states)仍在发挥作用,下一次的传染带来的中毒将杀死该1HP的人物。
?? ???【狂犬病传染体(Rabiescontagion)】:
它是一个size1的投射物,以5像素每帧的速度直线飞行,存在时间为20帧=0.8秒。碰撞后不计算AR直接命中目标并可穿透继续飞行,被其碰撞到的怪物将被附加上当前人物状态的狂犬病毒素伤害和初始第一击状态的狂犬病状态(rabies states)。
每隔4F都有这样的传染体被投射出来,匀速飞行,在空气中存在0.8秒。
因此每次传染时可能因为人物状态的改变而毒素伤害不同,但狂犬病状态(rabies states)持续时间和毒素基础持续时间只能继承从第一个怪物被狂犬病击中到现在还剩下的时间。
例如,一个怪物在狂犬病第一击命中3.6秒后被传染,那么它获得的狂犬病状态(rabies states)持续时间和毒素基础持续时间将比技能面板上的显示时间少3.6秒。
*一般情况下,由同一个怪物传染出去的狂犬病状态(rabies states),不论传染了多少次,最后所有怪身上的狂犬病状态(rabies states)都会在同一时刻结束。