MUDLib 攻略之 F_SKILL
2007/5/11 20:33:45
写给对 MUDLib 感兴趣的初学者们。
F_SKILL 是一个底层物件,它以 F_ 打头,所以是放在目录 /feature 中的,以
F_ 打头的宏定义的物件都是放在目录 /feature 中,无一例外。在
/include/globals.h 这个“大头文件”中是这样定义的:
#define F_SKILL "/feature/skill.c"
所以如果你无论在自己编写或修改的任何程序中只要你写下了 F_SKILL (前后连接
了其他字母数字或语法错误的除外),你的程序被 load 或 update 时 F_SKILL
这个字符串都会被 "/feature/skill.c" 代替,你写 F_SKILL->faint() 就会被
代替为 "/feature/skill.c"->faint(),当然 "/feature/skill.c" 这个程序
里是没有定义 faint() 这个函数的,高兴的话可以自己给它加一个,这里是打个
比方而已。
F_SKILL 唯一地被 CHARACTER 继承(关于继承的感念我就不在这里讲了),就是
说只有 CHARACTER 才会用的着 F_SKILL ,这个 CHARACTER 又是什么呢?还是
看看“大头文件”是怎么写的:
#define CHARACTER "/std/char"
character 的意思是“角色”,也就是玩家角色(Player)和非玩家角色(NPC)
喽,总不会把一只香喷喷的炸鸡腿看成角色吧。说了这么多,无非想说角色这种物
件继承了 F_SKILL ,要用到 F_SKILL 。F_SKILL 这个物件对角色来说有什么用?
思考一下:单词 feature 的意思为“特征”,放在 /feature 这个目录下的物件
都具有某方面特征,更应该说是特长吧——每个 F_ 物件都被设计来专职完成一定
的工作,F_SKILL 就是专职负责 skill 方面的工作。角色不单是有 skill 这个特
征呀!没错,CHARACTER 除了继承 F_SKILL 外还继承了很多 F_SKILL ,很多很多,
扳手指都数不过来,以后再慢慢讲其他的。
平常敲 skills 命令,比如 skills guolao ,会看到以下的内容:
张果老目前所掌握的技能有以下十二项:
□八卦阵法 (baguazhen) - 平平淡淡 70/ 0/ 5041
基本轻功 (dodge) - 平淡无奇 80/ 0/ 6561
内功心法 (force) - 平平淡淡 70/ 0/ 5041
基本锤法 (hammer) - 粗通皮毛 90/ 0/ 8281
□开山锤 (kaishan-chui) - 半生不熟 100/ 0/ 10201
读书识字 (literate) - 会 元 50/ 0/ 2601
拆招卸力之法 (parry) - 平淡无奇 80/ 0/ 6561
基本法术 (spells) - 平淡无奇 80/ 0/ 6561
□太乙仙法 (taiyi) - 平淡无奇 80/ 0/ 6561
扑击格斗之技 (unarmed) - 普普通通 60/ 0/ 3721
□五行拳 (wuxing-quan) - 普普通通 60/ 0/ 3721
□镇元神功 (zhenyuan-force) - 平平淡淡 70/ 0/ 5041
这一行行一列列这么整齐,却不是 F_SKILL 的功劳,:-(,不要奇怪,打个比方
就清楚了:在以上这些显示的内容中,F_SKILL 好比是肉体,其他程序好比是衣
服,一个是内因,一个是外因……faint,扯哪去了?sorry:-)还有平常最高兴
看到的“你的「基本内功」进步了!”之类的也是 F_SKILL 的功劳。
更进一步,看看 F_SKILL 定义了哪些函数,有些什么功能:
(先引用些源程序凑一下字数,请不要用西红柿砸我:-D)
// 神话世界·西游记·版本4.50 <- 每个程序里面都会有这两行版本信息,
/* */ <- 整齐美观,值得学习
// skill.c
#include <- 包含一些头文件,先不要管
#include <-
mapping skills;
mapping learned;
mapping skill_map;
mapping skill_prepare;
这四行定义了四个 mapping 类型的
下一页
返回列表
返回首页
©2025 MUD游戏网_文字mud 电脑版
Powered by iwms