sql.c

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

C
77
字号
// checkip.c

#include "/doc/help.h"
#include <ansi.h>

inherit F_CLEAN_UP;

string check_ip(object ob, object *user);

int main(object me, string arg)
{
        int i, num;
        string msg, result;
	string wiz_status;
        object *user;

	if( me != this_player(1) ) return 0;
	wiz_status = SECURITY_D->get_status(me);
        user = users();

	if( wiz_status != "(admin)" && wiz_status != "(wizard)" && wiz_status != "(arch)" )
		return notify_fail("只有 (arch) 以上的巫师才能使用此命令" + MUD_NAME + "\n");

        for(i = 0;i < sizeof(user);i++)
                user[i]->set_temp("pending/ipcheck", 0);

        msg = "\n检查在线玩家IP:\n\n";
        num = 0;
        for(i = 0;i < sizeof(user);i++) {
                if(user[i]->query_temp("pending/ipcheck") )     continue;

                if( result = check_ip(user[i], user) ) {
msg += HIW + result + NOR"目前正从"HIY + query_ip_name(user[i]) + NOR"连线中。\n";
                        num++;
                }
        }
        if(num == 0)    msg += "\n检查结果:目前线上玩家的 IP 各不相同。\n";

        if(num > 0)     msg += sprintf("\n检查结果:有 2 玩家或以上相同 IP 数量%d 。\n",num);
        write(msg);
        return 1;
}

string check_ip(object ob, object *user)
{
        int i, find = 0;
        string result, ip, id;

        id = ob->query("id");
        ip = query_ip_name(ob);
        result = ob->query("name") + "(" + ob->query("id") + ")  ";
        for(i = 0;i < sizeof(user);i++) {
                if(user[i]->query("id") != id && query_ip_name(user[i]) == ip) {
                        result += user[i]->query("name") + "(" + user[i]->query("id") + ")  ";
                        user[i]->set_temp("pending/ipcheck", 1);
                        if(id && user[i]->query("id") )
                                find++;
                }
        }

        if( find )      return result;

        return 0;
}

int help(object me)
{
        write(@HELP
指令格式: checkip

检查线上相同IP的玩家。

HELP
        );
        return 1;
}

⌨️ 快捷键说明

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