北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
123
返回列表 发新帖
楼主: jason

高价收购比武地图

[复制链接]
 楼主| 发表于 2010-8-21 09:46:22 | 显示全部楼层
原帖由 zine 于 2010-8-21 09:20 AM 发表
同意jason的说法,现在创意比代码多出10倍不止,有些是不太容易实现的。谁主张谁施行的原则,要把自己的想法实现出来似乎是一件比mud里练级还好玩的事情:)
就是那个文件包里给的example太少了,有些想法不知道该 ...


我解释两个sample文件吧
map.c,这个是每个地图必须的,名字不能变。
  1. inherit F_DBASE;

  2. void create()
  3. {
  4.         set("name","华山之巅");//地图名字
  5.         set("family_entries",//决定可以有几个门派参加,每个门派是一项
  6.                 ({
  7.                         ([
  8.                                 "entry":"eastgate.c",//门派1的入口
  9.                                 "number":3//门派1最多可以参加的人数
  10.                         ]),
  11.                         ([
  12.                                 "entry":"westgate.c",//门派2的入口
  13.                                 "number":3//门派2最多可以参加的人数
  14.                         ]),
  15.                 })
  16.         );
  17.         set("flag_numbers",4);//旗帜个数
  18. }
复制代码
eastgate.c,这是其中一个门的代码
  1. #include "/biwu/entryroom.h"//必须#include这个文件
  2. //其他基本是标准房间的代码。
  3. void create()
  4. {
  5.         set("short","水龙门");
  6.         set("long",@LONG
  7. 一扇汉白玉制成的大门,通体透白,上面雕刻着一条蟠龙,穿行于波涛之间。比武的英雄,
  8. 请在此等候比武开始后进入比武场。
  9. LONG
  10.         );
  11.         set("exits",
  12.                 ([
  13.                         "enter":__DIR__"e2",//从入口进入后的第一个房间。
  14.                 ]));
  15. //以下三行必须有
  16.         set("no_fight",1);
  17.         set("no_reset",1);
  18.         set("no_clean_up",1);               
  19.         setup();
  20. }
复制代码
e2.c //一个比武房间的名字
  1. inherit "/biwu/biwuroom";//必须继承这个

  2. void create()
  3. {
  4.         set("short", "流云谷");
  5.         set("long", @LONG
  6. 两座山峰之间形成的一道山谷,仿佛一个漏斗一般,吸纳着半山腰上的云雾。行走在谷中,
  7. 就仿佛行走在云层之上。这里有一面云旗,上绘九天流云。
  8. 你可以用duo这个命令来夺旗。
  9. LONG
  10.         );
  11.         set("exits", ([ /* sizeof() == 3 */
  12.                   "south" : __DIR__"e3",
  13.                   "north" : __DIR__"e1",
  14.                   "west" : __DIR__"e5",
  15.                   "out" : __DIR__"eastgate",
  16.                 ]));
  17.         set("no_clean_up", 0);
  18.         set("flag","云旗");//这里有旗,名字叫云旗
  19.         set("default_flag_hp",5);//旗的血量,等于要duo的次数
  20.         set("flag_hp",5); //旗的血量,等于要duo的次数
  21.         setup();
  22. }
复制代码



至于标准房间的写法,add_action之类的,没办法解释了。自己看lpc入门吧。这方面资料很多的。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-21 09:57:16 | 显示全部楼层
已有的example自己揣摩揣摩能弄个八九不离十出来。

改变人物状态的语句呢?
比如
{
                if(userp(invs) && invs->query("family/family_name") != this_player()->query("family/family_name"))
                {
                        this_player()->kill_ob(invs);
                }
        }
        this_player()->add_busy(1);
}

只要有现成的语句,就好理解,比如this_player()->add_busy(1)应该是下killall的玩家自身busy 1 个心跳(或别的一个计时单位)吧?
比如要让一个房间易守难攻,假设这个房间有玩家,就给不同门派的后进这个房间的玩家set 3心跳的busy,不知道这个判断条件怎么写,因为不知道最基本的一些人物属性是怎么定义的(没有例子)
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-8-21 12:10:13 | 显示全部楼层
写在init函数里
上面的例子已经说明了如何检查门派。。。

不过,路还很远啊,要把变态叫来就好了,让他教你
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-24 12:21 PM , Processed in 0.011157 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表