⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xrm.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// xrm.c 
//write by JackyBoy@CuteRabbit Studio for SDXL & CCTX 1999/6/2
inherit F_CLEAN_UP;
int help();
int rmDir(string );
static int flag; //判断是否终止递归调用,并限制递归层数(只允许低于16层的调用)

int main(object me, string file)
{
	seteuid(geteuid(me));
	write("X rm 命令 v0.1  \nWrite By JackyBoy@CuteRabbit for CCTX & SDXL 1999/6/1\n"+
		"主页:http://mud.yn.cninfo.net/jackyboy\n邮件:jackyboy@126.com\n");
    if (!file) return notify_fail("你要删除那个档案?\n");
	file=resolve_path(me->query("cwd"),file);
	log_file("cmds/xrm.log",
	sprintf("%s(%s) 删除 %s on %s\n",
	me->name(1),   //记录使用命令的人名
	geteuid(me),   //记录使用命令的ID
	file,          //记录删除的文件路径
	ctime(time()) ) ); //记录使用命令的时间
	flag=0;
	switch(file_size(file))
	{
		case -1:
			write("对不起,你无权删除这个目录(或文件)。\n");
			break;
		case -2:
			write("删除目录(文件)中...\n");
			if(rmDir(file)==0)
				write("删除失败。\n");
			else
				write("删除成功。\n");
			break;
		default:
			if(rm(file) )
				write("删除完成。\n");
			else
				write("你没有删除这个档案的权利。\n");
	}
	return 1;
}

int rmDir(string file)
{
	string tmp;
	if(flag>15)
		return 0;
	reset_eval_cost();
	switch(file_size(file))
	{
		case -1 : 
			flag=16;//设置出错中断
			write("部分文件无权删除,错误!\n");
			return 0;
			break;
		case -2 :
			//删除此目录下的文件和目录
			if(file[sizeof(file)]!='/')
				file=file+"/";
			foreach(tmp in get_dir(file))
			{
				if(!rmDir(file+tmp))
				{
					flag=16;//中断,因为删除出错
					return 0;
				}
			}
			if(!rmdir(file))
			{
				flag=16;//中断,因为删除出错
				return 0;
			}
			break;
		default :
			if(!rm(file))
			{
				flag=16;//中断,因为删除出错
				return 0;
			}
			break;
	}
	return 1;
}

int help()
{
  write(@HELP

X rm 命令 v0.1
Write By JackyBoy@CuteRabbit for CCTX & SDXL 1999/6/1
主页:http://mud.yn.cninfo.net/jackyboy
邮件:jackyboy@126.com


指令格式 : xrm <档名>
此指令可让你删除有权修改的档案,可以删除带目录的档案。
注意:此命令比较危险,请小心使用。
HELP
    );
    return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -