跳到主要内容

GetPlayerPing

描述

获取玩家的网络延迟(Ping)。Ping 值表示服务器与客户端之间通信的往返时间。

参数名说明
playerid需要获取 Ping 值的玩家 ID

返回值

返回玩家当前的 Ping 值(单位:毫秒)

示例代码

new string[24];
format(string, sizeof(string), "你的Ping值: %d", GetPlayerPing(playerid));
SendClientMessage(playerid, -1, string);

自动踢出高延迟玩家示例:

// 声明定时器ID数组,默认值为0
new gPlayerPingTimer[MAX_PLAYERS] = {0, ...};

// 定义最大允许Ping值
const MAX_ACCEPTED_PING = 500;

public OnPlayerConnect(playerid)
{
// 创建定时器检测玩家Ping值
gPlayerPingTimer[playerid] = SetTimerEx("Ping_Timer", 3 * 1000, true, "i", playerid);
}

public OnPlayerDisconnect(playerid, reason)
{
// 清除定时器
KillTimer(gPlayerPingTimer[playerid]);
gPlayerPingTimer[playerid] = 0;
}

// 转发函数(回调)
forward Ping_Timer(playerid);
public Ping_Timer(playerid)
{
// 如果玩家的ping值超过通常接受的高ping值,则踢出玩家
if (ping > MAX_ACCEPTED_PING)
{
new string[128];
format(string, sizeof(string), "你因高延迟被踢出(当前Ping值:%d)", ping);
SendClientMessage(playerid, -1, string);

Kick(playerid);
}
return 1;
}

注意事项

注意

玩家刚连接时,Ping 值可能暂时显示为 65535

相关函数