[閒聊] 魔法陣技能檔架構
沒事先寫一下,方便明天 coding。
目前現存的十種效果,都是法師在施展魔法陣時不需接目標的,
這有助於技能的施展屬性設定(對自己/不接目標/對mob/...等)
start_skill 函數
switch(lv)
{
依 lv 決定各個施展條件,像是有無二轉、有無在戰鬥中、...
有些限制條件則是會判斷剛剛是否已有施展魔法陣、或是同地
點是否已經有相同魔法陣,...
(另外也會依 lv 決定是否呼叫單獨的物件檔。)
另外,這裡全部是 return 0; 代表我要從這裡截斷 cast 函
數接著對 start_effect 的瞬間呼叫。這裡會設 call_out延
遲呼叫,依 lv 及法師是否二轉等...並將 env 傳過去。
施展中,玩家將無法移動。
}
varargs start_effect 函數
if(env!=environment(user))
施展魔法陣的地點與魔法陣展開後的地點不同,施展將被取消。
if(某些其它特殊狀況)
施展將被取消;
二轉的效果先不寫。
obs = all_inventory(env);
switch(lv)
{
if 全屬性增幅
obs(玩家)->temp_several_mod(({"stat/fel","stat/str",...}),
暫時設定的增加值,"屬性增幅識別名",暫時設定的時間);
if 全抗性增幅
無作用 (會在 start_skill 部份就提示)
if pr 增幅魔法陣
理論上「熟練增幅魔法陣」是比 pr 增幅魔法陣還好寫的,
但因為 pr 檔案不多,每一個 pr 檔案都做相應修改就行了
pr 我希望最多可以增幅到 10%。
if 陣營反轉魔法陣
ethics=obs(怪物)->query("ethic");
if ethics >= 0
obs(怪物)->set("ethic",-(ethic+技能相關影響));
亦即只有正道德或無道德的怪物會陣營相反
同時還會依技能決定要再多給多少的負道德
if 特殊陣法魔法陣
它會先找施展者的 leader(所以施展者若沒有在隊伍中就無效)
該 leader 為騎士且確定會陣法時
leader->set_temp("某參數",時效+time());
亦即在時效內,leader 可以使用特殊陣法.
特殊陣法需要字圖, 我是打算自己畫, 最初會先實裝一個
某參數會暫定為 mixed_encasement
if 跟隨型npc召喚魔法陣
首先該 npc 是虛擬的
在 heart_beat 中會不定時出現這隻 npc 的訊息
它很好用
if 其它
暫時先不寫;
}
大概是這種感覺吧。最快明天技能檔會先出現。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.15.246.228
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
10
18