铁血丹心

 找回密码
 我要成为铁血侠客
搜索
楼主: leotang111

[其他] "单机海洋2007"资料汇总帖

 关闭 [复制链接]
头像被屏蔽
 楼主| 发表于 2007-6-18 09:45 | 显示全部楼层
游戏区域场景设置:

白驼山区域场景设置:

d\baituo\bedroom1.c

//Cracked by Kafei
// 白驼改版
// maco 2/17/2000
#include <room.h>

inherit ROOM;
void wakeup(object me, object where);

void create()
{
        set("short", "少主睡房");
        set("long", @LONG
这里是白驼山少主所睡的厢房,房里锦帏绣被,珠帘软帐,柜架上
摆满了珍奇古玩,红烛高烧,墙边挂着蜀锦文囊,囊上用白丝线绣着一
只骆驼。睡房中时常有少主的姬妾在此侍候,都是各方搜罗来的佳丽,
是个温柔乡。
LONG
        );
        set("sleep_room", 1);
        set("no_fight", 1);
        set("exits", ([
            "southeast" : __DIR__"changlang",
        ]));
        set("objects", ([
            __DIR__"npc/shiji" : 2,
         ]) );
        set("cost", 1);
        setup();
}
void init()
{
        add_action("do_sleep", "sleep");
}

int do_sleep(string arg)
{
        object shiji, me, where;
       
        me = this_player();
        where = environment(me);

        seteuid(getuid());

        if (me->is_busy())
                return notify_fail("你正忙着呢!\n");

        if (me->query("family/family_name") != "白驼山派") {
                write("你不是白驼山的人,不能睡在这儿!\n");
                return 1;       
        }
        if (me->query("family/master_id") != "ouyang feng" ){
                if(shiji = present("shi ji", environment(me))) {
                        message_vision("$N正想爬上床去睡觉,忽然被$n给拉住了後领。\n"
                        "$n瞪了$N一眼,骂道:"+RANK_D->query_rude(me)+",这可是少主的房间,你有什麽资格睡在这儿?\n\n", me, shiji);
                        me->move("/d/baituo/changlang");
                        tell_object(me,"\n你被侍姬从少主睡房里轰了出来。\n");
                        message("vision",me->query("name") + "灰头土脸地从少主睡房里走了出来,嘴里一阵喃喃咒骂。\n", environment(me), me);
                        return 1;
                }
                else {
                write("这是少主的房间,可不是你的身分能睡的!\n");
                return 1;
                }
        }
        write("你往床上一躺,一名侍姬过来替你脱靴解带,服侍得十分周到。\n");
        write("侍姬替你盖上锦被,不一会儿,你就进入了梦乡。\n");
        me->set_temp("block_msg/all",1);
        message_vision("$N躺在床上,一名侍姬在旁服侍,不一会儿,$N就进入了梦乡。\n",me);

        where->add_temp("sleeping_person", 1);
       
        me->set_temp("sleeped",1);

        me->set("disable_type", "<睡梦中>");
        me->set_temp("disabled", 1);
        me->disable_commands();
        me->enable_commands();

        call_out("wakeup",random(60 - me->query("con")), me, where);
        call_out("wakeup",3, me, where);
        return 1;
}

void wakeup(object me, object where)
{
        int sp, new_hp;
        object shiji;
        sp = 10 - (int)me->query_condition("sleep");

        new_hp = (int)me->query("qi");
        new_hp += ((int)me->query("eff_qi") - new_hp)*sp/10;
        if (new_hp < 0) new_hp = 0;
        if (new_hp > (int)me->query("eff_qi") ) new_hp = me->query("eff_qi");
        me->set("qi", new_hp);
       
        new_hp = (int)me->query("jing");
        new_hp += ((int)me->query("eff_jing") - new_hp)*sp/10;
        if (new_hp < 0) new_hp = 0;
        if (new_hp > (int)me->query("eff_jing") ) new_hp = me->query("eff_jing");
        me->set("jing", new_hp);

        new_hp = (int)me->query("jingli");
        new_hp += ((int)me->query("max_jingli") - new_hp)*sp/5;
        if (new_hp < 0) new_hp = 0;
        if (new_hp > (int)me->query("max_jingli") ) new_hp = me->query("max_jingli");
        me->set("jingli", new_hp);

        new_hp = (int)me->query("neili");
        new_hp += ((int)me->query("max_neili") - new_hp)*sp/12;
        if (new_hp < 0) new_hp = 0;
        if (new_hp > (int)me->query("max_neili") ) new_hp = me->query("max_neili");
        me->set("neili", new_hp);
       
        if (living(me)) return;

        me->enable_player();
        while( environment(me)->is_character() )
                me->move(environment(environment(me)));
        me->apply_condition("sleep", 5 + random(3));

        if(environment(me) == where)
        {
                message_vision("$N一觉醒来,由侍姬服侍着穿好衣物,精力充沛地活动了一下筋骨。\n",me);
                me->set_temp("block_msg/all", 0);
                write("你一觉醒来,侍姬服侍着你穿戴整齐,只觉精力充沛,该活动一下了。\n");

        }
        else {
                message_vision("$N一觉醒来,精力充沛地活动了一下筋骨。\n",me);
                me->set_temp("block_msg/all", 0);
                write("你一觉醒来,只觉精力充沛。该活动一下了。\n");
        }
        where->add_temp("sleeping_person", -1);
        setup();
}

d\baituo\bridge.c

//bridge.c

inherit ROOM;

void create()
{
        set("short", "小桥");
        set("long",
             "这是一座小竹桥,『白驼山』上的冰雪融化形成一条清澈的小溪\n"
         ",从桥下缓缓流过。不时有顽皮的小鱼跃出水面,在阳光下划出一条\n"
         "银白色的弧线。\n"
        );
        set("outdoors", "baituo");
//        set("no_clean_up", 0);
        set("exits", ([
                "northwest" : __DIR__"guangchang",
                "east" : __DIR__"xijie",
        ]));
        set("objects",([
                __DIR__"npc/cungu" : 1,
        ]));
        setup();
        replace_program(ROOM);
}

d\baituo\cao1.c

//room:cao1.c
inherit ROOM;

void create()
{
  set("short","草丛");
  set("long",
      "这里是乱草丛。东边是扇拱月形小敞门。\n"
  "其余三面都是齐腰高的蒿草,常有蛇出没。\n"
    );
  set("exits",([
      "west" : __FILE__,
      "north" : __DIR__"cao2",
      "east" : __DIR__"ximen",
      "south" : __FILE__,
     ]));
set("objects",([
      __DIR__"npc/jinshe" : random(2),
      __DIR__"npc/snake" : random(2),
      ]));
// set("no_clean_up", 0);
set("outdoors","baituo");
set_temp("wayao1",2);
setup();
replace_program(ROOM);
}

d\baituo\cao2.c

//room:cao2.c

inherit ROOM;

void create()
{
  set("short","草丛");
  set("long",
      "这里是乱草丛。北边是青竹林。其余三面都是齐腰高的蒿草,\n"
  "常有蛇出没。\n"
     );
  set("exits",([
      "west" : __FILE__,
      "north" :__DIR__"zhulin",
      "east" : __DIR__"cao1",
      "south" : __DIR__"cao1",
     ]));
set("objects",([
      __DIR__"npc/qingshe" : random(2),
      __DIR__"npc/jinshe" : random(2),
      __DIR__"npc/snake" : random(2),
      ]));
// set("no_clean_up", 0);
set("outdoors","baituo");
     set_temp("wayao1",2);
setup();
replace_program(ROOM);
}

d\baituo\caomeide.c

//ROOM caomeide.c
inherit ROOM;
void create()
{
        set("short","草莓地");
        set("long",
             "这里是一块草莓地,鲜红的草莓散落在绿草中,让人感到美妙惬意。\n"
        );
        set("exits", ([
                "northeast" : __DIR__"shulin1",
                "west" : "/quest/menpaijob/baituo/shechang",
        ]));
        set("objects" , ([
             __DIR__"obj/caomei" : random(7),
        ]));
//        set("no_clean_up", 0);
        set("outdoors","baituo");
    set_temp("wayao1",2);
        setup();
        replace_program(ROOM);
}

d\baituo\caoping.c

// caoping.c
inherit ROOM;
void create()
{
        set("short","草坪");
        set("long",
             "这里是一块芳草坪,绿草茵茵,蝴蝶漫舞,让人感到惬意。\n"
         "不过偶尔也会碰到菜花蛇。\n"
        );
        set("exits", ([
                "west" : __DIR__"shijie",
        ]));
        set("objects" , ([
             __DIR__"npc/caihuashe" : random(2),
        ]));
        set("outdoors", "baituo");
//        set("no_clean_up", 0);
        setup();
    set_temp("wayao1",2);
        replace_program(ROOM);
}

d\baituo\cave1.c

//cave1.c
inherit ROOM;

void create()
{
  set("short","岩洞内");
  set("long",
        "这里是岩洞内部,洞顶上悬挂着洁白的钟乳石。\n"
      );
  set("exits",([
      "south" : __DIR__"cave",
     ]));
  set("no_clean_up", 0);
// set("objects",([
//      ]));
setup();
replace_program(ROOM);
}

d\baituo\cave.c

//cave.c
inherit ROOM;

void create()
{
  set("short","岩洞");
  set("long",
        "这里是大岩洞,它是在『白驼山』特殊的地质条件下经\n"
    "过漫长的年代形成的。南边是青竹林。再往北走就进洞了。\n"
      );
  set("exits",([
      "north" : __DIR__"cave1",
      "southdown" : __DIR__"zhulin",
     ]));
set("objects",([
      __DIR__"npc/mangshe" : 1,
      ]));
// set("no_clean_up", 0);
set("outdoors","baituo");
setup();
}

int valid_leave(object me, string dir)
{
   if (dir =="north" ) {
        if (objectp(present("mang she", environment(me))))
                return notify_fail("蟒蛇挡住你的去路!\n");
                       }
   return ::valid_leave(me, dir);
}

d\baituo\cedong.c

//cedong.c

inherit ROOM;

void create()
{
        set("short", "侧洞");
        set("long",
             "这里是一个小小的侧洞,里面有张梳妆台,上边摆放着一些女人的用品。\n"
        );
        set("exits", ([
                "east" : __DIR__"dongnei",
        ]));
        set("objects",([
                __DIR__"npc/jinhua" : 1,
        ]));
//        set("no_clean_up", 0);

        setup();
        replace_program(ROOM);
}

d\baituo\chaifang.c

//room: caifang.c
inherit ROOM;

void create()
{
  set("short","柴房");
  set("long","这是间不宽的柴房,木柴已经快烧光了,墙角放着几把『柴刀』。\n");
  set("exits",([
      "west" : __DIR__"chufang",
  ]));
  set("objects",([
    __DIR__"npc/laocai" : 1,
  ]));
//  set("no_clean_up", 0);

setup();
replace_program(ROOM);
}

d\baituo\changlang.c

//room: /d/btshan/changlang.c
inherit ROOM;

void create()
{
  set("short","长廊");
  set("long",
      "这里是非常气派的长廊。北边是间休息室。南边有间药房,里面传来\n"
  "一阵器皿碰击的声音。西边是扇拱月形小敞门。东边是练功场。\n"
     );

  set("exits",([
      "west" : __DIR__"ximen",
      "north" : __DIR__"restroom",
      "east" : __DIR__"liangong",
      "south" : __DIR__"yaofang",
            "northwest" : __DIR__"bedroom1",
     ]));
        set("objects", ([
            __DIR__"npc/wuji" : 3,
         ]) );

//  set("no_clean_up", 0);

setup();
replace_program(ROOM);
}

d\baituo\chufang.c

//chufang.c
inherit ROOM;
void create()
{
  set("short","厨房");
  set("long",
  "这是间宽敞的厨房,厨师们在展示各自的烹饪绝活。\n"
  "整个房间弥漫着令人垂涎欲滴的菜香。墙上贴着一张醒目\n"
  "的启事(note)。\n"
  );
  set("exits",([
  "west" : __DIR__"huayuan",
  "east" : __DIR__"chaifang",
  ]));
  set("item_desc",([
  "note" : "本厨房招收小工:每砍一担柴,付10两银子。\n",
  ]));

  set("objects",([
  __DIR__"npc/feifei" : 1,
  __DIR__"obj/doujiang" : random(5),
  __DIR__"obj/cake"  : random(3),
  ]));
//  set("no_clean_up", 0);
//  set("no_fight", "1");
  set("no_beg", "1");
  setup();
  }
int valid_leave(object me, string dir)
{
        if (( present("jiang", me)||present("cake", me))
        &&objectp(present("fei fei", environment(me))) )
        return notify_fail
        ("肥肥一把拽住你的衣领,着急地叫到:饭菜不能带出去,这里蟑螂已经够
        多了。\n");
        return ::valid_leave(me, dir);
}

d\baituo\damen.c

//ROM yuanzi

inherit ROOM;

void create()
{
        set("short", "大门");
        set("long",
             "这就是闻名天下的『白驼山庄』的大门。大门梁上雕龙刻凤,美奂\n"
         "美仑,不知凝聚着多少能工巧匠的心血。更显出庄主的富有与显贵。门\n"
         "前左右各蹲着一只威武庄严的石狮子。\n"
        );
        set("outdoors", "baituo");
//        set("no_clean_up", 0);
        set("exits", ([
                "north" : __DIR__"yuanzi",
                "southdown" : __DIR__"shijie",
        ]));
        set("objects",([
                __DIR__"npc/menwei" : 2,
        ]));
        setup();
}

int valid_leave(object me, string dir)
{

        if (  (dir == "north")
           && ((int)me->query("shen") > 300)
           && objectp(present("men wei", environment(me)))
           && living(present("men wei", environment(me))))
         return notify_fail
                ("门卫把手一拦:你这种正派人物,老子一看就恶心,快滚!\n");
        return ::valid_leave(me, dir);
}

d\baituo\datiepu.c

//datiepu.c

inherit ROOM;

void create()
{
        set("short", "打铁铺");
        set("long",
             "这里是一家打铁铺,铁匠忙着打制铁制兵器,卖给江湖侠客。\n"
        );
        set("exits", ([
                "north" : __DIR__"dongjie",
        ]));
        set("objects",([
                __DIR__"npc/smith" : 1,
        ]));
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\baituo\dating.c

//ROM dating

inherit ROOM;

void create()
{
        set("short", "大厅");
        set("long",
             "这是『白驼山庄』的大厅,内部摆设极尽豪华,当中一张黑色檀木\n"
         "条案,上面陈放着精美的花瓶和一些珍贵的瓷器,四壁挂满名家的字画。\n"
        );
        set("valid_startroom",1);

        set("exits", ([
                "north" : __DIR__"liangong",
                "southdown" : __DIR__"yuanzi",
//                "east" : "quest/menpai/btshan/zhubanzi",
        ]));

        set("objects",([
                CLASS_D("btshan") + "/ouyangfeng" : 1,
                __DIR__"npc/yahuan" : 2,
                "/d/biwu/champion_bt":1,
                "quest/menpai/btshan/shi":1,
        ]));
//        set("no_clean_up", 0);
        setup();

        "/clone/board/baituo_b"->foo();

        replace_program(ROOM);
}

d\baituo\dongjie.c

//dongjie

inherit ROOM;

void create()
{
        set("short", "东街");
        set("long",
             "这里是小镇的东街。南边有个打铁铺,里面传来丁丁当当\n"
         "的声音。东南方是荒凉的戈壁,东北方有条小路可上山。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "west" : __DIR__"xijie",
                "south" : __DIR__"datiepu",
                "southeast" : __DIR__"gebi",
                "northeast" : __DIR__"xiaolu1",
        ]));
//        set("no_clean_up", 0);
        set("objects",([
                __DIR__"npc/playboy" : 1,
        ]));
        setup();
        replace_program(ROOM);
}

d\baituo\dongkou.c

//dongkou

inherit ROOM;

void create()
{
        set("short", "洞口");
        set("long",
             "这里是山贼的老窝的洞口,守备森严。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "north" : __DIR__"dongnei",
                "south" : __DIR__"xiaolu4",
        ]));
        set("objects",([
                __DIR__"npc/shanzei2" : 2,
        ]));
//        set("no_clean_up", 0);

        setup();
        replace_program(ROOM);
}

d\baituo\dongnei.c

//dongnei.c

inherit ROOM;

void create()
{
        set("short", "洞内");
        set("long",
             "这里是山贼的老窝的所在。旁边有一侧洞,里面隐隐传来女子的哭声。\n"
        );
        set("exits", ([
                "west" : __DIR__"cedong",
                "south" : __DIR__"dongkou",
        ]));
        set("objects",([
                __DIR__"npc/shanzei3" : 1,
        ]));
//        set("no_clean_up", 0);
        setup();
}
int valid_leave(object me, string dir)
{

        if (  (dir == "west")
           && objectp(present("shanzei tou", environment(me))) )
         return notify_fail
                ("山贼头操起拳头:你想占我老婆的便宜?快滚!\n");
        return ::valid_leave(me, dir);
}

d\baituo\fang.c

//fang.c
inherit ROOM;
void create()
{
  set("short","练功房");
  set("long",
      "这里是白驼山弟子的练功房。里面有几个单间,是练功室。\n"
      "第子们在里边砌磋武艺,绝对不允许外人打搅。\n"
    );
  set("exits",([
      "west" : __DIR__"liangong",
      "1" : __DIR__"room1",
      "2" : __DIR__"room2",
      "3" : __DIR__"room3",
     
     ]));

set("objects",([
     __DIR__"npc/trainer" : 1,
     ]));

// set("no_clean_up", 0);
setup();

}
int valid_leave(object who ,string dir)
{
if((string)who->query("family/family_name")!="白驼山派"
    &&(dir!="west"))
   return notify_fail("那里禁止外人进入!\n");
return 1 ;
}

d\baituo\fende.c

//fende.c

inherit ROOM;

void create()
{
        set("short", "坟地");
        set("long",
             "这里是荒凉阴森的荒坟地。\n"
        );
        set("outdoors", "baituo");
//        set("no_clean_up", 0);
        set("exits", ([
                "southwest" : __DIR__"xiaolu1",
                "north" : __DIR__"mumen",
        ]));
        set("objects" , ([
             __DIR__"npc/guafu" : 1,
             ]) );
        setup();
        replace_program(ROOM);
}

d\baituo\fengxi1.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "缝隙");
        set("long", @LONG
这里是石块与石块之间的夹缝,光线昏暗。你明显感觉到四周的沙沙
声是各种毒虫爬行的声音,一股股腥味中也夹杂着一些刺鼻的气息。你发
现前面有一石块(shikuai) 隐隐发出淡淡的光芒。
LONG);
       set("objects", ([
                    __DIR__"npc/fushe" : 2
        ]));
        set("exits", ([
              "south" : __DIR__"fengxi",
              "west" : __DIR__"fengxi2",
              "out" : __DIR__"yuanzi3",
        ]));
         set("item_desc", ([                    
                "shikuai": RED"\n这块石头呈红汞色,散发着阵阵热气,石块上凹陷进去的部分是个左手手掌形。\n"NOR,
        ]));
        setup();
}

void init()
{
        add_action("do_push", "tui");
        add_action("do_push", "push");      
}

int do_push(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if( !me->query_temp("baituo_stone") ) return 0;
        if( (int)me->query_temp("baituo_stone") > 1)
                return notify_fail("你已经推动过了石块。\n");
               
        if (arg == "shikuai" ){   
                   message_vision("$N深深吸了口气,伸出左手按住石块上的手印,缓缓向下推去。\n", me);            
                   me->add_temp("baituo_stone", 1);
                   message_vision("$N将石块按下寸许,隐隐约约听到地下传来一阵轰隆声。\n", me);
                   me->start_busy(5);      
                   call_out("poisoned", 5, me);
                return 1;
        }
        return 0;   
}

int poisoned(object me)
{
        if(!me) return 0;
        
        if ((int)me->query_skill("poison", 1) < 80 &&
             !me->query_skill("hamagong", 1)){
               tell_object(me, RED "你感到石块上的炎热之气顺着手臂慢慢传了上来。\n\n" NOR );
               message_vision("$N突然身子一颤,好象是中了热毒!\n", me);
               me->apply_condition("snake_poison", me->query_condition("snake_poison")+50);
               return 1;
               }   
        else {
               tell_object(me, RED "忽然一股炎热之气顺着手臂从石块上慢慢传了上来。\n\n" NOR );
               tell_object(me, HIW "你连忙运功调气,将侵入手臂的炎热之气尽数逼了出去。\n" NOR );
               return 1;
               }               
}

d\baituo\fengxi2.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "缝隙");
        set("long", @LONG
这里是石块与石块之间的夹缝,光线昏暗。你明显感觉到四周的沙沙
声是各种毒虫爬行的声音,一股股腥味中也夹杂着一些刺鼻的气息。你发
现前面有一石块(shikuai) 隐隐发出淡淡的光芒。
LONG);
        set("objects", ([
                    __DIR__"npc/yanjing1" : 1,
                    __DIR__"npc/hama" : 1,
        ]));
        set("exits", ([
              "east" : __DIR__"fengxi1",
              "out" : __DIR__"yuanzi4",
        ]));
         set("item_desc", ([                    
                "shikuai": HIW"\n这块石头呈乳白色,散发着阵阵暖气,石面有一道五彩色的细线,
石块上凹陷进去的是个左右两个手掌的手掌形。\n"NOR,
        ]));
        setup();
}

void init()
{
        add_action("do_push", "tui");
        add_action("do_push", "push");      
}

int do_push(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if( !me->query_temp("baituo_stone") ) return 0;
        if( (int)me->query_temp("baituo_stone") > 2)
                return notify_fail("你已经推动过了石块。\n");
        if (arg == "shikuai" ){   
                   message_vision("$N深深吸了口气,伸出双手按住石块上的手印,缓缓向下推去。\n", me);           
                   me->add_temp("baituo_stone", 1);
                   message_vision("$N将石块按下寸许,隐隐约约听到地下传来一阵轰隆声。\n", me);            
                me->start_busy(5);      
                call_out("poisoned", 5, me);
                return 1;
        }     
        return 0;
}

int poisoned()
{
        object me = this_player();
        if ((int)me->query_skill("poison", 1) < 120 && !me->query_skill("hamagong", 1)){
               tell_object(me, MAG "你感到手心一凉,那道五彩细线已经附在你的手心上。\n" NOR );
               message_vision("$N突然身子一颤,好象是中了毒!\n", me);
               me->apply_condition("snake_poison", me->query_condition("snake_poison")+50);
               return 1;
               }   
        else {
               tell_object(me, MAG "忽然你的手心一凉,那道五彩细线已经附在你的手上。\n" NOR );
               tell_object(me, HIW "你连忙运功调气,将手心的五彩细线逼出了大半。\n" NOR );
               me->apply_condition("snake_poison", me->query_condition("snake_poison")+30);
               return 1;
               }
               
}

d\baituo\fengxi.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "缝隙");
        set("long", @LONG
这里是石块与石块之间的夹缝,光线昏暗。你明显感觉到四周的沙沙
声是各种毒虫爬行的声音,一股股腥味中也夹杂着一些刺鼻的气息。你发
现前面有一石块(shikuai) 隐隐发出淡淡的光芒。
LONG);
        set("objects", ([
                    __DIR__"npc/yanjing" : 2
        ]));
        set("exits", ([
              "north" : __DIR__"fengxi1",
              "out" : __DIR__"yuanzi2",
        ]));
         set("item_desc", ([                    
                "shikuai": BLU"\n这块石头呈蓝靛色,散发着阵阵寒气,石块上凹陷进去的是个右手手掌形。\n"NOR,
        ]));
        setup();
}

void init()
{
        add_action("do_push", "tui");
        add_action("do_push", "push");      
}

int do_push(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if( (int)me->query_temp("baituo_stone") )
                return notify_fail("你已经推动过了石块。\n");
               
        if (arg == "shikuai" ){   
                   message_vision("$N深深吸了口气,伸出右手按住石块上的手印,缓缓向下推去。\n", me);
                   me->set_temp("baituo_stone", 1);
                   message_vision("$N将石块按下寸许,隐隐约约听到地下传来一阵轰隆声。\n", me);
                   me->start_busy(5);      
                   call_out("poisoned", 5, me);
        }     
        return 1;
}

int poisoned(object me)
{
        if(!me) return 0;
        
        if ((int)me->query_skill("poison", 1) < 50 &&
             !me->query_skill("hamagong", 1)){
               tell_object(me, BLU "你感到石块上的阴气顺着手臂慢慢传了上来。\n\n" NOR );
               message_vision("$N突然身子一颤,好象是中了寒毒!\n", me);
               me->apply_condition("cold_poison", me->query_condition("cold_poison")+50);
               return 1;
               }   
        else {
               tell_object(me, BLU "忽然一股阴气顺着手臂从石块上慢慢传了上来。\n\n" NOR );
               tell_object(me, HIW "你连忙运功调气,将侵入手臂的寒气尽数逼了出去。\n" NOR );
               return 1;
               }           
}

d\baituo\gebi.c

//gebi

inherit ROOM;

void create()
{
        set("short", "戈壁");
        set("long",
             "这里是临近沙漠的戈壁滩,荒无人烟。东边是一望无际的大沙漠,\n"
         "西北方可以看见一座小镇。\n"
        );
        set("outdoors", "baituo");
        set("no_clean_up", 0);
        set("exits", ([
                "east" : "/d/xingxiu/shamo4",
                "northwest" : __DIR__"dongjie",
        ]));
        setup();
        replace_program(ROOM);
}

d\baituo\guangchang.c

//ROM

inherit ROOM;

void create()
{
        set("short", "广场");
        set("long",
             "这里是一块不小的广场,上面堆着农家晒的谷物。北上是\n"
         "『白驼山庄』。东面有间小农舍,西边有块菜地,东南方是一\n"
         "座小桥。\n"
        );
        set("outdoors", "baituo");
//        set("no_clean_up", 0);
        set("exits", ([
                "east" : __DIR__"nongshe",
//                "west" : __DIR__"caide",
                "northup" : __DIR__"shijie",
                "northwest" : __DIR__"shanlu",
                "southeast" : __DIR__"bridge",
        ]));
        set("objects",([
                __DIR__"npc/kid" : 2,
        ]));
        setup();
        replace_program(ROOM);
}

d\baituo\houmen.c

//room: houmen.c

inherit ROOM;

void create()
{
        set("short","后门");
        set("long",
       "这是个山庄的后门。这里有捷径可以通向星宿海。\n"
        );
        set("exits",([
                "north" : "/d/xingxiu/xxh1",
                "south" : __DIR__"tuyuan",
        ]));
        set("objects", ([
            __DIR__"npc/menwei" : 1 ,
        ]));
//        set("no_clean_up", 0);
        set("outdoors", "baituo");
        setup();
}

int valid_leave(object me, string dir)
{

        if (  (dir == "south")
           && ((int)me->query("shen") > 300)
           && objectp(present("men wei", environment(me))))
         return notify_fail
                ("门卫把手一拦:你这种正派人物,老子一看就恶心,快滚!\n");
        return ::valid_leave(me, dir);
}

d\baituo\houyuan.c

//room: huayuan.c
inherit ROOM;

void create()
{
  set("short","后院");
  set("long",
       "这是僻静的后院,住着『欧阳克』的老奶妈『张妈』。\n"
   "由于年岁已高,她已经不干活了,在这里静养。\n"
      );
  set("exits",([
      "southeast" : __DIR__"zhuyuan",
     ]));
//  set("no_clean_up", 0);
  set("outdoors", "baituo");
  set("objects",([
    __DIR__"npc/zhangma" : 1,
    ]));
setup();
replace_program(ROOM);
}

d\baituo\huayuan.c

//room: huayuan.c
inherit ROOM;

void create()
{
  set("short","花园");
  set("long",
       "这是个美丽的大花园,园子里面种着鲜艳的红玫瑰。\n"
   "白衣少女常来这里嬉戏。沿着弯弯曲曲的花径,可以通到\n"
   "山庄的许多地方。东边是厨房。西边是白驼山少主『欧阳\n"
   "克』的内室,门虚掩着,不知主人在不在。\n"
      );
  set("exits",([
      "west" : __DIR__"neishi",
      "north" : __DIR__"zhuyuan",
      "east" : __DIR__"chufang",
      "south" : __DIR__"menlang",
     ]));
  set("outdoors", "baituo");
//  set("no_clean_up", 0);
  set("objects",([
    __DIR__"npc/whitelady" : 2,
    ]));
setup();
replace_program(ROOM);
}

d\baituo\jiudian.c

//jiudian.c

inherit ROOM;

void create()
{
        set("short", "酒店");
        set("long",
             "这里是一家独具特色的酒店,由于地处『白驼山』下,\n"
         "酒店可以供应风味食品--蛇肉。许多中原来客都爱来尝尝\n"
         "鲜,所以酒店生意兴隆。酒店还经营打散装酒的业务。\n"
        );
        set("exits", ([
                "south" : __DIR__"xijie",
        ]));
        set("objects",([
                __DIR__"npc/xiaoer" : 1,
        ]));
//        set("no_clean_up", 0);
        set("resource/water", 1);
        setup();
        replace_program(ROOM);
}

d\baituo\liangong.c

//room: /d/btshan/liangong.c
inherit ROOM;
void create()
{
  set("short","练功场");
  set("long",
      "这里是白驼山弟子的练功场。东边是一个练功房。北边是个门廊,\n"
  "西边连着一条长廊,雕梁画柱,非常气派。南面可见巍巍大厅。\n"
    );
  set("exits",([
      "east" : __DIR__"fang",
      "north" : __DIR__"menlang",
      "west" : __DIR__"changlang",
      "south" : __DIR__"dating",
     ]));

set("objects",([
     __DIR__"npc/li" : 1,
     "quest/menpaijob/baituo/cheng" : 1,
     ]));
// set("no_clean_up", 0);

set("outdoors", "baituo");
setup();

replace_program(ROOM);
}

d\baituo\menlang.c

//room: menlang.c
inherit ROOM;

void create()
{
  set("short","门廊");
  set("long",
      "这是个门廊,门廊的飞檐上挂着一串串的小铜铃,\n"
  "在清风中发出清脆动听的铃声。\n"
      );
  set("exits",([
      "north" : __DIR__"huayuan",
      "south" : __DIR__"liangong",
     ]));
  set("objects",([
    __DIR__"npc/guanjia" : 1,
    ]));
// set("no_clean_up", 0);
set("outdoors","baituo");
setup();
replace_program(ROOM);
}

d\baituo\midao1.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。这里的石壁非常
潮湿,看来附近有水源。
LONG);
        set("objects", ([
                    __DIR__"npc/hama" : 1,
        ]));
        set("exits", ([
              "westdown" : __DIR__"midao2",
              "east" : __DIR__"midao",
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <8 && me->query_con() < 35){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 50);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 20);
                     }           
}

[ 本帖最后由 leotang111 于 2007-6-19 00:21 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2007-6-18 09:48 | 显示全部楼层
原帖由 leotang111 于 2007-6-18 09:42 发表
三中特殊武学介绍:

1.□ 碧波神功

这是东海桃花岛黄药师所创的一门内功心法。传说当初黄药师行船海上,忽见
碧海潮生,碧波汹涌,声势惊人,在与风浪搏斗之余,豁然顿悟,创出一门阳
刚阴柔相结合的内功 ...


求一个归云学陆乘风的机器人……

以上……
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-18 13:36 | 显示全部楼层
d\baituo\midao2.c

#include <ansi.h>
inherit ROOM;        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。这里的石壁非常
潮湿,看来附近有水源。从这里开始迷道分成了左右两边,往右走好象可
以看见一点亮光。
LONG);               
        set("exits", ([
              "westdown" : __DIR__"midao3",
              "eastdown" : __DIR__"midao5",
              "eastup" : __DIR__"midao1",
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <8 && me->query_con() < 35){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 50);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 20);
                     }           
}

void create()
{

d\baituo\midao3.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。这里的石壁非常
潮湿,看来附近有水源。
LONG);        
        set("exits", ([
              "westdown" : __FILE__,
              "north" : __DIR__"midao4",
              "south" : __DIR__"midao4",
              "eastup" : __FILE__,
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <10 && me->query_con() < 35){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 50);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 20);
                     }           
}


int valid_leave(object me, string dir)
{
        if ( dir == "north") me->add_temp("mark/steps",1);
        if ( dir == "westdown") me->add_temp("mark/step",1);   
        if ( dir == "south") me->add_temp("mark/steps",-1);
        if ( dir == "eastup") me->add_temp("mark/step",-1);
        if ((me->query_temp("mark/steps") >= 3) &&
           (me->query_temp("mark/step") >=4)){
                    me->move(__DIR__"tianjing");
                    me->delete_temp("mark/steps");
                    me->delete_temp("mark/step");
                    return notify_fail("你正走着,突然发现前面好象有了一些光亮。\n");
                    }  
             if ((me->query_temp("mark/steps") <= -3) &&
        (me->query_temp("mark/step") <=-4)){  
                me->move(__DIR__"midao2");
                   me->delete_temp("mark/steps");
                   me->delete_temp("mark/step");
                   return notify_fail("你正走着,突然发现前面的道路有些变化。\n");
                }
            if ((me->query_temp("mark/steps") >= 10) ||
         (me->query_temp("mark/step") >= 10) ||
         (me->query_temp("mark/steps") <= -10) ||
         (me->query_temp("mark/step") <= -10)){  
                me->move(__DIR__"midao7");
                   me->delete_temp("mark/steps");
                   me->delete_temp("mark/step");
                   return notify_fail("你正走着,突然发现前面的道路有些变化。\n");
                }
        return ::valid_leave(me,dir);
}

d\baituo\midao4.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。这里的石壁非常
潮湿,看来附近有水源。
LONG);               
        set("exits", ([
              "westdown" : __FILE__,
              "north" : __DIR__"midao3",
              "south" : __DIR__"midao3",
              "eastup" : __FILE__,
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <10 && me->query_con() < 35){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 50);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 20);
                     }           
}


int valid_leave(object me, string dir)
{
        if ( dir == "north") me->add_temp("mark/steps",1);
        if ( dir == "westdown") me->add_temp("mark/step",1);   
        if ( dir == "south") me->add_temp("mark/steps",-1);
        if ( dir == "eastup") me->add_temp("mark/step",-1);
        if ((me->query_temp("mark/steps") >= 3) &&
           (me->query_temp("mark/step") >=4)){
                    me->move(__DIR__"tianjing");
                    me->delete_temp("mark/steps");
                    me->delete_temp("mark/step");
                    return notify_fail("你正走着,突然发现前面好象有了一些光亮。\n");
                    }  
             if ((me->query_temp("mark/steps") <= -3) &&
        (me->query_temp("mark/step") <=-4)){  
                me->move(__DIR__"midao2");
                   me->delete_temp("mark/steps");
                   me->delete_temp("mark/step");
                   return notify_fail("你正走着,突然发现前面的道路有些变化。\n");
                }
            if ((me->query_temp("mark/steps") >= 10) ||
         (me->query_temp("mark/step") >= 10) ||
         (me->query_temp("mark/steps") <= -10) ||
         (me->query_temp("mark/step") <= -10)){  
                me->move(__DIR__"midao7");
                   me->delete_temp("mark/steps");
                   me->delete_temp("mark/step");
                   return notify_fail("你正走着,突然发现前面的道路有些变化。\n");
                }
        return ::valid_leave(me,dir);
}

d\baituo\midao5.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。前面的道路越来
越暗,你快要看不见东西了。这里空气污浊,还夹杂着一股刺鼻的味道,
你一走过来便觉得头脑发晕,象是中毒了。
LONG);               
        set("exits", ([
              "westup" : __DIR__"midao2",
              "eastdown" : __DIR__"midao6",   
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <13 && me->query_con() < 35){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 80);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 25);
                     }           
}

d\baituo\midao6.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。前面的道路越来
越暗,你快要看不见东西了。这里空气污浊,还夹杂着一股刺鼻的味道,
你一走过来便觉得头脑发晕,象是中毒了。
LONG);               
        set("exits", ([
              "westup" : __DIR__"midao5",
              "east" : __DIR__"midao7",
              "south" : __DIR__"midao8",
              "west" : __FILE__,
              "north" : __DIR__"midao8",   
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <13 && me->query_con() < 37){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 80);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 20);
                     }           
}

d\baituo\midao7.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。前面的道路越来
越暗,你快要看不见东西了。这里空气污浊,还夹杂着一股刺鼻的味道,
你一走过来便觉得头脑发晕,象是中毒了。
LONG);        
        set("objects", ([
                    __DIR__"npc/zhuye" : 1,
                    __DIR__"npc/yanjing" : 1,
        ]));
        set("exits", ([
              "west" : __DIR__"midao6",
              "east" : __DIR__"midao8",
              "south" : __DIR__"midaoout",
              "north" : __FILE__,
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <13 && me->query_con() < 37){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 80);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 30);
                     }           
       add_action("do_use", "use");
}

int do_use(string arg)
{
        object me;
        me = this_player();
        if( !arg || arg=="" ) return 0;
        if (!present("fire", me))  return 0;
        if( arg=="fire" ) {
             write("你点燃了火折,只见地上铺满了一堆堆的蛇骨,这里的毒气便
是由这多年堆积的毒蛇尸骨所产生。由于此处空气不流通,所以
毒素越积越多,常人已无法忍受。\n");
             this_player()->set_temp("learn_poison", 1);
             return 1;
       }
}

d\baituo\midao8.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。前面的道路越来
越暗,你快要看不见东西了。这里空气污浊,还夹杂着一股刺鼻的味道,
你一走过来便觉得头脑发晕,象是中毒了。
LONG);        
        set("objects", ([
                    __DIR__"npc/zhuye" : 1,
                    __DIR__"npc/fushe" : 1,   
                    __DIR__"npc/hama" : 1,                        
                    __DIR__"npc/jumang2" : 1,
        ]));
        set("exits", ([
              "west" : __DIR__"midao7",
              "north" : __DIR__"midao6",
              "south" : __FILE__,
              "east" : __FILE__,
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <14 && me->query_con() < 38){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 90);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 30);
                     }              
       add_action("do_use", "use");
}

