作者laechan (小太保)
看板mud_sanc
标题[闲聊] 20130107修改事项
时间Mon Jan 7 10:21:13 2013
今天接近中午的时间 11:00~14:00 之间没空。
所以今天不 coding,而是做魔法阵的解析工作,解析过程会贴在下面。
解析完这礼拜至少会再实装几个级数,并建立魔法阵的 help 说明文件。
(因为新魔法阵是 belldandy 写的,我要花点时间解析)
================================================================
魔法阵的两个相关档案
/d/spell/magic-cycle.c 施法呼叫主档
/d/spell/magic-cycle_ob.c 实体魔法阵物件主档
一些定义
#define MAX_LV 1 这个目前无作用
#define MAGIC_CYCLE_NAMES ({\
"=== 攻击法术练习魔法阵 ===",\ Lv1
"",\
"",\
"",\ Lv2~Lv7 这礼拜会开几个
"",\
"",\
"",\
"=== 组队状态专用魔法阵 ===",\ Lv8
})
#define can_use ({"justin","cancerj","angelo","angelic"})
#define CAST_SP 5 魔法阵施展时消耗 sp "基本" %数
这个 % 数要再加上施展 Lv 级数
目前 Lv2~Lv7 会转回原先的魔法阵,而且目前只有上面四位可以先
行试用。
魔法阵施展时需消耗基本 5% 的 SP 量,另外要再加上与级数相同的
sp % 数。所得出的值若小於 CAST_SP x Lv x 500 的话也不行。
if(sp<((int)ppl->query("sp_src")*(CAST_SP+lv))/100 || sp<CAST_SP*lv*500)
同一级数的实体魔法阵不能并存於同一个房间。但是不同级的可以。
每一个魔法阵都有一个独特的识别 ID,wiz 请参照魔法阵档案。
张设前必须要做的事是 heart magic,这个我考虑改成要先 control
int,而且施展级数会依 int control 的技能值来做正向限制。
张设魔法阵的时间:大魔导士 1 秒,秘印贤者 2 秒,其它职业则依
张设级数的不同而有不同的张设时间,另外 magic heart 未达 5000
加 1 秒、runes 未达 5000 加 1 秒、魔力值未达 5000 加 1 秒、
没有拿杖的话加 1 秒。
张设出一道魔法阵後,要再张设时,会有CD时间,基本的CD时间为30
秒,秒数会受到 runes 技能值、魔法阵技能值、魔力控制术技能值的
影响而缩减。进阶职业张设的话时间再降低一半。
以 clone_magic_cycle 函数来做 switch(lv) 的控制,用以决定要呼
叫出的魔法阵物件资料为何。目前已写好 case 1 及 case 8,因此理
论上其它级数只要比照即可。
魔法阵现阶段决定的各级数效果如下
// 攻击法术练习魔法阵 Lv.1
// 辅助法术增幅魔法阵 Lv.2
// 攻击法术增幅魔法阵 Lv.3
// 缩短大绝再施放时间魔法阵 Lv.4
// 空间封闭魔法阵 Lv.5
// 暂定契约专用魔法阵 Lv.6
// 组队限定魔法阵 Lv.8
// 二转专用魔法阵 Lv.9
// 进阶专用魔法阵 Lv.10
Lv2、Lv3 都要花不少时间改,Lv4 可以顺便导入最近刚决定的过年
优惠(大绝再施放时间缩短),Lv5 还 ok,Lv6 目前还用不到。
所以理论上会先写 Lv4 跟 Lv5。
魔法阵存在期间会持续消耗张设者的 SP,基本消耗值为 100。
魔法阵启动咒语会开放玩家自设(使用 setdata or config),目前
有预设启动咒语。
依照 magic-cycle_ob.c 的写法,不同的级数还会有不同的函数需
要撰写。
heart_beat 函数用来控制物件的存在与否。
解析完毕。我会趁这次修改时在魔法阵相关档案里头做更详细的备
注,并尽可能将它们一些函数的位置重新整理。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:→ laechan :小喵的世界 board 改成 Frost 纪念碑 01/07 22:29
2F:推 justinj :lv1我好像测过没问题..lv8忘了..(我只记得找出bug然 01/08 08:39
3F:→ justinj :後修改了...) 01/08 08:39