比武分两种
1.实战
2.模拟
实战的部份因为大家的伤害都很高,再怎么压都有极限,应该会
舍弃。
模拟的话,有两种做法
1.即时战斗制
2.回合制
即时战斗就像 GGO,比赛时间一到就传送到比赛场,一开始不会
碰到,这时看要上 buff 或做些赛前准备啥的都行。
重点在于碰到后怎么办。
这个可透过修改 user_d.c 来达到模拟要求。也就是说:
init_attack -+-> continue_attack -> normal_attack
|
在这里截断 |
+-> pk_continue_attack -> pk_normal_attack
不过这样只能让 普攻/en/闪格档等 改走 pk 的判断。
要截断特攻判断的话,则是针对每一个特攻指令去做相对应的修
改:
原本的呼叫: start_skill -> start_effect
修改的呼叫: start_skill -> 特攻档内写好的函数
以上是“理论可行”的做法,实际上......不确定,要改了才会
知道。
整个修改最麻烦的是 pk_normal_attack,因为它必须要能模拟
原本 normal_attack 跑出来的样子,至少要八成像,这样才能
一边控制住伤害值,一边不失精彩度。
重点是,以模拟的函数来跑有个最大好处,就是可让其它观看者
也能读取到两人战斗的讯息,可以是全讯息、也可以是简化过的
讯息。另一个好处则是不会有阵亡、爆水晶等麻烦的问题。
我有空会先纸笔作业,试拟一下 pk_normal_attack 的架构。
Laechan