int do_use(string arg)
{
        object me;
        me = this_player();
        if( !arg || arg=="" ) return 0;
        if (!present("fire", me))  return 0;
        if( arg=="fire" ) {
             write("你点燃了火折,只见地上铺满了一堆堆的蛇骨,这里的毒气便
是由这多年堆积的毒蛇尸骨所产生。由于此处空气不流通,所以
毒素越积越多,常人已无法忍受。\n");
             this_player()->set_temp("learn_poison", 1);
             return 1;
       }
}

d\baituo\midao.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。这里有有一块大
石柱(shizhu)挡着向上的出口,往前走好象可以看见一点亮光。
LONG);
        set("item_desc",([
        "shizhu" : "这是根巨型圆柱,看样子应该可以扳(move)动她。\n",
        ]));
        set("exits", ([
              "west" : __DIR__"midao1",
        ]));
        setup();
}

void init()
{
        add_action("do_move","move");
}

int do_move(string arg)
{
        object room, me = this_player();
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if( !arg || arg!="shizhu" ) return 0;
        
        message("vision","石柱忽然发出轧轧的声音,向一侧缓缓移开,向上露出一个光亮的出口。\n", this_object() );
        set("exits/up", __DIR__"yuanzi4");
        if( room = load_object(__DIR__"yuanzi4") ) {
                 room->set("exits/down", __FILE__);
                 message("vision","石柱忽然发出轧轧的声音,露出一个黑洞洞的洞口。\n",room );
        }
        remove_call_out("close_door");
        call_out("close_door", 5);
        return 1;
}

void close_door()
{
        object room;
        if( !query("exits/up") ) return;
        message("vision","头顶上忽然发出轧轧的声音,石柱又缓缓地收了回去,阶梯消失了。\n", this_object() );
        if( room = load_object(__DIR__"yuanzi4") ) {
                room->delete("exits/down");
                message("vision", "石柱忽然发出轧轧的声音,缓缓地移回原处,将向下的洞口盖住了。\n", room );
                }
        delete("exits/up");
}

d\baituo\midaoo.c

//midao.c
inherit ROOM;

void create()
{
  set("short","密道");
  set("long","这里是漆黑的密道,当年白驼山弟子为了直达中原而挖凿的。\n");
  set("exits" , ([
    "east" : "/d/city/beidajie1",
      ]));
  set("objects",([
     __DIR__"obj/shenshe" : 1 ,
    ]));
//  set("no_clean_up", 0);
setup();
}
void init()
{
        add_action("do_get", "get");
}

int do_get(string arg)
{

        object me = this_player();
        object ob;
        if ((arg != "shenshe") || !arg)
          return notify_fail("你要拿什么?\n");
        if(!objectp(ob=present("shenshe",environment(me))))
          return notify_fail("这里没有「引路神蛇」.\n");
        if(me->query("family/family_name") != "白驼山派")
          return notify_fail("这是只有白驼山派弟子才能使唤的「引路神蛇」.\n");
        ob->move(me);
        message_vision("$N拿起「引路神蛇」揣在怀里。\n",me);
        return 1;
}

d\baituo\midaoout.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIR"秘道"NOR);
        set("long", @LONG
这条阴暗的秘道在山腹中曲折延伸,不知通往何处。前面的道路越来
越暗,你快要看不见东西了。这里空气污浊,还夹杂着一股刺鼻的味道,
你一走过来便觉得头脑发晕,象是中毒了。
LONG);               
        set("exits", ([
              "west" : __FILE__,
              "east" : __DIR__"midao8",
              "north" : __DIR__"midao7",
              "south" : __FILE__,   
        ]));
        setup();
}

void init()
{   
          object me = this_player();
             if (random(me->query("kar")) <13 && me->query_con() < 35){
                tell_object(me, HIB "你忽然感到呼吸一紧,原来是这里的空气污浊、流通不畅。\n" NOR );      
                     tell_room(environment(me), me->name()+"突然脸色变得极为难看,并深深地吸了口气。\n" NOR,({ me }));
//                     me->receive_damage("neili", 60);
                     me->receive_damage("jing", 50);
                     me->receive_wound("jing", 20);
                     }               
        add_action("do_use", "use");
        add_action("do_tui", "tui");
}

int do_use(string arg)
{
        object me;
        me = this_player();
        if( !arg || arg=="" ) return 0;
        if (!present("fire", me))  return 0;
        if( arg=="fire" ) {
             write("你点燃了火折,发现前面石壁上有一洞口,但被巨石堵住了,不知能不能推(tui)开它。\n");
             this_player()->set_temp("marks/推", 1);
             return 1;
       }
}

int do_tui(string arg)
{
        object me = this_player();
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if (arg == "stone" || arg == "jushi" ){   
                if (me->query_temp("marks/推") ) {
                          if(me->query_skill_mapped("force") != "hamagong" ){
                                       me->add("max_neili", -(1+random(4)));
                                       message_vision(HIR "$N运气猛力向巨石一击,结果不但没推开它,反而震伤了自己。\n" NOR, me);
                                       me->unconcious();
                                       return 1;
                                       }
                           else{
                                    message_vision("$N出掌抵住巨石,猛地一推将巨石推开一条缝钻了出去。\n", me);  
                                    me->move("/d/hj/hswz");
                                    message("vision", me->name() + "从乱石堆里钻了出来。\n",environment(me), ({me}) );
                                    this_player()->delete_temp("marks/推");
                                    return 1;
                                  }
                        }
                       }
        else {
                    write("你想推什么?\n");
                    return 1;
                }
}

d\baituo\mumen.c

//room: mumen.c
inherit ROOM;
void create()
{
  set("short","墓门");
  set("long",
       "这是个一座豪华墓地的墓门。大理石雕花的门梁,青石板的路面,\n"
   "修剪整齐的长青木,显得庄重肃穆。墓门边立着一块青白色石碑(bei)。\n"
      );
  set("exits",([
      "south" : __DIR__"fende",
//      "northeast" : __DIR__"gongzhu",
     ]));
  set("item_desc",([
  "bei" : "   『公主坟』  \n无「金令牌」者禁入!\n",
  ]));
  set("objects",([
    __DIR__"npc/shiwei" : 1,
    ]));
set("outdoors", "baituo");
// set("no_clean_up", 0);
setup();
}

int valid_leave(object me, string dir)
{
       if (  (dir == "northeast")
           && (!present("jinpai",me))
           && objectp(present("shi wei", environment(me))) )
         return notify_fail
                ("仕卫把手一拦:你没有「金令牌」,不能进去!\n");
        return ::valid_leave(me, dir);
}

d\baituo\neishi.c

//ROOM neishi.c

inherit ROOM;
void init();
int do_move(string);
void create()
{
        set("short", "内室");
        set("long",
             "这是『欧阳克』的内室,内部摆设很有情趣。屋角摆着一盆名贵\n"
         "兰花,正骄傲地吐露芳蕊。花盆(pen) 下撒落一些浮土,可能是被人\n"
         "搬出去晒太阳时撒下的。\n"
        );
        set("exits", ([
                "east" : __DIR__"huayuan",
        ]));

        set("no_clean_up", 0);
        set("item_desc", ([
            "pen" : "这是个大花盆,很结实,作工很考究。\n"
        ]));
        setup();
}
void init()
{
        add_action("do_move", "move");
}

