比武分兩種
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