suicide.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 111 行

C
111
字号
// suicide.c#include <ansi.h>inherit F_CLEAN_UP;int main(object me, string arg){	if( me->is_busy() )		return notify_fail("你上一个动作还没完成。\n");	if( !arg || arg != "-f") {		write("请用 suicide -f 确定自杀。\n");		return 1;	}	if( arg!="-f" ) 		return notify_fail("自杀有两种,您是要永远死掉还是重新投胎?\n");	write(		"江湖虽然险恶,生活毕竟美好,请不要轻言自杀。\n"		"选择自杀意味着这个人物的资料就永远删除了,请务必考虑清楚,\n"		"确定的话请输入您的密码:");	input_to("check_password", 1, me, 1);	return 1;}void check_password(string passwd, object me, int forever){	object link_ob;	string old_pass;	link_ob = me->query_temp("link_ob");	old_pass = link_ob->query("password");	if( crypt(passwd, old_pass)!=old_pass ) {		write("密码错误!\n");		return;	}	if (forever) {		tell_object( me,			HIR "\n\n你决定要自杀了,你有三十秒可以用来告别。\n\n\n" NOR);		me->set_temp("suicide_countdown", 30);		me->start_busy( (: call_other, this_object(), "slow_suicide" :),			(: call_other, this_object(), "halt_suicide" :) );	}}int slow_suicide(object me){	object link_ob;	int stage;	stage = me->query_temp("suicide_countdown");	me->add_temp("suicide_countdown", -1);	if( stage > 1 ) {		if( stage%5 == 0 )			tell_object(me, HIR "你还有 " + stage + " 秒的时间可以后悔,用"HIG"halt"HIR"可以终止自杀。\n" NOR);		return 1;	}   if (userp(me) && !query_heart_beat(me))        return 0;   if( me->query("hunmi",1))        return 0;   if( me->query("disable_inputs",1))        return 0;	link_ob = me->query_temp("link_ob");	if( !link_ob ) return 0;	log_file("static/SUICIDE",		sprintf("%s commits a suicide on %s\n", geteuid(me), ctime(time())) );	seteuid(getuid());	rm( link_ob->query_save_file() + __SAVE_EXTENSION__);	rm( me->query_save_file() + __SAVE_EXTENSION__ );		write("好吧,永别了:)。\n");	tell_room(environment(me), me->name() +		"自杀了,以后你再也看不到这个人了。\n", ({me}));	destruct(me);	return 0;}int halt_suicide(object me){	tell_object(me, "你放弃了自杀的念头。\n");	CHANNEL_D->do_channel(this_object(),"rumor",me->name(1) + "决定继续勇敢地活下去。");	return 1;}int help (object me){        write(@HELP指令格式: suicide [-f] 如果因为某种原因你不想活了, 你可以选择自杀.自杀分两种: suicide    : 重新投胎suicide -f : 永远的除去玩家资料, 系统会要求你             输入密码以确认身份. 请慎重选择 :) HELP);        return 1;}

⌨️ 快捷键说明

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