|
楼主 |
发表于 2010-9-27 15:02:12
|
显示全部楼层
头房间例子
inherit ".../dynroom.c"
//实现这个变量就会随机描述,当这个变量有3条或者以上记录的时候就会起作用
private string *dynamicDesc=({"这里有一颗树","这个树上有一个桃子","桃子旁边有一只猴子","猴子旁边有一个猎人"});
//实现这个变量就会随机更新房间的地名和描述。注意这个变量优先级比上一个变量优先级高。当这个变量有2条或者以上记录的时候就会发生作用。
private mapping dynamicDescFull=(["小树林":"树林中非常寂静。","林中空地":"空地上有几只蜜蜂飞行","小溪":"小溪中有几只青蛙。","大树":"一株千年古木"]);
void create() {....}
void init() {....}
//如果想设置成固定房间则覆盖本函数,取返回值为0,否则不需要覆盖函数query_dynamic()
int query_dynamic()
{
return 0;
}
//如果房间中存在固定方向,则实现本函数,本函数设置的方向要和create中的set("exits",...)对应的方向一一对应。
//如果不存在固定方向,则不需要实现本函数,默认返回为({});
string *query_static_exits()
{
string *exits=({"east","south"});
return exits;
}
//动态方向的时候开发的计算随机方向的函数。
string get_random_exits(string *exitArray)
{
string *initExits=({"east","south","north","west","enter","out","up","down"});
string *effExits;
effExits=initExits-exitArray;
return effExits[random(sizeof(effExits))];
}
//返回动态方向计算函数名
string query_dynamic_function()
{
return "get_random_exits";
}
//返回地图所在目录
string query_dynamic_dir()
{
return __DIR__;
}
//实际上当返回值为1的时候并不需要覆盖这个函数,因为默认值为1,当选择类型为2,3的时候就必须覆盖本函数了。
int query_dynamic_type()
{
return 1;
}
[ 本帖最后由 seagate 于 2010-9-27 03:18 PM 编辑 ] |
|