跳到主要内容

OnPlayerDisconnect

描述

当玩家与服务器断开连接时触发该回调。

参数说明
playerid断开连接的玩家ID
reason断开原因(见下表)

返回值

0 - 阻止其他滤镜脚本接收此回调
1 - 允许传递给后续滤镜脚本

该回调在滤镜脚本中总是优先触发。

断开原因

ID原因类型详细说明
0超时/崩溃玩家连接丢失(游戏崩溃或网络故障)
1主动退出玩家通过/quit命令或暂停菜单主动退出
2踢出/封禁被服务器踢出或封禁
3自定义原因由部分库使用,保留给模式的私有用途
4模式结束当前模式结束导致玩家断开(玩家仍在服务器)
注意

原因ID 3最初由fixes.inc添加
原因ID 3和4由Open Multiplayer服务端新增

示例

public OnPlayerDisconnect(playerid, reason)
{
new
szString[64],
playerName[MAX_PLAYER_NAME];

GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);

new szDisconnectReason[5][] =
{
"超时/崩溃",
"主动退出",
"踢出/封禁",
"自定义原因",
"模式结束"
};

format(szString, sizeof szString, "%s 离开了服务器(原因:%s)。", playerName, szDisconnectReason[reason]);

SendClientMessageToAll(0xC4C4C4FF, szString);
return 1;
}

注意

提示

由于玩家已断开连接,部分函数可能无法正常工作:

相关回调

以下回调可能与当前回调存在关联: