reboot.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 79 行
C
79 行
// reboot.c
#include <login.h>
#include <ansi.h>
#include <net/daemons.h>
inherit F_DBASE;
int main(object me, string arg)
{
string wiz_status;
object npc;
if( me != this_player(1) ) return 0;
wiz_status = SECURITY_D->get_status(me);
if( wiz_status != "(admin)" && wiz_status != "(arch)" )
return notify_fail("只有 (arch) 以上的巫师才能重新启动" + MUD_NAME + "\n");
message("system",
HIW "\t\t【海洋II】将在五分钟后重新启动!请尽快存档(save)!\n\n" NOR,
users() );
call_out("countdown", 60, 5);
return 1;
}
private void countdown(int min)
{
min--;
if( min ) {
message("system",
HIR "\t\t【海洋II】将在" + chinese_number(min) + "分钟后重新启动!请尽快存档(save)!\n\n"NOR,
users() );
call_out("countdown", 60, min);
} else {
message("system",
HIW "\t\t【海洋II】重新启动。。。请稍候再登陆!\n"NOR,
users() );
call_out("do_shutdown", 3+random(8));
}
}
private void do_shutdown()
{
int i,j;
object *ob, link_ob;
string id;
j=0;
seteuid(getuid());
/* set("channel_id", "存盘精灵"); // 这段存盘的代码看上去就不大顺眼,肯定写的不太好,但太晚了我就不改它了
ob=users();
i=sizeof(ob);
for( i=0;i<sizeof(ob);i++) {
id = (string) ob[i]->query("id");
if (!id) continue;
if(!environment(ob[i]) ) continue;
if( !objectp(link_ob = ob[i]->query_temp("link_ob")) ) continue;
if( (int)link_ob->save() && (int)ob[i]->save() ) j = 1;
else CHANNEL_D->do_channel( this_object(), "sys", ob[i]->query("name")+"档案自动存盘失败。");
}
CHANNEL_D->do_channel( this_object(), "sys", "档案自动存盘成功。");*/
shutdown(0);
return;
}
int help (object me)
{
write(@HELP
指令格式: reboot
重新起动游戏, 系统会开始倒数计时, 五分钟後重新起动。
HELP
);
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?