int do_move(string arg)
{

        object me = this_player();
        object room;

        if ((arg != "pen") || !arg)
          return notify_fail("你要搬什么?\n");
        if((int)me->query("str") < 20)
          return notify_fail("你搬不动它!\n");
        if(!( room = find_object(__DIR__"midaoo")) )
           room = load_object(__DIR__"midaoo");
        if(!objectp(room))  return notify_fail("ERROR:not found 'midao.c' \n");
        if (!query("exits/down"))
          {
          set("exits/down", __DIR__"midaoo");
          message_vision("$N搬动了花盆,只见花盆下面露出一个黑幽幽
              的洞口。\n",me);
          room->set("exits/up", __FILE__);
          message("vision", "外面传来一阵搬动花盆的声音,一束光线射了进来。
          \n", room);
          }
         else
          {
          delete("exits/down");
          message_vision("$N把花盆搬回了原位。洞口被封住了。\n",me);
          room->delete("exits/up");
          message("vision", "外面传来一阵搬动花盆的声音,洞口被封住了。\n", room);
          }
       return 1;
}

d\baituo\nongshe.c

//nongshe.c
inherit ROOM;

void create()
{
        set("short", "农舍");
        set("long",
             "这里是一间小农舍,家具很新。看来主人比较富裕。\n"
        );
        set("exits", ([
                "west" : __DIR__"guangchang",
        ]));
        set("objects",([
                __DIR__"npc/woman" : 1,
        ]));
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\baituo\ouyangfeng.c

inherit NPC;
void greeting(object ob);
string inquiry_map();

void create()
{
        set_name("欧阳锋", ({ "ouyang feng", "ouyang", "feng" }));
        set("long", "他是白驼山庄主,号称“西毒”的欧阳锋。\n"
                   +"由于习练「九阴真经」走火入魔,已变得精\n"
                   +"神错乱,整日披头散发,衣冠不整。\n");
        set("title", "老毒物");
        set("gender", "男性");
        set("age", 53);
        set("nickname","西毒");

        set("attitude", "peaceful");

        set("str", 30);
        set("int", 24);
        set("con", 30);
        set("dex", 24);

        set("qi", 500);
        set("max_qi", 500);
        set("jing", 300);
        set("str", 30);
        set("int", 24);
        set("con", 30);
        set("dex", 24);

        set("qi", 500);
        set("max_qi", 500);
        set("jing", 300);
        set("max_jing", 300);
        set("neili", 1500);
        set("max_neili", 1500);
        set("jiali", 50);

        set("combat_exp", 1500000);
        set("score", 200000);
        set_skill("force", 200);
        create_family("白驼山派",1, "开山祖师");

   // other set needed for future use.
        set("class", "taoist");
        set("inquiry", ([
        "地图": (: inquiry_map :),
        ]));

        setup();
}

void init()
{
        object ob;

        ::init();

        if( interactive(ob = this_player()) && !is_fighting() ) {
                remove_call_out("greeting");
                call_out("greeting", 1, ob);
        }
}
void greeting(object ob)
{
        if( !ob || environment(ob) != environment() ) return;
        switch(random(3)) {
        case 0:write("你是谁?我要杀了你!哈 ̄哈 ̄哈 ̄")
                break;
        case 1:write("谁说我疯了!我没疯 ̄");
                break;
        }
}
string inquiry_map()
{
        object ob;
        object me=this-player();
        if((string)me->query("family/family_name")!="白驼山派")
                return "我岂能把秘密告诉外帮弟子。你以为我真的啥都不知道了吗?哈 ̄";
        else
        {
                if(me->query("combat_exp")<=10)
                        return "哼!你刚拜完师就问这问那,难道想当家贼?小心我宰了你!";
    message_vision("欧阳锋微微一笑,凑近$N的耳根,小声嘀咕起来。",me);
    command("tell "+(string)me->query("id")+
              "这是从走出沙漠的正确通路,你要听仔细。东。。");
    command("smile");
    return "记住了吧。";
   }
}
/*string inquiry_map()
{
object ob,room=enviroment();
object me=this-player();

if((string)me->query("family/family_name")!="白头山派")
   return "我岂能把秘密告诉外帮弟子。你以为我真的啥都不知道了吗?哈 ̄";
else
  {
    if(me->query("combat_exp")==0)
     return "哼!你刚拜完师就问这问那,难道想当家贼?小心我宰了你!";
    if(!objectp(present("key",enviroment(me))))
        return "我没有什么key哇!";
    if(present("key",me))
        return "你小子怎么贪得无厌!";
    if(me->query("combat_exp")<1500)
        return "等你的实战经验再高些,为师的再告诉你。";
    ob=new(__DIR__"../obj/key");
    ob->move(room);
    return "这是后门的key,你拿去吧。";
   }
} */

d\baituo\restroom.c

//room: /d/btshan/restroom.c
//restroom
inherit ROOM;

void create()
{
  set("short","休息室");
  set("long",
      "这里是间休息室,里面有张大床。在这里睡觉非常舒服,没人能\n"
  "打扰。南面是气派的长廊。\n"
     );

  set("exits",([
      "south" : __DIR__"changlang",
     ]));

  set("sleep_room", 1);
  set("no_fight",1);
  set("no_steal",1);
  set("no_clean_up", 0);

setup();
replace_program(ROOM);
}

d\baituo\room1.c

//room1.c
inherit ROOM;
void create()
{
  set("short","练功室");
  set("long",
      "这里是白驼山弟子的练功室。有陪练童子陪你练功。\n"
    );
  set("exits",([
      "out" : __DIR__"liangong",
     ]));

  set("objects",([
     __DIR__"npc/tongzi" : 1,
     ]));
//  set("no_clean_up", 0);
  set_temp("full",0);
  setup();

}

void init()
{ object ob=this_player();
  if((int)query_temp("full")==2)
   {
    message_vision("$N一见房间里已经有人了,只好退了出去。\n",ob);
    ob->move(__DIR__"liangong");
    return;
   }
  add_temp("full" ,1);
  return;
}

int valid_leave(object who, string dir)
{
add_temp("full",-1);
return 1;
}

d\baituo\room2.c

//room2.c
inherit ROOM;
void create()
{
  set("short","练功室");
  set("long",
      "这里是白驼山弟子的练功室。有陪练童子陪你练功。\n"
    );
  set("exits",([
      "out" : __DIR__"liangong",
     ]));

  set("objects",([
     __DIR__"npc/tongzi" : 1,
     ]));
  set_temp("full",0);
//  set("no_clean_up", 0);
  setup();

}

void init()
{ object ob=this_player();
  if((int)query_temp("full")==2)
   {
    message_vision("$N一见房间里已经有人了,只好退了出去。\n",ob);
    ob->move(__DIR__"liangong");
    return;
   }
  add_temp("full" ,1);
  return;
}

int valid_leave(object who, string dir)
{
add_temp("full",-1);
return 1;
}

d\baituo\room3.c

//room3.c
inherit ROOM;
void create()
{
  set("short","练功室");
  set("long",
      "这里是白驼山弟子的练功室。有陪练童子陪你练功。\n"
    );
  set("exits",([
      "out" : __DIR__"liangong",
     ]));

  set("objects",([
     __DIR__"npc/tongzi" : 1,
     ]));
  set_temp("full",0);
//  set("no_clean_up", 0);
  setup();

}

void init()
{ object ob=this_player();
  if((int)query_temp("full")==2)
   {
    message_vision("$N一见房间里已经有人了,只好退了出去。\n",ob);
    ob->move(__DIR__"liangong");
    return;
   }
  add_temp("full" ,1);
  return;
}

int valid_leave(object who, string dir)
{
add_temp("full",-1);
return 1;
}

d\baituo\shanlu1.c

//shanlu1.c
inherit ROOM;

void create()
{
  set("short","山路");
  set("long","这里是山上的泥路。\n");
  set("exits",([
      "north" : __DIR__"shulin",
      "southeast" : __DIR__"shanlu",
     ]));
  set("outdoors", "baituo");
  set("objects" ,([
      __DIR__"npc/qiaofu" : 1 ,
      ]) );
//  set("no_clean_up", 0);
  setup();
  replace_program(ROOM);
}

d\baituo\shanlu.c

//shanlu.c
inherit ROOM;

void create()
{
  set("short","山路");
  set("long","这里是山上的泥路。\n");
  set("exits",([
      "northwest" : __DIR__"shanlu1",
      "southeast" : __DIR__"guangchang",
     ]));
  set("outdoors", "baituo");
  set("no_clean_up", 0);
  setup();
  replace_program(ROOM);
}

[ 本帖最后由 leotang111 于 2007-6-18 21:17 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-18 21:17 | 显示全部楼层
d\baituo\shetan.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", BLU"蛇潭"NOR);
        set("long", @LONG
一个阴深深的水潭,水面离地有丈高。你感觉到水里有东西在向你游
来。。。是蟒蛇!快跑(jumpup)吧!
LONG);
        set("objects", ([
                    __DIR__"npc/jumang" : 2
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{
        object ob;      
        if (interactive(ob = this_player())) {
               remove_call_out("greeting");
               call_out("greeting", 1, ob);
               }      
               add_action("do_jumpup", "jumpup");
}

int do_jumpup(string arg)
{
              object me = this_player();
             
              if(me->query("jing") < 200 )
                return notify_fail("你已经没有精力跳上去了。\n");

        if(me->is_busy() )
                return notify_fail("你正忙着呢。\n");
               
        if (objectp(present("ju mang", environment(me)))){
                me->receive_damage("qi", 150);
                   me->receive_wound("qi", 100);
                   me->receive_damage("jing", 100);
                       if( me->query_dex() > 20 && me->query_dex() < 26) {
                           message_vision(HIR"$N用力往上一纵,却又被巨蟒缠住了双足落了下来!\n"NOR, me);
                           me->receive_damage("qi", 200);
                           me->receive_wound("qi", 250);
                           }
                       if(me->query_dex() >= 26 && me->query_dex() < 32) {
                           message_vision(HIY"$N用力往上一纵,虽差点又被巨蟒缠住了双足,但终于逃出了蛇潭!\n"NOR, me);
                           me->receive_damage("qi", 100);
                           me->receive_wound("qi", 50);
                           me->move(__DIR__"yuanzi1");
                           tell_room(environment(me), me->name()+"从蛇潭之中爬上来,脚下一软,脸色苍白地坐倒在地。\n", ({ me }));
                          }
                       if(me->query_dex() >= 32) {
                           message_vision(HIR"$N用力往上一纵,跳出了蛇潭。\n"NOR, me);
                           me->move(__DIR__"yuanzi1");
                           tell_room(environment(me), me->name()+"从蛇潭之中跳了上来,模样狼狈不堪。\n", ({ me }));
                          }
                       else {
                           message_vision("$N使劲一跳,可是跳不上去,反而被蛇猛咬了一口!\n", me);
                           me->receive_damage("qi", 400);
                           me->receive_wound("qi", 300);
                           me->receive_damage("jing", 100);
                           }
                       }
       else {
                   message_vision("$N使劲一纵,跳出了蛇潭。\n", me);
                   me->receive_damage("qi", 50);
                   me->receive_damage("jing", 50);
                   me->move(__DIR__"yuanzi1");
                   tell_room(environment(me), me->name()+"突然从蛇潭之中跳了出来,脸带恐惧之色。\n",({ me }));
                }
       return 1;
}

int greeting(object ob)
{
        object me = this_player();        
        if( (int)me->query_temp("baituo_climb") < 2) {
                message_vision(HIR"$N从墙上跳了下来,正好落在了巨蟒身上!\n还没回过神来,已经被巨蟒缠住了!\n"NOR, me);
                   write(BLU"你被巨蟒缠住,越来越紧。。。\n你感到一切事物都开始慢慢远离你而去了。。。\n"NOR);
                   me->delete_temp("baituo_climb");
                   me->unconcious();
                   }
        else if((int)me->query_temp("baituo_climb") == 2){
                   message_vision(HIR"$N从墙上跳了下来,正好落在了巨蟒身旁!\n猛力一跳,双脚却还是被巨蟒缠住了!\n"NOR, me);
                   write(BLU"你被巨蟒缠住,越来越紧。。。再不想法逃跑就死定了!\n"NOR);
                   me->receive_damage("qi", 500);
                   me->receive_wound("qi", 200);
                   }
        else {
                   message_vision(HIR"$N刚刚飞纵过来,就发现了蛇潭里有巨蟒!\n"NOR, me);
                   write(BLU"你看见巨蟒向你卷了过来,快走!\n"NOR);
                   message_vision(HIY"$N身在半空双臂一挥,身体借力又直飞出去,跳出了蛇潭!\n"NOR, me);
                   me->receive_damage("jing", 100);
//                   me->receive_damage("neili", 100);
                   me->move(__DIR__"yuanzi1");
                   tell_room(environment(me), me->name()+"从蛇潭之中飞跃上来,脸上带着惊讶之色。\n",({ me }));
                }      
        me->delete_temp("baituo_climb");
        return 1;
}

d\baituo\sheyuan.c

//room: sheyuan.c
inherit ROOM;

void create()
{
        set("short","蛇园");
        set("long", @LONG
这里是白驼山庄的蛇园。白驼山以毒名扬天下,最重要的
毒质就来自毒蛇。这里遍地是蛇,墙上也巴着蛇,屋檐上也向
下垂着蛇,树枝上也盘绕着蛇,不由你不心惊。
LONG );
        set("exits",([
                "west"  : __DIR__"tuyuan",
        ]));
        set("outdoors", "baituo");
        set("objects",([
                "/d/shenlong/npc/jinshe" :1,
                "/d/shenlong/npc/dushe" :1,
                "/d/shenlong/npc/fushe" :1,
                "/d/shenlong/npc/qingshe" :1,
                "/d/fuzhou/npc/wubushe" :1,
        ]));
        setup();
        replace_program(ROOM);
}

d\baituo\shidui.c

#include <ansi.h>
inherit ROOM;
string* obj = ({
       __DIR__"obj/book1",
       __DIR__"obj/book2",
       __DIR__"obj/book3",
       __DIR__"obj/book4",
});
void create()
{
        set("short", "乱石堆");
        set("long", @LONG
这里四周所围全是巨石,地上铺满了凌乱的碎石子,象是被人击打巨
石所打下来的碎块。正中一块平滑的青石板上蹲着一只雪白的蛤蟆。
地下乱七八精有一大堆东西,你好像可以找找(find)看。
LONG);        
        set("objects", ([
                    __DIR__"npc/chanchu" : 1,
        ]));
         set("item_desc", ([                    
                "stone": "\n这些巨石都有凹面,看得出是被人拿来练掌力用的。\n",
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{
               object me = this_player();      
               if(!me->query_temp("baituo_yun")
               && me->query("id") != "xuanbing chanchu"
               && me->query("id") != "snowman"){
                     message_vision(HIW"玄冰蟾蜍突然纵起,对着$N一口毒气喷出!\n"NOR,this_player());
                     tell_object(me, HIB "你感到脑中一阵旋晕,立时昏了过去。\n" NOR );
                     me->unconcious();
                     me->move(__DIR__"yuanzi5");
                     tell_room(environment(me), me->name()+"突然从巨石之上直落下来,‘叭’的一声摔在地上!\n", ({ me }));
                  if(me->query_skill("poison", 1) < 100)
                          me->unconcious();              
                  else me->add("max_neili", -5);
                  }  
        add_action("do_climb", "climb");
        add_action("do_climb", "pa");
        add_action("do_strike", "strike");      
        add_action("do_find", "find");
        add_action("do_find", "zhao");
        add_action("do_find", "fan");

}

int do_climb(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if (arg == "stone" ){   
                   message_vision("$N手脚并用,爬上了巨石去,翻身一纵,已经跳了出去。\n", me);                     
                       me->move(__DIR__"yuanzi5");
                       message("vision", me->name() + "从里面跳了出来。\n",environment(me), ({me}) );
                       return 1;
        }     
        return 0;
}

int do_strike(string arg)
{
        int improve, cost, hmglevel;
        object me = this_player();
        
        improve = me->query_int() / 10 + random(me->query_int() * 5 / 6);
        hmglevel = me->query("oyf_hamagong");
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if (arg == "stone" ){            
                    if(!me->query_skill("hamagong", 1))  
                               return notify_fail("你用手指推了推巨石,脸上露出一丝难堪的神色。\n");
                    if(me->query_skill("hamagong", 1) > 64 && hmglevel < 2)  
                               return notify_fail("你用手指推了推巨石,脸上露出一丝难堪的神色。\n");
                    if(me->query_skill("hamagong", 1) > 100)  
                               return notify_fail("你一掌向巨石推去,只听轰的一声,巨石被你掌力震成两半!\n");
                              
                cost = 600 / (int)me->query("int");
                cost = 600 / (int)me->query("int");

                   if ((int)me->query("jing") < cost || (int)me->query("jing") < cost){
                        message_vision("$N用力过猛, 一不留神劲力反弹,震得$N晕了过去。\n",me);
                        me->unconcious();
                        return 1;
                }
               
                message_vision("$N默诵蛤蟆功口诀,运力于双掌之上,一掌掌向巨石推去。\n"NOR, me);  
                   me->improve_skill("hamagong", improve);            
                   me->improve_skill("strike", improve/4);
                   me->receive_damage("jing", cost);
                   me->receive_damage("jing", cost);                        
                   return 1;
        }     
        return 0;
}

int valid_leave(object me)
{        
       me->delete_temp("baituo_yun");      
       return ::valid_leave(me);
}


int found(object me)
{
        object ob = new( obj[random(sizeof(obj))] );
        ob->move(me);
        message_vision("$N翻了半天,找到了" + ob->query("name") + "。\n", me);
        me->set_temp("baituo_find", 1);
        return 1;
}

int do_find()
{
       object me = this_player();
       if( (int)me->query_temp("baituo_find") )
                return notify_fail("你已经拿了东西了,走吧。\n");
       if (me->query_skill("hamagong", 1) &&
           me->query_skill("poison", 1) > 30){
                message_vision("$N捏着鼻子在物品堆中乱翻着。\n", me);
                found(me);   
                }
       else if (me->query_skill("poison", 1) > 50){
                message_vision("$N捏着鼻子在物品堆中乱翻着。\n", me);
                if(random((int)me->query("kar")) < 15){
                     write("你吸了口气,突然觉得头中一阵眩晕。\n");
                     me->unconcious();
                     }
                else found(me);   
                }
       else {
                message_vision("$N捏着鼻子在物品堆中乱翻着。\n", me);
                write("你吸了口气,突然觉得头中一阵眩晕。。。不好!你中毒了!\n");
                me->apply_condition("snake_poison", me->query_condition("snake_poison")+22);
                me->unconcious();
                }
       return 1;
}

d\baituo\shijie.c

//shijie.c
inherit ROOM;

void create()
{
        set("short","石阶");
        set("long",@TEXT
你走在青石板铺成的石阶上。这里就是传说中神秘的白驼山。远远
望去,两座白沙堆积形成的山峰好像一只骆驼的脊背。一座山门立在你
的眼前。
TEXT );
        set("exits",([
                "east" : __DIR__"caoping",
                "northup" : __DIR__"damen",
                "southdown" : __DIR__"guangchang" ,
        ]));
        set("outdoors", "baituo");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\baituo\shoushe.c

//room: shoushe.c
inherit ROOM;

void create()
{
        set("short","兽舍");
        set("long", @LONG
这里是白驼山庄的兽舍。白驼山驭兽术天下知名,这里也
豢养了各种猛兽,以供下山的白驼弟子使用。兽舍里猛兽长声
嘶嚎,老远都听得见。尤其是夜晚听来,更有是撕心裂肺的惨
烈。
LONG );
        set("exits",([
                "east"  : __DIR__"tuyuan",
        ]));
        set("outdoors", "baituo");
        set("objects",([
                __DIR__"npc/fox" :1,
                __DIR__"npc/wolf" :1,
                __DIR__"npc/tiger" :1,
                __DIR__"npc/lion" :1,
        ]));
        setup();
        replace_program(ROOM);
}

d\baituo\shulin1.c

//shulin1.c
inherit ROOM;

void init();
int cut(string);

void create()
{
  set("short","树林");
  set("long","这里是一片茂密的树林(wood)。旁边立着一张木牌(pai)。\n");
  set("exits",([
        "east" : __DIR__"shulin",
        "southwest" : __DIR__"caomeide",
     ]));
  set("outdoors", "baituo");
  set("wayao1",1);
  set_temp("times" , 5);
  set("no_clean_up", 0);
  set("item_desc", ([
      "pai" : "保护树林  适量砍伐\n",
      "wood" :"一片可砍伐的树林。\n",
      ]) );
  setup();
}

void init()
{
add_action("do_cut","cut");
}

int do_cut(string arg)
{
object me=this_player();
object ob;
if (!arg||arg!="wood")
  return notify_fail("你要砍什么?\n");
if (present("chai dao",me))
  return notify_fail("没有柴刀怎么砍柴?\n");
if (query_temp("times")==0)
  return notify_fail("请适量砍伐!\n");
if(me->query("qi")<20)
  return notify_fail("你的气太虚弱,不能砍柴!\n");
ob=new(__DIR__"obj/chai");
ob->move(environment(me));
me->add("qi",-20);
add_temp("times",-1);
message_vision("$N砍了一捆柴,累得够呛。\n" , me);
return 1;
}

d\baituo\shulin.c

//room: /d/btshan/zhailou.c
inherit ROOM;

void init();
int cut(string);

void create()
{
  set("short","树林");
  set("long","这里是一片茂密的树林(wood)。旁边立着一张木牌(pai)。\n");
  set("exits",([
        "west" : __DIR__"shulin1",
//      "nothwest" :
//      "northeast" :
      "south" : __DIR__"shanlu1",
     ]));
  set("outdoors", "baituo");
  set("no_clean_up", 0);
  set_temp("wayao1",1);
  set_temp("times" , 1);
  set("item_desc", ([
      "pai" : "保护树林  适量砍伐\n",
      "wood" :"一片可砍伐的树林。\n",
      ]) );
  setup();
}

void init()
{
add_action("do_cut","cut");
}

int do_cut(string arg)
{
object me=this_player();
object ob;
if (!arg||arg!="wood")
  return notify_fail("你要砍什么?\n");
if (present("chai dao",me))
  return notify_fail("没有柴刀怎么砍柴?\n");
if (query_temp("times")==0)
  return notify_fail("请适量砍伐!\n");
if(me->query("qi")<20)
  return notify_fail("你的气太虚弱,不能砍柴!\n");
ob=new(__DIR__"obj/chai");
ob->move(environment(me));
me->add("qi",-20);
add_temp("times",-1);
message_vision("$N砍了一捆柴,累得够呛。\n" , me);
return 1;
}

d\baituo\storeroom.c

// storeroom.c

inherit ROOM;
void init();
int do_open(string);

void create()
{
        set("short", "储藏室");
        set("long", "这是一个储藏室,四周密不透风。只有关闭着的大门(door)。\n");
//      case(random(6))
//        { case 0 :
//          case 1:
//                set("objects" , ([
//                 "  " :        ,
//                   ]));
//                  break;
        set("item_desc" , ([
         "door" : "一扇木门,也许能打开。\n",
         ]) );
        set("no_clean_up", 0);
        setup();
//        replace_program(ROOM);
}

void init()
{
add_action("do_open","open");
}

int do_open(string arg)
{
  object me=this_player();
  object room;
if( !arg|| arg!="door")
  return notify_fail("你要开什么?\n");
if(!( room = find_object(__DIR__"yuanzi")) )
    room = load_object(__DIR__"yuanzi");
if(!objectp(room))  return notify_fail("ERROR:not found 'yuanzi.c' \n");
if(room->query_temp("lock")==1)
   return notify_fail("门已经从外面锁住了。\n");
message_vision("$N轻轻推开门,走了出去,随手把门掩了起来。\n",me);
message("vision", "有人走了出来,随手把门掩上了。\n",room);
me->move(room);
return 1;
}

d\baituo\tianjing.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", HIW"天井"NOR);
        set("long", @LONG
转过一道石壁,你的眼前忽然一亮。原来这里是个天然形成的天井,
大约几十来丈见方,头顶一个圆洞,光亮都是从那里照射进来的。一条暗
流从山腹流过这里,旁边长慢了各种花草,还有几颗果树。随着一声鹤鸣
你发现有一只罕见的丹顶鹤正站在溪边看着你。
LONG);
        set("resource/water", 1);
        set("objects", ([
                    __DIR__"npc/he" : 1,
                    __DIR__"obj/book4" : 1
        ]));        
        set("exits", ([
              "out" : __DIR__"midao4",              
        ]));
        set("outdoors", "白陀山");
        set("grass_count",8);
        setup();
}

void init()
{
        this_player()->set_temp("find_times", 20);
        add_action("do_find", "find");
        add_action("do_zhai", "zhai");
}

int do_find()
{
        object me, ob;
        int luck;
        me = this_player();
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        ob = new(__DIR__"obj/grass");
        luck = (int)me->query_int() * (int)me->query_con() / 5;
        luck = luck + (int)me->query("kar") / 3 - 30;
        message_vision("$N蹲下身子,在草丛中仔细地寻找着什么。\n", me);
        if ( me->query_temp("find_times") == 0 ) {
               message_vision("$N一不小心被杂草割了一个伤口,鲜血直流!\n", me);
               me->set_temp("find_times", random(20));
               me->receive_wound("qi", 65);
               return 1;
       }
       me->add_temp("find_times", -1);         
       if (random(luck) > 115
       && query("grass_count") >= 1){
               add("grass_count", -1);               
               ob->move(me);
               message_vision("$N“咦”了一声,原来发现了一株断肠草。\n", me);
       }      
       return 1;   
}

int do_zhai(string arg)
{
    object me = this_player();
    if (arg == "guo" && me->query_dex() > 25){   
     message_vision("$N顺手从果树上摘下一个果子。\n", me);
     new(__DIR__"obj/guo")->move(me);
     return 1;
     }
     return notify_fail("你要摘什么? \n");
}

d\baituo\tuyuan.c

//room: tuyuan.c
inherit ROOM;

void create()
{
        set("short","兔苑");
        set("long", @LONG
这是个好玩的兔苑,几只大白兔静静地蹲在绿草地上吃草。
往北是后门,西南方是竹园。西面传来阵阵猛兽的嚎叫,东面
有一个蛇园。
LONG );
        set("exits",([
                "north" : __DIR__"houmen",
                "east"  : __DIR__"sheyuan",
                "west"  : __DIR__"shoushe",
                "southwest" : __DIR__"zhuyuan",
        ]));
        set("outdoors", "baituo");
        set("objects",([
                __DIR__"npc/baitu" : 2,
        ]));
        setup();
}

int valid_leave(object me, string dir)
{
        mapping myfam;
        me = this_player();
        myfam = (mapping)me->query("family");
        if ((!myfam || (myfam["family_name"] != "白驼山派")) && (dir == "west"))
                return notify_fail("你不是白驼山弟子,不能进兽舍。\n");
        if ((!myfam || (myfam["family_name"] != "白驼山派")) && (dir == "east"))
                return notify_fail("你不是白驼山弟子,不能进蛇园。\n");
        else  return 1;
}

d\baituo\wuqiku.c

//wuqiku.c

inherit ROOM;

void create()
{
        set("short", "武器库");
        set("long",
             "这里是『白驼山』弟子的武器库,『白驼山』弟子可以到此\n"
         "拿取练功用的各种武器。不过别派弟子是不允许进来的。\n"
        );
        set("exits", ([
                "east" : __DIR__"yuanzi",
        ]));
        set("objects",([
             __DIR__"npc/shiwei" : 1,
             __DIR__"obj/shezhang" : 1,
             "/clone/weapon/gangzhang" : 2,
        ]));
        set("no_clean_up", 0);
        setup();
}
int valid_leave(object me, string dir)
{
        int i, j;
        object *inv;
        inv = all_inventory(me);
        i = sizeof(inv);
        for (i = 0; i < sizeof(inv); i++)
        {
                if (inv->query("id") == "gangzhang") j++;
        }
        if (j > 1)
                return notify_fail("这位" + RANK_D->query_respect(me) + "别那麽贪心,带走一条钢杖就够啦。\n");
        return ::valid_leave(me, dir);
}

d\baituo\xiaolu1.c

//xiaolu1

inherit ROOM;

void create()
{
        set("short", "小路");
        set("long",
             "这里是一条上山的小路。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "northup" : __DIR__"xiaolu2",
                "southwest" : __DIR__"dongjie",
                "northeast" : __DIR__"fende",
        ]));
        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\baituo\xiaolu2.c

//xiaolu2

inherit ROOM;

void create()
{
        set("short", "小路");
        set("long",
             "这里是一条上山的小路。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "northup" : __DIR__"xiaolu3",
                "southdown" : __DIR__"xiaolu1",
        ]));
        set("objects",([
                __DIR__"npc/man" : 1,
        ]));
//        set("no_clean_up", 0);

        setup();
        replace_program(ROOM);
}

d\baituo\xiaolu3.c

//xiaolu3

inherit ROOM;

void create()
{
        set("short", "小路");
        set("long",
             "这里是一条上山的小路。东北方有山贼出没,要格外小心。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "northeast" : __DIR__"xiaolu4",
//                 "northwest" : __DIR__"maozhu ",
                "southdown" : __DIR__"xiaolu2",
        ]));
        set("objects",([
                __DIR__"npc/shanzei1" : 1,
        ]));
//        set("no_clean_up", 0);

        setup();
        replace_program(ROOM);
}

d\baituo\xiaolu4.c

//xiaolu4

inherit ROOM;

void create()
{
        set("short", "小路");
        set("long",
             "这里是一条上山的小路向西分出一条岔道。北边是山贼的老窝。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "north" : __DIR__"dongkou",
                "southwest" : __DIR__"xiaolu3",
                "westdown" : "/d/npc/m_weapon/lianzhangshi",
        ]));
        set("objects",([
                __DIR__"npc/shanzei2" : 1,
        ]));
//        set("no_clean_up", 0);

        setup();
        replace_program(ROOM);
}

d\baituo\xijie.c

//xijie

inherit ROOM;

void create()
{
        set("short", "西街");
        set("long",
             "这里是小镇的西街。北边有个酒店,门前树立着高高的旗\n"
         "杆,一块青布幌子迎风飘扬,上面印着朱红色的大字‘酒’。\n"
        );
        set("outdoors", "baituo");
        set("exits", ([
                "west" : __DIR__"bridge",
                "east" : __DIR__"dongjie",
                "north" : __DIR__"jiudian",
        ]));
        set("objects",([
                __DIR__"npc/man" : 1,
                __DIR__"npc/snaker"  :1,
        ]));
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\baituo\ximen.c

// ximen.c
inherit ROOM;
void create()
{
  set("short","西门");
  set("long",
       "这是个山庄的西门。拱月形的竹门分外雅致,门上挂着\n"
   "一块竹牌(pai)。西门外面杂草丛生。\n"
      );
  set("exits",([
      "west" : __DIR__"cao1",
      "east" : __DIR__"changlang",
     ]));
  set("item_desc",([
  "pai" : "西门外面有毒蛇出没,慎行。\n" ,
  ]));
  set("objects",([
    __DIR__"npc/menwei" : 1,
    ]));
//  set("no_clean_up", 0);
  set("outdoors", "baituo");
  setup();
}

int valid_leave(object me, string dir)
{
       if (  (dir == "east")
           && ((int)me->query("shen")>300)
           && objectp(present("men wei", environment(me))) )
         return notify_fail
                ("门卫把手一拦:你不能进去!\n");
        if (  (dir == "west")
           && ((int)me->query("combat_exp") < 300)
           && objectp(present("men wei", environment(me))) )
         return notify_fail
                ("门卫把手一拦:你的经验太低,会被毒蛇咬死的!还是不要乱闯的好。\n");
        return ::valid_leave(me, dir);
}

d\baituo\yaofang.c

//room: /d/btshan/restroom.c
inherit ROOM;

void create()
{
  set("short","药房");
  set("long",
      "这里是间药房,靠墙放着一只大药柜。屋子里有张桌子,上边摆满了炼\n"
  "药用的瓶瓶罐罐。其中一个药瓶(bottle)里只装了清水。炼药师是位小姑娘\n"
  ",正在那里发呆,不知在想什么。北面是气派的长廊。\n"
     );

  set("exits",([
      "north" : __DIR__"changlang",
     ]));

  set("item_desc",([
      "bottle" : "药罐上贴着标签:『蛇胆膏』,乃珍贵补品,生精补气,效果奇佳。\n",
      ]));

  set("objects",([
// __DIR__"obj/wan" :1,
    __DIR__"npc/xiaoqing" : 1,
    ]));

//  set("no_clean_up", 0);
  setup();
  replace_program(ROOM);
}

d\baituo\yuanzi1.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "院子");
        set("long", @LONG
这个院子里虽只有几颗小树,却堆放着上百堆的石头。这些石头有大
有小,大如一间房屋,小如一个鸭蛋。你发现旁边矮墙下有一条深沟,下
面水花盈盈看不清有什么东西。身后有道铁门(tiemen),不过已经关上了。
一股股的腥臭味飘来,使你快要做呕了。
LONG);
        set("exits", ([
              "northwest" : __DIR__"yuanzi2",
              "jumpdown" : __DIR__"shetan",
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{
             object me = this_player();
              if(me->query_skill("poison", 1) < 50)
                      me->apply_condition("snake_poison", me->query_condition("snake_poison") + 5);
        add_action("do_fan", "fan");
        add_action("do_fan", "pa");
        add_action("do_fan", "climb");
        add_action("do_push", "push");
        add_action("do_push", "tui");
        add_action("do_push", "strike");                  
}

int do_fan(string arg)
{
        int dex;
        object me = this_player();

        dex = me->query_dex();

        if (me->is_busy() || me->is_fighting() )
                return notify_fail("你正忙着呢。\n");
               
               if (dex < 18 )
                return notify_fail("这矮墙虽矮,你却怎么也翻不过去。\n");
               if (dex > 17 ){  
                   message_vision("$N双手在矮墙上一按,一翻身便纵了过去。\n", me);
                   me->move(__DIR__"yuanzi");
                   message("vision", me->name() + "从院子里面翻了过来。\n",environment(me), ({me}) );
                   return 1;
                   }     
}

int do_push(string arg)
{
        int str;
        object me = this_player();
        str = me->query_str();

               if( !arg ) return 0;
               if (arg == "tiemen" ){        
                       if( (int)me->query_skill("hamagong", 1)){
                           message_vision("$N蹲下身子,双掌平伸推向铁门。\n", me);
                           message_vision("铁门突然打开,$N一没留神滚了进去。铁门却又合上了。\n", me);
//                           me->receive_damage("neili", 100);
                           me->receive_damage("jing", 50);
                           me->move(__DIR__"yuanzi");
                           message("vision", "只听啪的一声,一个人影从铁门出滚了过来!\n",environment(me), ({me}));
                           }
                       if (str < 21 )
                               return notify_fail("你使出了吃奶的力气,可就是推不动这铁门。\n");
                      else {         
                           message_vision("$N使出全身力气推向铁门,可铁门却纹丝不动。\n", me);
//                        me->receive_damage("neili", 300);
                           me->receive_damage("jing", 150);
                           }      
                       }
       return 1;        
}

d\baituo\yuanzi2.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "院子");
        set("long", @LONG
这里堆放着上百堆的石头。这些石头有大有小,大如一间房屋,小如
一个鸭蛋,形状大多都呈圆球形。你发现从有些石头之间的缝隙(fengxi)
中飘出一股股的腥臭味,使你快要做呕了。
LONG);
        set("exits", ([
              "southeast" : __DIR__"yuanzi1",
              "northwest" : __DIR__"yuanzi4",
              "northeast" : __DIR__"yuanzi3",
        ]));
         set("item_desc", ([                    
                "fengxi": "\n缝隙里面漆黑一片,隐隐约约有沙沙的声响。\n",
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{
              object me = this_player();
              if(me->query_skill("poison", 1) < 50)
                      me->apply_condition("snake_poison", me->query_condition("snake_poison") + 5);
        add_action("do_enter", "enter");
        add_action("do_enter", "zuan");      
}

int do_enter(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if (arg == "fengxi" ){   
               message_vision("$N刨开缝隙口的乱石子,一弯腰往缝隙里钻了进去。\n",me);
               me->move(__DIR__"fengxi");
               message("vision",me->name() + "从外面钻了进来。\n",environment(me), ({me}) );
               return 1;
        }     
}

d\baituo\yuanzi3.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "院子");
        set("long", @LONG
这里堆放着上百堆的石头。这些石头有大有小,大如一间房屋,小如
一个鸭蛋,形状大多都呈长方形。你发现从有些石头之间的缝隙(fengxi)
中飘出一股股的腥臭味,使你快要做呕了。
LONG);
        set("exits", ([
              "west" : __DIR__"yuanzi4",
              "southwest" : __DIR__"yuanzi2",
              "northwest" : __DIR__"yuanzi5",
        ]));
         set("item_desc", ([                    
                "fengxi": "\n缝隙里面漆黑一片,隐隐约约有沙沙的声响。\n",
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{
            object me = this_player();
              if(me->query_skill("poison", 1) < 50)
                      me->apply_condition("snake_poison", me->query_condition("snake_poison") + 5);
        add_action("do_enter", "enter");
        add_action("do_enter", "zuan");      
}

int do_enter(string arg)
{
        object me = this_player();

        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
        if( !arg || arg=="" ) return 0;

        if (arg == "fengxi" ){   
                message_vision("$N刨开缝隙口的乱石子,一弯腰往缝隙里钻了进去。\n",me);
                me->move(__DIR__"fengxi1");
                message("vision",me->name() + "从外面钻了进来。\n",environment(me), ({me}) );
                return 1;
        }     
}

[ 本帖最后由 leotang111 于 2007-6-18 23:53 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-18 23:53 | 显示全部楼层
d\baituo\yuanzi4.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "院子");
        set("long", @LONG
这里堆放着上百堆的石头。这些石头有大有小,大如一间房屋,小如
一个鸭蛋,形状大多都呈圆柱形。你发现从有些石头之间的缝隙(fengxi)
中飘出一股股的腥臭味,使你快要做呕了。
LONG);
        set("exits", ([
              "southeast" : __DIR__"yuanzi2",
              "northeast" : __DIR__"yuanzi5",
              "east" : __DIR__"yuanzi3",
        ]));
         set("item_desc", ([                    
                "fengxi": "\n缝隙里面漆黑一片,隐隐约约有沙沙的声响。\n",
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{   
        object me = this_player();
              if(me->query_skill("poison", 1) < 50)
                      me->apply_condition("snake_poison", me->query_condition("snake_poison") + 5);
              if(me->query_temp("baituo_stone") > 2){
                  me->delete_temp("baituo_stone");
                  me->set_temp("baituo_wait", 1);
                  call_out("do_wait", 90, me);
                }     
        add_action("do_enter", "enter");
        add_action("do_enter", "zuan");                  
}

int do_enter(string arg)
{
        object me = this_player();

        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
        if( !arg || arg=="" ) return 0;

        if (arg == "fengxi" ){   
                message_vision("$N刨开缝隙口的乱石子,一弯腰往缝隙里钻了进去。\n",me);
                me->move(__DIR__"fengxi2");
                message("vision",me->name() + "从外面钻了进来。\n",environment(me), ({me}) );
                return 1;
        }     
}

void do_wait(object me)
{
        object room;
        if(!me || environment(me) != this_object()
        || !living(me) || !me->query_temp("baituo_wait"))
                return;
        message("vision","\n石柱忽然发出轧轧的声音,向一侧缓缓移开,向下露出一个黑洞洞的入口。\n\n", this_object() );
        set("exits/down", __DIR__"midao");
        if( room = load_object(__DIR__"midao") ) {
                room->set("exits/up", __FILE__);
                message("vision","\n头顶上的石柱忽然发出轧轧的声音,露出一个光亮亮的洞口。\n\n",room );
                }
        remove_call_out("close_door");
        call_out("close_door", 5);
}


void close_door()
{
        object room;

        if( !query("exits/down") ) return;
        message("vision","\n石柱发出轧轧的声音,缓缓地移回原处,将向下的洞口盖住了。\n\n", this_object() );
        if( room = load_object(__DIR__"midao") ) {
                room->delete("exits/up");
                message("vision", "\n头顶上发出轧轧的声音,石柱又缓缓地收了回去,阶梯消失了。\n\n", room );
                }
        delete("exits/down");
}

int valid_leave(object me, string dir)
{        
       me->delete_temp("baituo_wait");
      
        return ::valid_leave(me, dir);
}

d\baituo\yuanzi5.c

#include <ansi.h>
inherit ROOM;
void create()
{
        set("short", "院子");
        set("long", @LONG
这里堆放着上百堆的石头。这些石头有大有小,大如一间房屋,小如
一个鸭蛋,形状各异。你发现几个巨石(stone)围成一圈,不知里面有些
什么古怪。
LONG);
        set("exits", ([
              "southwest" : __DIR__"yuanzi4",
              "southeast" : __DIR__"yuanzi3",
        ]));

         set("item_desc", ([                    
                "stone": "\n这块石头上有些凹洞,大概可以由此爬上去。\n",
        ]));
        set("outdoors", "白陀山");
        setup();
}

void init()
{            
        object me = this_player();
              if(me->query_skill("poison", 1) < 50)
                      me->apply_condition("snake_poison", me->query_condition("snake_poison") + 5);
        add_action("do_climb", "climb");
        add_action("do_climb", "pa");
        add_action("do_yun", "yun");      
}

int do_climb(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if (arg == "stone" ){   
                   message_vision("$N手脚并用,顺着凹洞爬了上去。\n", me);            
                   message("vision", me->name() + "翻身一纵,已经跳进了石堆。\n",environment(me), ({me}) );
                       me->move(__DIR__"shidui");
                       message("vision",me->name() + "从外面跳了进来。\n",environment(me), ({me}) );
                       return 1;
        }     
        return 0;
}

int do_yun(string arg)
{
        object me = this_player();
        if( !arg || arg=="" ) return 0;
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if (arg == "hamagong" ){
                   if(!me->query_temp("baituo_book"))
                               return notify_fail("这地方练什么功?\n");
                   if(!me->query_skill("hamagong", 1))  
                               return 0;
                   message_vision(HIC"\n$N蹲低身子潜运功力,突然张嘴:呱呱!叫了两声。\n\n"NOR, me);   
                   tell_object(me, HIB "你忽然感觉到有两声细微的蛤蟆叫声从巨石堆里传来。\n" NOR );         
                   me->set_temp("baituo_yun", 1);               
                   return 1;
        }
        return 0;   
}

d\baituo\yuanzi.c

// yuanzi.c

inherit ROOM;

void init();
string look_gate();
int do_open(string);
int do_lock(string);

void create()
{
        set("short", "院子");
        set("long",
             "这是一个大院子,打扫得一尘不染。四周装点着青青翠竹,错落\n"
         "有致。西边是武器库。东边有一间储藏室,房门(door)关闭着。北边\n"
         "是『白驼山庄』的大厅。南边就是大门了。\n"
         "这里还有一个的花园,中间一堆假山,一条小溪。旁边种满了各类花草,\n"
         "芳香宜人。北面有一道锁着的铁门(tiemen),可以通往另一个院子。\n"
        );
        set("exits", ([
                "northup" : __DIR__"dating",
                "west" : __DIR__"wuqiku",
                "south" : __DIR__"damen",
        ]));

        set("outdoors", "baituo");
        set("no_clean_up", 0);

        set("item_desc", ([
            "door" : (: look_gate :),
                "tiemen": "\n这道铁门极其沉重,看来没有几百斤臂力推它不动。真是奇怪为
何会有如此铁门在此,就连一般人都可以翻越(climb)旁边的矮墙。\n",
        ]));

        set_temp("lock",1);

        setup();
//        replace_program(ROOM);
}

void init()
{
        add_action("do_open", "open");
        add_action("do_lock", "lock");
        add_action("do_fan", "fan");
        add_action("do_fan", "pa");
        add_action("do_fan", "climb");
        add_action("do_push", "push");
        add_action("do_push", "tui");
        add_action("do_push", "strike");
        add_action("do_wen", "wen");
        add_action("do_wen", "smell");                  

}

string look_gate()
{
        if (query_temp("lock") == 0)
                return "门上的铁锁被打开了。\n";
        return "这扇门被铁锁牢牢锁住。\n";
}

int do_open(string arg)
{
        object me=this_player(), room;

        if(!arg || arg!="door")
                return notify_fail("你要开什么?\n");

        if( query_temp("lock") == 1 && !present("key", me) )
                return notify_fail("钥匙都没有,怎么开门?\n");

        if(!( room = find_object(__DIR__"storeroom")) )
                room = load_object(__DIR__"storeroom");

        if(!objectp(room))
                return notify_fail("ERROR:not found 'storeroom.c' \n");

        if(query_temp("lock") == 1 && present("key", me))
        {
                set_temp("lock", 0);
                message_vision("$N把钥匙插进锁孔,只听见‘卡嗒’一声,锁开了。\n", me);
                message("vision", "外面传来一阵开锁的声音,只听见‘卡嗒’一声,锁开了。
  \n",room);
}
   message_vision("$N轻轻推开门,走了进去,随手把门掩了起来。\n",me);
   message("vision", "有人走了进来,随手把门掩上了。\n",room);
   me->move(room);
   return 1;
}

int do_lock(string arg)
{
        object me=this_player();
        object room;

        if(!arg ||  arg!="door")
                return notify_fail("你要锁什么?\n");
        if( !present("key",me))
                return notify_fail("钥匙都没有,怎么锁门?\n");
        if(!( room = find_object(__DIR__"storeroom")) )
                room = load_object(__DIR__"storeroom");
        if(!objectp(room))
                return notify_fail("ERROR:not found 'storeroom.c' \n");

        if(query_temp("lock") == 1)
                return notify_fail("门已经锁好了。\n");
        set_temp("lock",1);
        message_vision("$N把钥匙插进锁孔,只听见‘卡嗒’一声,锁被锁上。\n",me);
        message("vision", "外面传来一阵锁铁锁的声音,只听见‘卡嗒’一声,锁被锁上了。
  \n",room);

        return 1;
}

int valid_leave(object me, string dir)
{
        mapping myfam;
        myfam = (mapping)me->query("family");
        me->delete_temp("baituo_climb");
        if ((!myfam || myfam["family_name"] != "白驼山派") && dir == "west")
           return notify_fail("此处乃本派禁地,请止步。\n");

        return ::valid_leave(me, dir);
}
int do_fan(string arg)
{
        int dex, i = 0;
        object me = this_player();   
            
        dex = me->query_dex();     
        
        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
               if( (int)me->query("hamagong") )
                return notify_fail("你正想翻过墙去,突然有了一股想推开铁门的冲动。\n");
               if (dex < 18 )
                return notify_fail("这矮墙虽矮,你却怎么也翻不过去。\n");
              
               if (dex > 17 && dex < 25){  
                   message_vision("$N双手在矮墙上一按,一翻身便纵了过去。\n", me);
                   i = 1;
                }
        
               if (dex > 24 && dex < 36){  
                   message_vision("$N运功提气轻轻一纵,便跃了过去。\n", me);
                   i = 2;
                }
        
               if (dex > 35){  
                   message_vision("$N脚尖轻轻一点,高高跃起,飘了进去。\n", me);
                   i = 3;
        }   
        me->set_temp("baituo_climb", i);
        me->move(__DIR__"shetan");
        me->start_busy(2);
        return 1;               
}

int do_push(string arg)
{
        int str;
        object me = this_player();
        
        str = me->query_str();

        if( (int)me->is_busy() || me->is_fighting())
                return notify_fail("你正忙着呢。\n");
               
        if( !arg || arg=="" ) return 0;
        
               if (arg == "tiemen" ){
                if( (int)me->query_skill("hamagong", 1)){
                           message_vision("$N蹲下身子,咕咕叫了两声,双掌平伸推向铁门。\n", me);
                           message_vision("铁门突然打开,$N一没留神滚了进去。铁门却又合上了。\n", me);
//                           me->receive_damage("neili", 100);
                           me->receive_damage("jing", 50);
                           me->move(__DIR__"yuanzi1");
                           message("vision", "只听啪的一声,一个人影从铁门出滚了过来!\n",environment(me), ({me}));
                           return 1;
                           }
                       if (str < 21 )
                               return notify_fail("你使出了吃奶的力气,可就是推不动这铁门。\n");
                              
                       if (str > 20 && str < 38){  
                               if(str < 30)
                                   message_vision("$N使出全身力气推向铁门,可铁门只轻轻动了一下。\n", me);
                           else message_vision("$N运功提气猛地推向铁门,铁门发出了轰轰的震动声,看来马上就可以推开了。可这时$N的力气刚好使完,只得作罢。\n", me);
//                           me->receive_damage("neili", 400);
                           me->receive_damage("jing", 200);
                           return 1;
                           }

                       if (str > 37){  
                           message_vision("$N内劲运转,双掌平伸推向铁门。\n", me);
                           message_vision("铁门突然打开,$N一没留神滚了进去。铁门却又合上了。\n", me);
//                           me->receive_damage("neili", 400);
                           me->receive_damage("jing", 200);
                           me->move(__DIR__"yuanzi1");
                           message("vision", "只听啪的一声,一个人影从铁门出滚了过来!\n",environment(me), ({me}));
                           return 1;
                           }
                       }
               else return 0;        
}

int do_wen(string arg)
{
        int con = this_player()->query_con();

              if ( con > 29 && con < 37)
                 write("你轻轻吸了吸气,突然感觉到花香中隐隐带有股腥味。但闻不出是从哪儿来的。\n");      
              if ( con > 36 )
                 write("你轻轻吸了吸气,突然感觉到花香中隐隐带有股腥味。好象是从铁门那边的院子飘来的。\n");      
              if ( con < 30 )
                 write("你轻轻吸了吸气,全是芬芳的花香,你都快醉了。\n");                     
               return 1;        
}

d\baituo\zhailuo.c

//room: /d/btshan/zhailou.c
inherit ROOM;

void create()
{
  set("short","小宅落");
  set("long",
      "这里是一个树影婆娑的静谧的小宅落,当中放着一口乌黑发亮的大\n"
  "水缸。白驼山上常年积雪,这里的主人架起一条长长的竹渠,把清凉的\n"
  "雪水引到家中的水缸里来。\n"
     );

  set("exits",([
      "west" : __DIR__"liangong",
     ]));

  set("no_clean_up", 0);
  set("outdoors", "baituo");
  set("resource/water", 1);
  setup();

  replace_program(ROOM);
}

d\baituo\zhulin.c

//zhulin.c
inherit ROOM;
void create()
{
  set("short","竹林");
  set("long",
  "这里是青竹林,常有蛇出没。南边是蒿草丛。北边有一个大岩洞。\n"
      );
  set("exits",([
      "northup" : __DIR__"cave",
      "south" : __DIR__"cao2",
     ]));
  set("objects",([
      __DIR__"npc/qingshe" : random(2),
      __DIR__"npc/snake" : random(3),
      ]));
//  set("no_clean_up", 0);
  setup();
  replace_program(ROOM);
}

d\baituo\zhuyuan.c

//zhuyuan.c
inherit ROOM;

void create()
{
  set("short","竹园");
  set("long",
      "这里是一个幽静的竹园,高高低低的翠竹把这里装点得\n"
  "别有情致。西北方是后院,东北方有个兔苑。南边是花园。\n"
     );
  set("exits",([
      "northeast" : __DIR__"tuyuan",
      "northwest" : __DIR__"houyuan",
      "south" : __DIR__"huayuan",
     ]));
  set("no_clean_up", 0);
  set("outdoors", "baituo");
  setup();
  replace_program(ROOM);
}

[ 本帖最后由 leotang111 于 2007-6-19 00:20 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
发表于 2007-6-19 00:22 | 显示全部楼层
什么游戏来的? 怎么这么多指令? 是文字游戏吗?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 00:23 | 显示全部楼层
冰火岛区域场景设置:

d\binghuodao\anbian.c

#include <ansi.h>

inherit ROOM;

void rtaohua( object ob ) ;

void create()
{
    set("short", "冰火岛海滩");
    set("long", @LONG
冰火岛的海滩竟是一个极大的岛屿。岛屿西部都是尖石嶙峋的山峰
,形怪样,莫可名状。岛东却是一望不到尽头的原野。该处虽然地近北
极,但因火山万年不灭,岛上气候便和长白山、黑龙江一带相似,高山
处玄冰白雪,草地上却极目青绿,苍松翠柏,高大异常,更有诸般奇花
异树,皆为中土所无。
LONG );
    set("outdoors", "binghuodao");
set("exits", ([
"north" : __DIR__"road1",
]));
    setup();
}

d\binghuodao\aroad1.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                  "south" : __DIR__"road6",
                  "northwest" : __DIR__"aroad2",       
                   // "east" : __DIR__"road4",
                // "west"  : __DIR__"road8",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\aroad2.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.沿着路走,地势渐高.
气温也渐渐变热起来.
LONG );
set("exits", ([
                  "southeast" : __DIR__"road10",
                  "northwest" : __DIR__"aroad3",       
                   // "east" : __DIR__"road4",
                // "west"  : __DIR__"road8",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\aroad3.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.沿着路走,地势渐高.
逐渐到了小山坡.坡上灌木丛生,偶有小动物,窜来窜去.
LONG );
set("exits", ([
                  "south" : __DIR__"aroad2",
                  "north" : __DIR__"aroad4",       
                   "east" : __DIR__"aroad5",
"west"  : __DIR__"aroad6",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\aroad4.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "山坡");
        set("long", @LONG
小山坡上灌木丛生,偶有小动物,窜来窜去.
在向北山势渐陡,树木丛生.
LONG );
set("exits", ([
                  "south" : __DIR__"aroad3",
                 "northup" : __DIR__"aroad9",        
                // "east" : __DIR__"aroad",
                // "west"  : __DIR__"road6",
        ]));
set("objects", ([
                __DIR__"npc/deer" : 2,
                        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\aroad5.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void init();
int che(string);
void create()
{
        set("short", "山坡");
        set("long", @LONG
小山坡上灌木丛生(teng),偶有小动物,窜来窜去.
不知名的小花,缀生其中.
LONG );
set("exits", ([
                //  "south" : __DIR__"aroad3",
                 // "north" : __DIR__"aroad4",        
                // "east" : __DIR__"aroad",
   "west"  : __DIR__"aroad3",
        ]));
set("objects", ([
                __DIR__"npc/little_bee" : 2,
                        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
}
void init()
{
add_action("do_che","che");
}
int do_che(string arg)
{
object ob,me=this_player();
if(!arg||!arg="teng")
{
write("扯什么!\n");
return 1;
}
if (present("chang teng",me))
{
message_vision("你身上不是有了吗?\n",me);
return 1;
}

write("你扯下一段藤,编程长滕.\n");
ob=new(__DIR__"obj/teng");
ob->move(me);
return 1;
}

d\binghuodao\aroad6.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "山坡");
        set("long", @LONG
小山坡上灌木丛生,偶有小动物,窜来窜去.
不知名的小花,缀生其中.
LONG );
set("exits", ([
                //  "south" : __DIR__"aroad3",
                 // "north" : __DIR__"aroad4",       
                  "east" : __DIR__"aroad3",
                //"west"  : __DIR__"road3",
        ]));
set("objects", ([
                __DIR__"npc/baitu" : 3,
                        ]));
        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\aroad9.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void init();
int kan(string);
void create()
{
        set("short", "山坡");
        set("long", @LONG
北去山势益发陡,树木(wood)丛生.
去路,被阻.
LONG );
set("exits", ([
                  "southdown" : __DIR__"aroad4",
                 // "north" : __DIR__"aroad4",        
                // "east" : __DIR__"aroad",
                // "west"  : __DIR__"road6",
        ]));
set("objects", ([
                __DIR__"npc/deer" : 2,
                        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
set("item_desc", ([
      "pai" : "保护树林  适量砍伐\n",
      "wood" :"一片可砍伐的树林。\n",
      ]) );
        setup();
//        replace_program(ROOM);
}
void init()
{
add_action("do_kan","kan");
}

int do_kan(string arg)
{
object me=this_player();
object ob;
if (!arg||arg!="wood")
{
tell_object(me,"你要砍什么?\n");
return 1;}


if (!present("cai dao",me))
{
message_vision("没有刀怎么砍?\n",me);
return 1;
}

if (present("mu chai",me))
{
message_vision("你身上不是有了吗?\n",me);
return 1;
}

// if (query_temp("times")==0)
// {
// message_vision("请适量砍伐!\n",me);
//return 1;}
if(me->query("qi")<20)
  {
message_vision("你的气太虚弱,不能砍!\n",me);
return 1;}

ob=new(__DIR__"obj/chai");
ob->move(me);
me->add("qi",-20);
add_temp("times",-1);
message_vision("$N砍了一捆,累得够呛。\n" , me);
return 1;
}

d\binghuodao\bingshan.c

#include <ansi.h>
inherit ROOM;

void create()
{
        set("short", "冰山");
        set("long",@LONG
你正处在一座冰山之上。你极目远望,只见海天一线,周围一座坐冰山,
耳边只有海浪的拍打声,不知自己会飘向何处.
LONG);   
        set("no_clean_up", 0);
        setup();
     
}
int init ()
{
object ob=this_player();
ob->add("qi",-40);
ob->add("jing",-40);
}

d\binghuodao\chd-u

#!/bin/sh
   if [ $# = 0 ] ; then
        THEDIR = .
  else
        THEDIR = $1
  fi
  for file in `find $THEDIR` ; do
  cat $file |tr -d '\015' >file.tmp
  mv file.tmp $file
  done

d\binghuodao\dahai.c

#include <ansi.h>
inherit ROOM;

void create()
{
        set("short", "白令海");
        set("long",@LONG
你正处在茫茫大海之中。你极目远望,只见海天一线,周围连个黑点都没有。
耳边只有海浪的拍打声。
LONG);   
        set("no_clean_up", 0);
        setup();
      
}
int init ()
{
     object ob=this_player();
     ob->add("qi",-10);
     ob->add("jing",-10);
}

d\binghuodao\dong1.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "迷洞");
        set("long", @LONG
又湿又潮的一个石洞,还散发着野兽的腥臭.
LONG );
set("exits", ([
                "north" : __DIR__"dong1",
                 "east" : __DIR__"dongcross",
                "south" : __DIR__"dong2",
                "west"  : __DIR__"dong1",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\dong2.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "迷洞");
        set("long", @LONG
又湿又潮的一个石洞,还散发着野兽的腥臭.
LONG );
set("exits", ([
                "north" : __DIR__"dong1",
                 "east" : __DIR__"dong2",
                "south" : __DIR__"dong2",
                "west"  : __DIR__"dong3",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\dong3.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "迷洞");
        set("long", @LONG
又湿又潮的一个石洞,还散发着野兽的腥臭.
LONG );
set("exits", ([
                "north" : __DIR__"dong3",
                 "east" : __DIR__"dong2",
"south" : __DIR__"road7",
                "west"  : __DIR__"dong3",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\dongcross.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "迷洞");
        set("long", @LONG
又湿又潮的一个石洞,还散发着野兽的腥臭.
LONG );
set("exits", ([
                "north" : __DIR__"mdongkou",
                 "east" : __DIR__"dongcross",
                "south" : __DIR__"dongcross",
                "west"  : __DIR__"dong1",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\home.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "张家住的山洞");
        set("long", @LONG
这儿是张无忌一家住的山洞,旁边住着谢逊.

LONG );
set("exits", ([
                "north" : __DIR__"whome",
//                "east" : __DIR__"road5",
              "south" : __DIR__"mroad3",
               "west"  : __DIR__"zhome",
        ]));
set("objects", ([
                __DIR__"npc/zhangcui" : 1,
             __DIR__"npc/susu" : 1,
             //  __DIR__"obj/" : 1,
        ]));

//        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\hroad1.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                 "northwest" : __DIR__"hroad2",        
               //   "east" : __DIR__"road8",
              "southeast"  : __DIR__"road10",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\hroad2.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                 "north" : __DIR__"hroad3",        
          //        "east" : __DIR__"road8",
                 "southeast"  : __DIR__"hroad1",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\hroad3.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                 "north" : __DIR__"hroad4",        
          //        "east" : __DIR__"road8",
                 "south"  : __DIR__"hroad2",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\hroad4

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                 "north" : __DIR__"hroad4",        
          //        "east" : __DIR__"road8",
            //     "south"  : __DIR__"road12",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\hroad4.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder
inherit ROOM;
void init();
int throw(string);
void create()
{
        set("short", "火山口");
        set("long", @LONG
前方已经没路了,远处是火山口.
LONG );
set("exits", ([
//                 "north" : __DIR__"hroad4",        
          //        "east" : __DIR__"road8",
                 "south"  : __DIR__"hroad3",
        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
}
void init()
{
   add_action("do_reng","reng");
}
int do_reng(string arg)
{
  object me;
me = this_player();
if(!arg||arg!="teng")
{
write("扔什么!\n");
return 1;
}
if(!present("chang teng",me))
{
write("你哪来的长藤!\n");
return 1;
}
if(random(5)<2)
{
write("你奋力一扔,将长藤向火山口方向,
由于火山的热力,长藤被烤干了.\n");
me->set_temp("kao_teng",1);
return 1;
}
write("你仍不了那么远,在来一遍!\n");
return 1;
}

d\binghuodao\mdongkou.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "迷洞口");
        set("long", @LONG
又湿又潮的一个石洞,还散发着野兽的腥臭.

LONG );
set("exits", ([
               "enter" : __DIR__"midong",
                "south"   : __DIR__"dongcross",
        ]));
set("objects", ([
                __DIR__"npc/wolf" : 1,
                        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
//      replace_program(ROOM);
}
int valid_leave(object me, string dir)
{
       object ob;
        if ( dir == "south")
{
    ob=find_living("wolf");
   if(!ob)
    {
        return ::valid_leave(me, dir);
   }
    else
     {
       if( environment(me)== environment(ob) )
          { ob->kill_ob(me);
          return notify_fail("雪狼挡者路口!\n");}

       }
     }
        return ::valid_leave(me, dir);
     
}

d\binghuodao\midong.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "迷洞");
        set("long", @LONG
又湿又潮的一个石洞,还散发着野兽的腥臭.
LONG );
set("exits", ([
                "out"   : __DIR__"mdongkou",
        ]));
set("objects", ([
                __DIR__"npc/wuji" : 1,
               __DIR__"obj/fire" : 1,
               "d/lingshedao/obj/mublade" : 1,
        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
//      replace_program(ROOM);
}

d\binghuodao\mroad1.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                "north" : __DIR__"mroad2",
//                "east" : __DIR__"road5",
              "south" : __DIR__"road1",
   //             "west"  : __DIR__"road1",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\mroad2.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
"north" : __DIR__"mroad3",
//                "east" : __DIR__"road5",
"south" : __DIR__"mroad1",
   //             "west"  : __DIR__"road1",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\mroad3.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "空地");
        set("long", @LONG
一块开辟出的空地,明显是人工的.
LONG );
set("exits", ([
"south" : __DIR__"mroad1",               
"north"  : __DIR__"home",
"northeast"  : __DIR__"xhome",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\mufa.c

// cloth.c
//
// This is the basic equip for players just login.

//#include <armor.h>

inherit ROOM;
// CLOTH;

void create()
{
        set("short",
"木筏");
//  set("short", "小路");
        set("long", @LONG
一条木筏.
LONG );
/*        set_weight(3000000);
        if( clonep() )
                set_default_object(__FILE__);
        else {
                set("unit", "件");
                set("material", "skin");
               set("value",30);
               set("armor_prop/armor", 3);
        } */
        setup();
}

d\binghuodao\road1.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                "north" : __DIR__"mroad1",
                 "east" : __DIR__"road3",
                "south" : __DIR__"anbian",
                "west"  : __DIR__"road2",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road2.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                 "west" : __DIR__"road4",        
             "east" : __DIR__"road1",           
//     "south"  : __DIR__"road12",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road3.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
//                "north" : __DIR__"mroad1",
                 "east" : __DIR__"road5",
  //              "south" : __DIR__"anbian",
                "west"  : __DIR__"road1",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road4.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
               
                 "east" : __DIR__"road2",
                 "west"  : __DIR__"road6",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road5.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
         //       "north" : __DIR__"mroad1",
                 "east" : __DIR__"road7",
           //     "south" : __DIR__"anbian",
                "west"  : __DIR__"road3",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road6.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                  "north" : __DIR__"aroad1",       
                    "east" : __DIR__"road4",
                 "west"  : __DIR__"road8",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road7.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                "north" : __DIR__"dong3",
                 "east" : __DIR__"road9",
                "west"  : __DIR__"road5",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road8.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                //  "north" : __DIR__"aroad1",       
                    "east" : __DIR__"road6",
                 "west"  : __DIR__"road10",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road9.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
//               "north" : __DIR__"broad1",
                "south" : __DIR__"road11",
                "west"  : __DIR__"road7",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road10.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                 "northwest" : __DIR__"hroad1",       
                    "east" : __DIR__"road8",
                 "south"  : __DIR__"road12",
        ]));

        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road11.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "小路");
        set("long", @LONG
一条草丛中,踏出的小路.
LONG );
set("exits", ([
                "north" : __DIR__"road9",
            //     "east" : __DIR__"road3",
               // "south" : __DIR__"anbian",
             //   "west"  : __DIR__"road2",
        ]));
set("objects",([
         __DIR__"npc/xiexun" : 1,
]) );

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\road12.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "草地");
        set("long", @LONG
这里是一片青草地,几只可爱的小白兔,在吃草.
LONG );
set("exits", ([
                 "north" : __DIR__"road10",       
                  //  "east" : __DIR__"road8",
                // "south"  : __DIR__"road12",
        ]));
    set("objects", ([
                __DIR__"npc/baitu" : 3,
                        ]));
        set("outdoors", "binghuodao");
//        set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\whome.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "山洞");
        set("long", @LONG
这儿是张无忌一家住的山洞,旁边住着谢逊.
张翠山夫妇的卧室,有些简单的铺设.
LONG );
set("exits", ([
//                "north" : __DIR__"whome",
//                "east" : __DIR__"road5",
              "south" : __DIR__"home",
  //             "west"  : __DIR__"zhome",
        ]));

        set("objects", ([
                __DIR__"npc/obj/chaidao" : 1,
                        ]));
        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\xhome.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "谢逊居");
        set("long", @LONG
LONG );
set("exits", ([
//                "east" : __DIR__"road5",
"southwest" : __DIR__"mroad3",
        ]));

//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

d\binghuodao\zhome.c

// Room: /guiyun/duchuan.c
// Date: Nov.18 1998 by Winder

inherit ROOM;
#include <ansi.h>
void create()
{
        set("short", "山洞");
        set("long", @LONG
这儿是张无忌一家住的山洞,旁边住着谢逊.
无忌住在这.地上铺着草垫,草垫上是兽皮.
LONG );
set("exits", ([
          //      "north" : __DIR__"whome",
                 "east" : __DIR__"home",
//             "south" : __DIR__"mroad3",
//               "west"  : __DIR__"zhome",
        ]));

        set("outdoors", "binghuodao");
//      set("no_clean_up", 0);
        setup();
        replace_program(ROOM);
}

[ 本帖最后由 leotang111 于 2007-6-19 01:53 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 01:55 | 显示全部楼层
比武区域场景设置:

d\biwu\a1.c

inherit ROOM;
void create()
{
        set("short", "混元塔");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "southdown":"/d/city/guangchang",
                "up":__DIR__"a2",
        ]));
                set("objects", ([
                        __DIR__"jiumozhi": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
if(userp(this_player()) && (!this_player()->query_temp("for_ok")))
{call_out("away",900);
message_vision("你只有一刻钟的时间来击败所有邪派高手。无论成功与否,一刻钟后你将自动被送回广场中央。\n",this_player());
this_player()->set_temp("for_ok",1);
}
}

int away()
{
object me;
me= this_player();
if (!me) return notify_fail("你已经不在了!\n");
message_vision("已过了一刻钟的时间,$N将被送到广场中央。\n",me);
me->move("/d/city/guangchang");
message_vision("$N的身形突然出现在广场中央。\n",me);
this_player()->set_temp("for_ok",0);
return 1;
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("jiumo zhi", this_object()))
return notify_fail("你想硬闯?!\n");
if (this_player()->query("shen") > 0&& dir=="up" )
return notify_fail("这里不欢迎正派人事!\n");
return 1;
}

d\biwu\a2.c

inherit ROOM;
void create()
{
        set("short", "混元塔第二层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a1",
                "up":__DIR__"a3",
        ]));
                set("objects", ([
                        __DIR__"fawang": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("jinlun fawang", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a3.c

inherit ROOM;
void create()
{
        set("short", "混元塔第三层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a2",
                "up":__DIR__"a4",
        ]));
                set("objects", ([
                        __DIR__"xuedao": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("xuedao laozu", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a4.c

inherit ROOM;
void create()
{
        set("short", "混元塔第四层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a3",
                "up":__DIR__"a5",
        ]));
                set("objects", ([
                        __DIR__"ding": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("ding chunqiu", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a5.c

inherit ROOM;
void create()
{
        set("short", "混元塔第五层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a4",
                "up":__DIR__"a6",
        ]));
                set("objects", ([
                        __DIR__"huang": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("huang yaoshi", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a6.c

inherit ROOM;
void create()
{
        set("short", "混元塔第六层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a5",
                "up":__DIR__"a7",
        ]));
                set("objects", ([
                        __DIR__"hong": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("hong antong", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a7.c

inherit ROOM;
void create()
{
        set("short", "混元塔第七层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a6",
                "up":__DIR__"a8",
        ]));
                set("objects", ([
                        __DIR__"dongfang": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("dongfang bubai", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a8.c

inherit ROOM;
void create()
{
        set("short", "混元塔第八层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a7",
                "up":__DIR__"a9",
        ]));
                set("objects", ([
                        __DIR__"renwoxing": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("ren woxing", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a9.c

inherit ROOM;
void create()
{
        set("short", "混元塔第九层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a8",
                "up":__DIR__"a10",
        ]));
                set("objects", ([
                        __DIR__"tonglao": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("tong lao", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\a10.c

inherit ROOM;
void create()
{
        set("short", "混元塔第十层");
        set("long", @LONG
这是一个纠集了江湖上十大邪派高手的塔,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"a9",
                "up":__DIR__"a11",
        ]));
                set("objects", ([
                        __DIR__"ouyangfeng": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object *inv;
        object ob;
int sizeinv;
if( userp(me) &&
dir=="up" && ob=present("ouyang feng", this_object()))
return notify_fail(
"你想硬闯?!\n");
                inv=all_inventory(me);
                sizeinv=sizeof(inv);
       
                while (sizeinv--)
                {
                               if (inv[sizeinv]->is_character())  
                                     return notify_fail("你想进去拐卖人口?\n");
                      
                }
return 1;
}

d\biwu\a11.c

inherit ROOM;
void create()
{
        set("short", "混元塔顶");
        set("long", @LONG
这里是塔的最高层,中央放着根魔杖,暗暗地放出光芒。如果你是乘马车来的话,
你可以向盟主(yaoche)。
    这里没有出口,你只能等待到一刻钟后被自动送回广场。
LONG );
       set("no_sleep_room",1);
     set("no_clean_up", 0);
        set("objects", ([
                        "/d/biwu/champion1": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_yao","yaoche");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");}

int do_dazuo()
{
   object me;
   me = this_player();
tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int do_yao()
{
        object *inv,kicker;
        int sizeinv,n,tt;

object me;

me = this_player();
if(!me->query("marks/mengzhu"))
                return notify_fail("你没有乘马车的权限。\n");
   if (!me->query_temp("che"))
                return notify_fail("你刚才没有乘车来这里。\n");
                inv=all_inventory(me);
                sizeinv=sizeof(inv);
       
                while (sizeinv--)
                {
                               if (inv[sizeinv]->is_character())  
                                     return notify_fail("你想进去拐卖人口?\n");
                      
                }
        me->set_temp("che",0);
message_vision("$N走出混元塔,乘上了刚才来时的那辆马车匆匆忙忙地离去了。\n",me);
me->move("/d/city/majiu");
message_vision("$N又回到了原先来时的那间马厩。\n",me);

return 1;
}/*
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="down")
this_player()->set_temp("for_ok",0);
return 1;
}*/

d\biwu\b1.c

inherit ROOM;
void create()
{
        set("short", "风雨楼");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "northdown" : "/d/city/guangchang",
                "up":__DIR__"b2",
        ]));
                set("objects", ([
                        __DIR__"miejue": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
if(userp(this_player()) && (!this_player()->query_temp("for_okok")))
{call_out("awayaway",900);
message_vision("你只有一刻钟的时间来击败所有正派高手。无论成功与否,一刻钟后你将自动被送回广场中央。\n",this_player());
this_player()->set_temp("for_okok",1);
}
}

int awayaway()
{
object me;
if (!me) return notify_fail("你已经不在了!\n");
me= this_player();
message_vision("已过了一刻钟的时间,$N将被送到广场中央。\n",me);
me->move("/d/city/guangchang");
message_vision("$N的身形突然出现在广场中央。\n",me);
this_player()->set_temp("for_okok",0);
return 1;
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("miejue shitai", this_object()))
return notify_fail(
"你想硬闯?!\n");
if (me->query("shen")<0&&dir=="up")
return notify_fail("这里不欢迎邪派人事!\n");

return 1;
}

d\biwu\b2.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第二层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b1",
                "up":__DIR__"b3",
        ]));
                set("objects", ([
                        __DIR__"chen": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("chen jinnan", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b3.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第三层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b2",
                "up":__DIR__"b4",
        ]));
                set("objects", ([
                        __DIR__"duanzc": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("duan zhengchun", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b4.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第四层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b3",
                "up":__DIR__"b5",
        ]));
                set("objects", ([
                        __DIR__"du-e": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("du e", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b5.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第五层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b4",
                "up":__DIR__"b6",
        ]));
                set("objects", ([
                        __DIR__"feng-buping": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("feng buping", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b6.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第六层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b5",
                "up":__DIR__"b7",
        ]));
                set("objects", ([
                        __DIR__"yue-buqun": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("yue buqun", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b7.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第七层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b6",
                "up":__DIR__"b8",
        ]));
                set("objects", ([
                        __DIR__"feng": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("feng qingyang", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b8.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第八层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b7",
                "up":__DIR__"b9",
        ]));
                set("objects", ([
                        __DIR__"zhangwuji": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("zhang wuji", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b9.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第九层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b8",
                "up":__DIR__"b10",
        ]));
                set("objects", ([
                        __DIR__"da-mo": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="up" && ob=present("da mo", this_object()))
return notify_fail(
"你想硬闯?!\n");
return 1;
}

d\biwu\b10.c

inherit ROOM;
void create()
{
        set("short", "风雨楼第十层");
        set("long", @LONG
这是一个纠集了江湖上十大正派高手的楼,共有十层之高。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
        set("exits", ([
                "down" : __DIR__"b9",
                "up":__DIR__"b11",
        ]));
                set("objects", ([
                        __DIR__"zhang": 1,
                ]));
setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","fight");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
}

int do_dazuo()
{
   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int valid_leave(object me, string dir)
{
        object *inv;
        object ob;
int sizeinv;

if( userp(me) &&
dir=="up" && ob=present("zhang sanfeng", this_object()))
return notify_fail(
"你想硬闯?!\n");
                inv=all_inventory(me);
                sizeinv=sizeof(inv);
       
                while (sizeinv--)
                {
                               if (inv[sizeinv]->is_character())  
                                     return notify_fail("你想进去拐卖人口?\n");
                      
                }
return 1;
}

d\biwu\b11.c

inherit ROOM;
void create()
{
        set("short", "风雨楼顶");
        set("long", @LONG
这里是塔的最高层,中央放着根神杖,闪闪地放出光芒。如果你是乘车来的话,
你可以向盟主要(yaoche)。
    这里没有出口,你只能等待到一刻钟后被自动送回广场。
LONG );
       set("no_sleep_room",1);
       set("no_clean_up", 0);
                        set("objects", ([
                        "/d/biwu/champion": 1,
                ]));


setup();
}

void init()
{
add_action("do_dazuo","dazuo");
add_action("do_dazuo","exercise");
add_action("do_dazuo","steal");
add_action("do_dazuo","beg");
add_action("do_dazuo","ansuan");
add_action("do_dazuo","hit");
add_action("do_dazuo","get");
add_action("do_yao","yaoche");
}

int do_dazuo()
{

   object me;
   me = this_player();
   tell_object(me,"这里不能用这个指令。\n");
return 1;
}
int do_yao()
{
        object *inv,kicker;
        int sizeinv,n,tt;

object me;

me = this_player();
if(!me->query("marks/mengzhu"))
                return notify_fail("你没有乘马车的权限。\n");
   if (!me->query_temp("che"))
                return notify_fail("你刚才没有乘车来这里。\n");
                inv=all_inventory(me);
                sizeinv=sizeof(inv);
       
                while (sizeinv--)
                {
                               if (inv[sizeinv]->is_character())  
                                     return notify_fail("你想进去拐卖人口?\n");
                      
                }
        me->set_temp("che",0);
message_vision("$N走出风雨楼,乘上了刚才来时的那辆马车匆匆忙忙地离去了。\n",me);
me->move("/d/city/majiu");
message_vision("$N又回到了原先来时的那间马厩。\n",me);

return 1;
}/*
int valid_leave(object me, string dir)
{
        object ob;
if( userp(me) &&
dir=="down")
{remove_call_out("awayaway");
this_player()->set_temp("for_okok",0);
}return 1;
}*/

[ 本帖最后由 leotang111 于 2007-6-19 07:54 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 07:54 | 显示全部楼层
d\biwu\champion1.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion1.o"
inherit NPC;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "盟主" , ({ "numberone" }) );
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIR "邪派盟主" NOR);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        string name,id,nick;
        object zheng;
          if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "chat",
        sprintf( "%s从现在开始是我们新的邪派盟主了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIR "邪派盟主" NOR);       
        set("nickname",nick);
//        delete("party");
        zheng = new(__DIR__"gangzhang");
        find(id);
        zheng->move(winner);
        message_vision("邪派盟主给了$N一根魔杖。\n",winner);
//        winner->set("party/party_name",HIR+"邪派"+NOR);
//        winner->set("party/rank",HIR+"盟主"+NOR);
        winner->set("marks/mengzhu",1);

return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{//        add_action("do_yao","yaozhang");
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
        return 1;
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
/*int do_yao()
{
        object zhang,me,ob;
        me = this_player();
        ob = this_object();
        zhang = new(__DIR__"gangzhang");
        if(ob->query("id")==me->query("id") && (!present("mostaff",me)))
        {find(id1);
        zhang->move(me);
        message_vision("$N给了$n一根魔杖。\n",ob,me);
        me->set("party/party_name",HIR+"邪派"+NOR);
        me->set("party/rank",HIR+"盟主"+NOR);
return 1;
        }
tell_object(me,"你瞎要什么?\n");
return 1;
}*/
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        //if(ulist->query("id")== id ) {
        if  (present  ("mostaff",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="mostaff" && !userp(ob))
        destruct(ob);
        }
message_vision(HIG"$N身上的魔杖化作一道绿芒飞向了远方。\n"NOR,ulist);
//ulist->set("party/party_name",HIR"前任邪派"NOR);
//ulist->set("party",0);

        }
}
}

d\biwu\champion.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion.o"
inherit NPC;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "盟主" , ({ "numberone" }) );
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIC "正派盟主" NOR);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();
       
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
          if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "chat",
        sprintf( "%s从现在开始是我们新的正派盟主了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIC "正派盟主" NOR);       
        set("nickname",nick);
//        delete("party");
        zheng = new(__DIR__"zheng");
        find(id);
        zheng->move(winner);
        message_vision("正派盟主给了$N一根神杖。\n",winner);
//        winner->set("party/party_name",HIC+"正派"+NOR);
//        winner->set("party/rank",HIC+"盟主"+NOR);
        winner->set("marks/mengzhu",1);
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{//        add_action("do_yao","yaozhang");
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
        return 1;
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
/*int do_yao()
{
        object zhang,me,ob;
        me = this_player();
        ob = this_object();
        zhang = new(__DIR__"zheng");
        if(ob->query("id")==me->query("id") && (!present("shenstaff",me)))
        {find(id1);
        zhang->move(me);
        message_vision("$N给了$n一根神杖。\n",ob,me);
        me->set("party/party_name",HIC+"正派"+NOR);
        me->set("party/rank",HIC+"盟主"+NOR);
        return 1;
        }
tell_object(me,"你瞎要什么?\n");
return 1;
}*/
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        //if(ulist->query("id")== id ) {
        if  (present  ("shenstaff",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="shenstaff" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的神杖化作一道金芒飞向了远方。\n"NOR,ulist);
//ulist->set("party",0);
        }
}
}

d\biwu\champion.old

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/d/biwu/champion.o"
inherit NPC;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "盟主" , ({ "numberone" }) );
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIC "正派盟主" NOR);
       
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        string name,id,nick;
       
        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "chat",
        sprintf( "%s从现在开始是我们新的正派盟主了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        set("name",winner->query("name"));
        set("id" , winner->query("id"));
        set_name( name , ({ id }) );
        set("nick",winner->query("nickname"));
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIC "正派盟主" NOR);       
        set("nickname",nick);
        return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{        add_action("do_yao","yaozhang");
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
        return 1;
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
int do_yao()
{
        object zhang,me,ob;
        me = this_player();
        ob = this_object();
        zhang = new(__DIR__"zheng");
        if(ob->query("id")==me->query("id") && (!present("shenstaff",me)))
        {find(id1);
        zhang->move(me);
        message_vision("$N给了$n一根神杖。\n",ob,me);
        return 1;
        }
tell_object(me,"你瞎要什么?\n");
return 1;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        //if(ulist->query("id")== id ) {
        if  (present  ("shenstaff",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="shenstaff")
        destruct(ob);
        }
message_vision(HIY"$N身上的神杖化作一道金芒飞向了远方。\n"NOR,ulist);
        }
}
}

d\biwu\champion_bt.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_bt.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("白驼山派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "白驼山掌门大弟子" NOR);
        set_temp("no_kill",1);
        carry_object("clone/weapon/gangzhang")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        if (userp(winner)){
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;

        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");

if( (string)winner->query("family/family_name") != "白驼山派" )
        return notify_fail("只有白驼山弟子才能争夺大弟子之位!\n");
        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是白驼山新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "白驼山掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_bt");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块白驼山派的令牌。\n",winner);
        set_temp("no_kill",1);

       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "白驼山派" )
        return notify_fail("只有白驼山弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");
       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("btling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="btling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的白驼山令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_dl.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_dl.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("大理段家", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "大理段家大弟子" NOR);
        set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");

        if( (string)winner->query("family/family_name") != "大理段家" )
        return notify_fail("只有大理段家弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是大理段家新的大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "大理段家大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_dl");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块大理段家的令牌。\n",winner);
       
       
         set_temp("no_kill",1);
   
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "大理段家" )
        return notify_fail("只有大理段家弟子才能争夺大弟子之位!\n");

       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("dlling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="dlling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的大理令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

[ 本帖最后由 leotang111 于 2007-6-19 08:01 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 08:01 | 显示全部楼层
d\biwu\champion_em.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_em.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("峨嵋派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "峨眉派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");

if( (string)winner->query("family/family_name") != "峨嵋派" )
        return notify_fail("只有峨眉派弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是峨眉派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "峨眉派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_em");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块峨眉派的令牌。\n",winner);
         set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "峨嵋派" )
        return notify_fail("只有峨眉派弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("emling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="emling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的峨眉派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_feitian.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_feitian.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("飞天御剑流", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIW "飞天御剑流掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "飞天御剑流" )
        return notify_fail("只有飞天御剑流弟子才能争夺大弟子之位!\n");


        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是飞天御剑流新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "飞天御剑流掌门大弟子" NOR);       
        set("pubmaster",1);
        set("nickname",nick);
        zheng = new(__DIR__"ling_ft");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块飞天御剑流的令牌。\n",winner);
         set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "飞天御剑流" )
        return notify_fail("只有飞天御剑流弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("ftling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="ftling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的飞天御剑流令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_gb.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_gb.o"
inherit NPC;
inherit F_MASTER;

void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("丐帮", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "丐帮掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");

if( (string)winner->query("family/family_name") != "丐帮" )
        return notify_fail("只有丐帮弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是丐帮新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "丐帮掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_gb");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一根丐帮的青竹杖。\n",winner);
       
set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "丐帮" )
        return notify_fail("只有丐帮弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("gbling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="gbling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的青竹杖不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_gm.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_gm.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("古墓派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "古墓派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
if( (string)winner->query("family/family_name") != "古墓派" )
        return notify_fail("只有古墓派弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是古墓派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "古墓派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_gm");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块古墓派的令牌。\n",winner);
       
         set_temp("no_kill",1);

          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "古墓派" )
        return notify_fail("只有古墓派弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("gmling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="gmling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的古墓派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_hs.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_hs.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("华山派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "华山派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
if( (string)winner->query("family/family_name") != "华山派" )
        return notify_fail("只有华山弟子才能争夺大弟子之位!\n");


        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是华山派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "华山派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_hs");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块华山派的令牌。\n",winner);
         set_temp("no_kill",1);

       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "华山派" )
        return notify_fail("只有华山弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("hsling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="hsling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的华山派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

[ 本帖最后由 leotang111 于 2007-6-19 08:08 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 08:08 | 显示全部楼层
d\biwu\champion_kl.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_kl.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("昆仑派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "昆仑派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");

if( (string)winner->query("family/family_name") != "昆仑派" )
        return notify_fail("只有昆仑派弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是昆仑派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "昆仑派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_kl");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块昆仑派的令牌。\n",winner);
        set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "昆仑派" )
        return notify_fail("只有昆仑派弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("klling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="klling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的昆仑派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}


int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_lj.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_lj.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("灵鹫宫", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "灵鹫宫掌门大弟子" NOR);
         set_temp("no_kill",1);       
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "灵鹫宫" )
        return notify_fail("只有灵鹫宫弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是灵鹫宫新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "灵鹫宫掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_lj");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块灵鹫宫的令牌。\n",winner);
       
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "灵鹫宫" )
        return notify_fail("只有灵鹫宫弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("ljling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="ljling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的灵鹫宫令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_lx.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_lx.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("凌霄城", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "凌霄城掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "凌霄城" )
        return notify_fail("只有凌霄城弟子才能争夺大弟子之位!\n");


        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是凌霄城新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "凌霄城掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_lx");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块凌霄城的令牌。\n",winner);
         set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "凌霄城" )
        return notify_fail("只有凌霄城弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("lxling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="lxling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的凌霄城令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_mj.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_mj.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("明教", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "明教教主座下大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "明教" )
        return notify_fail("只有明教弟子才能争夺大弟子之位!\n");
        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是明教新的大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "明教教主座下大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_mj");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块圣火令。\n",winner);
         set_temp("no_kill",1);

       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "明教" )
        return notify_fail("只有明教弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("mjling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="mjling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的圣火令不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_mr.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_mr.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("姑苏慕容", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "姑苏慕容掌门大弟子" NOR);
         set_temp("no_kill",1);       
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "姑苏慕容" )
        return notify_fail("只有姑苏慕容弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是姑苏慕容新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "姑苏慕容掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_mr");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块姑苏慕容的令牌。\n",winner);
       
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "姑苏慕容" )
        return notify_fail("只有姑苏慕容弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("mrling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="mrling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的姑苏慕容令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

[ 本帖最后由 leotang111 于 2007-6-19 09:24 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 09:24 | 显示全部楼层
d\biwu\champion_qz.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_qz.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("全真教", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "全真教掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "全真教" )
        return notify_fail("只有全真教弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是全真教新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "全真教掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_qz");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块全真教的令牌。\n",winner);
        set_temp("no_kill",1);
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "全真教" )
        return notify_fail("只有全真教弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("qzling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="qzling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的全真教令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

d\biwu\champion_ry.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_ry.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("日月神教", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "日月教掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "日月神教" )
        return notify_fail("只有日月教弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是日月教新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "日月教掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_ry");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块日月教的令牌。\n",winner);
        set_temp("no_kill",1);       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "日月神教" )
        return notify_fail("只有日月教弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("ryling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="ryling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的日月教令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_sl.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_sl.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("少林派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "少林派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "少林派" )
        return notify_fail("只有少林弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是少林派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "少林派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_sl");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块少林派的令牌。\n",winner);
         set_temp("no_kill",1);

       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "少林派" )
        return notify_fail("只有少林弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("slling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="slling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的少林令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_slj.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_slj.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("神龙教", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "神龙教掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();
}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "神龙教" )
        return notify_fail("只有神龙教弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是神龙教新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "神龙教掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_slj");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块神龙教的令牌。\n",winner);
         set_temp("no_kill",1);

       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "神龙教" )
        return notify_fail("只有神龙教弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("sljling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="sljling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的神龙教令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_th.c

d\biwu\// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_th.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("桃花岛", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "桃花岛掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");

        if( (string)winner->query("family/family_name") != "桃花岛" )
        return notify_fail("只有桃花岛弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是桃花岛新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "桃花岛掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_th");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块桃花岛的令牌。\n",winner);
       
         set_temp("no_kill",1);

          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "桃花岛" )
        return notify_fail("只有桃花岛弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("thling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="thling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的桃花岛令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

[ 本帖最后由 leotang111 于 2007-6-19 14:34 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 14:34 | 显示全部楼层
d\biwu\champion_tm.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_tm.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("唐门", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIW "唐门掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "唐门" )
        return notify_fail("只有唐门弟子才能争夺大弟子之位!\n");


        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是唐门新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "唐门掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_tm");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块唐门的令牌。\n",winner);
         set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "唐门" )
        return notify_fail("只有唐门弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("tmling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="tmling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的唐门令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_tz.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_tz.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("铁掌帮", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
         loadall(this_object());
        set("title", HIY "铁掌帮掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        winner_file = winner->query_save_file();
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "铁掌帮" )
        return notify_fail("只有铁掌帮弟子才能争夺大弟子之位!\n");

        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是铁掌帮新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "铁掌帮掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_tz");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块铁掌帮的令牌。\n",winner);
        set_temp("no_kill",1);       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "铁掌帮" )
        return notify_fail("只有铁掌帮弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("tzling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="tzling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的铁掌帮令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_wd.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_wd.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("武当派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "武当派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "武当派" )
        return notify_fail("只有武当派弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是武当派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "武当派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_wd");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块武当派的令牌。\n",winner);
       
         set_temp("no_kill",1);

          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "武当派" )
        return notify_fail("只有武当派弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("wdling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="wdling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的武当派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_wdj.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_wdj.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("五毒教", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "五毒教掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "五毒教" )
        return notify_fail("只有五毒教弟子才能争夺大弟子之位!\n");


        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是五毒教新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "五毒教掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_wdj");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块五毒教的令牌。\n",winner);
         set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "五毒教" )
        return notify_fail("只有五毒教弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("wdjling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="wdjling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的五毒教令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_xs.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_xs.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("雪山寺", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "雪山寺掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "雪山寺" )
        return notify_fail("只有雪山寺弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是雪山寺新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "雪山寺掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_xs");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块雪山寺的令牌。\n",winner);
       
       
            set_temp("no_kill",1);

return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "雪山寺" )
        return notify_fail("只有雪山寺弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("xsling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="xsling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的雪山寺令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}

[ 本帖最后由 leotang111 于 2007-6-19 14:37 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 14:37 | 显示全部楼层
d\biwu\champion_xx.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_xx.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("星宿派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "星宿派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "星宿派" )
        return notify_fail("只有星宿派弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是星宿派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "星宿派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_xx");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块星宿派的令牌。\n",winner);
       
         set_temp("no_kill",1);

          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "星宿派" )
        return notify_fail("只有星宿派弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("xxling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="xxling"&& !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的星宿派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_xy.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_xy.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
        set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("逍遥派", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "逍遥派掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "逍遥派" )
        return notify_fail("只有逍遥派弟子才能争夺大弟子之位!\n");

        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是逍遥派新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "逍遥派掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_xy");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块逍遥派的令牌。\n",winner);
       
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "逍遥派" )
        return notify_fail("只有逍遥派弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("xyling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="xyling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的逍遥派令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\champion_yl.c

// this npc will duplicate anyone who he/she lost his fight to....
#include <ansi.h>
#define CHAMPION_FILE "/data/npc/champion_yl.o"
inherit NPC;
inherit F_MASTER;
void loadall(object me);
string id1;
void find(string id);
void changeshape(object winner);
void create()
{
        string info,name,id,file;
        set_name( "大弟子" , ({ "dizi" }) );
        set_temp("no_kill",1);
set("pubmaster",1);
        setup();
        info = read_file(CHAMPION_FILE);
        if( info && sscanf(info,"%s %s %s",file,id,name) == 3)
        {
                restore_object(file);
        set_name( name , ({ id }) );
        set("pubmaster",1);
        create_family("云龙门", 40, "弟子");
         delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());
        set("title", HIY "云龙门掌门大弟子" NOR);
         set_temp("no_kill",1);
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("clone/misc/cloth")->wear();

}
       
               
}
void lose_enemy(object winner)
{
        remove_call_out("changeshape");
        call_out("changeshape",2,winner);
        return;
}
void changeshape( object winner)
{
        string winner_file;
        object zheng;
        string name,id,nick;
        if (!userp(winner))
        return notify_fail("你不是玩家,是机器人.\n");
        if( (string)winner->query("family/family_name") != "云龙门" )
        return notify_fail("只有云龙门弟子才能争夺大弟子之位!\n");


        winner_file = winner->query_save_file();
        CHANNEL_D->do_channel(this_object(), "party",
        sprintf( "%s从现在开始是云龙门新的掌门大弟子了!! \n",
        winner->name(1)));
        write_file(CHAMPION_FILE,sprintf("%s %s %s",
        winner_file,winner->query("id"),winner->query("name")),1);
        restore_object(winner_file);
        name = winner->query("name");
        id = winner->query("id");
        set_name( name , ({ id }) );
        nick = winner->query("nickname");
        delete("env");
        set("attitude", "aggressive");
        reset_action();
        delete_temp("already_loaded");
        loadall(this_object());       
        set("title", HIY "云龙门掌门大弟子" NOR);       
        set("nickname",nick);
        zheng = new(__DIR__"ling_yl");
        find(id);
        zheng->move(winner);
        message_vision("掌门大弟子给了$N一块云龙门的令牌。\n",winner);
         set_temp("no_kill",1);
       
          
return;
}

void loadall(object me)
{
        int MAX = 3;
        string name,id, *created;
        int i,j;
        object thing, *inv;
        inv = all_inventory(me);
                for(i=0; i<sizeof(inv); i++)
                {
                        destruct(inv);
                }

        id = me->query("id");
        created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/");
        for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++)
        if( sscanf(created[j], "%s.c", name) == 1 )
                {
        thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id +
        "/" + name + ".c");
                        if(thing->move(me))
                        {
                        thing->wield();
                        thing->wear();
                        }
                }
        me->reset_action();
        me->set_temp("already_loaded",1);
        return;
}
void init()
{
        if(!query_temp("already_loaded"))
                loadall(this_object());
        return;
}
int accept_fight(object me)
{
object ob;
ob=this_object();
        if( (string)this_player()->query("family/family_name") != "云龙门" )
        return notify_fail("只有云龙门弟子才能争夺大弟子之位!\n");
       if (this_player()->query("combat_exp") < 100000 || this_player()->query("age") <= 18)
        return notify_fail("你的能力不足以成为大弟子.\n");

       command("say 好,你打败我就可以成为掌门大弟子!");
if (!ob->query_skill_mapped("unarmed"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}
if (!ob->query_skill_mapped("parry"))
{
ob->set_skill("gedoushu",this_player()->query_skill("force"));
ob->map_skill("unarmed", "gedoushu");
ob->map_skill("parry", "gedoushu");
}        return 1;
          
}
void die()
{
        object ob;

        if( !ob = query_temp("last_damage_from") )
                ob = this_player(1);

        if( !ob ) return;

        changeshape(ob);
        return;
}
void find(string id)
{
object *ulist,*ilist;
object ob;
int i,j;
ulist  =  users();
        i  =  sizeof(ulist);
while (i--) {
        if  (present  ("ylling",ulist))
        {
        ilist  =  all_inventory(ulist);
        j=sizeof(ilist);
        while (j--) {
        ob = ilist[j];
        if(ob->query("id")=="ylling" && !userp(ob))
        {
        destruct(ob);
                        }
        }
message_vision(HIY"$N身上的云龙门令牌不翼而飞了。\n"NOR,ulist);
        }
}
}
int accept_object(object who, object ob)
{
        int i;

        if (!(int)who->query_temp("learn_timem"))      
                who->set_temp("learn_timem", 0);

        if( !ob->query("money_id") )
                return 0;               

        if( (string)this_player()->query("family/family_name") != query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if(who->query_skill("force",1)<30)
                i=ob->value() / 50;
        else
        {
                if(who->query_skill("force",1)<60)
                        i=ob->value() / 80;
                else
                {
                        if(who->query_skill("force",1)<100)
                                i=ob->value() / 150;
                        else
                                i=ob->value() / 300;
                }
        }
        who->add_temp("learn_timem",i);
command("say 看在你为本派尽心尽力,我就指定你两手功夫吧!");
//      message_vision("左冷禅对$N说道:既然你诚心想学我的武功,我就成全成全你吧。\n",who);

        return 1;
}

int recognize_apprentice(object ob)
{

        if( (string)ob->query("family/family_name") != this_object()->query("family/family_name"))
        return notify_fail("只有本派弟子才能到我这学功夫!\n");

        if( ob->query_temp("learn_timem") <= 0) return 0;
else         
ob->add_temp("learn_timem",-1);
return 1;
}


d\biwu\chen.c

// chen.c 陈近南

#include <ansi.h>

inherit NPC;
inherit F_MASTER;
int ask_weiwang();
int ask_tuihui();
string ask_me();

void create()
{
        set_name("陈近南", ({ "chen jinnan", "chen","jinnan" }));
        set("title", HIR "天地会"HIM"总舵主"NOR );
        set("nickname", HIC "英雄无敌" NOR);
        set("long",
                "\n这是一个文士打扮的中年书生,神色和蔼。\n"
                "他就是天下闻名的天地会总舵主陈近南,\n"
                "据说十八般武艺,样样精通。\n"
                "偶尔向这边看过来,顿觉他目光如电,英气逼人。\n");
        set("gender", "男性");
        set("class", "scholar");
        set("age", 45);
        set("attitude", "friendly");
        set("shen_type", 1);
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
       
        set("max_qi", 2000);
        set("max_jing", 1000);
        set("neili", 3000);
        set("max_neili", 3000);
        set("jiali", 100);
        set("combat_exp", 2000000);
        set("score", 500000);

        set_skill("literate", 100);
        set_skill("force", 200);
        set_skill("dodge", 200);
        set_skill("unarmed", 200);
        set_skill("parry", 200);
        set_skill("whip", 200);
        set_skill("blade", 200);
        set_skill("sword", 200);
        set_skill("hand", 200);
        set_skill("claw", 200);
        set_skill("houquan", 300);
        set_skill("yunlong-xinfa", 300);
        set_skill("yunlong-shengong", 300);
        set_skill("wuhu-duanmendao", 300);
        set_skill("yunlong-jian", 300);
        set_skill("yunlong-shenfa", 300);
        set_skill("yunlong-bian", 300);
        set_skill("yunlong-shou", 300);
        set_skill("yunlong-zhua", 300);

        map_skill("dodge", "yunlong-shenfa");
        map_skill("force", "yunlong-shengong");
        map_skill("unarmed", "houquan");
        map_skill("blade", "wuhu-duanmendao");
        map_skill("hand", "yunlong-shou");
        map_skill("parry", "yunlong-shou");
        map_skill("claw", "yunlong-zhua");
        map_skill("sword", "yunlong-jian");
        map_skill("whip", "yunlong-bian");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 550);

        prepare_skill("hand","yunlong-shou");
        prepare_skill("claw","yunlong-zhua");
        create_family("云龙门",1, "开山祖师");
        set("book_count", 1);
        set("inquiry", ([
                "天地会" :  "\n只要是英雄好汉,都可以入我天地会(join tiandihui)。\n",
                "入会" :  "\n只要入我天地会,可以向各位好手学武艺。\n",
                "反清复明" : "去棺材店和回春堂仔细瞧瞧吧!\n",
                "暗号" : "敲三下!\n",
                "切口" : "敲三下!\n",
                "威望" :  (: ask_weiwang :),
                "江湖威望" : (: ask_weiwang :),
                "云龙剑谱" : (: ask_me :),
                "退会" : (: ask_tuihui :),
                "tuihui"   : (: ask_tuihui :),
        ]) );
        set("env/wimpy", 60);
        set("chat_chance_combat", 70);  
        set("chat_msg_combat", ({
                "\n陈近南摇头叹道:螳臂当车,不自量力。唉,你这又是何苦呢?\n",
                (: command("smile") :),
                (: command("poem") :),
                (: command("nomatch") :),
                (: command("haha") :),
                (: command("chat 这位" + RANK_D->query_respect(this_player())+",你我无冤无仇,何必如此?\n") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("unwield changjian") :),
                (: command("wield changjian") :),
                (: command("wield changjian") :),
                (: command("wield changjian") :),
                (: command("wield changjian") :),
                (: command("wield bian") :),
                (: command("wield bian") :),
                (: command("wield bian") :),
                (: command("wield bian") :),
                (: perform_action, "sword.xian" :),
                (: perform_action, "sword.xian" :),
                (: perform_action, "sword.xian" :),
                (: perform_action, "whip.chan" :),
                (: perform_action, "whip.chan" :),
                (: perform_action, "blade.duan" :),
                (: perform_action, "blade.duan" :),
                (: exert_function, "recover" :),
                (: exert_function, "recover" :),
                (: perform_action, "unarmed.pofuchenzhou" :),
                (: perform_action, "unarmed.pofuchenzhou" :),
                (: perform_action, "unarmed.pofuchenzhou" :),
                (: perform_action, "blade.duan" :),               
                (: command("unwield bian") :),
                (: command("unwield bian") :),
                (: command("unwield bian") :),
                (: command("unwield bian") :),
                (: command("unwield bian") :),
                (: command("unwield bian") :),
                (: command("wield blade") :),
                (: command("wield blade") :),
                (: command("wield blade") :),
                (: command("wield blade") :),
                (: command("unwield blade") :),
                (: command("unwield blade") :),
                (: command("unwield blade") :),
                (: command("unwield blade") :),
                (: command("unwield blade") :),
                (: command("unwield blade") :),
        }) );
        setup();
        carry_object("/d/city2/obj/jinduan")->wear();
        carry_object("/d/city2/obj/yaodai")->wear();
        carry_object("/clone/weapon/changjian")->wield();
        carry_object("/d/city2/obj/hlbian");
        carry_object("/d/city/obj/gangdao");
}

string ask_me()
{
        mapping fam;
        object ob;

        if (!(fam = this_player()->query("family"))
            || fam["family_name"] != "云龙门")
                return RANK_D->query_respect(this_player()) +
                "与本派素无来往,不知此话从何谈起?";
        if (query("book_count") < 1)
                return "你来晚了,本派的云龙真经不在此处。";
        add("book_count", -1);
        ob = new("/clone/book/yljianpu");
        ob->move(this_player());
        return "好吧,这本「云龙剑谱」你拿回去好好钻研。";
}

void init()
{
        ::init();
        add_action("do_skills","skills");
        add_action("do_skills","cha");
        add_action("do_join","join");
}

void attempt_apprentice(object ob)
{
        if ((int)ob->query_skill("yunlong-shengong", 1) < 50)
        {
                command("say 我云龙神功乃内家武功,最重视内功心法。");
                command("say " + RANK_D->query_respect(ob) +
                        "是否还应该在云龙神功上多下点功夫?");
                return;
        }
        if ((int)ob->query("weiwang") <60)
        {
                command("say 我云龙门武功天下无敌,凡入我门,\n必闯荡江湖,行侠仗义,为天下苍生谋福利。\n");
                command("say " + RANK_D->query_respect(ob) +
                        "是否应该先出去闯一闯,做几件惊天动地的大事?");
                return ;
        }
        if ((int)ob->query("shen") >0&&(int)ob->query("shen") < 5000) {
                command("say 学武之人,德义为先,功夫的高低倒还在其次,未练武,要先学做人。");
                command("say 在德行方面," + RANK_D->query_respect(ob) +
                        "是否还做得不够?");
                return ;
        }
        if(ob->query("weiwang")<80)
        {
                if((int)ob->query("shen")<0)
command("say "+ RANK_D->query_respect(ob) +"虽然是邪派中人,但也还做了些好事。\n");
                command("chat 我天地会所作所为,无一不是前人所未行之事。\n");
                command("chat 万事开创在我,骇人听闻,物议沸然,又何足论?\n");
                command("chat 今天就收了你吧!!\n");
                command("chat 想不到我一身惊人艺业,今日终于有了传人,哈哈哈哈!!!!\n");
                message_vision(HIC "$N的江湖威望提高了!\n" NOR,this_player());
                ob->set("weiwang",80);
        }
        command("recruit " + ob->query("id"));
        if((!(string)ob->query("class")) || ((string)ob->query("class") != "fighter"))
                ob->set("class","fighter");
}

int do_skills(string arg)
{
        object ob ;
        ob = this_player () ;
        if( !arg || arg!="chen" )
                return 0;
        if(wizardp(ob))  return 0;
        if (ob->query("party/party_name") != HIR "天地会" NOR )
        {
                message_vision("$N摇了摇头。\n",this_object());
                command("tell "+ob->query("id")+" 不是天地会弟子不能察看。\n");
                return 1;
        }

        command("tell "+ob->query("id")+" 我所有的基本武功如下:\n"+
        "  基本刀法 (blade)                         - 深不可测 200/   \n"+
        "  基本爪法 (claw)                          - 深不可测 200/   \n"+
        "  基本轻功 (dodge)                         - 深不可测 200/    \n"+
        "  基本内功 (force)                         - 深不可测 200/    \n"+
        "  基本手法 (hand)                          - 深不可测 200/    \n"+
        "  基本拳脚 (unarmed)                       - 深不可测 200/    \n"+
        "  基本鞭法 (whip)                          - 深不可测 200/    \n"+
        "  基本招架 (parry)                         - 深不可测 200/    \n"+
        "  基本剑法 (sword)                         - 深不可测 200/    \n"+
        "  云龙心法 (yunlong-xinfa)                 - 深不可测 200/    \n"+
        "  读书写字 (literate)                      - 深不可测 100/    \n");
        command("tell "+ob->query("id")+" 我所有的高深武功如下:\n"+
        "□猴拳 (houquan)                           - 深不可测 150/    \n"+
        "□五虎断门刀 (wuhu-duanmendao)             - 深不可测 150/    \n"+
        "□云龙神功 (yunlong-shengong)              - 深不可测 150/    \n"+
        "□云龙身法 (yunlong-shenfa)                - 深不可测 150/    \n"+
        "□云龙剑法 (yunlong-jian)                  - 深不可测 200/    \n"+
        "□云龙鞭 (yunlong-bian)                    - 深不可测 150/    \n"+
        "□云龙手 (yunlong-shou)                    - 深不可测 150/    \n"+
        "□云龙爪 (yunlong-zhua)                    - 深不可测 150/    \n");
        return 1;
}

int ask_weiwang()
{
        command("tell "+this_player()->query("id")+" 你现在的江湖威望是 " +(string)(this_player()->query("weiwang")));
        say("\n陈近南说道:如果你威望值很高,有些人见了你不但不会杀你,还会教你武功,送你宝贝。\n"
        +"而且你还可以加入帮会,率领会众去攻打目标,就连去钱庄取钱也会有利息 。。。。。\n");
        say("陈近南又说:杀某些坏人或救某些好人可以提高江湖威望。\n");
        return 1;
}
int ask_tuihui()
{
        object ob;
        ob=this_player();

        if(ob->query("party/party_name") != HIR "天地会" NOR )
        {
message_vision("陈近南笑了笑,对$N说道:你还没加入我天地会呢,退什么退?\n", ob);
                return 1;
        }
        if(ob->query("family/family_name") == "云龙门" )
        {
message_vision("陈近南板着脸对$N说道:你已经是我云龙门弟子,如何能退会?\n", ob);
                return 1;
        }
        command("look "+ob->query("id"));
        command("sigh ");
        command("say 反清复明,就要坚贞志士,你去吧! ");
        ob->delete("party");
        ob->delete("rank");
        ob->delete("level");
        return 1;
}                                          

#include "/kungfu/class/yunlong/tiandihui.h";

[ 本帖最后由 leotang111 于 2007-6-19 22:03 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 22:03 | 显示全部楼层
d\biwu\da-mo.c

// Npc: /kungfu/class/shaolin/da-mo.c
// Date: YZC 96/01/19

inherit NPC;
inherit F_MASTER;
#include <ansi.h>

void create()
{
        set_name("达摩老祖", ({
                "da mo",
                "da",
                "mo",
        }));
        set("long",
                "他是一位卷发络腮须的天竺老僧,身穿一袭邋遢金丝绣红袈裟。\n"
                "但却满面红光,目蕴慈笑,眼现智珠,一派得道高僧气势。\n"
                "他就是少林派开山鼻祖、当今武林的隐世高僧达摩祖师。\n"
        );

        set("title", HIR"少林开山祖师"NOR);
        set("gender", "男性");
        set("attitude", "friendly");
        set("class", "bonze");

        set("age", 80);
        set("shen_type", 1);
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
        set("max_qi", 4000);
        set("max_jing", 3000);
        set("neili", 8000);
        set("max_neili", 8000);
        set("jiali", 150);
        set("combat_exp", 6000000);
        set("score", 500000);

        set_skill("buddhism", 180);
        set_skill("literate", 130);

        set_skill("blade", 300);
        set_skill("claw", 300);
        set_skill("club", 300);
        set_skill("cuff", 300);
        set_skill("dodge", 300);
        set_skill("finger", 300);
        set_skill("force", 300);
        set_skill("hand", 300);
        set_skill("parry", 300);
        set_skill("staff", 300);
        set_skill("strike", 300);
        set_skill("sword", 300);
        set_skill("whip", 300);

        set_skill("banruo-zhang", 300);
        set_skill("cibei-dao", 300);
        set_skill("damo-jian", 300);
        set_skill("fengyun-shou", 300);
        set_skill("fumo-jian", 300);
        set_skill("hunyuan-yiqi", 300);
        set_skill("jingang-quan", 300);
        set_skill("longzhua-gong", 300);
        set_skill("luohan-quan", 300);
        set_skill("nianhua-zhi", 300);
        set_skill("pudu-zhang", 300);
        set_skill("qianye-shou", 300);
        set_skill("sanhua-zhang", 300);
        set_skill("riyue-bian", 300);
        set_skill("shaolin-shenfa", 300);
        set_skill("weituo-gun", 300);
        set_skill("wuchang-zhang", 300);
        set_skill("xiuluo-dao", 300);
        set_skill("yingzhua-gong", 300);
        set_skill("yijinjing", 300);
        set_skill("yizhi-chan", 300);
        set_skill("zui-gun", 300);
        set_skill("wuying-jian", 300);
        map_skill("blade", "cibei-dao");
        map_skill("claw", "longzhua-gong");
        map_skill("club", "wuchang-zhang");
        map_skill("cuff", "luohan-quan");
        map_skill("dodge", "shaolin-shenfa");
        map_skill("finger", "nianhua-zhi");
        map_skill("force", "yijinjing");
        map_skill("hand", "fengyun-shou");
        map_skill("parry", "nianhua-zhi");
        map_skill("staff", "weituo-gun");
        map_skill("strike", "sanhua-zhang");
        map_skill("sword", "wuying-jian");
        map_skill("whip", "riyue-bian");

        prepare_skill("finger", "nianhua-zhi");
        prepare_skill("strike", "sanhua-zhang");
         set_temp("apply/attack", 500);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 450);
       set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "finger.fuxue" :),
                (: perform_action, "finger.fuxue" :),
                (: perform_action, "sword.wuying" :),
                (: perform_action, "sword.wuying" :),
                (: perform_action, "sword.wuying" :),
                (: perform_action, "sword.wuying" :),
                (: perform_action, "sword.lidichenfo" :),
        }) );
        create_family("少林派", 34, "弟子");
        setup();
        carry_object("clone/weapon/gangjian")->wield();
        carry_object("/d/shaolin/obj/xuan-cloth")->wear();
}

void attempt_apprentice(object ob)
{
        object me;
        mapping ob_fam, my_fam;
        string name, new_name;

        me = this_object();
        my_fam  = me->query("family");

        name = ob->query("name");

        if (!(ob_fam = ob->query("family")) || ob_fam["family_name"] != "少林派")
        {
                command("say " + RANK_D->query_respect(ob) + "与本派素无来往,不知此话从何谈起?");
                return;
        }

        if ( (string)ob->query("class")!="bonze" && ob_fam["family_name"] == "少林派")
        {
                command("say " + RANK_D->query_respect(ob) + "是俗家弟子,不能在寺内学艺。");
                return;
        }

        if ( ob_fam["generation"] != 36 )
        {
                command("say " + RANK_D->query_respect(ob) + ",贫僧哪里敢当 !");
                return;
        }

        if ((ob->query_int() < 40) || (ob->query("PKS") > 3 ))
        {
                command("say 万事都讲一个缘字。");
                command("say " + RANK_D->query_respect(ob) + "与佛无缘,还是请回吧。");
                return;
        }

        if (ob->query_skill("dodge",1)>=150 &&
                ob->query_skill("force",1)>=150 &&
                ob->query_skill("parry",1)>=150 &&
                ob->query_skill("buddhism",1)>=150)
        {
                command("say 老衲又得一可塑之才,真是大畅老怀 !");
                name = ob->query("name");
                new_name = "渡" + name[2..3];
                ob->set("name", new_name);
       
                command("say 从今以后你的法名叫做" + new_name + ",恭喜你荣升为少林派渡字辈弟子 !");
                command("recruit " + ob->query("id"));
        }
        else
                command("say 你现在就来找我也太早了点吧 !");
        return;
}



d\biwu\ding.c

// ding.c 丁春秋

inherit NPC;
inherit F_MASTER;
string ask_me();
string ask_du1();
string ask_du2();

void create()
{
        set_name("丁春秋", ({ "ding chunqiu", "ding" }));
        set("nickname", "星宿老怪");
        set("long",
                "他就是星宿派开山祖师、令正派人士深恶痛绝的星宿老怪丁春秋。\n"
                "可是他看起来形貌清奇,仙风道骨。\n");
        set("gender", "男性");
        set("age", 60);
        set("attitude", "friendly");
        set("class", "scholar");
        set("shen_type", -1);
        set("shen", -150000);
        set("str", 25);
        set("int", 30);
        set("con", 28);
        set("dex", 28);
       
        set("max_qi", 4000);
        set("max_jing", 3000);
        set("neili", 14000);
        set("max_neili", 14000);
        set("jiali", 100);
        set("combat_exp", 2500000);
        set("score", 400000);

        set_skill("unarmed", 150);
        set_skill("force", 150);
        set_skill("huagong-dafa", 300);
        set_skill("throwing", 150);
        set_skill("feixing-shu", 300);
        set_skill("dodge", 150);
        set_skill("zhaixinggong", 300);
        set_skill("strike", 150);
        set_skill("chousui-zhang", 300);
        set_skill("claw", 150);
        set_skill("sanyin-wugongzhao", 300);
        set_skill("parry", 150);
        set_skill("staff", 150);
        set_skill("poison", 150);
        set_skill("tianshan-zhang", 300);
        set_skill("literate", 100);

        map_skill("force", "huagong-dafa");
        map_skill("dodge", "zhaixinggong");
        map_skill("strike", "chousui-zhang");
        map_skill("claw", "sanyin-wugongzhao");
        map_skill("parry", "chousui-zhang");
        map_skill("unarmed", "chousui-zhang");
        map_skill("staff", "tianshan-zhang");
        prepare_skill("strike", "chousui-zhang");
        prepare_skill("claw", "sanyin-wugongzhao");
        set_temp("apply/attack", 300);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 350);
        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "strike.zhaohuo" :),
                (: perform_action, "strike.zhaohuo" :),               
                (: perform_action, "strike.biyan" :),
                (: perform_action, "strike.sandu" :),
                (: perform_action, "strike.huoqiang" :),
                (: perform_action, "strike.throw" :),
                (: perform_action, "strike.yinhuo" :),
                (: perform_action, "strike.zhaohuo" :),
                (: perform_action, "strike.huoqiu" :),
                (: perform_action, "strike.zhaohuo" :),
        }) );
        set("book_count", 1);
        set("zhen_count", 1);
        set("san_count", 1);

        set("inquiry", ([
                "毒经" : (: ask_me :),
                "星宿毒经" : (: ask_me :),
                "碧磷针" : (: ask_du1 :),
                "三笑逍遥散" : (: ask_du2 :),
                "逍遥三笑散" : (: ask_du2 :),
        ]));

        create_family("星宿派", 1, "开山祖师");
        set("class", "taoist");

        setup();
//      carry_object("/clone/weapon/changjian")->wield();
}

void init()
{
        add_action("do_flatter", "flatter");
}

void attempt_apprentice(object me)
{
        if ((int)me->query("shen") > -100) {
                command("say 老仙越看你越象白道派来卧底的。");
                return;
        }
        if ((int)me->query("combat_exp") < 10000) {
                command("say 你这点微末道行如何能学到老仙的神妙功夫。");
                return;
        }
        if( me->query_temp("pending/flatter") ) {
                command("say 你如此不把老仙放在眼里,老仙怎会收你?");
                return;
        } else {
                command("say 我星宿老仙比起古往今来的圣人怎么样啊?");
                message_vision("星宿老怪微闭双眼,手捻长须,一副等人拍马(flatter)的样子。\n",
                this_player());
                me->set_temp("pending/flatter", 1);
        }
}

int do_flatter(string arg)
{
        if( !this_player()->query_temp("pending/flatter") )
                return 0;
        if( !arg ) return notify_fail("你说老仙什么?\n");
        this_player()->set_temp("pending/flatter", 0);
        message_vision("$N大声说道:" + arg + "\n", this_player());
        if( strsrch(arg, "星宿老仙") >=0 && (strsrch(arg, "德配天地") >=0
         || strsrch(arg, "威震寰宇") >=0 || strsrch(arg, "古今无比") >=0 )) {
                command("smile");
                command("say 这还差不多。\n");
                command("recruit " + this_player()->query("id"));
        } else {
                command("say 你如此不把老仙放在眼里,老仙怎会收你?");
        }
        return 1;
}

int recruit_apprentice(object ob)
{
        if( ::recruit_apprentice(ob) )
                add("apprentice_available", -1);
}

// 星宿老仙,德配天地,威震寰宇,古今无比

string ask_me()
{
        mapping fam;
        object ob;
       
        if (!(fam = this_player()->query("family")) || fam["family_name"] != "星宿派")
                return RANK_D->query_respect(this_player()) +
                "与本派素无来往,不知此话从何谈起?";
        if (query("book_count") < 1)
                return "你来晚了,本派的内功心法不在此处。";
        add("book_count", -1);
        ob = new("/clone/book/dujing_2");
        ob->move(this_player());
        return "好吧,这本「星宿毒经」你拿回去好好钻研。";
}
string ask_du1()
{
        mapping fam;
        object ob;
       
        if (!(fam = this_player()->query("family")) || fam["family_name"] != "星宿派")
                return RANK_D->query_respect(this_player()) +
                "与本派素无来往,不知此话从何谈起?";
        if (this_player()->query_skill("poison",1)<50)
                return "你的毒技火候未到,用不了这种东西。";
        if (query("zhen_count") < 1)
                return "你来晚了,碧磷针都发完了。";
        add("zhen_count", -1);
        ob = new("/d/xingxiu/obj/bilinzhen");
        ob->move(this_player());
        return "好吧,那你就先用这些针吧。";
}
string ask_du2()
{
        mapping fam;
        object ob;
       
        if (!(fam = this_player()->query("family")) || fam["family_name"] != "星宿派")
                return RANK_D->query_respect(this_player()) +
                "与本派素无来往,不知此话从何谈起?";
        if (this_player()->query_skill("poison",1)<100)
                return "你的毒技火候未到,用不了这种东西。";
        if (query("san_count") < 1)
                return "你来晚了,现在没什么剩的了。";
        add("san_count", -1);
        ob = new("/d/xingxiu/obj/sanxiaosan");
        ob->move(this_player());
        return "好吧,这包毒药你拿回去善加利用吧。";
}


d\biwu\dizi.c

// heaven_soldier.c

#include <ansi.h>

inherit NPC;
void backattack();
void create()
{

        set_name("弟子", ({ "dizi", "guard" }) );
        set("long", "这是一位专门担任保护之责的弟子。\n");
        set("attitude", "friendly");


        set("max_neili", 1000);
        set("neili", 1000);
        set("max_jing", 500);
        set("max_qi", 500);
        set("str", 40);
        set("dex", 60);

        set("combat_exp", 200000);
        set_skill("sword", 70);
        set_skill("parry", 70);
        set_skill("dodge", 70);
        setup();

        carry_object(__DIR__"obj/sword")->wield();
        carry_object("/clone/cloth/male3-cloth")->wear();       
}

int heal_up()
{
        if( environment() && !is_fighting() ) {
                call_out("leave", 1);
                return 1;
        }
        return ::heal_up() + 1;
}

void leave()
{
        object owner;
        message("vision",
                 name() + "说道:属下随时谨听召唤!\n\n"
                + name() + "闪了闪就消失不见了。\n" , environment(),
                this_object() );
        if(objectp(owner=this_object()->query("possessed")))
                owner->add_temp("number",-1);
        destruct(this_object());
}

void invocation(object who, int level)
{
        int i;
        object *enemy;
        who=this_player();
//        if (who->query("combat_exp") < 200000 || who->query("age") <= 18)
//        return notify_fail("你的能力不足以指挥别人.\n");
//        if (who->query("jing") < 100 )
//        return notify_fail("你的精不足以指挥别人.\n");
//        if (who->query("neili") < 100 )
//        return notify_fail("你的内力不足以指挥别人.\n");
//        if (who->query("qi") < 100 )
//        return notify_fail("你的气不足以指挥别人.\n");
//        if (who->query("qi") < 100 )
//        return notify_fail("你的气不足以指挥别人.\n");
//        if ((int)who->query_condition("zdizi_busy"))  
//        return notify_fail("你刚招过随身弟子.\n");
        
        who->apply_condition("zdizi_busy",4);
        level=who->query("combat_exp");
        set_skill("sword", 70 + random(300));
        set_skill("parry", 70 + random(300));
        set_skill("dodge", 70 + random(300));
        set("combat_exp", 100000 + random(level/4));
        message("vision",
                 name() + "喝道:胆子倒不小,敢在太岁头上动土!\n" NOR,
                environment(), this_object() );
        enemy = who->query_enemy();
        i = sizeof(enemy);
        while(i--) {
                if( enemy && living(enemy) ) {
                        kill_ob(enemy);
                        if( userp(enemy) ) enemy->fight_ob(this_object());
                        else enemy->kill_ob(this_object());
                }
        }
        set_leader(who);
        set("possessed",who);
}
void backattack()
{
        int i;
        object owner, *enemy;
        if(objectp(owner=this_object()->query("possessed")))
        {
                enemy = this_object()->query_enemy();
        i = sizeof(enemy);
        while(i--) {
                if( enemy && living(enemy) ) {
                        owner->kill_ob(enemy);
                        enemy->kill_ob(owner);
                }
        }

        }

}

void die()
{
        object owner;
        if(objectp(owner=this_object()->query("possessed")))
                owner->add_temp("number",-1);
        backattack();
        ::die();
}


d\biwu\dongfang.c

// dongfang.c
#include <ansi.h>
inherit NPC;
inherit F_MASTER;

void consider();

void create()
{
    set_name("东方不败", ({"dongfang bubai", "dongfang", "bubai"}));
    set("nickname", HIY "天下无敌" NOR );
    set("title", HIM"日月神教教主"NOR);
    set("gender", "男性");
    set("shen_type", -1);
    set("age", 42);
    set("long",
        "他就是日月神教教主。号称无人可敌,因此有一称号为「东方不败」。\n");
    set("attitude", "peaceful");

    set("per", 21);
    set("str", 21);
    set("int", 30);
    set("con", 26);
    set("dex", 30);

    set("chat_chance", 1);
    set("chat_msg", ({
"东方不败叹了口气道:“唉 …… 我的杨大哥....他怎么还不回来,我好\n"
"挂念他 ……东方不败眼中流露无限迷茫。\n",
        }));
    set("inquiry", ([
        "杨莲亭"   : "你敢直称我爱人的名字,想找死呀? \n",
        "葵花宝典" : "如果你能帮我取得葵花宝典上册,我一定重重谢你。\n",
    ]));

    set("qi", 6000);
    set("max_qi", 6000);
    set("jing", 1000);
    set("max_jing", 4000);
    set("neili", 18500);
    set("max_neili", 18500);
    set("jiali", 400);

    set("combat_exp", 4500000);
    set("score", 0);

    set_skill("force", 250);             // 基本内功
    set_skill("finger", 250);            // 基本指法
    set_skill("unarmed", 250);           // 基本拳脚
    set_skill("dodge", 250);             // 基本躲闪
    set_skill("parry", 250);             // 基本招架
    set_skill("sword", 250);             // 基本剑法
    set_skill("pixie-jian", 250);        // 辟邪剑法
    set_skill("changquan", 250);         // 太祖长拳
    set_skill("literate", 100);          // 读书识字
    set_skill("kuihua-xinfa", 250);      // 葵花心法
    set_skill("kuihua-dafa", 250);      // 葵花大法
    set_skill("kuihua-feiying", 250);      // 葵花身法
        
    map_skill("force", "kuihua-xinfa");
    map_skill("sword", "kuihua-dafa");
    map_skill("unarmed", "changquan");
    map_skill("dodge", "kuihua-feiying");
    map_skill("parry", "kuihua-dafa");
         set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
   create_family("日月神教", 2, "教主");

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "sword.tonggui" :),
                (: perform_action, "dodge.kuihuashenzhang" :),
                (: perform_action, "dodge.kuihuashenzhang" :),
                (: command("unwield zhen") :),
                (: command("unwield zhen") :),
                (: command("wield zhen") :),
                (: exert_function, "powerup" :),
                (: exert_function, "kuihuawudi" :),
                (: exert_function, "kuihuawudi" :),
                (: exert_function, "powerup" :),               
                (: exert_function, "roar" :),               
        }) );

    setup();
    carry_object("/d/fuzhou/obj/xiuhua")->wield();
    carry_object("/d/wanjiegu/npc/obj/qi-dress")->wear();

}

void attempt_apprentice(object ob)
{
    if (ob->query_int() < 30) {
        command("say 我不收资质差的弟子,您请回吧!\n");
                return;
    }
    if (ob->query("gender") !="无性" ) {
        command("say 要练神功,必须自宫。");
              return;
    }
    if ((int)ob->query("shen") >100000 || (int)ob->query ("shen") < -100000 ) {
        command("say 我黑木崖与世隔绝,向来不与您这种成名人物打交道,您请回吧!;\n");
                return;
        }
    command("say 很好,很好。\n");
    command("recruit " + ob->query("id"));
}
int recognize_apprentice(object ob)
{
        mapping myfam;
        myfam = (mapping)ob->query("family");
        if ( myfam["family_name"] == "黑木崖") return 1 ;
        if ((int)ob->query_temp("tmark/东") == 1 )
        message_vision("东方不败看了看$N,说道:咱们现在是谁也不欠谁,\n"
                          "你不要再找我学习技艺了。\n", ob);
        if (!(int)ob->query_temp("tmark/东"))
                return 0;
        ob->add_temp("tmark/东", -1);
        return 1;
}



int accept_object(object who, object ob)
{

        if ( (string) ob->query("id") =="kuihua baodian1" ) {
                if (!(int)who->query_temp("tmark/东",)) who->set_temp("tmark/东",100);
                message_vision("东方不败看了看$N送来的秘籍,点了点头,说道:\n"
                               "难得你将宝典送回。你送我的东西我就收下了。\n"
                               "作为补偿,你可以从我这里学点功夫。\n", who);
                who->add_temp("tmark/东", 100);
                return 1;

        }
        return 0;
}


d\biwu\duanzc.c

// duanzc.c 段正淳

#include <ansi.h>
inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("段正淳", ({ "duan zhengchun", "duan" }));
        set("title",  "大理镇南王" );
        set("long", "他就是大理国的镇南王,当今皇太弟,是有名的爱情圣手。\n");
        set("gender", "男性");
        set("age", 45);
        set("class", "officer");
        set("attitude", "friendly");
        set("shen_type", 1);
        set("str", 30);
        set("int", 30);
        set("con", 35);
        set("dex", 30);
       
        set("max_qi", 2500);
        set("max_jing", 220);
        set("neili", 5000);
        set("max_neili", 5000);
        set("jiali", 100);
        set("combat_exp", 2000000);
        set("score", 300000);

        set_skill("unarmed", 150);
        set_skill("force", 150);
        set_skill("dodge", 150);
        set_skill("parry", 150);
        set_skill("cuff", 140);
        set_skill("strike", 150);
        set_skill("sword", 150);
        set_skill("staff", 150);
        set_skill("finger", 120);
        set_skill("finger", 150);
        set_skill("kurong-changong", 280);
        set_skill("tiannan-step", 150);
        set_skill("jinyu-quan", 130);
        set_skill("wuluo-zhang", 150);
        set_skill("duanjia-sword", 280);
        set_skill("yiyang-zhi", 280);
//        set_skill("sun-finger", 100);
        set_skill("literate", 100);

        map_skill("unarmed", "yiyang-zhi");
        map_skill("force", "kurong-changong");
        map_skill("dodge", "tiannan-step");
        map_skill("finger", "yiyang-zhi");
        map_skill("cuff", "jinyu-quan");
        map_skill("strike", "wuluo-zhang");
        map_skill("parry", "yiyang-zhi");
        map_skill("sword", "duanjia-sword");
        map_skill("staff", "duanjia-sword");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        prepare_skill("cuff", "jinyu-quan");
        prepare_skill("strike", "wuluo-zhang");
        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "finger.sandie" :),
                (: perform_action, "finger.sandie" :),
                (: perform_action, "sword.fenglei" :),
                (: perform_action, "sword.fenglei" :),
                (: perform_action, "sword.fenglei" :),
                (: perform_action, "sword.jingtian" :),
                (: perform_action, "sword.feilong" :),               
                (: exert_function, "powerup" :),
                (: exert_function, "ku" :),
                (: exert_function, "rong" :),
        }) );

        setup();
        carry_object("/clone/weapon/changjian")->wield();
        carry_object("/clone/misc/cloth")->wear();
        add_money("silver", 50);

        create_family("大理段家",18,"镇南王");
}

void attempt_apprentice(object ob)
{
        string oldtitle;
        oldtitle = ob->query("title");
        if ((int)ob->query_skill("kurong-changong",1) < 100 )
        {
                command("say 你的本门内功心法太低了,还是努努力先提高一下吧。");
                return;
        }
        if ((int)ob->query("shen") < 10000  ) {
                command("say 我大理段氏向来行侠仗义,您请回吧!");
                return;
        }
        oldtitle = ob->query("title");
        if (strsrch(oldtitle, "大理镇南王府") >= 0)
        {
                command("say 很好,既然入我门来就得忠心为主。");
                command("recruit " + ob->query("id"));
                ob ->set("title", oldtitle);
        }
        else
        {
                command("say 你是何人,如此大胆,假冒我府中厮仆!");
                return;
        }
}


d\biwu\du-e.c

// due.c

inherit NPC;
inherit F_MASTER;

string ask_me();

void create()
{
        set_name("渡厄", ({ "du e", "e" }) );
        set("title", "少林长老");
        set("gender", "男性");
        set("age", 90);
        set("long",
                "这是一个面颊深陷,瘦骨零丁的老僧,他脸色枯黄,如同一段枯木。\n");

        set("attitude", "peaceful");
        set("class", "bonze");
        set("combat_exp", 4000000);
        set("score", 200000);

        set("str", 30);
        set("int", 30);
        set("cor", 30);
        set("cps", 30);
        set("con", 30);

        set("qi", 4000);
        set("max_qi", 2000);
        set("neili", 4000);
        set("max_neili", 2000);
        set("jiali", 90);

        create_family("少林派", 35, "弟子");
        assign_apprentice("弟子", 0);

        set_skill("force", 150);
        set_skill("whip", 170);
        set_skill("parry", 180);
        set_skill("dodge", 180);

        set_skill("hunyuan-yiqi", 150);
        set_skill("riyue-bian", 190);
        set_skill("shaolin-shenfa", 180);

        map_skill("force", "hunyuan-yiqi");
        map_skill("whip",  "riyue-bian");
        map_skill("parry", "riyue-bian");
        map_skill("dodge", "shaolin-shenfa");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

        setup();
        carry_object("/d/shaolin/obj/changbian")->wield();
}


d\biwu\du-jie.c

// dujie.c

inherit NPC;
inherit F_MASTER;

string ask_me();

void create()
{
        set_name("渡劫", ({ "du-jie", "jie" }) );
        set("title", "少林长老");
        set("gender", "男性");
        set("age", 90);
        set("long",
                "这是一个面颊深陷,瘦骨零丁的老僧,他脸色惨白,象一张纸一样。\n");

        set("attitude", "peaceful");
        set("class", "bonze");
        set("combat_exp", 2500000);
        set("score", 200000);

        set("str", 30);
        set("int", 30);
        set("cor", 30);
        set("cps", 30);
        set("con", 30);

        set("qi", 4000);
        set("max_qi", 2000);
        set("neili", 4000);
        set("max_neili", 2000);
        set("jiali", 90);

        create_family("少林派", 35, "弟子");
        assign_apprentice("弟子", 0);

        set_skill("force", 150);
        set_skill("whip", 180);
        set_skill("parry", 180);
        set_skill("dodge", 180);

        set_skill("hunyuan-yiqi", 150);
        set_skill("riyue-bian", 180);
        set_skill("shaolin-shenfa", 180);

        map_skill("force", "hunyuan-yiqi");
        map_skill("whip",  "riyue-bian");
        map_skill("parry", "riyue-bian");
        map_skill("dodge", "shaolin-shenfa");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

        setup();
        carry_object("/d/shaolin/obj/changbian")->wield();
}


d\biwu\du-nan.c

// dunan.c

inherit NPC;
inherit F_MASTER;

string ask_me();

void create()
{
        set_name("渡难", ({ "du-nan", "nan" }) );
        set("title", "少林长老");
        set("gender", "男性");
        set("age", 90);
        set("long",
                "这是一个面颊深陷,瘦骨零丁的老僧,他脸色漆黑,象是生铁铸成。\n");

        set("attitude", "peaceful");
        set("class", "bonze");
        set("combat_exp", 2500000);
        set("score", 200000);

        set("str", 30);
        set("int", 30);
        set("cor", 30);
        set("cps", 30);
        set("con", 30);

        set("qi", 4000);
        set("max_qi", 2000);
        set("neili", 4000);
        set("max_neili", 2000);
        set("jiali", 80);

        create_family("少林派", 35, "弟子");
        assign_apprentice("弟子", 0);

        set_skill("force", 150);
        set_skill("whip", 160);
        set_skill("parry", 180);
        set_skill("dodge", 180);

        set_skill("hunyuan-yiqi", 150);
        set_skill("riyue-bian", 200);
        set_skill("shaolin-shenfa", 180);

        map_skill("force", "hunyuan-yiqi");
        map_skill("whip",  "riyue-bian");
        map_skill("parry", "riyue-bian");
        map_skill("dodge", "shaolin-shenfa");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        setup();
        carry_object("/d/shaolin/obj/changbian")->wield();
}

[ 本帖最后由 leotang111 于 2007-6-19 22:18 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-19 22:18 | 显示全部楼层
d\biwu\fawang.c

// /kungfu/class/xueshan/fawang.c  金轮法王
// by secret

#include <ansi.h>

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("金轮法王", ({ "jinlun fawang", "fawang", "fawang" }));
        set("long",@LONG
他是雪山寺的护教法王。在雪山寺的地位仅次与掌门人鸠摩智。
身穿一件紫红袈裟,头带僧帽。
LONG
        );
        set("title", HIY "法王" NOR);
        set("gender", "男性");
        set("age", 50);
        set("attitude", "peaceful");
        set("shen_type", -1);
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
        set("max_qi", 5000);
        set("max_jing", 5000);
        set("neili", 14500);
        set("max_neili", 14500);
        set("jiali", 100);
        set("combat_exp", 2500000);
        set("score", 200000);

        set_skill("necromancy", 100);
        set_skill("force", 200);
        set_skill("longxiang", 300);
        set_skill("dodge", 200);
        set_skill("shenkong-xing", 300);
        set_skill("unarmed", 200);
        set_skill("yujiamu-quan", 300);
        set_skill("parry", 220);
        set_skill("cuff", 200);
        set_skill("sword", 100);
        set_skill("mingwang-jian", 250);
        set_skill("lamaism", 250);
        set_skill("literate", 200);
        set_skill("hammer", 200);
        set_skill("riyue-lun", 300);

        map_skill("force", "longxiang");
        map_skill("dodge", "shenkong-xing");
        map_skill("unarmed", "yujiamu-quan");
        map_skill("parry", "riyue-lun");
        map_skill("sword", "mingwang-jian");
        map_skill("hammer", "riyue-lun");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        set("chat_chance_combat", 90);  
        set("chat_msg_combat", ({
                (: perform_action, "hammer.wulundafa" :),
                (: perform_action, "hammer.wulundafa" :),
                (: perform_action, "dodge.tianmaxingkong" :),
                (: perform_action, "dodge.tianmaxingkong" :),
        }) );

        create_family("雪山寺", 2, "护教法王");
        set("class", "bonze");

        setup();
        carry_object("/d/xueshan/obj/jinlun")->wield();
        carry_object("/d/xueshan/obj/p-jiasha")->wear();
        carry_object("/d/xueshan/obj/sengmao")->wear();
        add_money("gold",1);
}

void attempt_apprentice(object ob)
{

        if ((string)ob->query("gender") != "男性") {
                command("say 修习密宗内功需要纯阳之体。");
                command("say 这位" + RANK_D->query_respect(ob) +
                        "还是请回吧!");
                return;
        }

        if ((string)ob->query("class") != "bonze") {
                command("say 我佛门的清规戒律甚多。");
                command("say 这位" + RANK_D->query_respect(ob) +
                        "还是请回吧!");
                return;
        }

        if ((string)ob->query("family/family_name") != "雪山寺")        {
                command("say 这位" + RANK_D->query_respect(ob) +
                        "既非本寺弟子,还是请回吧!");
                return;
                  }

        if ((int)ob->query_skill("lamaism", 1) < 80) {
                command("say 入我雪山寺,修习密宗心法是首要的。");
                command("say 这位" + RANK_D->query_respect(ob) +
                        "是否还应该多多钻研本门的心法?");
                return;
        }

        command("smile");
        command("nod");
        command("say 你就随我学习佛法吧!");
        command("recruit " + ob->query("id"));

        ob->set("title", HIY"活佛"NOR);
}

d\biwu\feng.c

// feng.c 风清扬

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("风清扬", ({ "feng qingyang", "feng", "qingyang" }));
        set("title", "华山第十二代剑宗长老");
        set("long",
"这便是当年名震江湖的华山名宿风清扬。他身著青袍,神气抑郁脸如金纸。
身材瘦长,眉宇间一直笼罩着一股淡淡的忧伤神色,显然对当年的剑宗气宗
之争一直难以忘怀。\n");
        set("gender", "男性");
        set("age", 68);
        set("attitude", "peaceful");
        set("shen_type", 1);
        set("str", 30);
        set("int", 40);
        set("con", 30);
        set("dex", 30);
       
        set("qi", 9800);
        set("max_qi", 9800);
        set("jing", 8600);
        set("max_jing", 8600);
        set("neili", 24400);
        set("max_neili", 24400);
        set("jiali", 200);

        set("combat_exp", 3050000);
        set("score", 200000);

        set_skill("cuff", 200);
        set_skill("force", 180);
        set_skill("blade", 200);
        set_skill("dodge", 180);
        set_skill("parry", 200);
        set_skill("sword", 320);
        set_skill("strike", 200);
        set_skill("zixia-shengong", 300);
        set_skill("poyu-quan", 300);
        set_skill("fanliangyi-dao", 300);
        set_skill("huashan-sword", 300);
        set_skill("hunyuan-zhang", 300);
        set_skill("lonely-sword", 320);
        set_skill("feiyan-huixiang",300);
        set_skill("literate", 200);
        set_skill("zhengqijue",300);
        
        map_skill("cuff", "poyu-quan");
        map_skill("force", "zixia-shengong");
        map_skill("dodge", "feiyan-huixiang");
        map_skill("parry", "lonely-sword");
        map_skill("sword", "lonely-sword");
        map_skill("blade", "fanliangyi-dao");
        map_skill("strike", "hunyuan-zhang");

        create_family("华山派", 12, "弟子");

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "sword.jiushi" :),
                (: perform_action, "sword.pozhao" :),
                (: perform_action, "sword.poqi" :),
                (: perform_action, "sword.pozhang" :),
                (: perform_action, "sword.pojian" :),
                (: perform_action, "sword.podao" :),
                (: perform_action, "sword.zongjue" :),
        }) );

        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

        setup();
        carry_object("/clone/misc/cloth")->wear();
        carry_object("/clone/weapon/changjian")->wield();
}

void attempt_apprentice(object ob)
{
        int student_num;
        string temp;
        string line;

        if ((int)ob->query("betrayer") )
        {
                command("say 依我看" + RANK_D->query_respect(ob) + "好象拜过别派的师傅?想来你也不适合学独孤九剑?");
                return;
        }
        if ((int)ob->query("mud_age") - (int)ob->query("feng_dietime") < 259200 )
        {
                command("say " + RANK_D->query_respect(ob) + "你好象原来是我的徒弟麽?");
                return;
        }

        temp = read_file("/data/FENG", 1, 1);
        student_num = atoi(temp);

        line = "风清扬说道:“我现在共有" + temp + "个徒弟。”\n";
        write(line);

//        if ( student_num == 10)
//        {
//                command("say 你来晚了,我已经收了十个徒弟了。");
//                return;
//        }

        if ((string)ob->query("family/family_name") != "华山派")
        {
                command("say " + RANK_D->query_respect(ob) + "既然已有名师指点,何必又来拜老朽呢?");
                return;
        }

        if (((int)ob->query_skill("sword",1) < 80) || ((int)ob->query_skill("huashan-sword",1) < 80))
        {
                command("say 我看" + RANK_D->query_respect(ob) + "的华山剑法还没学到家吧。");
                return;
        }
        if (((int)ob->query_skill("force",1) < 80) || ((int)ob->query_skill("zixia-shengong",1) < 80))
        {
                command("say 我看" + RANK_D->query_respect(ob) + "的紫霞神功还没学到家吧。");
                return;
        }
        if (((int)ob->query_skill("dodge",1) < 80) || ((int)ob->query_skill("feiyan-huixiang",1) < 80))
        {
                command("say 我看" + RANK_D->query_respect(ob) + "的飞燕回翔还没学到家吧。");
                return;
        }
        if ( (int)ob->query_skill("literate",1) < 100)
        {
                command("say 我看" + RANK_D->query_respect(ob) + "的读书识字还没学到家吧。");
                return;
        }

        if ((int)ob->query("shen") < 50000)
        {
                command("say 我华山派乃是堂堂名门正派,对弟子要求极严。");
                command("say 在德行方面," + RANK_D->query_respect(ob) +
                        "是否还做得不够?");
                return;
        }

        if ((int)ob->query_int() < 20)
        {
                command("say 依我看" + RANK_D->query_respect(ob) + "的资质似乎不适合学我独孤九剑?");
                return;
        }

        command("say 好吧,我就收下你了。");
        command("recruit " + ob->query("id"));
        if((string)ob->query("class") != "swordsman")
                ob->set("class", "swordsman");

        student_num++;
//        temp = itoa(student_num);
        if(student_num == 1)
                temp = "1";
        else if(student_num == 2)
                temp = "2";
        else if(student_num == 3)
                temp = "3";
        else if(student_num == 4)
                temp = "4";
        else if(student_num == 5)
                temp = "5";
        else if(student_num == 6)
                temp = "6";
        else if(student_num == 7)
                temp = "7";
        else if(student_num == 8)
                temp = "8";
        else if(student_num == 9)
                temp = "9";
        else if(student_num == 10)
                temp = "10";
        write_file("/data/FENG", temp, 1);
}


d\biwu\feng-buping.c

// feng-buping.c  封不平
inherit NPC;
inherit F_MASTER;
#include <ansi.h>

void create()
{
        set_name("封不平", ({ "feng buping", "feng" }) );
        set("nickname", YEL"狂风快剑"NOR);
        set("gender", "男性");
        set("class", "swordsman");
        set("title", "华山剑宗第十三代弟子");
        set("age", 45);
        set("long",
                "封不平是华山剑宗第一高手,满脸戾气一张黄焦焦的面皮。\n");
        set("attitude", "peaceful");
        set("str", 30);
        set("con", 30);
        set("dex", 30);
        set("int", 28);

        set("neili", 3000);
        set("max_neili", 3000);
        set("jiali", 100);
        set("max_qi",3000);
        set("max_jing",10000);

        set("combat_exp", 6000000);
        set("shen", -200000);
        set("apprentice_available", 3);

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: exert_function, "powerup" :),
                (: perform_action, "sword.feilong" :),
                (: perform_action, "sword.feilong" :),
        }) );

        set_skill("unarmed", 200);
        set_skill("sword", 200);
        set_skill("force", 200);
        set_skill("parry", 200);
        set_skill("dodge", 200);
        set_skill("literate", 100);
        set_skill("huashan-sword", 200);
        set_skill("kuangfeng-jian", 200);
        set_skill("huashan-neigong", 200);
        set_skill("huashan-ken", 200);
        set_skill("huashan-zhangfa", 200);
        set_skill("huashan-shenfa", 200);

        map_skill("sword", "kuangfeng-jian");
        map_skill("parry", "kuangfeng-jian");
        map_skill("force", "huashan-neigong");
        map_skill("unarmed", "huashan-zhangfa");
        map_skill("dodge", "huashan-shenfa");
        set_temp("apply/attack", 300);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 350);
        create_family("华山派", 13, "弟子");
        setup();

        carry_object("/clone/weapon/changjian")->wield();
        carry_object("/clone/cloth/cloth")->wear();
}

void attempt_apprentice(object ob)
{
        if( query("apprentice_available") ) {
                if( find_call_out("do_recruit") != -1 )
                        command("say 慢著,一个一个来。");
                else
                        call_out("do_recruit", 2, ob);
        } else {
                command("say 老夫今天已经收了三个弟子,不想再收徒了。");
        }
}

void do_recruit(object ob)
{
        if( (int)ob->query("int") < 20 )
                command("say 我华山派以剑法为主,依我看"+RANK_D->query_respect(ob)+"不适合于学剑法。");
        else {
                command("say 好,好,好,很好。");
                command("recruit " + ob->query("id") );
        }
}

int recruit_apprentice(object ob)
{
        if( ::recruit_apprentice(ob) )
        ob->set("title", "华山剑宗第十四代弟子");
//                ob->set("class", "huashan");
        add("apprentice_availavble", -1);
}
void reset()
{
//        delete_temp("learned");
        set("apprentice_available", 3);
}

d\biwu\figure.c

inherit NPC;
//inherit F_SKILL;

void create()
{
        set_name("无常", ({ "figure", "wuchang" }));
        set("title", "黑衣人");
        set("gender", "男性");
        set("age", 43);
        set("str", 20);
        set("dex", 20);
        set("long", "一个全身穿黑衣的家伙。\n");
        set("combat_exp", 1000000);
        set("shen_type", 0);
        set("attitude", "heroism");

        set_skill("unarmed", 50);
        set_skill("force", 50);
        set_skill("sword", 50);
        set_skill("dodge", 50);
        set_skill("parry", 50);
        set("max_qi",500);
        set("qi",500);
        set_temp("apply/attack", 50);
        set_temp("apply/defense", 50);
        set_temp("apply/armor", 50);
        set_temp("apply/damage", 15);

        set("neili", 500);
        set("max_neili", 500);
        set("jiali", 10);

        setup();
        carry_object(__DIR__"obj/sword")->wield();
        carry_object("/clone/misc/cloth")->wear();
}

void init()
{
        object ob;
        ::init();
        if( interactive(ob = this_player()) ) {
                kill_ob(ob);
        }
}

d\biwu\gangzhang.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIG"魔杖"NOR, ({ "mostaff" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "根");
                set("long", "这是一根象征邪恶的魔杖,上面刻着“道高一尺,魔高一丈”。你可以召唤(alert)护卫来保护自己。\n");
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("no_give",1);
                set("no_steal",1);
                set("armor_prop/intelligence",5);
                set("armor_prop/strength",5);
                set("armor_prop/dexterity",5);
                set("armor_prop/karay",5);
                set("armor_prop/percao",5);
                set("armor_prop/constitution",5);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
                set("wield_msg", "$N抽出一根$n握在手中。\n");
                set("unwield_msg", "$N将手中的$n插回腰间。\n");
        }
  
        setup();
}

d\biwu\hole1.c

inherit ROOM;
string *names=({
        __DIR__"hole2",
        __DIR__"hole5",
        __DIR__"hole6",
        __DIR__"hole5",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );
       

        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}


d\biwu\hole2.c

inherit ROOM;
string *names=({
        __DIR__"hole5",
        __DIR__"hole7",
        __DIR__"hole3",
        __DIR__"hole6",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );

        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}

d\biwu\hole3.c

inherit ROOM;
string *names=({
        __DIR__"hole5",
        __DIR__"hole6",
        __DIR__"hole4",
        __DIR__"hole5",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );

        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}

d\biwu\hole4.c


inherit ROOM;
string *names=({
        __DIR__"hole6",
        __DIR__"hole2",
        __DIR__"a1",
        __DIR__"b1",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。但这里远处似乎透过一点灯光。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );

        setup();
}


void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}



d\biwu\hole5.c


inherit ROOM;
string *names=({
        __DIR__"hole5",
        __DIR__"hole7",
        __DIR__"hole6",
        __DIR__"hole5",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );

        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}


d\biwu\hole6.c


inherit ROOM;
string *names=({
        __DIR__"hole5",
        __DIR__"hole1",
        __DIR__"hole6",
        __DIR__"hole7",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );

        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}


d\biwu\hole7.c


inherit ROOM;
string *names=({
        __DIR__"hole7",
        __DIR__"hole5",
        __DIR__"hole1",
        __DIR__"hole6",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"figure" : 1,
        ] ) );

        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}


d\biwu\hole.c


inherit ROOM;
string *names=({
        __DIR__"hole7",
        __DIR__"hole1",
        __DIR__"hole5",
        __DIR__"hole6",
} );
void create()
{
        set("short", "洞穴");
        set("long", @LONG
山岩下秘洞,曲折深邃,有如诸葛武侯之八卦迷阵一般,幽谜繁复处尤有过之。
越是深入越是阴湿黝暗,到后来竟已难见五指。
LONG
        );
        set("objects",([
                __DIR__"xiaojie" : 1,
        ] ) );
       
        setup();
}
void reset()
{
        int i,j;
        string temp;
        ::reset();
        for (i=0;i<=3;i++)
        {
                j=random(4);
                temp=names[j];
                names[j]=names;
                names=names[j];
                names=temp;
        }
        set("exits", ([
                "north" : names[0],
                "south" : names[1],
                "east" : names[2],
                "west" : names[3],
        ]));
}


d\biwu\hong.c

// hong.c 洪安通

#include <ansi.h>;
inherit NPC;
inherit F_UNIQUE;
inherit F_MASTER;

void create()
{
        set_name("洪安通", ({ "hong antong", "hong" }));
        set("title",  HIY"神龙教"NOR"教主" );
        set("nickname", HIR "永享仙福" NOR);
        set("long", "他就是武功盖世、令江湖人等谈之色变的神龙教教主洪安通。\n");
        set("gender", "男性");
        set("age", 50);
        set("attitude", "friendly");
        set("shen_type", -1);
        set("str", 35);
        set("int", 30);
        set("con", 30);
        set("dex", 38);
       
        set("max_qi", 4000);
        set("eff_qi", 4000);
        set("max_jing", 3000);
        set("eff_jing", 3000);
        set("neili", 12000);
        set("max_neili", 12000);
        set("jiali", 100);
        set("combat_exp", 2500000);
        set("score", 400000);

        set_skill("force", 200);
        set_skill("shenlong-xinfa", 300);
        set_skill("dodge", 180);
        set_skill("yixingbu", 300);
        set_skill("hand", 200);
        set_skill("shenlong-bashi", 300);
        set_skill("strike", 200);
        set_skill("huagu-mianzhang", 300);
        set_skill("parry", 150);
        set_skill("staff", 200);
        set_skill("sword", 200);
        set_skill("zhaosheshu", 300);
        set_skill("yangsheshu", 300);
        set_skill("shedao-qigong", 300);
        set_skill("literate", 190);

        map_skill("force", "shenlong-xinfa");
        map_skill("dodge", "yixingbu");
        map_skill("hand", "shenlong-bashi");
        map_skill("strike", "huagu-mianzhang");
        map_skill("parry", "shedao-bashi");
        map_skill("staff", "shedao-qigong");
        prepare_skill("strike", "huagu-mianzhang");
        prepare_skill("hand", "shenlong-bashi");

        create_family("神龙教",1,"教主");

        set("inquiry", ([
                "神龙教" :  "\n一般人是入不了我神龙教的(join shenlongjiao)。\n",
                "入教" :  "\n一般人是入不了我神龙教的(join shenlongjiao)。\n",
                "洪安通" :  "\n你不想活了是不是?\n",
                "教主" :  "\n我就是神龙教教主。\n",
                "口号" : "\n万年不老!永享仙福!寿与天齐!文武仁圣!\n",
       ]) );
        set("chat_chance_combat", 50);  
        set("chat_msg_combat", ({
                (: command("smile") :),
                (: command("haha") :),
                (: command("chat 凭你这" + RANK_D->query_rude(this_player())+",也敢在太岁爷头上动土?\n") :),
                (: command("say 你活得不耐烦了找死啊?\n") :),
                (: perform_action, "staff.chang" :),
                (: perform_action, "staff.chang" :),
                (: perform_action, "staff.chang2" :),
                (: perform_action, "staff.chang2" :),
                (: perform_action, "staff.chang3" :),
                (: perform_action, "staff.chang3" :),
                (: perform_action, "strike.hua" :),
                (: perform_action, "hand.bada" :),
                (: perform_action, "hand.shenlongtuwu" :),
                (: perform_action, "hand.shenlongtuwu" :),
                (: perform_action, "hand.yingxiong" :),               
                (: perform_action, "hand.yingxiong" :),               
                (: exert_function, "recover" :),
                (: exert_function, "recover" :),
                      }) );
        setup();
        carry_object("/clone/weapon/gangzhang")->wield();
        carry_object("/clone/misc/cloth")->wear();
        add_money("silver", 50);
}

int recognize_apprentice(object me)
{
        if( me->query("learnhong")) return 1;
        if ((int)me->query("shen") > -1000) {
                command("say 我越看你越象白道派来卧底的。");
                        this_object()->set_leader(me);
                        remove_call_out("kill_ob");
                        call_out("kill_ob", 1, me);
                return 0;
        }
        if( me->query_temp("pending/flatter") ) {
                command("say 你如此不把我放在眼里,我又怎能容你?!");
                        this_object()->set_leader(me);
                        remove_call_out("kill_ob");
                        call_out("kill_ob", 1, me);
                return 0;
        } else {
                command("say 我洪安通比起古往今来的圣人怎么样啊?");
                message_vision("洪安通微闭双眼,手捻长须,一付等人拍马(flatter)的样子。\n",
                this_player());
                me->set_temp("pending/flatter", 1);
        return 0;
        }
}

int do_flatter(string arg)
{
        if( !this_player()->query_temp("pending/flatter") )
                return 0;
        if( !arg ) return notify_fail("你说我什么?\n");
        this_player()->set_temp("pending/flatter", 0);
        message_vision("$N大声说道:" + arg + "\n", this_player());
        if( strsrch(arg, "万年不老") >=0 && (strsrch(arg, "永享仙福") >=0
         || strsrch(arg, "寿与天齐") >=0 || strsrch(arg, "文武仁圣") >=0 )) {
                command("smile");
                command("say 这还差不多。\n");
                this_player()->set("learnhong", 1);
                command("recruit " + this_player()->query("id"));
        } else {
                command("say 你如此不把我放在眼里,我又怎能容你?!");
                        this_object()->set_leader(this_player());
                        remove_call_out("kill_ob");
                        call_out("kill_ob", 1, this_player());
        }
        return 1;
}

// 万年不老,永享仙福,寿与天齐,文武仁圣

void die()
{
message_vision("\n$N奇道:“咦,居然有人能杀了我,....”说完睁着两眼倒地死了。\n", this_object());
        ::die();
}

void init()
{
        object ob;

        ::init();

        if( interactive(ob = this_player()) && !is_fighting() ) {
                remove_call_out("greeting");
                call_out("greeting", 50, ob);
        }
        add_action("do_flatter", "flatter");
}

void greeting(object ob)
{
        object obj;
        if (interactive(ob))
        {
        if (obj = present("usedgao", ob))         
           set("combat_exp",500000);
           set("qi",10);
           set("jing",10);
        }
        return;
}

void attempt_apprentice(object ob)
{
    if (ob->query("party/party_name") != HIY "神龙教" NOR ) {
        command("say 你不是本教教众, 想来找死啊!");
        return;
    }
    if ((int)ob->query_skill("shenlong-xinfa",1) < 60 ) {
        command("say 你的本门内功心法太低了,还是努努力先提高一下吧!");
        return;
    }
    if ((int)ob->query_skill("shedao-qigong",1) < 60 ) {
        command("say 你的本门杖法太低了,还是努努力先提高一下吧!");
        return;
    }
    if ((int)ob->query("shen") > -10000  ) {
        command("say 我神龙教与世隔绝,向来不与您这种白道人物打交道,您请回吧!");
        return;
    }
    command("say 很好,很好。");
    command("recruit " + ob->query("id"));
}

[ 本帖最后由 leotang111 于 2007-6-20 02:02 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-20 02:03 | 显示全部楼层
d\biwu\hongantong.c

// hong.c 洪安通

#include <ansi.h>;
inherit NPC;
inherit F_UNIQUE;
inherit F_MASTER;

void create()
{
        set_name("洪安通", ({ "hong antong", "hong" }));
        set("title",  HIY"神龙教"NOR"教主" );
        set("nickname", HIR "永享仙福" NOR);
        set("long", "他就是武功盖世、令江湖人等谈之色变的神龙教教主洪安通。\n");
        set("gender", "男性");
        set("age", 50);
        set("attitude", "peaceful");
        set("shen_type", -1);
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
       
        set("max_qi", 10000);
        set("max_jing", 10000);
        set("neili", 3000);
        set("max_neili", 3000);
        set("jiali", 100);
        set("combat_exp", 6000000);
        set("score", 400000);

       set_skill("force", 200);
        set_skill("shenlong-xinfa", 200);
       set_skill("dodge", 200);
        set_skill("yixingbu",200);
       set_skill("hand", 200);
        set_skill("shenlong-bashi", 200);
       set_skill("strike", 200);
        set_skill("huagu-mianzhang", 200);
       set_skill("parry", 200);
       set_skill("staff", 200);
       set_skill("sword", 200);
        set_skill("shedao-qigong", 200);
        set_skill("literate", 90);

        map_skill("force", "shenlong-xinfa");
        map_skill("dodge", "yixingbu");
        map_skill("hand", "shenlong-bashi");
        map_skill("strike", "huagu-mianzhang");
        map_skill("parry", "shedao-qigong");
        map_skill("staff", "shedao-qigong");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        prepare_skill("strike", "huagu-mianzhang");
        prepare_skill("hand", "shenlong-bashi");

        create_family("神龙教",1,"教主");

        set("inquiry", ([
                "神龙教" :  "\n一般人是入不了我神龙教的(join shenlongjiao)。\n",
                "入教" :  "\n一般人是入不了我神龙教的(join shenlongjiao)。\n",
                "洪安通" :  "\n你不想活了是不是?\n",
                "教主" :  "\n我就是神龙教教主。\n",
                "口号" : "\n万年不老!永享仙福!寿与天齐!文武仁圣!\n",
       ]) );
        set("chat_chance_combat", 80);  
        set("chat_msg_combat", ({
                (: command("smile") :),
                (: command("haha") :),
                (: command("chat 凭你这" + RANK_D->query_rude(this_player())+",也敢在太岁爷头上动土?\n") :),
                (: command("say 你活得不耐烦了找死啊?\n") :),
                (: perform_action, "staff.chang" :),
                (: perform_action, "staff.chang" :),
                (: perform_action, "staff.chang" :),
                (: perform_action, "staff.chang2" :),
                (: perform_action, "staff.chang2" :),
                (: perform_action, "staff.chang2" :),
                (: perform_action, "staff.chang3" :),
                (: perform_action, "staff.chang3" :),
                (: perform_action, "staff.chang3" :),
                (: exert_function, "recover" :),
                (: exert_function, "recover" :),
                      }) );
        setup();
        carry_object("/clone/weapon/gangzhang")->wield();
        carry_object("/clone/misc/cloth")->wear();
        add_money("silver", 50);
}

int recognize_apprentice(object me)
{
        if( me->query("learnhong")) return 1;
        if ((int)me->query("shen") > -1000) {
                command("say 我越看你越象白道派来卧底的。");
                        this_object()->set_leader(me);
                        remove_call_out("kill_ob");
                        call_out("kill_ob", 1, me);
                return 0;
        }
        if( me->query_temp("pending/flatter") ) {
                command("say 你如此不把我放在眼里,我又怎能容你?!");
                        this_object()->set_leader(me);
                        remove_call_out("kill_ob");
                        call_out("kill_ob", 1, me);
                return 0;
        } else {
                command("say 我洪安通比起古往今来的圣人怎么样啊?");
                message_vision("洪安通微闭双眼,手捻长须,一付等人拍马(flatter)的样子。\n",
                this_player());
                me->set_temp("pending/flatter", 1);
        return 0;
        }
}

int do_flatter(string arg)
{
        if( !this_player()->query_temp("pending/flatter") )
                return 0;
        if( !arg ) return notify_fail("你说我什么?\n");
        this_player()->set_temp("pending/flatter", 0);
        message_vision("$N大声说道:" + arg + "\n", this_player());
        if( strsrch(arg, "万年不老") >=0 && (strsrch(arg, "永享仙福") >=0
         || strsrch(arg, "寿与天齐") >=0 || strsrch(arg, "文武仁圣") >=0 )) {
                command("smile");
                command("say 这还差不多。\n");
                this_player()->set("learnhong", 1);
                command("recruit " + this_player()->query("id"));
        } else {
                command("say 你如此不把我放在眼里,我又怎能容你?!");
                        this_object()->set_leader(this_player());
                        remove_call_out("kill_ob");
                        call_out("kill_ob", 1, this_player());
        }
        return 1;
}

// 万年不老,永享仙福,寿与天齐,文武仁圣

void die()
{
message_vision("\n$N奇道:“咦,居然有人能杀了我,....”说完睁着两眼倒地死了。\n", this_object());
        ::die();
}

void init()
{
        object ob;

        ::init();

        if( interactive(ob = this_player()) && !is_fighting() ) {
                remove_call_out("greeting");
                call_out("greeting", 50, ob);
        }
        add_action("do_flatter", "flatter");
}

void greeting(object ob)
{
        object obj;
        if (interactive(ob))
        {
        if (obj = present("usedgao", ob))         
           set("combat_exp",500000);
           set("qi",10);
           set("jing",10);
        }
        return;
}

void attempt_apprentice(object ob)
{
    if (ob->query("party/party_name") != HIY "神龙教" NOR ) {
        command("say 你不是本教教众, 想来找死啊!");
        return;
    }
    if ((int)ob->query_skill("shenlong-xinfa",1) < 60 ) {
        command("say 你的本门内功心法太低了,还是努努力先提高一下吧!");
        return;
    }
    if ((int)ob->query_skill("shedao-qigong",1) < 60 ) {
        command("say 你的本门杖法太低了,还是努努力先提高一下吧!");
        return;
    }
    if ((int)ob->query("shen") > -10000  ) {
        command("say 我神龙教与世隔绝,向来不与您这种白道人物打交道,您请回吧!");
        return;
    }
    command("say 很好,很好。");
    command("recruit " + ob->query("id"));
}



d\biwu\huang.c

#include <ansi.h>
inherit NPC;
inherit F_MASTER;

void consider();
string ask_me();

void create()
{
    set_name("黄药师", ({"huang yaoshi", "huang", "yaoshi"}));
    set("title", "桃花岛主");
    set("nickname", HIY "东邪" NOR );
    set("gender", "男性");
    set("age", 42);
    set("long",
        "他就是桃花岛主。行事好恶全由己心,因此被人称作「东邪」。\n");
    set("attitude", "peaceful");
    set("class", "scholar");
       
    set("str", 21);
    set("int", 30);
    set("con", 26);
    set("dex", 30);

    set("chat_chance", 1);
    set("chat_msg", ({
        "黄药师叹了口气道:“唉 …… 蓉儿这苦命的孩子,从小就没了娘 ……”\n",
        "黄药师低头沉思,悠然不语。\n",
    }));
    set("inquiry", ([
        "黄蓉"     : "你敢直称我女儿的闺名? \n",
        "九阴真经" : "如果你能帮我取得真经上册,我一定重重谢你。\n",
    ]));

    set("qi", 5000);
    set("max_qi", 5000);
    set("jing", 3000);
    set("max_jing", 3000);
    set("neili", 13500);
    set("max_neili", 13500);
    set("jiali", 100);

    set("book_count", 1);
    set("combat_exp", 2500000);
    set("score", 0);
         
    set_skill("leg", 200);             // 基本内功
    set_skill("force", 200);             // 基本内功
    set_skill("bibo-shengong", 300);     // 碧波神功
    set_skill("claw", 200);              // 基本爪法
    set_skill("hand", 200);              // 基本手法
    set_skill("finger", 200);            // 基本指法
    set_skill("tanzhi-shentong", 300);   // 弹指神通
    set_skill("unarmed", 200);           // 基本拳脚
    set_skill("strike", 200);            // 基本拳脚
    set_skill("luoying-zhang", 300);     // 落英神剑掌
    set_skill("xuanfeng-leg", 300);      // 旋风扫叶腿
    set_skill("dodge", 200);             // 基本躲闪
    set_skill("anying-fuxiang", 300);    // 暗影浮香
    set_skill("parry", 200);             // 基本招架
    set_skill("sword", 200);             // 基本剑法
    set_skill("luoying-shenjian", 300);  // 落英神剑
    set_skill("yuxiao-jian", 300);       // 玉箫剑法
    set_skill("lanhua-shou", 300);       // 兰花拂穴手
    set_skill("qimen-wuxing",350);       // 奇门五行
    set_skill("count",150);              // 阴阳八卦
    set_skill("literate",250);           // 读书识字
       
    map_skill("force"  , "bibo-shengong");
    map_skill("finger" , "tanzhi-shentong");
    map_skill("hand"   , "lanhua-shou");
    map_skill("unarmed", "xuanfeng-leg");
    map_skill("leg" , "xuanfeng-leg");
    map_skill("dodge"  , "anying-fuxiang");
    map_skill("parry"  , "yuxiao-jian");
    map_skill("sword"  , "yuxiao-jian");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
  set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: exert_function, "play" :),
                (: exert_function, "roar" :),
                (: perform_action, "dodge.taohaimangmang" :),
                (: perform_action, "hand.fuxue" :),
                (: perform_action, "sword.taohuajian" :),
                (: perform_action, "sword.taohuajian" :),
                (: perform_action, "sword.tianwai" :),               
                (: perform_action, "sword.yuxiao" :),               
                (: perform_action, "strike.shenjian" :),               
                (: perform_action, "strike.xuan" :),               
                (: perform_action, "leg.kuangfeng" :),               
                (: perform_action, "leg.kuangfeng" :),               
                (: perform_action, "finger.huayu" :),               
                (: perform_action, "finger.jinglei" :),               
                (: perform_action, "finger.lingxi" :),               
        }));
    set("inquiry", ([
        "秘籍" : (: ask_me :),
        "旋风扫叶腿法" : (: ask_me :),
    ]));


    create_family("桃花岛", 1, "岛主");
    setup();
       
    carry_object(__DIR__"obj/yuxiao")->wield();
    carry_object(__DIR__"obj/bupao")->wear();
    carry_object("clone/book/jiuyin2");
   
}

void attempt_apprentice(object ob)
{
    if (ob->query_int() < 30) {
        command("say 我不收资质差的弟子,您请回吧!");
                return;
    }
    if ((int)ob->query_skill("bibo-shengong",1) < 50 ) {
        command("say 你的本门内功心法太低了,还是努努力先提高一下吧!");
                return;
    }
    if ((int)ob->query("shen") >100000 || (int)ob->query ("shen") < -100000 ) {
        command("say 我桃花岛与世隔绝,向来不与您这种成名人物打交道,您请回吧!");
                return;
        }
    command("say 很好,很好。");
    command("recruit " + ob->query("id"));
}

int recognize_apprentice(object ob)
{
        mapping myfam;
               myfam = (mapping)ob->query("family");
        if ( myfam["family_name"] == "桃花岛") return 1 ;
        if ((int)ob->query_temp("tmark/黄") == 1 )
        message_vision("黄药师看了看$N,说道:咱们现在是谁也不欠谁,\n"
                          "你不要再找我学习技艺了。\n", ob);
        if (!(int)ob->query_temp("tmark/黄"))
                return 0;
        ob->add_temp("tmark/黄", -1);
        return 1;
}

int accept_object(object who, object ob)
{
       
        if ( (string) ob->query("id") =="jiuyin zhenjing1" ) {
                if (!(int)who->query_temp("tmark/黄")) who->set_temp("tmark/黄", 0);
                message_vision("黄药师看了看$N送来的秘籍,点了点头,说道:\n"
                               "难得你将真经送回。你送我的东西我就收下了。\n"
                               "作为补偿,你可以从我这里学点功夫。\n", who);
                who->add_temp("tmark/黄", 120);
                return 1;
        }
        return 0;
}
string ask_me()
{
        object ob;
       
        if (this_player()->query("family/master_id")!="huang yaoshi")
                return RANK_D->query_respect(this_player()) +
                "非我弟子,不知此话从何谈起?";
        if (query("book_count") < 1)
                return "你来晚了,本派的秘籍不在此处。";
        add("book_count", -1);
        ob = new("/clone/book/xuanfeng_book");
        ob->move(this_player());
        command("rumor "+this_player()->query("name")+"拿到旋风扫叶腿法啦。\n");
        return "好吧,这本「旋风扫叶腿法」你拿回去好好钻研。";
}
//void die()
//{
//message("channel:rumor", MAG"【谣言】某人:"+this_player()->query("name")+"抢了九阴真经下卷啦。\n"NOR, users());
//        ::die();
//}


d\biwu\hufa.c

#include <ansi.h>

inherit NPC;

void create()
{
   set_name("护法", ({ "baobiao" }) );
   set("long", "这是盟主身边的一位护法。\n");
   set("attitude", "friendly");
   set("class", "fighter");

   set("max_jing", 1200);
   set("max_qi", 1500);
   set("max_neili", 1000);
   set("neili",1000);
   set("combat_exp", 400000);   
   set("str", 40);
   set("con", 80);
   set_skill("parry", 50);
   set_skill("dodge", 40);
   set_skill("unarmed", 50);
   set_skill("anranxiaohun-zhang", 150);
   set_skill("shaolin-shenfa", 150);
   map_skill("dodge", "shaolin-shenfa");
   map_skill("unarmed","anranxiaohun-zhang");
   setup();
  
}

void leave()
{ object owner;
   message("vision", name() + "四周张望了一下,说道:既然无事,属下先行告退。\n", environment(), this_object() );
        if(objectp(owner=this_object()->query("possessed")))
                owner->add_temp("number",-1);
   destruct(this_object());
}

void show(object who)
{
   string *cname = ({"左护法", "右护法"});
   string *ename = ({"-left", "-right"});

   int current = 0;
   current = (int)who->query_temp("number");

   if(current < 1 || current > 2 )
   {
     destruct(this_object());
     return;
   }

   this_object()->set_name(cname[current-1], ({ (string)who->query("id")+ename[current-1] }) );   

   message_vision("一阵黑风刮过,从中走出一个人,到$N面前行了个礼,大声说道:在下随时听调!\n", who);

    //set the leader of this bing.
   set("owner_id", (string)who->query("id"));
   set_leader(who);
}

void relay_whisper(object me, string msg)
{
   if (query("owner_id") != me->query("id"))
   {
     message_vision((string)this_object()->query("name")
        + "对着$N冷哼了一声。\n", me);
     return;
   }
   
   //note, do not allow the order contain "chat", "tell"...
   //may need disable more later...
   if( strsrch(msg, "chat") != -1 ||
       strsrch(msg, "tell") != -1 ||
       strsrch(msg, "apprentice") != -1 ||
       strsrch(msg, "recruit") != -1 )
     return;

   message_vision((string)this_object()->query("name") + "对着$N点了点头。\n", me);
   if (msg)
   {
     
     call_out ("relaying", 1+random(3), msg);
   }
}

void relaying (string msg)
{//execute the order.
   command (msg);
}
int heal_up()
{
        if( environment() && !is_fighting() ) {
                call_out("leave", 60);
                return 1;
        }
        return ::heal_up() + 1;
}


void init()
{
   object me=this_player();
   object owner;
   int i;
   ::init();


//make sure this bing always follow his owner.
   if ( (string)this_object()->query("owner_id") == (string)me->query("id") )
   {
     this_object()->set_leader(me);
   }

   //if owner leaves, let this bing have chance to disappear.
   if( this_object()->query("owner_id") != 0 )
   {
     owner = find_player( (string)this_object()->query("owner_id") );
     if( !owner ) owner=find_living( (string)this_object()->query("owner_id") );
     if( !owner )
     {

        call_out ("leave", 1);
     }
   }
   
}
void die()
{
object owner;
        if(objectp(owner=this_object()->query("possessed")))
                owner->add_temp("number",-1);
        ::die();
}

d\biwu\hufei.c

// hufei.c
#include <ansi.h>;
inherit NPC;
string ask_me();
string ask_book();
void do_kill(object ob);

void create()
{
        set_name("胡斐", ({"hu fei", "hu", "fei"}));
        set("gender", "男性");
        set("nickname", "雪山飞"HIG"狐"NOR);
        set("age", 25);
        set("long",
                "他就是胡一刀之子,因其武功高强神出鬼没。\n"
                "在江湖上人送外号「雪山飞狐」。\n"
                "他身穿一件白色长衫,腰间别着一把看起来很旧的刀。\n"
                "他满腮虬髯,根根如铁,一头浓发,却不结辫。\n");
        set("attitude", "peaceful");
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
       
        set("qi", 10000);
        set("max_qi", 10000);
        set("jing", 10000);
        set("max_jing", 10000);
        set("neili", 3000);
        set("max_neili", 3000);
        set("jiali", 100);
        set("combat_exp", 3000000);
        set("score", 20000);
         
        set_skill("force", 300);             // 基本内功
        set_skill("hujia-daofa", 300);       // 胡家刀法       
        set_skill("blade", 300);             // 基本刀法
        set_skill("hunyuan-yiqi", 300);      // 混元一气功
        set_skill("dodge", 300);             // 基本躲闪
        set_skill("shaolin-shenfa", 300);    // 胡家身法
        set_skill("parry", 300);             // 基本招架
               
        map_skill("force", "hunyuan-yiqi");
        map_skill("blade", "hujia-daofa");
        map_skill("dodge", "shaolin-shenfa");
        map_skill("parry", "hujia-daofa");
        set_temp("apply/attack", 300);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 550);
                set("inquiry",([
                "宝刀":     (: ask_me :),
                "刀谱":     (: ask_book :),
                "胡家刀谱": (: ask_book :),
                "阎基":     "阎基这个狗贼我非杀了他不可。\n",
                "胡一刀":   "辽东大侠胡一刀是我爹。不过我从没见过他。\n",
                "苗人凤":   "苗人凤虽和家父齐名,家父却死在他的剑下。\n",
                "苗若兰":   "不知什么时候还能再见到若兰姑娘。\n",
                "若兰":   "不知什么时候还能再见到若兰姑娘。\n",
                "若兰姑娘":   "不知什么时候还能再见到若兰姑娘。\n",
                "程灵素":   "二妹是为我而死的。\n",
                "赵半山":   "你见我赵三哥了? \n",
                "袁紫衣":   "算了,别提这伤心事了。\n"
        ]));
        set("baodao_count",1);
        set("book_count",1);
        setup();
        carry_object(__DIR__"obj/cwbdao")->wield();
}

string ask_me()
{
        object ob, me;
       
        me = this_player();
        if((int)me->query("shen") < 0)
        {
                me->set_leader(ob);
                call_out("do_kill",1,this_player());
        }
        else if((int)(me->query("shen")<100000))
                return "以你目前的作为是不能拿这把刀的。\n";

           else if((int)(me->query("shen") > 100000))
        {
                if(query("baodao_count") > 0)
                {               
                            call_out("waiting",0,me,ob);
                        add("baodao_count", -1);
                            ob = new (__DIR__"obj/cwbdao");
                            ob->move(me);
                        command("rumor "+me->query("name")+"拿到闯王军刀啦。\n");
                        return " 好吧,这把闯王宝刀就赠与你,希望你好好利用它。\n";
                }
                else return "你来晚了,现在这把刀已不在此处。\n";
        }

}

void do_kill(object ob)
{
        object me, room1;      
        me = this_object();
        room1 = environment(me);

        if (room1->query("no_fight"))
            room1->set("no_fight", 0);

        if (interactive(ob))
        {
                command("say 你这恶贼竟敢打我宝刀的主意,给我纳命来!\n");
                me->set_leader(ob);
                remove_call_out("kill_ob");
                call_out("kill_ob", 1, ob);
        }

}       

int accept_object(object me, object ob)
{
        int i;
        if( !me || environment(me) != environment() ) return 0;
        if ( !objectp(ob) ) return 0;
        if ( !present(ob, me) ) return notify_fail("你没有这件东西。");
        if ( (string)ob->query("id") == "yan ji")
        {
                write(HIC "\n胡斐说道:这位" + RANK_D->query_respect(me)+",如此大恩大德,在下实不知何以为报。\n");
                write(HIC "\n胡斐大喜道:狗贼!想不到你也有今天!!手起刀落,将阎基剁为两段。\n");
                ob->die();
                me->set_temp("marks/hujiadaopu",1);
        }
        return 1;
}

string ask_book()
{
        object ob, me;
       
        me = this_player();
        if (!me->query_temp("marks/hujiadaopu",1)) return "你说什么? \n";
        if((int)(me->query("shen")<100000))
                return "刀谱落入宵小之手,难免是阎基第二。\n";

           else
        {
                if(query("book_count") > 0)
                {               
                write(HIC "胡斐说着转身从阎基尸身上搜出一本破旧书本,递了给你。\n");
                            call_out("waiting",0,me,ob);
                        add("book_count", -1);
                            ob = new ("/clone/book/blade_book");
                            ob->move(this_player());
                        command("rumor "+me->query("name")+"拿到胡家刀谱啦。\n");
                        return "这本刀谱被这狗贼霸占多时了,现在就赠与你吧。\n";
                }
                else return "你来晚了,现在刀谱已不在此处。\n";
        }

}

d\biwu\jiumozhi.c

// /kungfu/class/xueshan/jiumozhi.c 鸠摩智
// by secret

#include <ansi.h>

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("鸠摩智", ({ "jiumo zhi", "zhi" ,"ming wang"}));
        set("nickname", HIG "大轮明王" NOR);
        set("long",@LONG
他就是雪山寺的掌门,人称大轮明王的鸠摩智。他对佛法有精深的研究。
身穿一件大红袈裟,头带僧帽。
LONG
        );
        set("title","雪山寺掌门");
        set("gender", "男性");
        set("age", 60);
        set("attitude", "friendly");
        set("shen_type", -1);
        set("str", 30);
        set("int", 40);
        set("con", 30);
        set("dex", 30);
        set("max_qi", 5000);
        set("max_jing", 2000);
        set("neili", 15000);
        set("max_neili", 15000);
        set("jiali", 100);
        set("combat_exp", 2500000);
        set("score", 500000);

        set_skill("necromancy", 250);
        set_skill("force", 200);
        set_skill("xiaowuxiang", 300);
        set_skill("dodge", 200);
        set_skill("shenkong-xing", 300);
        set_skill("unarmed", 200);
        set_skill("yujiamu-quan", 300);
        set_skill("parry", 200);
        set_skill("sword", 200);
        set_skill("mingwang-jian", 250);
        set_skill("lamaism", 250);
        set_skill("literate", 100);
        set_skill("staff", 100);
        set_skill("xiangmo-chu", 300 );
        set_skill("strike", 200 );
        set_skill("huoyan-dao", 300);


        map_skill("force", "xiaowuxiang");
        map_skill("dodge", "shenkong-xing");
        map_skill("unarmed", "yujiamu-quan");
        map_skill("parry", "huoyan-dao");
        map_skill("sword", "mingwang-jian");
        map_skill("staff", "xiangmo-chu");
        map_skill("strike","huoyan-dao");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        set("chat_chance_combat", 90);  
        set("chat_msg_combat", ({
                (: perform_action, "strike.fen" :),
                (: perform_action, "strike.honglian" :),
                (: perform_action, "strike.xiuluo" :),
                (: perform_action, "strike.fen" :),
                (: perform_action, "strike.honglian" :),
                (: perform_action, "strike.xiuluo" :),
                (: perform_action, "dodge.tianmaxingkong" :),
                (: perform_action, "dodge.tianmaxingkong" :),
        }) );

        create_family("雪山寺", 1, "掌门");
        set("class", "bonze");

        setup();

//        carry_object("/clone/weapon/changjian")->wield();
        carry_object("/d/xueshan/obj/r-jiasha")->wear();
        carry_object("/d/xueshan/obj/sengmao")->wear();

        add_money("silver",50);
}

void attempt_apprentice(object ob)
{

                  if ((string)ob->query("gender") != "男性") {
                                 command("say 修习密宗内功需要纯阳之体。");
                command("say 这位" + RANK_D->query_respect(ob) +
                        "还是请回吧!");
                return;
                  }

                  if ((string)ob->query("class") != "bonze") {
                                 command("say 我佛门的清规戒律甚多。");
                command("say 这位" + RANK_D->query_respect(ob) +
                        "还是请回吧!");
                return;
                  }

        if ((string)ob->query("family/family_name") != "雪山寺")        {
                command("say 这位" + RANK_D->query_respect(ob) +
                        "既非本寺弟子,还是请回吧!");
                return;
                  }

        if ((int)ob->query_skill("lamaism", 1) < 100) {
                command("say 入我雪山寺,修习密宗心法是首要的。");
                command("say 这位" + RANK_D->query_respect(ob) +
                        "是否还应该多多钻研本门的心法?");
                return;
        }

//        command("chat 哈哈哈哈!!!!!");
//        command("chat 我雪山寺真是后继有人,真是可喜可贺。");
//        command("chat 哈哈哈哈!!!!!");
        command("recruit " + ob->query("id"));

        ob->set("title",HIY"法王"NOR);
}


d\biwu\kill.c

#include <ansi.h>
inherit NPC;
string *first_name = ({ "赵","钱","孙","李","周","吴","郑","王","张","陈","柳","风","刘","林", });
string *name_words = ({ "一","二","三","四","五","六","七","八","九","十", });
string *color_title = ({"[天杀门]杀手","[地煞门]杀手",});

void create()
{
string name,weapon;
        name = first_name[random(sizeof(first_name))];
        name += name_words[random(sizeof(name_words))];
       set_name(name, ({ "killer", "shashou", "sha shou" }));
       set("gender", "男性");
       set("title", color_title[random(sizeof(color_title))]);
       set("long", "这人身穿黑色紧装,面上蒙着一块黑布,只露出一双眼睛,精光四射。\n");
       set("age", random(20)+25);      
        set("str", 20+random(5));
       set("int",20+random(5));  
       set("con",20+random(5));     
       set("dex",20+random(5));
        set("vendetta/authority",1);
        set("per", 1);
        set("intellgent",1);
        set("pursuer",1);
        set("combat_exp", 1000000);
        set("bellicosity", 10000);
        set("chat_chance", 99);
        set("chat_msg", ({
                (: command, "get all from corpse" :),
        }) );

        set("chat_chance_combat", 50);
        set("chat_msg_combat", ({
                "杀手喝道:今天老子又要神书又要命!!\n",
                "杀手笑道:快把神书交出来!让你死的痛快一点!\n",
        }) );

        set_skill("unarmed", 20+random(200));
        set_skill("sword", 20+random(200));
        set_skill("parry", 20+random(200));
        set_skill("dodge", 20+random(200));
        set_skill("move", 20+random(200));

        set_temp("apply/attack", 20);
        set_temp("apply/defense", 20);
        set_temp("apply/armor", 20);
        set_temp("apply/damage", 20+random(80));
        set_temp("apply/move", 20);

        setup();
        carry_object(__DIR__"obj/sword")->wield();
}
int heal_up()
{
        if( environment() && !is_fighting() ) {
                call_out("leave", 1);
                return 1;
        }
        return ::heal_up() + 1;
}

void leave()
{
        message("vision",
                 name() + "说道:今天收获不小,休息去了。\n\n",environment(),
                this_object() );
               destruct(this_object());
}

[ 本帖最后由 leotang111 于 2007-6-20 18:42 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2007-6-20 14:54 | 显示全部楼层
代码之类的就不需要发出来了 只发对玩家游戏有用的资料吧
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2007-6-20 15:04 | 显示全部楼层
是啊,看得偶眼花缭乱
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-20 18:42 | 显示全部楼层
d\biwu\lin.c

// lin.c 林朝英
// 1998.9 by Lgg

#include <ansi.h>

inherit NPC;

string ask_yunv();

void create()
{
        set_name("林朝英", ({"lin chaoying", "lin"}));
        set("gender", "女性");
        set("age", 42);
        set("long",
                "她就是古墓派的开山祖师林朝英,虽然已经是四十许人,望之却\n"
                "还如同三十出头。当年她与全真教主王重阳本是一对痴心爱侣,\n"
                "只可惜有缘无份,只得独自在这古墓上幽居。\n");
        set("attitude", "friendly");

        set("per", 30);
        set("str", 30);
        set("int", 42);
        set("con", 30);
        set("dex", 30);

        set("chat_chance_combat", 80);
        set("chat_msg_combat", ({
                (: exert_function, "recover" :),
                (: exert_function, "powerup" :),
                (: perform_action, "sword.he" :),
                (: perform_action, "sword.he" :),
                (: perform_action, "sword.he" :),
                (: perform_action, "sword.ding" :),
                (: perform_action, "sword.ding" :),
                (: perform_action, "sword.ding" :),
        }));

        set("attitude", "peaceful");
        set("qi", 10000);
        set("max_qi",10000);
        set("jing", 10000);
        set("max_jing", 10000);
        set("neili", 3000);
        set("max_neili", 3000);
        set("jiali", 100);

        set("combat_exp", 2000000);
        set("score", 0);

        set_skill("force", 300);
        set_skill("yunv-xinfa", 300);    //玉女心法
        set_skill("sword", 300);
        set_skill("yunv-jian", 400);     //玉女剑
        set_skill("quanzhen-jian",300);  //全真剑
        set_skill("dodge", 300);
        set_skill("yunv-shenfa", 300);   //玉女身法
        set_skill("parry", 300);
        set_skill("unarmed",300);
        set_skill("meinv-quan", 300);    //美女拳法
        set_skill("literate",320);
        set_skill("taoism",340);

        map_skill("force", "yunv-xinfa");
        map_skill("sword", "yunv-jian");
        map_skill("dodge", "yunv-shenfa");
        map_skill("parry", "meinv-quan");
        map_skill("unarmed", "meinv-quan");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 550);

        create_family("古墓派", 1, "开山祖师");

        set("book_count",1);
        set("inquiry", ([
                "王重阳" :  "大胆后辈小子,也敢直呼重阳祖师之名?\n",
                "重阳祖师" : "重阳是全真教的掌教,自号“活死人”。\n",
                "古墓派" :  "是啊,这里就是我一手创下的古墓派\n",
                "玉女心经" : (: ask_yunv :),
        ]) );

        setup();

        carry_object("/clone/weapon/changjian")->wield();
        carry_object(__DIR__"obj/qingyi")->wear();

}

void attempt_apprentice(object ob)
{
        if (ob->query_int() < 30) {
                command("say 我古墓派的功夫最讲一个悟字,你的资质不够。");
                return;
        }
        if ((int)ob->query_skill("yunv-xinfa",1) < 70 ) {
                command("say 你的玉女心法火候不足,难以领略更高深的武功。");
                return;
        }
        command("say 好吧,看你也是性情中人,我就收下你这个徒弟了。");
        command("recruit " + ob->query("id"));
}

string ask_yunv()
{
        mapping fam;
        object ob;
        int lvl_yunv;

        if (!(fam = this_player()->query("family"))
            || fam["family_name"] != "古墓派")
                return RANK_D->query_respect(this_player()) +
                "与本派毫无瓜葛,何以问起本派的心经?";
        if (!(lvl_yunv = this_player()->query_skill("yunv-xinfa",1))
            || lvl_yunv < 55)
                return RANK_D->query_respect(this_player()) +
                "的玉女心法火候不足,我不能将玉女心经交给你";
        if (query("book_count") < 1)
                return "你来晚了,本派的玉女心经已经被人取走了。";
        add("book_count", -1);
        ob = new("/clone/book/yunvjing2");
        ob->move(this_player());
        return "好吧,这本「玉女心经」你拿回去好好研读。";
}


d\biwu\ling_bt.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"白驼山派令牌"NOR, ({ "btling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块白驼山派的掌门大弟子的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("no_get",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_dl.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"大理令牌"NOR, ({ "dlling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块大理段家大弟子的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_em.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"峨眉令"NOR, ({ "emling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块峨眉派的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_ft.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIM"飞天御剑流令旗"NOR, ({ "ftling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块飞天御剑流的令旗。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_gb.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIG"丐帮青竹杖"NOR, ({ "gbling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "根");
                set("long", "这是一根丐帮的青竹杖。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_gm.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"古墓派令牌"NOR, ({ "gmling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块古墓派的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_hs.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"华山派令牌"NOR, ({ "hsling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块华山派的掌门大弟子的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_kl.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"昆仑派令牌"NOR, ({ "klling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块昆仑派的掌门令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_lj.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"灵鹫宫令牌"NOR, ({ "ljling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块灵鹫宫的掌门大弟子的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_lx.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"凌霄令"NOR, ({ "lxling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块凌霄教的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_mj.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"圣火令"NOR, ({ "mjling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块明教的圣火令。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_mr.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"姑苏慕容令牌"NOR, ({ "mrling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块姑苏慕容世家的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_qz.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"全真教令牌"NOR, ({ "qzling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块全真教的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}

[ 本帖最后由 leotang111 于 2007-6-20 23:20 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-20 23:20 | 显示全部楼层
d\biwu\ling_ry.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"日月神令"NOR, ({ "ryling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块日月教的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_sl.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"少林派令牌"NOR, ({ "slling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块少林派的掌门大弟子的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_slj.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"神龙令"NOR, ({ "sljling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块神龙教的神龙令。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_th.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"桃花令"NOR, ({ "thling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块桃花岛岛主的桃花令。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_tm.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIW"唐门令旗"NOR, ({ "tmling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块唐门的令旗。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_tz.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"铁掌帮令牌"NOR, ({ "tzling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块铁掌帮的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_wd.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIB"武当派令牌"NOR, ({ "wdling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块武当掌门的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_wdj.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"五毒令"NOR, ({ "wdjling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块五毒教的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_xs.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIY"雪山寺令牌"NOR, ({ "xsling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块雪山寺掌门的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_put",1);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_xx.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"星宿派令牌"NOR, ({ "xxling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块星宿派掌门的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_xy.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"逍遥令"NOR, ({ "xyling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块逍遥派掌门的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");

   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\ling_yl.c

// gangzhang.c 钢杖
#include <armor.h>
#include <ansi.h>
inherit HANDS;
void create()
{
        set_name(HIR"云龙令"NOR, ({ "ylling" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "块");
                set("long", "这是一块云龙门的令牌。你可以召唤(zhao)护卫来保护自己。\n");
                set("no_put",1);
                set("armor_prop/intelligence",2);
                set("armor_prop/strength",2);
                set("armor_prop/dexerity",2);
                set("armor_prop/constitution",2);
                set("armor_prop/karey",2);
                set("armor_prop/percao",2);
                set("no_get",1);
                set("no_drop",1);
                set("rigidity",100);
                set("material", "steel");
       
        }
        setup();
}
void init()
{
        add_action("do_zhao","zhao");
}
int do_zhao()
{
object dizi,me;
int exp;
me = this_player();
        if ((int)me->query_condition("zdizi_busy"))  
        return notify_fail("你刚招过随身弟子.\n");
   if( (int)me-> query_temp("number") > 0 )
     return notify_fail("你最多只能召唤一名随身弟子。\n");
   if (me->query("jing")<100)
        return notify_fail("你精不够。\n");
if( !me->is_fighting() )
        return notify_fail("好象没有人要杀你!\n");
if ( me->is_busy() )
        return notify_fail("你现在正忙得不得了,还有心思召唤你的弟子?\n");
        exp = (int)me->query("combat_exp");
        me->receive_damage("jing",100);
        dizi = load_object("/d/biwu/dizi.c");
        dizi->move(environment(me));
        dizi->invocation(me, (exp));
        dizi->set("possessed", me);
         dizi->set_name(this_player()->query("name")+"的随身弟子",({"dizi"}));
        me->add_temp("number",1);
//        me->remove_all_killer();
        message_vision(CYN "\n$N发出号令,召唤身边的弟子来保护自己!\n" NOR, me);       
        message_vision(CYN "\n$N的弟子随着号令声而来!\n" NOR, me);
        return 1;
}


d\biwu\long.c

//long.c

#include <ansi.h>

inherit NPC;
//inherit F_MASTER;

void create()
{
        set_name("龙亦凡", ({ "long", "dragon" }));
        set("long", "他就是天下闻之色变的侠客岛岛主,号称“不死神龙”。\n"
                   +"他须眉全白,脸色红润,有如孩童。看不出他的实际年纪。\n"
                   );
        set("title", "侠客岛主");
        set("gender", "男性");
        set("age", 75);
        set("nickname", HIR "不死神龙" NOR);
        set("shen_type",1);
        set("attitude", "peaceful");

        set("str", 30);
        set("int", 29);
        set("con", 30);
        set("dex", 28);

        set("qi", 900);
        set("max_qi", 900);
        set("jing", 900);
        set("max_jing", 900);
        set("neili", 1500);
        set("max_neili", 1500);
        set("jiali", 50);

        set("combat_exp", 1500000);
        set("score", 200000);
        set_skill("force", 170);
        set_skill("unarmed", 100);
        set_skill("dodge", 150);
        set_skill("parry", 150);
        set_skill("hand",170);
        set_skill("staff", 170);

//      set_skill("yanyangong", 200);
        set_skill("jinwu-daofa", 150);
//      set_skill("xiake-zhangfa", 100);
        set_skill("lingxu-bu", 150);

//      map_skill("force", "yanyangong");
        map_skill("dodge", "lingbo-weibu");
//      map_skill("unarmed", "xiake-zhangfa");
//      map_skill("hand", "xiake-zhangfa");
        map_skill("parry", "jinwu-daofa");
        map_skill("staff", "jinwu-daofa");

        create_family("侠客岛",1, "岛主");
        set("inquiry",([
           "腊八粥" :   "腊八粥只赠有缘人,不知你是否满足条件。?\n",
           "铜牌"   :   "我这可没有这玩艺,你如想要的话,可找别人问一问。\n",
        ]) );

        setup();
        carry_object("/clone/weapon/gangdao")->wield();
        add_money("gold",2);
}

void attempt_apprentice(object ob)
{
        message_vision("龙岛主拍拍$N的头,微微摇了摇头。\n",ob);
//        command("recruit " + ob->query("id"));
        return;
}

int accept_object(object who, object ob)
{
        object obn;
        object room;
        object key;

        if( !who || environment(who) != environment() ) return 0;
        if ( !objectp(ob) ) return 0;
        if ( !present(ob, who) ) return notify_fail("你没有这件东西。\n");

        if( (string)ob->query("name") != "赏善铜牌" )
        {
              message_vision("我不需要这件东西。\n");
              return 0;
        }
        if ( (string)ob->query_temp("own") != (string)who->query("name") )
        {
              message_vision("这不是你的牌子。");
              return 0;
        }
        command(" say  原来是 "+(string)who->query("name")+"大侠"+"欢迎光临本岛。");

        obn=new("/d/xiakedao/obj/labazhou");
        obn->move(who);
        command(" say 这是本岛特产腊八粥,外边可不易喝到,其中最主要的一味是<断肠蚀骨腐心草>,"
           + "瞧" +  RANK_D->query_respect(who) + "也是有缘之人,快乘热喝,这样效力方著。"
          );
        message_vision("龙岛主给了你一碗腊八粥",who);
        if( (int)who->query_temp("zhou") == 2)
        {
             command(" say 看来居士福缘深厚,有机会一睹武林绝技,请进吧!");
             who->set_temp("zhou", 0);
             message_vision("只听得一阵隆隆的响声由远及近。\n", this_player());
             message_vision("只见岛主身后的石板缓缓移了开来,露出一条长长的甬道。\n", this_player());
             environment(who)->set("exits/enter", "/d/xiakedao/mishi");
             room=environment(who);
             remove_call_out("close");
             call_out("close", 15, room);
             key = new("/d/xiakedao/obj/key");
     message_vision("这是我身后石门的钥匙,也是侠客岛上的凭证,希望你妥善保管,不可随意丢弃," +
                    "更不可交付他人,离岛时应与归还。\n", who);
             key->move(who);
             return 1;
        }
        who->set_temp("zhou", 1);
        return 1;
}
void close(object room)
{
        message("vision","轰隆隆的响声响过之后,石板又合上了。\n", room);
        room->delete("exits/enter");
}

[ 本帖最后由 leotang111 于 2007-6-21 13:43 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-21 13:43 | 显示全部楼层
d\biwu\miejue.c

// miejue.c 灭绝师太
// Modified by That Oct.1997
#include <command.h>
#include <ansi.h>

inherit NPC;
inherit F_MASTER;
string ask_for_quit();
mixed out_master(mixed arg);

void create()
{
        set_name("灭绝师太", ({ "miejue shitai","miejue","shitai"}));
        set("long",
                "她是峨嵋派的第三代弟子,现任峨嵋派掌门人。\n");
        set("gender", "女性");
        set("age", 62);
        set("attitude", "peaceful");
        set("shen_type", 1);
        set("shen", 100000);
        set("class", "bonze");
        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "sword.mie" :),
                (: perform_action, "sword.sanqing" :),
                (: perform_action, "sword.sanqing" :),
                (: perform_action, "strike.bashi" :),
                (: perform_action, "finger.lingkong" :),
                (: exert_function, "daxiao" :),
                (: exert_function, "fengyun" :),
                (: exert_function, "longhe" :),
                (: exert_function, "tiandi" :),                                
                (: exert_function, "zhixin" :),
        }) );
        set("inquiry",([
                "剃度"  : "贫尼只知除妖杀魔,不剃度弟子。",
                "出家"  : "贫尼只知除妖杀魔,不剃度弟子。",
                "还俗"  :  (: ask_for_quit :),
        ]));

        set("str", 35);
        set("int", 35);
        set("con", 35);
        set("dex", 35);
        set("per", 20);

        set("max_qi", 4000);
        set("max_jing", 2000);
        set("neili", 8000);
        set("max_neili", 8000);
        set("jingli", 1500);
        set("max_jingli", 1500);

        set("combat_exp", 2000000);
        set("score", 1000);
        set_skill("persuading", 150);
        set_skill("throwing", 200);
        set_skill("force", 200);
        set_skill("dodge", 200);
        set_skill("finger", 200);
        set_skill("parry", 200);
        set_skill("strike", 200);
        set_skill("sword", 250);
        set_skill("blade", 200);
        set_skill("literate", 100);
        set_skill("mahayana", 250);
        set_skill("buddhism", 250);
        set_skill("jinding-zhang", 300);
        set_skill("tiangang-zhi", 300);
        set_skill("huifeng-jian", 300);
        set_skill("yanxing-dao", 300);
        set_skill("zhutian-bu", 300);
        set_skill("linji-zhuang", 250);
        map_skill("force","linji-zhuang");
        map_skill("finger","tiangang-zhi");
        map_skill("dodge","zhutian-bu");
        map_skill("strike","jinding-zhang");
        map_skill("sword","huifeng-jian");
        map_skill("blade","yanxing-dao");
        map_skill("parry","huifeng-jian");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

//        map_skill("magic","bashi-shentong");
        create_family("峨嵋派", 3, "掌门人");

        setup();
        carry_object("/clone/weapon/changjian")->wield();
        carry_object("/d/city/obj/cloth.c")->wear();
}

void attempt_apprentice(object ob)
{
   mapping ob_fam;
   mapping my_fam  = ob->query("family");

   string name, new_name;
   name = ob->query("name");

   if (!(ob_fam = ob->query("family")) || ob_fam["family_name"] != "峨嵋派")
   {
      command("say " + RANK_D->query_respect(ob) + "与本派素无来往,不知此话从何谈起?");
      return;
   }
   switch (random(2))
   {
        case 1: break;
        default:
           if ((string)ob->query("class")!="bonze" )
           {
               command ("say 阿弥陀佛!贫尼不收俗家弟子。");
               return;
           }
           else
           {
               command ("say 阿弥陀佛!贫尼不收弟子。");
               return;
           }
   }
   if ((int)ob->query_skill("mahayana",1)<90||(int)ob->query_skill("linji-zhuang",1)<90)
   {
      command("say 你本门的功夫修为还太低。");
      return;
   }
   if ((int)ob->query("shen") < 50000)
   {
      command("say " + RANK_D->query_respect(ob) + "你行侠仗义之事还做的不够。");
      return;
   }
   if ((string)ob->query("class")=="bonze" )
   {
        name = ob->query("name");
        new_name = "静" + name[2..3];
        ob->set("name", new_name);
        command("say 从今以后你的法名叫做" + new_name + ",恭喜你成为峨嵋第四代弟子!");
   }

   command("say 阿弥陀佛,善哉!善哉!好吧,我就收下你了。");
   command("say 希望你能以慈悲之心,以智慧之力,努力行善,济度众生。");
   command("recruit " + ob->query("id"));
}

string ask_for_quit()
{
    object me;
    mapping myfam;
    me = this_player();

    myfam = (mapping)me->query("family");
    if (!myfam || (myfam["family_name"] != "峨嵋派"))
        return ("你和峨嵋没有渊源,贫尼不敢给你还俗。\n");
    if( (string)me->query("class")!="bonze" )
        return "阿弥陀佛!出家人不打诳语。你已经是俗家人了。\n";
    me->set_temp("pending/quit_bonze", 1);
        command ("say 阿弥陀佛!善哉!善哉!你一心要还俗,我也不挽留。\n");
        command ("say 我将废去你部分武功。请跪下(kneel)听宣。\n");
        return "如果不愿还俗的,就安心在此修炼吧。\n";
}

int do_kneel()
{
}



d\biwu\oldboy.c

// zhou.c 周伯通

#include <ansi.h>

inherit NPC;
//inherit F_SKILL;
int jie_bai();

void create()
{
        set_name("周伯通", ({ "zhou botong", "zhou", "bo tong" }));
        set("gender", "男性");
        set("nickname", CYN "老顽童" NOR ) ;
        set("title", "全真教第一代弟子") ;
        set("age", 45);
        set("long",
        "他就是人称「老顽童」的周伯通。\n"
        "他本来是全真教掌门人的师弟,武功高强,但现在却被人囚禁在\n"
        "这小小山洞之中,头发胡子长长的,毛茸茸的象一个野人。\n",
        );

        set("combat_exp", 3000000);
        set("shen_type", 1);

        set("max_neili", 5000);
        set("neili", 5000);
        set("jiali", 0);

        set_skill("force", 350);
        set_skill("sword", 300);
        set_skill("unarmed", 300);
        set_skill("dodge", 300);
        set_skill("parry", 300);
        set_skill("hubo" ,300);
        set_skill("kongming-quan",400);
        map_skill("unarmed","kongming-quan");
        set_temp("apply/attack", 300);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 550);
        set("inquiry", ([
                "九阴真经" : "「九阴真经」就在我床上,你有本事杀了我或把我逼出山洞就可以取走!\n",
                "黄药师"   : "他囚了我十五年,总想把我逼出山洞以取「九阴真经」,\n可他每次来都是扫兴而归!\n",
                "瑛姑"     : "我、我、、我不认识她!",
                "蛇"       : "不要吓我,我最怕蛇了!\n",
                "结拜"     :  (: jie_bai :),
                "拜把兄弟" :  (: jie_bai :),
        ]) );

        create_family("全真教", 1, "弟子");
        set_temp("apply/attack", 50);
        set_temp("apply/defense", 50);
        set_temp("apply/damage", 15);

        setup();
        carry_object("/clone/misc/cloth")->wear();
}

int jie_bai()
{
        object ob ;
        ob = this_player ( ) ;
        if ((string)ob->query("gender") != "男性")
        {
                message_vision("\n老顽童上上下下打量了$N一番,说到:我生平不喜同两种人\n"
                "打交道:一是女人,二是太监。我看你还是趁早请罢!”\n", ob);
                return 1;
        }

        if ((int)ob->query("shen") < -1000)
        {
                say("老顽童哼了一声说:就凭你这种恶人也配与我称兄道弟?!\n");
                return 1;
        }

        say("老顽童高兴地说:好!以后我们就是好兄弟了!\n");
        tell_object(ob,GRN "周伯通悄悄对你说:老哥哥有一套「双手互搏之术」和一路\n"
        "「空明拳」可以传给你作为见面礼哟!\n" NOR );

        this_player()->set_temp("wantong/兄弟", 1);
        return 1;
}

int recognize_apprentice(object ob)
{
        if (!(int)ob->query_temp("wantong/兄弟"))
                return 0;
        return 1;
}

int accept_object(object who, object ob)
{
        if (ob->query("id") == "du she")
        {
                message_vision("$N拿出一条毒蛇在老顽童的眼前晃了晃......\n"
                "老顽童吓得跳了起来,冲出洞外!边跑边喊:糟糕透了,老玩童这番死定了!\n\n\n"
                "声音渐渐远去,终于不复耳闻。\n" ,who);
                destruct(this_object());
                return 0;
        }
        return 0;
}


d\biwu\ouyangfeng.c

//ouyangfeng.c

#include <ansi.h>

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("欧阳锋", ({ "ouyang feng", "ouyang", "feng" }));
        set("long", "他是白驼山庄主,号称“西毒”的欧阳锋。\n"
                   +"由于习练「九阴真经」走火入魔,已变得精\n"
                   +"神错乱,整日披头散发。\n");
        set("title", "白驼山庄主");
        set("gender", "男性");
        set("age", 53);
        set("nickname", HIR "西毒" NOR);
        set("shen_type",-1);
        set("shen", -150000);
        set("attitude", "peaceful");

        set("str", 30);
        set("int", 29);
        set("con", 30);
        set("dex", 28);

        set("qi", 8500);
        set("max_qi", 8500);
        set("jing", 5900);
        set("max_jing", 5900);
        set("neili", 18000);
        set("max_neili", 18000);
        set("jiali", 150);

        set("combat_exp", 6500000);
        set("score", 200000);

        set_skill("force", 200);
        set_skill("unarmed", 150);
        set_skill("dodge", 150);
        set_skill("parry", 150);
        set_skill("strike",170);
        set_skill("hand",170);
        set_skill("training",300);
        set_skill("staff", 250);
        set_skill("hamagong", 300);
        set_skill("chanchu-bufa", 300);
        set_skill("shexing-diaoshou", 300);
        set_skill("lingshe-zhangfa", 300);
        set_skill("hamashengong", 300);
       
        map_skill("strike", "hamashengong");
        map_skill("force", "hamagong");
        map_skill("dodge", "chanchu-bufa");
        map_skill("unarmed", "shexing-diaoshou");
        map_skill("hand", "shexing-diaoshou");
        map_skill("parry", "lingshe-zhangfa");
        map_skill("staff", "lingshe-zhangfa");
        set_temp("apply/attack", 500);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 450);

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: exert_function, "powerup" :),
                (: exert_function, "reserve" :),
                (: perform_action, "staff.saoluoye" :),
                (: perform_action, "staff.shoot" :),
                (: perform_action, "staff.saoluoye" :),
                (: command("unwield zhang") :),
                (: command("unwield zhang") :),
                (: command("wield zhang") :),
                (: command("wield zhang") :),
                (: perform_action, "strike.hama" :),               
                (: perform_action, "strike.hama" :),               
                (: perform_action, "hand.diaoshou" :),               
                (: perform_action, "hand.diaoshou" :),               
        }) );
        create_family("白驼山派",1, "开山祖师");
        set("chat_chance",2);
        set("chat_msg",({
         "欧阳锋自言自语道:何日白驼山派才能重霸江湖呢…\n",
         "欧阳锋道:我儿欧阳克必能够重振白驼山派雄风!\n",
         "欧阳锋道:江湖险恶,困难重重哪!\n",
        }));
        setup();
        carry_object("/d/baituo/obj/shezhang")->wield();
        carry_object("/clone/misc/cloth")->wear();
        add_money("silver",50);
}

void attempt_apprentice(object ob)
{
  if((int)ob->query("combat_exp")<100000)
        {
          message_vision("欧阳锋对$N笑道:你的经验太低了,我还不能收你!\n",ob);
        return ;
         }
   message_vision("欧阳锋拍拍$N的头,微微点了点头。\n",ob);
   command("recruit " + ob->query("id"));
   return;
}



d\biwu\renwoxing.c

// renwoxing.c

#include <ansi.h>

inherit NPC;
inherit F_MASTER;
int ask_bijian();

void create()
{
        set_name("任我行", ({ "ren woxing", "ren","woxing" }));
        set("title", BLU "日月神教教主"NOR );
        set("long", "只见他一张长长的脸孔,脸色雪白,更无半分血色,眉目清秀,
身材甚高,一头黑发,穿的是一袭青衫。\n");
        set("gender", "男性");
        set("class", "scholar");
        set("age", 55);
        set("attitude", "peaceful");
        set("shen_type", -1);
        set("str", 30);
        set("per", 27);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
       
        set("max_qi", 10000);
        set("max_jing", 10000);
        set("neili", 3000);
        set("max_neili", 3000);
        set("jiali", 100);
        set("combat_exp", 5000000);
        set("score", 500000);

        set("chat_chance_combat", 80);
       set("chat_msg_combat", ({
                (: perform_action, "sword.sanjue" :),
               
       }) );

        set_skill("literate", 100);
        set_skill("force", 300);
        set_skill("dodge", 300);
        set_skill("unarmed", 300);
        set_skill("parry", 300);
        set_skill("sword", 300);
        set_skill("changquan", 300);
        set_skill("hunyuan-yiqi", 300);
        set_skill("lingxu-bu", 300);
        set_skill("damo-jian", 300);
        set_skill("taiji-jian", 300);
        set_skill("huifeng-jian", 300);
        set_skill("taishan-sword", 300);
        set_skill("hengshan-jian", 300);
        set_skill("hengshan-sword", 300);
        set_skill("huashan-sword", 300);
        set_skill("songshan-sword", 300);

        map_skill("dodge", "lingxu-bu");
        map_skill("force", "hunyuan-yiqi");
        map_skill("unarmed", "changquan");
        map_skill("sword", "damo-jian");
        map_skill("parry", "damo-jian");
        set_temp("apply/attack", 500);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 550);
        set("inquiry", ([
                "比剑" :  (: ask_bijian :),
                "剑法" :  (: ask_bijian :),
                "黑木令" : "要拿黑木令?老夫想先看看你的剑法!\n",
        ]) );
        setup();
        carry_object("/d/wudang/obj/bluecloth")->wear();
        carry_object("/clone/weapon/changjian")->wield();
}

int ask_bijian()
{
        object obj, me = this_player(), ob = this_object();
        message_vision("$N躬身说道:“晚辈今日有幸拜见任老前辈,还望多加指教。”\n
$n笑道:“不用客气,你来解我寂寞,可多谢你啦。”\n", me, ob );
        message_vision("$N道:“不敢。”\n
$n点了点头,说道:“我只想瞧瞧你的剑法,并非真的过
招,再说,我也未必能胜得了你。”\n\n", me, ob);
        say(HIR"任我行大喝一声:“少林剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才一招。”\n");
                return 1;
        }
        command("enable sword taiji-jian");
        say(HIR"任我行大喝一声:“武当剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才两招。”\n");
                return 1;
        }
        command("enable sword huifeng-jian");
        say(HIR"任我行大喝一声:“峨嵋剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才三招。”\n");
                return 1;
        }
        command("enable sword songshan-sword");
        say(HIR"任我行大喝一声:“嵩山剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才四招。”\n");
                return 1;
        }
        command("enable sword taishan-sword");
        say(HIR"任我行大喝一声:“泰山剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才五招。”\n");
                return 1;
        }
        command("enable sword huashan-sword");
        say(HIR"任我行大喝一声:“华山剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才六招。”\n");
                return 1;
        }
        command("enable sword hengshan-sword");
        say(HIR"任我行大喝一声:“衡山剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“才七招。”\n");
                return 1;
        }
        command("enable sword hengshan-jian");
        say(HIR"任我行大喝一声:“恒山剑法!”"NOR);
        COMBAT_D->do_attack(ob, me, query_temp("weapon"));
        if( (int)me->query("qi") < 0 || !present(me, environment()))
        {
                say("任我行叹了口气,说道:“还是没过八招。”\n");
                return 1;
        }

        obj = new("/d/heimuya/obj/heimu-ling");
        obj -> move(me);
        say("任我行说道:“这位" + RANK_D->query_respect(me)+"不错,我就送你一块黑木令吧。”\n");
        return 1;
}


d\biwu\suquan.c

// suquan.c 苏荃

#include <ansi.h>
inherit NPC;
inherit F_UNIQUE;
inherit F_MASTER;
int do_skills(string arg);
int do_join(string arg);

void create()
{
        set_name("苏荃", ({ "su-quan", "su" }));
        set("title",  "神龙教教主夫人" );
        set("long", "一个千娇百媚、明艳不可方物的少妇。\n");
        set("gender", "女性");
        set("age", 25);
        set("attitude", "peaceful");
        set("shen_type", -1);
        set("str", 35);
        set("int", 30);
        set("con", 30);
        set("dex", 38);
        set("per", 36);
       
        set("max_qi", 4000);
        set("max_jing", 3000);
        set("neili", 4000);
        set("max_neili", 4000);
        set("jiali", 100);
        set("combat_exp", 1500000);
        set("score", 400000);

        set_skill("force", 200);
        set_skill("hunyuan-yiqi", 150);
        set_skill("shenlong-xinfa", 200);
        set_skill("dodge", 180);
        set_skill("yixingbu", 160);
        set_skill("unarmed", 200);
        set_skill("shenlong-bashi", 200);
        set_skill("parry", 150);
        set_skill("staff", 200);
        set_skill("shedao-qigong", 180);
        set_skill("literate", 100);

        map_skill("force", "hunyuan-yiqi");
        map_skill("dodge", "yixingbu");
        map_skill("unarmed", "shenlong-bashi");
        map_skill("parry", "shedao-qigong");
        map_skill("staff", "shedao-qigong");
        setup();
        carry_object("/clone/weapon/gangzhang")->wield();
        carry_object("/clone/misc/cloth")->wear();
        add_money("silver", 50);
}

d\biwu\suxingh.c

// suxingh.c
// shilling 97.2

inherit NPC;
inherit F_MASTER;

string ask_me();
string ask_book();

void create()
{
        set_name("苏星河",({"su xinghe","su"}));
        set("gender", "男性" );
        set("nickname", "聪辩老人");
        set("shen_type", 0);
        set("class", "scholar");
        set("age",60);
        set("str", 35);
        set("con", 30);
        set("int", 45);
        set("dex", 35);
        set("per", 30);

        set("no_clean_up",1);

        set("long",
"此人就是号称聪辩老人的苏星河,据说他能言善辩, \n"
"是一个武林中的智者,而他的武功也是无人能知。\n");

        set("combat_exp", 1500000);
        set("attitude", "peaceful");
        set("book_count", 1);
        set("chat_chance", 1);

        set("inquiry", ([
                "秘密地道" :(:ask_me:),
                "秘籍"     :(:ask_book:),
        ]) );

        set("max_qi", 5400);
        set("max_jing", 1400);
        set("neili", 9500);
        set("max_neili",9500);
        set("jiali", 60);
        set("env/wimpy", 60);

        set_skill("force", 150);
        set_skill("dodge", 150);
        set_skill("unarmed", 150);
        set_skill("parry", 150);
        set_skill("blade", 200);
        set_skill("lingboweibu", 280);
        set_skill("beiming-shengong", 280);
        set_skill("ruyi-dao", 300);
        set_skill("liuyang-zhang", 380);
        set_skill("zhemei-shou", 280);
        set_skill("literate", 100);

        map_skill("unarmed", "liuyang-zhang");
        map_skill("parry", "ruyi-dao");
        map_skill("blade", "ruyi-dao");
        map_skill("dodge", "lingboweibu");
        map_skill("force", "beiming-shengong");
        prepare_skill("hand","zhemei-shou");
        prepare_skill("strike","liuyang-zhang");       
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        set("chat_chance_combat", 90);  
        set("chat_msg_combat", ({
                (: perform_action, "blade.shishiruyi" :),
                (: perform_action, "blade.shishiruyi" :),
                (: perform_action, "blade.ruyi" :),
                (: perform_action, "blade.ruyi" :),
                (: perform_action, "dodge.lingbo" :),
                (: perform_action, "dodge.lingbo" :),
                (: exert_function, "strike.zhong" :),               
                (: exert_function, "strike.zhong" :),               
        }) );

        create_family("逍遥派", 2, "弟子");
        set("title","逍遥派第二代大弟子");
        setup();
        carry_object("clone/cloth/cloth")->wear();
        carry_object("clone/weapon/gangdao")->wield();
}


void attempt_apprentice(object ob)
{

        if (ob->query_int() < 30) {
                command("shake"+ ob->query("id"));
                command("say " + RANK_D->query_respect(ob) +
                        "是否还应该在学问上多下点功夫?");
return;
        }

        command("say 好吧,我就收下你了,今后要多加努力啊!");
        command("recruit " + ob->query("id"));
}

string ask_book()
{
        object me,ob;
        mapping fam;
        ob=this_player();
        if (!(fam = ob->query("family"))
                || fam["family_name"] != "逍遥派")
        {
                return"想要秘籍就得加入逍遥派。";
        }
        command("sigh");
        return"本派的武功秘籍藏在一个很秘密的地方,我也没去过。";
}
string ask_me()
{
        object me,ob;
        mapping fam;
        ob=this_player();
        if (!(fam = ob->query("family"))
                || fam["family_name"] != "逍遥派")
        {
                return"想要知道密道就得加入逍遥派。";
        }
        command("sigh");
        return"本派的密道在华山之上,很是艰险。你有兴趣可以去看看。";
}

void recruit_apprentice(object ob)
{
        if( ::recruit_apprentice(ob) )
                ob->set("class", "scholar");
}


d\biwu\tonglao.c

// /NPC tonglao.c

#include <ansi.h>

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("天山童姥", ({ "tong lao", "tong", "lao" }));
        set("long",
            "她就是「灵鹫宫」的开山祖师.\n"+
            "乍一看似乎是个十七八岁的女子,可神情却是老气横秋.\n"+
            "双目如电,炯炯有神,向你瞧来时,自有一股凌人的威严.\n");
        set("title", "灵鹫宫主人");
        set("gender", "女性");
        set("age", 96);
        set("nickname", HIR "唯我独尊" NOR);
        set("shen_type",0);
        set("attitude", "peaceful");

        set("str", 25);
        set("int", 35);
        set("con", 40);
        set("dex", 40);

        set("qi", 8000);
        set("max_qi", 8000);
        set("jing", 4000);
        set("max_jing", 4000);
        set("neili", 14000);
        set("max_neili", 14000);
        set("jiali", 100);

        set("combat_exp", 5500000);
        set("score", 200000);
        set_skill("yangyanshu", 200);
        set_skill("force", 200);
        set_skill("unarmed", 250);
        set_skill("dodge", 250);
        set_skill("parry", 250);
        set_skill("hand",250);
        set_skill("strike", 250);
        set_skill("sword",150);

        set_skill("wuzhan-mei",300);
        set_skill("zhemei-shou",300);
        set_skill("liuyang-zhang",300);
        set_skill("tianyu-qijian",300);
        set_skill("yueying-wubu",300);
        set_skill("bahuang-gong", 300);

        map_skill("force", "bahuang-gong");
        map_skill("strike","liuyang-zhang");
        map_skill("dodge", "yueying-wubu");
        map_skill("unarmed", "liuyang-zhang");
        map_skill("strike","liuyang-zhang");
        map_skill("hand", "zhemei-shou");
        map_skill("parry", "liuyang-zhang");
        map_skill("sword","tianyu-qijian");

        prepare_skill("hand","zhemei-shou");
        prepare_skill("strike","liuyang-zhang");
        set_temp("apply/attack", 400);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 350);
        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: exert_function, "powerup" :),
                (: exert_function, "powerup" :),
                (: perform_action, "sword.kuangwu" :),
                (: perform_action, "sword.kuangwu" :),
                (: perform_action, "sword.san" :),
                (: perform_action, "sword.san" :),
                (: perform_action, "sword.yushijufen" :),
                (: perform_action, "sword.yushijufen" :),               
                (: perform_action, "dodge.yueguangruying" :),               
                (: perform_action, "dodge.yueguangruying" :),               
        }));
        create_family("灵鹫宫",1, "开山祖师");
        setup();
        carry_object("/clone/weapon/gangjian")->wield();
        carry_object("/d/lingjiu/obj/qingyi")->wear();
        carry_object("/d/lingjiu/obj/doupeng")->wear();
}

void attempt_apprentice(object ob)
{
   
   if ((string)ob->query("gender")!="女性")
           {
                command("say 你找死啊!");
                return;
           }
   if ((int)ob->query_skill("bahuang-gong", 1) < 130)
           {
                command("say " + RANK_D->query_respect(ob) + "是否还应该多练练八荒六合唯我独尊功?");
                return;
           }
   if (ob->query_con() < 30)
                 {
                command("say 本门功法极为难练,你的根骨似乎不够.");
                return;
           }
   command("recruit " + ob->query("id"));
   if((string)ob->query("class") != "dancer")
     ob->set("class", "dancer");
   return;
}

[ 本帖最后由 leotang111 于 2007-6-23 04:02 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-23 04:02 | 显示全部楼层
d\biwu\wang.c

// wang.c 王重阳
// By Lgg,1998.10

#include <ansi.h>

inherit NPC;

string ask_jiuyin();
string ask_zhipu();
string ask_duan();

void create()
{
        set_name("王重阳", ({"wang chongyang", "wang"}));
        set("gender", "男性");
        set("age", 66);
        set("class", "taoist");
        set("nickname",HIW"活死人"NOR);
        set("long",
                "他就是全真教的开山祖师、首代掌教王重阳王真人。他白须飘\n"
                "飘,宽袍缓袖,眉目清癯,颇有些仙风道骨的味道。他本来一\n"
                "腔热血欲报效国家力抗金兵,可惜朝廷腐败,于是心灰意冷,\n"
                "又从道德经中悟得了天地滋生的大道,手创全真教。\n");
        set("attitude", "peaceful");
        set("shen_type",1);
        set("str", 45);
        set("int", 45);
        set("con", 45);
        set("dex", 45);

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: exert_function, "recover" :),
                (: exert_function, "recover" :),
                (: perform_action, "sword.ding" :),
                (: perform_action, "sword.jianqi" :),
                (: perform_action, "sword.jianqi" :),
                (: perform_action, "sword.sanqing" :),
                (: perform_action, "sword.sanqing" :),
                (: perform_action, "sword.sanqing" :),               
                (: perform_action, "sword.tonggui" :),               
                (: perform_action, "sword.tonggui" :),               
                (: exert_function, "powerup" :),               
                (: exert_function, "xiantiandafa" :),               
                (: exert_function, "xiantiandafa" :),               
                (: exert_function, "powerup" :),               
        }));

        set("qi", 6500);
        set("max_qi", 6500);
        set("jing", 5400);
        set("max_jing", 5400);
        set("neili", 19000);
        set("max_neili", 19000);
        set("jiali", 100);

        set("combat_exp", 2000000);
        set("score", 500000);

        set_skill("force", 200);
        set_skill("xiantian-qigong", 300);    //先天气功
        set_skill("sword", 250);
        set_skill("quanzhen-jian",300);  //全真剑
        set_skill("dodge", 160);
        set_skill("jinyan-gong", 300);   //金雁功
        set_skill("parry", 200);
        set_skill("unarmed",200);
        set_skill("haotian-zhang", 300);    //昊天掌
        set_skill("literate",120);
        set_skill("strike",150);
        set_skill("taoism",140);
        set_skill("finger",200);
        set_skill("sun-finger",200);  //一阳指
        map_skill("force", "xiantian-qigong");
        map_skill("sword", "quanzhen-jian");
        map_skill("dodge", "jinyan-gong");
        map_skill("parry", "quanzhen-jian");
        map_skill("strike", "haotian-zhang");
        map_skill("finger","sun-finger");
        prepare_skill("finger","sun-finger");
        prepare_skill("strike","haotian-zhang");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

        create_family("全真教", 1, "掌教");

        set("book_count",1);
        set("inquiry", ([
                "全真教" :  "我全真教是天下道家玄门正宗。\n",
                "九阴真经" : (: ask_jiuyin :),
                "一阳指" : (: ask_zhipu :),
                "段皇爷" : (: ask_duan :),
        ]) );

        setup();

        carry_object("/clone/weapon/changjian")->wield();
        carry_object(__DIR__"obj/greenrobe")->wear();

}

void attempt_apprentice(object ob)
{
        if (ob->query_int() < 30) {
                command("say 你的资质不够,还是先找我那几个徒弟学习吧。");
                return;
        }
        if ((int)ob->query_skill("xiantian-qigong",1) < 100 ) {
                command("say 你的本门内功心法火候不足,难以领略更高深的武功。");
                return;
        }
        if ((int)ob->query("shen")<10000) {
                command("say 行侠仗义是我辈学武人的基本品质,你若能多做些狭义之
事,我一定收你为徒。\n");
                return;
        }
        command("say 好吧,依你资质,定可传我衣钵,我就收下你这个徒弟了。");
        command("recruit " + ob->query("id"));
}

string ask_jiuyin()
{
        mapping fam;
        int lvl_force;

        if (!(fam = this_player()->query("family"))
            || fam["family_name"] != "全真教")
                return RANK_D->query_respect(this_player()) +
                "与本教毫无瓜葛,这话从何说起?";
        if (!(lvl_force = this_player()->query_skill("force",1))
            || lvl_force < 50)
                return RANK_D->query_respect(this_player()) +
                "的基本内功火候如此之浅,强练真经上的上乘武功有害无益。";
        return "九阴真经是天下武学正宗,我已交给我师弟周伯通保管,\n"
                +"不过....在古墓派的石棺内,我还刻着一些图形。\n";
}

string ask_duan()
{
        object me=this_player();
        if(me->query_temp("tmark/指")==4) {
                me->add_temp("tmark/指",1);
                return("段皇爷号称‘南帝’,家传的一阳指是天下最厉害的指法。\n");
        }
        else {
                me->set_temp("tmark/指",0);
                return("你问段皇爷做甚么,莫非想与他为难?\n");
        }
}

string ask_zhipu()
{
        object ob,me=this_player();
        if(me->query_temp("tmark/指")==5) {
                me->set_temp("tmark/指",0);
                if(query("book_count")>0) {
                        ob=new("/clone/book/zhifapu");
                        ob->move(me);
                        add("book_count",-1);
                        return("好吧,你历经艰苦,意志甚坚,这本指法谱就交给你了。\n");
                }
                else
                        return("你来晚了,指法谱已经被人取走了。\n");
        }
        else {
                me->set_temp("tmark/指",0);
                return  RANK_D->query_respect(me) +
                        "不是想跟我较量较量吧?\n";
        }
}


d\biwu\xiaojie.c

// waiter.c

inherit NPC;
#include <ansi.h>;

void create()
{
        set_name("林水仙", ({ "lin shuixian", "lin" }) );
        set("gender", "女性" );
        set("age", 18);
        set("long",
                "这位并不漂亮的小姐吸引了不少目光,定力并不高深的你也不时望向......\n");
        set("combat_exp", 100);
        set("attitude", "friendly");
        setup();
}

void init()
{       
        object ob;

        ::init();
        if( interactive(ob = this_player()) && !is_fighting() ) {
                remove_call_out("greeting");
                call_out("greeting", 1, ob);
        }
        add_action("do_yao","want");
}

void greeting(object ob)
{
        if( !ob || environment(ob) != environment() ) return;
tell_object(ob,"林水仙笑咪咪向你说道:
    从现在开始,你将要接受最大的考验。首先你要通过一个迷宫,然后你会到达风
雨楼或着混元塔,在一刻钟内击败里面的十大高手,最后向盟主挑战。在风雨楼或着
混元塔内没有回头的路,你只有等待一刻钟后自动送会广场中央。
    顺便问一下,您想要(want)馒头和水袋吗?\n\n");
        ob->set_temp("comehere",1);
}

int do_yao()
{
        object ob,kele,hbb;
        ob = this_player();

        if (ob || interactive(ob))
        if ( ob->query_temp("comehere") )
        {
        if (ob->query("gender")=="男性")
                tell_object(ob, "林水仙递给你馒头和水袋时乘机拧了你一把,悄声说道:待会楼上见。\n");
        if (ob->query("gender")=="女性")
                tell_object(ob, "林水仙白了你一眼,馒头和水袋飞了过来,'您老慢吃吧。'\n");
        kele = new(__DIR__"obj/kele");
        hbb = new(__DIR__"obj/hbb");
        kele->move(ob);
        hbb->move(ob);
        ob->delete_temp("comehere");
        return 1;
        }
        return 0;
}


d\biwu\xuedao.c

// /kungfu/class/xueshan/xuedao.c  血刀老祖
// by secret

#include <ansi.h>

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("血刀老祖", ({ "xuedao laozu", "xue dao", "laozu" }));
        set("long",@LONG
这喇嘛身着黄袍,年纪极老,尖头削耳,脸上都是皱纹。他就是血刀门第四代掌门。
LONG
        );
        set("title",HIR"血刀门第四代掌门"NOR);
        set("gender", "男性");
        set("age", 85);
        set("attitude", "peaceful");
        set("shen_type", -1);
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
        set("max_qi", 5000);
        set("max_jing", 2000);
        set("neili", 12000);
        set("max_neili", 12000);
        set("jiali", 50);
        set("combat_exp", 2500000);
        set("score", 180000);

        set_skill("lamaism", 150);
        set_skill("literate", 80);
        set_skill("force", 180);
        set_skill("parry", 180);
        set_skill("blade", 250);
        set_skill("sword", 120);
        set_skill("dodge", 180);
        set_skill("longxiang", 300);
        set_skill("shenkong-xing", 300);
        set_skill("hand", 280);
        set_skill("dashou-yin", 300);
        set_skill("mingwang-jian", 200);
        set_skill("xue-dao", 300);

        map_skill("force", "longxiang");
        map_skill("dodge", "shenkong-xing");
        map_skill("hand", "dashou-yin");
        map_skill("parry", "xue-dao");
        map_skill("blade", "xue-dao");
        map_skill("sword", "mingwang-jian");
        set("chat_chance_combat", 90);  
        set("chat_msg_combat", ({
                (: perform_action, "blade.kuangdao" :),
                (: perform_action, "blade.shendao" :),
                (: perform_action, "blade.kuangdao" :),
                (: perform_action, "blade.shendao" :),
                (: perform_action, "dodge.tianmaxingkong" :),
                (: exert_function, "fumozhou" :),               
                (: exert_function, "fumozhou" :),               
                (: exert_function, "fanchang" :),               
        }) );
        set_temp("apply/attack", 300);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

        create_family("雪山寺", 4, "弟子");
        set("class", "bonze");

        setup();
        carry_object("/d/xueshan/obj/y-jiasha")->wear();
        carry_object("/d/xueshan/obj/xblade")->wield();

        add_money("gold",2);
}

void attempt_apprentice(object ob)
{
        if ((string)ob->query("gender") != "男性")
        {
                command("say 我不收女徒弟。\n");
                return;
        }
        if ((string)ob->query("family/family_name") != "雪山寺")
        {
                command("say 这位" + RANK_D->query_respect(ob) +
                        "既非本门弟子,还是请回吧!\n");
                return;
        }
        if ((int)ob->query("shen") > -100000)
        {
                command("say 你是不是向着侠义道,连杀人都不会!\n");
                return;
        }
        if ((int)ob->query_skill("longxiang", 1) < 60)
        {
                command("say 入我血刀门,修习龙象功法是首要的。\n");
                return;
        }
        command("haha");
        command("nod");
        command("recruit " + ob->query("id"));

        ob->set("title", HIR "血刀门第五代弟子" NOR);
}


d\biwu\yideng.c

// yideng.c
#include <ansi.h>
inherit NPC;
inherit F_MASTER;

void consider();

void create()
{
    set_name("一灯大师", ({"yideng-dashi", "dashi", "yideng"}));
    set("nickname", HIG "南帝" NOR );
    set("gender", "男性");
    set("age", 52);
    set("long",
        "他就是号称「南帝」的一灯大师,俗名段智兴,现已逊位为僧。\n"
        "大师一生行善,积德无穷。\n");
    set("attitude", "peaceful");
    set("class", "scholar");
       
    set("str", 21);
    set("int", 30);
    set("con", 26);
    set("dex", 30);

    set("qi", 3000);
    set("max_qi", 3000);
    set("jing", 3000);
    set("max_jing", 3000);
    set("neili", 3500);
    set("max_neili", 3500);
    set("jiali", 100);
       
    set("combat_exp", 3000000);
    set("score", 0);
    set_skill("force", 350);             // 基本内功
    set_skill("finger", 370);            // 基本指法
    set_skill("dodge", 350);             // 基本躲闪
    set_skill("parry", 350);             // 基本招架
    set_skill("liumai-shenjian", 300);   // 六脉神剑
    set_skill("taixuan-gong", 300);      // 太玄神功
    set_skill("lingxu-bu", 300);         // 凌虚步
    set_skill("literate",350);           // 读书识字
       
    map_skill("force"  , "taixuan-gong");
    map_skill("finger" , "liumai-shenjian");
    map_skill("dodge"  , "lingxu-bu");
    map_skill("parry"  , "liumai-shenjian");
        set_temp("apply/attack", 200);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);
        set("chat_chance_combat", 80);
         set("chat_msg_combat", ({
                (: perform_action, "finger.liumaijinhun" :),
        }) );



    prepare_skill("finger", "liumai-shenjian");

    create_family("大理段家", 17, "弟子");
    setup();

    carry_object("/clone/misc/cloth")->wear();
}


d\biwu\yue-buqun.c

// yue-buqun.c lasted updated by cocacola on 2.19 for adding chushi
// 岳不群
// 此npc上的xunshan设置不当!
// 星星lywin改于2000/6/11

inherit NPC;
inherit F_MASTER;
#include <ansi.h>;
int do_xunshan();

void create()
{
        set_name("岳不群", ({ "yue buqun", "yue" }) );
        set("title", "华山派掌门");
        set("nickname", "君子剑");
        set("gender", "男性");
        set("class", "swordsman");
        set("age", 55);
        set("long",
                "岳不群自幼执掌华山派,乃当今武林中一等一的高手。\n");
        set("attitude", "peaceful");
        set("str", 26);
        set("con", 30);
        set("dex", 30);
        set("int", 28);

        set("neili", 4400);
        set("max_neili", 4400);
        set("jiali", 30);
        set("max_qi",2200);
        set("max_jing",2200);

        set("combat_exp", 2000000);
        set("shen", -200000);
        set_temp("xunshan", 1);
        set("apprentice_available", 3);

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "sword.jianzhang" :),
                (: perform_action, "sword.jianzhang" :),
                (: perform_action, "sword.feilong" :),               
                (: perform_action, "dodge.huiyanfeiwu" :),               
                (: exert_function, "powerup" :),
        }) );
        set("inquiry", ([
            "巡山": (: do_xunshan :),
            "job" : (: do_xunshan :),
        ]) );

        set_skill("unarmed", 80);
        set_skill("sword", 200);
        set_skill("force", 200);
        set_skill("parry", 200);
        set_skill("dodge", 200);
        set_skill("literate", 200);
        set_skill("huashan-sword", 280);
        set_skill("zixia-shengong", 280);
        set_skill("huashan-ken", 280);
        set_skill("feiyan-huixiang", 280);
        set_skill("pixie-sword",280);
        set_skill("zhengqijue",280);

        map_skill("sword", "huashan-sword");
        map_skill("parry", "huashan-sword");
        map_skill("force", "zixia-shengong");
        map_skill("unarmed", "huashan-ken");
        map_skill("dodge", "feiyan-huixiang");
        set_temp("apply/attack", 400);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 350);
        create_family("华山派", 13, "掌门");
        setup();

        carry_object("/clone/weapon/changjian")->wield();
        carry_object("/clone/cloth/cloth")->wear();
        carry_object("/clone/book/zixia_book");
}

void attempt_apprentice(object ob)
{
        if( query("apprentice_available") ) {
                if( find_call_out("do_recruit") != -1 )
                        command("say 慢著,一个一个来。");
                else
                        call_out("do_recruit", 2, ob);
        } else {
                command("say 老夫今天已经收了三个弟子,不想再收徒了。");
        }
}

void do_recruit(object ob)
{
        if( (int)ob->query("int") < 20 )
                command("say 我华山派以剑法为主,依我看"+RANK_D->query_respect(ob)+"不适合于学剑法。");
        else {
                command("say 好,好,好,很好。");
                command("recruit " + ob->query("id") );
        }
}

int recruit_apprentice(object ob)
{
        if( ::recruit_apprentice(ob) )
        add("apprentice_availavble", -1);
}
void reset()
{
        set_temp("xunshan",1);
        set("apprentice_available", 3);
}
int do_xunshan()
{
        object me = this_player();
        if ( me->query_temp("xunshan"))
        {
               if (!me->query_temp("xunshan/chaoyang"))
               {
                      message_vision("$N对着$n说:你朝阳峰没去看看?这算巡的什么山?\n", this_object(), me);
                      return 1;
               }
               if (!me->query_temp("xunshan/lianhua"))
               {
                      message_vision("$N对着$n说:你莲花峰没去看看?这算巡的什么山?\n", this_object(), me);
                      return 1;
               }
               if (!me->query_temp("xunshan/yuntai"))
               {
                      message_vision("$N对着$n说:你云台峰没去看看?这算巡的什么山?\n", this_object(), me);
                      return 1;
               }
               if (!me->query_temp("xunshan/sheshen"))
               {
                      message_vision("$N对着$n说:你怎么没去舍身崖?这算巡的什么山?\n", this_object(), me);
                      return 1;
               }
               if (!me->query_temp("xunshan/siguo"))
               {
                      message_vision("$N对着$n说:你到了思过崖去了?这算巡的什么山?\n", this_object(), me);
                      return 1;
               }
               if (!me->query_temp("xunshan/yunu"))
               {
                      message_vision("$N对着$n说:你到玉女峰后面华山小筑去看过了?这算巡的什么山?\n", this_object(), me);
                      return 1;
               }
               message_vision("$N对着$n说:不错,辛苦了。你这就去休息去吧。\n", this_object(), me);
               me->delete_temp("xunshan");                     
               me->add("combat_exp", random(100));
               me->add("potential", random(40));
               return 1;
        }
        else
        {
               if ( query_temp("xunshan") < 1)
               {
                      message_vision("$N对着$n说:今天已经有人巡山去了。你明天再来吧。\n", this_object(), me);
                      return 1;
               }
               if( me->query("family/family_name") != "华山派")
               {
                      message_vision("$N对着$n大喝一声:本派弟子才能巡山。你是哪来的奸细?休怪我剑下不留情!\n", this_object(), me);
                      this_object()->kill_ob(me);
                      return 1;
               }
               else
               {
                      add_temp("xunshan", -1);
                      message_vision("$N对着$n说:本派弟子例当巡山。你,很好,很好!这就去吧。\n", this_object(), me);
                      me->set_temp("xunshan/start", 1);
                      me->set_temp("xunshan/time", time());
                      return 1;
               }
        }
}


d\biwu\zhang.c

// zhang.c 张三丰

inherit NPC;
inherit F_MASTER;

void create()
{
        set_name("张三丰", ({ "zhang sanfeng", "zhang" }));
        set("nickname", "邋遢真人");
        set("long",
                "他就是武当派开山鼻祖、当今武林的泰山北斗张三丰真人。\n"
                "身穿一件污秽的灰色道袍,不修边幅。\n"
                "身材高大,年满百岁,满脸红光,须眉皆白。\n");
        set("gender", "男性");
        set("age", 100);
        set("attitude", "friendly");
        set("shen_type", 1);
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
       
        set("max_qi", 15000);
        set("max_jing", 13000);
        set("neili", 15000);
        set("max_neili", 15000);
        set("jiali", 100);
        set("combat_exp", 7000000);
        set("score", 500000);
        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "dodge.zong" :),
                (: perform_action, "unarmed.zhenup" :),
                (: perform_action, "unarmed.zhan" :),
                (: perform_action, "unarmed.ji" :),
                (: perform_action, "unarmed.jielidali" :),
                (: perform_action, "sword.lian" :),
                (: perform_action, "sword.chan" :),
                (: perform_action, "sword.chanup" :),
                (: perform_action, "sword.sui" :),
                (: perform_action, "sword.lian" :),
                (: perform_action, "sword.lian" :),
                (: perform_action, "sword.lian" :),               
        }) );
        set_skill("force", 250);
        set_skill("taiji-shengong", 300);
        set_skill("dodge", 150);
        set_skill("tiyunzong", 300);
        set_skill("unarmed", 200);
        set_skill("taiji-quan", 300);
        set_skill("parry", 200);
        set_skill("sword", 200);
        set_skill("taiji-jian", 300);
        set_skill("liangyi-jian", 150);
        set_skill("wudang-array", 300);
        set_skill("array",100);
        set_skill("taoism", 250);
        set_skill("literate", 100);

        map_skill("force", "taiji-shengong");
        map_skill("dodge", "tiyunzong");
        map_skill("unarmed", "taiji-quan");
        map_skill("parry", "taiji-jian");
        map_skill("sword", "taiji-jian");
        set_temp("apply/attack", 600);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 500);

        create_family("武当派", 1, "开山祖师");
        set("class", "taoist");

        setup();
        carry_object("/clone/weapon/changjian")->wield();
}

void attempt_apprentice(object ob)
{
        if ((int)ob->query("guarded") < 5) {
                command("say " + RANK_D->query_respect(ob) +
                        "你对我武当派尽了多少心力,有几分忠心呢?");
                return;
        }
        if ((int)ob->query_skill("taiji-shengong", 1) < 60) {
                command("say 我武当派乃内家武功,最重视内功心法。");
                command("say " + RANK_D->query_respect(ob) +
                        "是否还应该在太极神功上多下点功夫?");
                return;
        }
    if ((int)ob->query_skill("taoism", 1) < 80)
    {
        command("say 我武当派乃道家武功,高深的武功离不开道学心法。");
        command("say " + RANK_D->query_respect(ob) +
            "是否还应该多读读道德经?");
        return;
    }
        if ((int)ob->query("shen") < 2000) {
                command("say 学武之人,德义为先,功夫的高低倒还在其次,未练武,要先学做人。");
                command("say 在德行方面," + RANK_D->query_respect(ob) +
                        "是否还做得不够?");
                return;
        }
        if (ob->query_int() < 30) {
                command("say 我武当派武功全从道藏悟出。");
                command("say 要能达到炉火纯青之境,体质什么的倒是无关紧要,悟性却是半点也马虎不得。");
                command("say " + RANK_D->query_respect(ob) + "的悟性还大有潜力可挖,还是请回吧。");
                return;
        }
        command("chat 哈哈哈哈!!!!");
        command("chat 想不到老道在垂死之年,又觅得一个可塑之才,真是可喜可贺。");
        command("recruit " + ob->query("id"));
}

[ 本帖最后由 leotang111 于 2007-6-23 21:02 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-23 21:02 | 显示全部楼层
d\biwu\zhangwuji.c

//zhangwuji.c

#include <ansi.h>

inherit F_MASTER;
inherit F_UNIQUE;
inherit NPC;

void greeting(object ob);
void create()
{
    seteuid(getuid());
    set_name("张无忌", ({ "zhang wuji", "zhang", "wuji" }));
    set("long", "明教教主张无忌,统领天下十万教众,豪气干云,叱咤千秋,\n"
               +"「九阳神功」、「乾坤大挪移」独步天下,是江湖中不世出的\n"
               +"少年英雄。\n");
    set("title",HIG "明教"HIM"教主"NOR);
    set("gender", "男性");
    set("age", 20);
    set("shen_type",1);
    set("attitude", "friendly");
    set("class", "fighter");

    set("per", 28);
    set("str", 36);
    set("int", 36);
    set("con", 30);
    set("dex", 30);

    set("qi", 4050);
    set("max_qi", 4050);
    set("jing", 4050);
    set("max_jing", 4050);
    set("neili", 18000);
    set("max_neili", 18000);
    set("jiali", 120);

    set("combat_exp", 5000000);
    set("score", 455000);
   
    set_skill("force", 250);
    set_skill("unarmed", 200);
    set_skill("dodge", 200);
    set_skill("parry", 220);
    set_skill("hand",200);
    set_skill("sword",250);
    set_skill("blade", 200);
    set_skill("cuff", 250);
    set_skill("jiuyang-shengong", 300);
    set_skill("qiankun-danuoyi", 300);
    set_skill("qishang-quan", 300);
    set_skill("shenghuo-shengong", 300);
    set_skill("taiji-quan",150);
    set_skill("taiji-jian",150);
    set_skill("taiji-dao",150);
    set_skill("shenghuo-ling",300);

    map_skill("force", "shenghuo-shengong");
    map_skill("dodge", "qiankun-danuoyi");
    map_skill("unarmed", "qishang-quan");
    map_skill("cuff", "qishang-quan");
    map_skill("hand", "taiji-quan");
    map_skill("sword","shenghuo-ling");
    map_skill("parry","shenghuo-ling");
    map_skill("blade","taiji-dao");
        set_temp("apply/attack", 400);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 250);

    create_family("明教",34, "教主");

    set("chat_chance",2);
    set("chat_msg",({
"张无忌愤然说道“大丈夫当以国为家, 捐躯沙场, 抗元大业未成, 同辈仍需努力!”\n",
        "张无忌叹道“人生失一知己, 生亦何欢, 死亦何忧, 敏儿, 你在哪里?”\n",
        "张无忌道“我教兄弟听了: 生于乱世, 当克己为公, 行侠仗义, 荡寇驱魔!”\n",
//                (: random_move :)
    }));

        set("chat_chance_combat", 90);
        set("chat_msg_combat", ({
                (: perform_action, "sword.duo" :),
                (: perform_action, "sword.tougu" :),
                (: perform_action, "sword.xiyanling" :),
                (: perform_action, "sword.yinfeng" :),               
                (: command("unwield ling") :),
                (: command("unwield ling") :),
                (: command("wield ling") :),
                (: command("wield ling") :),
                (: perform_action, "cuff.hunpofeiyang" :),               
                (: perform_action, "cuff.youyouhunduan" :),               
                (: perform_action, "cuff.hunpofeiyang" :),               
                (: perform_action, "cuff.youyouhunduan" :),               
                (: perform_action, "dodge.canghaiyixiao" :),                                
        }) );
    set("inquiry",([
          "明教" :     "明教正在编写之中,请君稍候。\n",
          "金毛狮王" : "那是我义父谢大侠的职司。\n",
          "谢逊" :     "他就是我义父的大号。\n",
          "张翠山" :   "你想找我父亲有事麽? \n",
          "殷素素" :   "我妈是明尊座下紫微堂主。\n",
          "张三丰" :   "我太师父近来可好? \n",
          "赵敏" :     "人生失一知己, 生亦何欢, 死亦何忧, 敏儿, 你在哪里?\n",
          "小昭" :     "小昭我可一直念着她的好处。\n",
          "周芷若" :   "找她就去峨嵋山, 别来烦我。\n",
    ]));
    setup();
    carry_object("/d/mingjiao/obj/yitianjian");
    carry_object("/clone/book/shenghuo-ling")->wield();
//            carry_object("/d/mingjiao/obj/jiaozhumingpao")->wear();
    add_money("silver",70);
}

void init()
{
        object ob;

        ::init();

        if (interactive(this_player()) && this_player()->query_temp("fighting"))
        {
                COMBAT_D->do_attack(this_object(), this_player(), query_temp("weapon") );
                this_player()->add_temp("beat_count", 1);
        }      
        if( interactive(ob=this_player()) && !is_fighting())
        {
                remove_call_out("greeting");
                call_out("greeting",1,ob);
        }
}

void greeting(object ob)
{
        if(!ob || environment(ob)!=environment()) return;
        if((int)ob->query("shen")<-50000)
        {
//      command("say
        command("wield yitian jian");
        command("hit"+(string)ob->query("id"));
        command("unwield yitian jian");
        }
        else if((int)ob->query("shen")<-5000)
        {
                command("say 魔从心起,于武学不利,其道必诛,劝君放下屠刀,立地成佛.");
        }
        else if((int)ob->query("shen")<-100)
        {
                command("say 这位朋友,人行江湖,言行当正,切务走进邪魔歪道.");
        }
        else if((int)ob->query("shen")>=0)
        {
                command("say 光明正道任人走,劝君多加保重.");
        }
        else if((int)ob->query("shen")>10000)
        {
                command("say 大侠在上,受无忌一礼,大侠它日必为武林翘楚.");
        }
        return;
}

void attempt_apprentice(object ob)
{
        if((int)ob->query("int")<20)
        {
                command("say 你的悟性太低了,不适合学习我的功夫。");
                return 0;
        }
        if((string)ob->query("gender")=="无性")
        {
                command("say 你阳气不足,习我功夫恐将走火如魔。");
                return 0;
        }
        if((int)ob->query("shen") <= 15000)
        {
                command("say 你应当多作些行侠仗义的事,以修身心。");
                return 0;
        }
        command("say 好,我就收下你这位好徒弟!");
        command("say 你的职司就是本教的光明使者。");
        command("recruit " + ob->query("id"));
        ob->set("title", HIR"明教使者"NOR);
        return;
}

int accept_fight(object ob)
{
    if(((int)ob->query("combat_exp")<30000)&&((int)ob->query("shen")>0))
    {
        message_vision("武林中人最忌争强斗狠,你不是我的对手,回去吧。\n",ob);
        return 0;
    }
    message_vision("张无忌一拱手说道:这位"+RANK_D->query_respect(ob)+
        ",在下领教了。\n", ob);
    return 1;
}



d\biwu\zheng.c

// gangzhang.c 钢杖

#include <armor.h>
#include <ansi.h>
inherit HANDS;

void create()
{
        set_name(HIY"神杖"NOR, ({ "shenstaff" }));
        set_weight(5000);
        if (clonep())
                set_default_object(__FILE__);
        else {
                set("unit", "根");
                set("long", "这是一根象征正义的神杖,上面刻着“自古今来,邪不胜正”。你可以召唤(alert)护卫来保护自己。\n");
                set("no_put",1);
                set("no_get",1);
                set("no_give",1);
                set("no_drop",1);
                set("no_steal",1);
//                set("value", 1500);
                set("rigidity",100);
                set("armor_prop/intelligence",5);
                set("armor_prop/strength",5);
                set("armor_prop/dexterity",5);
                set("armor_prop/constitution",5);
                set("armor_prop/karay",5);
                set("armor_prop/percao",5);
                set("material", "steel");
                set("wield_msg", "$N抽出一根$n握在手中。\n");
                set("unwield_msg", "$N将手中的$n插回腰间。\n");
        }
  
        setup();
}


d\biwu\zhou.c

// zhou.c 周芷若

#include <command.h>
#include <ansi.h>

inherit NPC;
inherit F_MASTER;
void create()
{
        set_name("周芷若", ({ "zhou-zhiruo","zhiruo","zhou"}));
        set("long",
                "她是峨嵋派的第四代掌门弟子。\n"
                "一张脸秀丽绝俗。身着一身淡黄衣裳。\n"
                "略显清减的巧笑中带了些许无奈。\n"
                "她很寂寞。\n");
        set("gender", "女性");
        set("age", 20);
        set("attitude", "peaceful");
        set("shen_type", -1);
        set("class", "fighter");
        set("str", 30);
        set("int", 30);
        set("con", 30);
        set("dex", 30);
        set("per", 30);

        set("max_qi", 3500);
        set("max_jing", 1000);
        set("neili", 3500);
        set("max_neili", 3500);
        set("jingli", 1000);
        set("max_jingli", 1000);

        set("combat_exp", 5000000);
        set("score", 1000);
        set_skill("persuading", 80);
        set_skill("force", 100);
        set_skill("throwing", 100);
        set_skill("dodge", 100);
        set_skill("finger", 100);
        set_skill("parry", 100);
        set_skill("unarmed", 100);
        set_skill("strike", 100);
        set_skill("sword", 100);
        set_skill("claw", 100);
        set_skill("literate", 100);
        set_skill("mahayana", 100);
        set_skill("jinding-zhang", 100);
        set_skill("jiuyin-baiguzhao", 100);
        set_skill("tiangang-zhi", 100);
        set_skill("huifeng-jian", 100);
        set_skill("zhutian-bu", 100);
        set_skill("linji-zhuang", 100);
        map_skill("force","linji-zhuang");
        map_skill("claw","jiuyin-baiguzhao");
        map_skill("dodge","zhutian-bu");
        map_skill("strike","jinding-zhang");
        map_skill("sword","huifeng-jian");
        map_skill("parry","huifeng-jian");
        prepare_skill("strike","jinding-zhang");
        set_temp("apply/attack", 500);
        set_temp("apply/defense", 200);
        set_temp("apply/armor", 500);
        set_temp("apply/damage", 550);
        create_family("峨嵋派", 4, "掌门弟子");

        setup();
        carry_object("/clone/weapon/changjian");
        carry_object("/d/emei/obj/ycloth.c")->wear();
}

void init()
{
        object ob;

        ::init();
        if( interactive(ob=this_player()) && !is_fighting() )
        {
                remove_call_out("greeting");
                call_out("greeting", 2, ob);
        }
}

[ 本帖最后由 leotang111 于 2007-6-23 21:03 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
头像被屏蔽
 楼主| 发表于 2007-6-23 21:09 | 显示全部楼层
bwdh场景设置:

d\bwdh\cangku.c

//Cracked by Kafei
// cangku to store all players's stuff

inherit ITEM;
#include <ansi.h>

void create()
{
  set_name("雪领仓库", ({ "cangku", "ku"}) );
  set_weight(100000000);
  set_max_encumbrance(500000000);
  if( clonep() )
    set_default_object(__FILE__);
  else {
    set("unit", "坐");
    set("long", "雪领仓库存着比武的玩家们的随身物品.\n");
    set("value", 1000000);
    set("material", "steel");
    set("no_get",1);
    set("no_clean_up", 1);
  }
  setup();
}


d\bwdh\cangku.c
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2025-9-24 23:34

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表