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

📄 path.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// path.c
// YZC 96/05/29 changed user_cwd();

string user_cwd(string name)
{
   // return ("/u/" + name[0..0] + "/" + name);
   return ("/u/" + name);
}

string user_path(string name)
{
   return (user_cwd(name) + "/");
}

string resolve_path(string curr, string new_path)
{
    int i;
    string *tmp;
    string t1,t2,t3,t4;

	if (!curr) curr = "/";
	if (!new_path || new_path == ".") return curr;
	if (new_path == "here" && this_player())
		return file_name(environment(this_player())) + ".c";
	if (new_path == "~" || new_path == "~/" )
		new_path = user_path(getuid(this_player()));
	if (sscanf(new_path,"~/%s",t1))
		new_path = user_path(getuid(this_player())) + t1;
	else if (sscanf(new_path,"~%s",t1))
		new_path = user_path(t1); 
	else if (new_path[0] != '/') {
		if( curr[sizeof(curr)-1] != '/' ) new_path = curr + "/" + new_path;
		else new_path = curr + new_path;
	}

	tmp = explode(new_path,"/");
	for (i = 0; i < sizeof(tmp); i++)
		if (tmp[i] == "..") {
			if (sizeof(tmp) > 2) {
				tmp = tmp[0..(i-2)] + tmp[(i+1)..(sizeof(tmp)-1)];
				i -= 2;
			} else {
				tmp = tmp[2 ..(sizeof(tmp)-1)];
				i = 0;
			}
		}
	 new_path = "/" + implode(tmp,"/");
	 if (new_path == "//") new_path = "/";
	 return new_path;
}

⌨️ 快捷键说明

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