一. 颜色代码:
  　$BLK$ - 黑色　　　　　　$NOR$ - 恢复正常颜色　　$RED$ - 红色　　　　　　$HIR$ - 亮红色
　　$GRN$ - 绿色　　　　　　$HIG$ - 亮绿色　      　$YEL$ - 土黄色　　　　　$HIY$ - 黄色
　　$BLU$ - 深蓝色　　　　　$HIB$ - 蓝色　　        $MAG$ - 浅紫色　　　  　$HIM$  - 粉红色
　　$CYN$ - 蓝绿色　　　　　$HIG$ - 天青色　　      $WHT$ - 浅灰色　　　　　$HIW$ - 白色 
二.巫师基本知识:
   1. goto，抓，call,clone202.112.4.120 6666
   2.杀死 player的闪电：smash
   3. clone 是变物品
      in the mud:cd /d/huashan/,clone guo
   4.call的用法: 
    call dewey->set_skill("xiaoyao-shengong",590000)
    call dewey->set("combat_exp"1000000)
    call dewey->set("force"1000000),改出的内力用后就没了！
    call dewey->set("max_force"1000000),
    call dewey->set("max_mana"1000000),法力上限
    call dewey->set("mana"1000000),法力值
    str=臂力，cor=胆识,int=悟性，spir=灵性,cps=定力
    per=容貌，con=根骨,kar=福缘, 潜能=potential
    call dewey->set("名",数字）
  5.区域制造主要的是用c语言写很多房间,mud的最基本构造就是房间;然后是写武功和npc;最后是用int来写
    谜题.其相关指令太多了(主要是很多很多的函数）.可以用edit在线上写，也可以用现场编辑器写还可以
    写好后，用ftp传到mud里.mud里还有房间编辑器（makeroom)，npc 编辑器.巫师还要对系统做一定的管理
    ，有专门的指令.只要善于对程序进行复制就行了！mud的许多程序都相差不大，进行复制就行了！比如说
    taiji-shengong和xiaoyao-shengong,只要把文字描写改一改，攻击力变一变就ok了！es2的系统里就有不
    少的功夫，房间.
  6.示例:

    a."longmenkezhan.c"/ renshen-guo.c 人参果

      inherit ITEM

      int do_eat(string)
      void init()

      void init()
     {
        if (!wizardp(this_player())) {
                set(no_get, 嘿嘿，做梦吧! \n)
                set(no_drop,这么宝贵的人参果，哪能乱扔! \n)
                add_action(do_eat, eat)
     }

      void create()
     {
        set_name(HIG 人参果 NOR, ({renshen guo, guo}))
        set_weight(20)
        if (clonep())
                set_default_object(__FILE__)
        else {
                set(unit, 枚)
                set(long, 
                set(value, 100000)
        }

        setup()
      }

       int do_eat(string arg)
      {
        object me = this_player()

        if (!id(arg))        me->set(eff_gin, 1)
        me->set(gin, 1)
        me->set(eff_kee, 1)
        me->set(kee, 1)
        me->set(eff_sen, 1)
        me->set(sen, 1)
        me->set(force, 0)
        me->set(food, 0)
        me->set(water, 0)
        
        message_vision(HIG
        "$N吃下一枚人参果，只觉得精神健旺，气血充盈，体内真力源源滋生，甚至不再感到饥饿干渴! \n"NOR,me)

        destruct(this_object())
      }
        第一段是设定guo不能drop
        第2段是设定look guo时player所看到的 
        第3段是设定eat guo时给player加hp的数字 
        me->set.......中的......对应player的hp的各项值

b// xiaoyao-bu.c

inherit SKILL;

string *dodge_msg = ({
        "但是$n身形飘忽不定，一式“神游天外”，轻轻一纵，早已避开。\n",
        "$n身随意转，使出一式“云中十八旋”，倏地转到$N身后，避过了这一招。\n",
       "可是$n侧身一让，一式“踏云步”，在空中化为“云中飞”，让$N这一招扑了个空。\n",
        "却见$n足不点地，一式“乘云游”，往旁窜开数丈，姿态美妙地躲了开去。\n",
        "$n身形微晃，使出一式“逍遥游”，有惊无险地避开了$N这一招。\n",
        "只见$n身形连晃，一式“逍遥十八变”，晃出十八个身影，令$N不知所措。\n"
        
});

int valid_enable(string usage)
{
        return (usage=="dodge") || (usage=="move");
}

int valid_learn(object me)
{
        return 1;
}

string query_dodge_msg(string limb)
{
        return dodge_msg[random(sizeof(dodge_msg))];
}

int practice_skill(object me)
{
        if( (int)me->query("kee") < 30 )
                return notify_fail("你的体力太差了，不能练逍遥登云步。\n");
        me->receive_damage("kee", 25);

}
string perform_action_file(string action)
{
         return CLASS_D("huashan") + "/xiaoyao-bu/" + action;


// xiaoyao-daofa.c

inherit SKILL;

mapping *action = ({
        ([      "action":               "$N使一招「狂龙翻云」，手中$w夹着隆隆雷声，狂风暴雨般向$n的$l斩去！",
                "dodge":                5,
                "force":                100,
                "lvl":                  0,
                "damage_type":  "割伤"
        ]),
    
        ([      "action":               "$N手中$w迎风一晃，一招「怒龙戏水」，晃出一片刀光，往$n的$l斜斜砍出一刀",
              "damage":               100,
                "dodge":                -20,
                "force":                230,
                "lvl":                  49,
                "damage_type":  "□伤"
        ]),
        ([      "action":               "$N提刀过肩，蓄劲发力，怒喝一声，一招「暴龙裂天」，手中$w化作一条青龙直劈$n$l",
                "damage":               200,
                "dodge":                35,
                "force":                490,
                "lvl":                  99,
     
        ]),


   if( (string)me->query_skill_mapped("force")!= "xiaoyao-force")
                return notify_fail("逍遥腾龙剑必须配合逍遥阁的独门逍遥神功才能练。\n");
        if( !(ob = me->query_temp("weapon"))
        ||      (string)ob->query("skill_type") != "sword" )
                return notify_fail("你必须先找一把剑才能练剑法。\n");

7mknpc <NPC档名> <NPC名字>

    造出一个「新」NPC，之後你可以 goto 这个NPC用 nset 和 skset 设定NPC的
    叙述、属性和功夫。

nset <NPC属性> <属性内容>

    设定你目前所在NPC的属性，如 name, age,  kee,  qin,   sen,   nickname,  gender,   long
ender,   long
    膂力 - str  胆识 - cor  悟性 - int 灵性 - spi 定力 - cps 根骨 - con     福缘 - kar  
    福缘 - kar  
    容貌 - per  经验 - combat_exp 和 内力方面的 force/max_force(force_factor)
)
    名分 rank_info/respect 评价 score

skset <功夫名> <级>


mpset <基本功夫名> <高级功夫名>

    设置NPC试用的功夫。

family  <门派> <几代> <称呼>

    将你目前NPC的门派信息写入。

carry <物品> <装备方式>

    给当前NPC增加物品，wear , wield。

money <钱名> <数量>


8.       add_action("do_pick", "pick");
}

int do_pick(string arg)
{
        object me;

        me = this_player();
        if ( !arg || ( arg != "flower" ) ) return notify_fail("你要摘什麽？\n");
n");

        else if ( random((int)me->query("kar")) < 7 )
                message_vision("$N将花摘了下来，但一不小心被刺了一下。\n", me);
e);

        else
                message_vision("$N摘下一朵美丽的血红色鲜花。\n", me);

        return 1;



9.// dragon.c

inherit NPC;

void create()
{
        set_name("护阁狂龙", ({ "dragon" }) );
        set("long",
                "这是一只逍遥阁用于守护逍遥花阵的金龙，它身上的鳞片闪闪发著耀眼的光芒。\n");
鄣墓饷ⅰn");

        set("race", "野兽");
        set("age", 600);
        set("attitude", "aggressive");

        set("max_gin", 4500);
        set("max_kee", 7000);
        set("max_sen", 4000);

        set("str", 180);
        set("cor", 160);
        set("cps", 120);
        set("spi", 100);
        set("int", 70);

        set("limbs", ({ "头部", "身体", "前爪", "後爪", "尾巴" }) );
        set("verbs", ({ "bite", "claw" }) );

        set_temp("apply/attack", 100);
        set_temp("apply/dodge", 100);
        set_temp("apply/armor", 60);

        set("combat_exp", 1000000);
        setup();
总结:

  在程序里的//以后的相当与说明，并不运行
ar是人物的参数值，你可参考npc段或是说你可以做到任意的事(pick段），这是很重要的一个方法！！
要分清函数和变量
pick段是int函数，用这个函数可以完成一切你所想要做的！
它体现了程序根据player所做的动作去调取相应的内部函数或巫师设计的程序
 小卓说道： mkroom 建房小卓说道： set short 写短描叙小卓说道： set long 写长描叙小卓说道： connect  连接 room
