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

📄 watch.vtc

📁 Unix下的MUD客户端程序
💻 VTC
字号:
if (!depend_loaded) Load("depend");register_file("watch");file_depends_on("bracket");Twatch ?:= new_assoc();watches ?:= new_list();watch_interval = 60;func new_watch(name) [watch] {	watch = alloc(2, Twatch);	watch->name = name;	watch->found = new_list();	return watch;}func find_watch(name) [i] {	for (i = 1; i <= *watches && stricmp(watches[i]->name, name); i++);	return (i <= *watches) ? i : NULL;}func watch() [r] {	while (1) {		sleep(watch_interval);		if (!*watches)			continue;		cleanup_watches();		for (r = head(T_RMT); r; r = next(r))			check_watches(r);	}}func cleanup_watches() [i, j, found] {	for (i = 1; i <= *watches; i++) {		found = watches[i]->found;		for (j = 1; j <= *found; j++) {			if (!found[j])				del_list(found, j--);		}	}}func check_watches(r) [wtype, i, j, k, l, name] {	if (!r->type->bracket)		return;	who = get_cmd_response("WHO", r);	for (i = 1; i <= *watches; i++) {		name = watches[i]->name;		found = watches[i]->found;		l = strlen(name);		for (j = 1; j <= *who && stricmp(name, who[j], l); j++);		k = list_find_eq(watches[i]->found, r);		if (j <= *who && !k) {			printf("<!> %s on.\n", name);			add_list(watches[i]->found, r);		} else if (j > *who && k) {			printf("<!> %s off\n", name);			del_list(watches[i]->found, k);		}	}}func save_watches(fp) {	for (i = 1; i <= *watches; i++)		fprintf(fp, "add_watch(%s);\n", stringconst(watches[i]->name));}add_to_hook(save_hook, .save_watches);func Watch(name) {	if (find_watch(name))		printf("%s already being watched.\n", name);	else		add_list(watches, new_watch(name));}func Unwatch(name) [i] {	i = find_watch(name);	if (!i)		printf("%s not being watched.\n", name);	else		del_list(watches, i);}func List_watches() [i] {	for (i = 1; i <= *watches; i++)		output(watches[i]->name + "\n");}if (!watching) {	detach(.watch);	watching = 1;}add_cmd("watch", -1, .Watch, "/watch <name>");add_cmd("unwatch", -1, .Unwatch, "/unwatch <name>");add_cmd("list_watches", 0, .List_watches, "/list_watches");

⌨️ 快捷键说明

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