mud兼容tomud客户端实现步骤
2008/12/25 15:56:55
一、在 include 目录下加入 tomud.h 文件,文件内容如下:
Copy code #define TMI(x) (""+x+"")
#define TMA ""
#define TMB ""
#define INFO TMI
#define HEND sprintf("%c",18)
#define PTEXT(x) TMI("ptext "+x)
#define ALERT(x) TMI("alert "+x)
#define MTEXT(x) TMI("ptext "+x)
#define L_ITEM(x) RANK_D->new_short(x)
#define L_ICON(x) TMI("licon "+x)
#define CLEAN0 TMI("lbclear0")
#define ADD0(x) TMI("lbadd0 "+L_ITEM(x)+";")
#define REM0(x) TMI("lbrem0 "+L_ITEM(x)+";")
#define CLEAN1 TMI("lbclear1")
#define ADD1(x) TMI("lbadd1 "+L_ITEM(x)+";")
#define REM1(x) TMI("lbrem1 "+L_ITEM(x)+";")
#define CLEAN2 TMI("lbclear2")
#define ADD2(x) TMI("lbadd2 "+L_ITEM(x)+";")
#define REM2(x) TMI("lbrem2 "+L_ITEM(x)+";")
二、在 include 目录下的 globals.h 里添加代码 #include "tomud.h" // 以下所有修改内容仅注意修改包含 tomud 字符的地方
三、在 master.c 文件里添加如下内容:
Copy code
// Master.c
//
// For ES II mudlib
// Original from Lil
// Rewritten by Annihilator (11/07/94)
// Modified by Xiang for XKX (12/15/95)
// Updated by Doing Lu for hell (2K)
#pragma optimize
#pragma save_binary
#define BIG5_PORT 4000
#define TOMUD_PORT 6000 // 这里为 tomud 设置专用连接端口 6000
#define TRACE_DETAIL_LENGTH_LIMIT 300
#define SPRINTF_OVERFLOW 65535
#include <ansi.h>
#include <config.h>
#include <localtime.h>
object connect(int port)
{
object login_ob;
mixed err;
err = catch(login_ob = new(LOGIN_OB));
if (err)
{
write("现在有人正在修改使用者连线部份的程式,请待会再来。\n");
write(err);
destruct(this_object());
}
if (port == BIG5_PORT)
login_ob->set_temp("big5", 1);
else
if (port == TOMUD_PORT) // 这里是判断是否是 tomud 专用端口连接
// 设置TOMUD用户的连接标记,配合 logind.c 判断
login_ob->set_temp("tomud", 1);
return login_ob;
}
四、logind.c 文件里做以下修改(以hell的logind.c为例)
Copy code
void logon(object ob)
{
object *usr, *login_usr;
int i, ip_num, wiz_cnt, ppl_cnt, login_cnt;
int iplimit;
int user_num;
int now_time;
string msg;
mapping temp_time;
string *counter = ({});
string ipname;
if (uptime() < 30)
{
write(sprintf("%s正在启动过程中,请稍候再来。\n", LOCAL_MUD_NAME()));
destruct(ob);
return;
}
now_time = time() & 0xFFFFFFFE;
if (BAN_D->is_banned(query_ip_number(ob)) == 1)
{
write("你的地址在本 MUD 不受欢迎。\n");
destruct(ob);
return;
}
if (mapp(temp_time = blocks[query_ip_number(ob)]))
{
if (now_time - temp_time["time"] < temp_time["punish"])
{
write(temp_time["reason"] + "请过" +
appromix_time(temp_time["time"] + temp_time["punish"] - now_time) + "再尝试连线。\n");
destruct(ob);
return;
}
remove_blocks(q
下一页
返回列表
返回首页
©2025 MUD游戏网_文字mud 电脑版
Powered by iwms