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