描述

当玩家与服务器断开连接时会调用此回调。
姓名 描述
playerid 断开连接的玩家的 ID。
reason 断线的原因。见下表。

返回

0 - 将阻止其他过滤器脚本接收此回调。 1 - 表示此回调将传递给下一个过滤器脚本。 它总是在过滤器脚本中首先被调用。

原因

ID 原因 细节
0 超时/崩溃 玩家的连接已断开。要么他们的游戏崩溃了,要么他们的网络出现了故障。
1 辞职 玩家有目的地退出,可以使用 /quit (/q) 命令或通过暂停菜单。
2 踢出/禁止 玩家被服务器踢出或禁止。
3 风俗 被一些图书馆使用。保留供模特私人使用。
4 模式结束 当前模式即将结束,因此请断开所有玩家的连接(他们仍在服务器上)。
警告
原因 3 最初由fixes.inc 添加到 SA:MP 中 原因 3 和 4 是由开放多人游戏服务器添加的。

例子

  1. public OnPlayerDisconnect(playerid, reason)
  2. {
  3. new
  4. szString[64],
  5. playerName[MAX_PLAYER_NAME];
  6. GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  7. new szDisconnectReason[5][] =
  8. {
  9. "Timeout/Crash",
  10. "Quit",
  11. "Kick/Ban",
  12. "Custom",
  13. "Mode End"
  14. };
  15. format(szString, sizeof szString, "%s left the server (%s).", playerName, szDisconnectReason[reason]);
  16. SendClientMessageToAll(0xC4C4C4FF, szString);
  17. return 1;
  18. }

笔记

提示
在此回调中使用某些函数可能无法正常工作,因为调用回调时播放器已断开连接。这意味着您无法从 GetPlayerIp 和 GetPlayerPos 等函数中获取明确的信息。