[閒聊] 魔法陣技能檔架構

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間16年前 (2010/03/23 20:56), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
沒事先寫一下,方便明天 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
文章代碼(AID): #1BgBgAjY (mud_sanc)
文章代碼(AID): #1BgBgAjY (mud_sanc)