作者laechan (小太保)
看板mud_sanc
标题[闲聊] 魔法阵技能档架构
时间Tue Mar 23 20:56:39 2010
没事先写一下,方便明天 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