限制相似的中文姓名
2007/5/11 21:31:51
// named.c 保存所有玩家的名字
#include
#pragma optimize
#pragma save_binary
inherit F_SAVE;
inherit F_DBASE;
static string *family_name = ({ "东方", "独孤", "慕容", "欧阳", "司马",
"西门", "尉迟", "长孙", "诸葛" });
void create()
{
seteuid(getuid());
restore();
}
void remove()
{
save();
}
void mud_shutdown()
{
save();
}
// the name PATH store in dbase
#define PATH(name) (name[0..1] + "/" + name)
// remove the mapping of a name & id
public void remove_name(string name, string id)
{
string old;
string *ms;
if (! stringp(name) || strlen(name) < 2 ||
undefinedp(old = query(PATH(name))))
return;
if (! stringp(old) ||
! sizeof(ms = explode(old, "/") - ({ id })))
{
delete(PATH(name));
if (! sizeof(query(name[0..1])))
delete(name[0..1]);
save();
return;
}
set(PATH(name), implode(ms, "/"));
save();
}
// record the mapping of a name & id
public void map_name(string name, string id)
{
string old;
string *ms;
if (! stringp(name) || strlen(name) < 2)
return;
if (! stringp(old = query(PATH(name))))
set(PATH(name), id);
else
{
ms = explode(old, "/");
if (member_array(id, ms) != -1)
// alreay exist
return;
ms += ({ id });
set(PATH(name), implode(ms, "/"));
}
save();
}
// check name
public string who_is(string name)
{
string id;
if (! stringp(name) || strlen(name) < 2 ||
! stringp(id = query(PATH(name))))
return "没有人叫这个名字。\n";
return "泥潭中叫" + name + "的有:" + id + "\n";
}
// check the id - name
private int really_exist(string name, string id)
{
object ob;
object user;
int result;
if (! stringp(id))
return 0;
ob = find_player(id);
if (objectp(ob))
{
if (ob->name(1) == name)
return 1;
else
return 0;
}
// read the data of user object
ob = new(LOGIN_OB);
ob->set("id", id);
user = LOGIN_D->make_body(ob);
destruct(ob);
if (! objectp(user))
// no such user
return 0;
result = user->restore() && (user->name(1) == name);
destruct(user);
return result;
}
// assure the id matched the name
public void assure_map_name(string name)
{
string id;
string *ids;
if (! stringp(id = query(PATH(name))))
// null name
return;
ids = explode(id, "/");
// examine all the id
下一页
返回列表
返回首页
©2025 MUD游戏网_文字mud 电脑版
Powered by iwms