Class World.Broadcast
java.lang.Object
handling.world.World.Broadcast
- Enclosing class:
World
跨頻道訊息廣播子系統。
提供把封包送往所有頻道、特定玩家或公會/家族成員的靜態工具方法。多數方法會對 ChannelServer.getAllInstances()
全頻道扇出,或透過 World.Find.findChannel(int) 定位玩家所在頻道後對其連線送出封包;具跨頻道副作用。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidbroadcastGMMessage(byte[] message) 對所有頻道廣播 GM 專用訊息封包。static voidbroadcastMessage(byte[] message) 對所有頻道廣播一般訊息封包。static voidbroadcastSmega(byte[] message) 對所有頻道廣播超級擴音器(喇叭)訊息封包。static voidsendFamilyPacket(int targetIds, byte[] packet, int exception, int guildid) 把家族封包送給單一指定角色,並驗證其家族歸屬。static voidsendGuildPacket(int targetIds, byte[] packet, int exception, int guildid) 把公會封包送給單一指定角色,並驗證其公會歸屬。static voidsendPacket(int targetId, byte[] packet) 把封包送給單一指定角色(可跨頻道)。static voidsendPacket(List<Integer> targetIds, byte[] packet, int exception) 把封包送給一批指定角色(可跨頻道),並排除其中一名角色。
-
Constructor Details
-
Broadcast
public Broadcast()
-
-
Method Details
-
broadcastSmega
public static void broadcastSmega(byte[] message) 對所有頻道廣播超級擴音器(喇叭)訊息封包。對每個
ChannelServer呼叫其broadcastSmega;具跨頻道封包送出副作用。- Parameters:
message- 已組好的喇叭訊息封包位元組
-
broadcastGMMessage
public static void broadcastGMMessage(byte[] message) 對所有頻道廣播 GM 專用訊息封包。對每個
ChannelServer呼叫其broadcastGMMessage(僅在線 GM 收得到);具跨頻道封包送出副作用。- Parameters:
message- 已組好的 GM 訊息封包位元組
-
broadcastMessage
public static void broadcastMessage(byte[] message) 對所有頻道廣播一般訊息封包。對每個
ChannelServer呼叫其broadcastMessage(全頻道所有在線玩家皆收得到);具跨頻道封包送出副作用。- Parameters:
message- 已組好的訊息封包位元組
-
sendPacket
把封包送給一批指定角色(可跨頻道),並排除其中一名角色。逐一以
World.Find.findChannel(int)定位每名目標所在頻道,於該頻道的角色儲存區取出角色後對其連線送出封包。 找不到頻道(離線)或等於exception的目標會略過;具跨頻道封包送出副作用。- Parameters:
targetIds- 目標角色 ID 清單packet- 已組好的封包位元組exception- 要排除的角色 ID(通常為發送者自身)
-
sendPacket
public static void sendPacket(int targetId, byte[] packet) 把封包送給單一指定角色(可跨頻道)。以
World.Find.findChannel(int)定位目標所在頻道,於該頻道的角色儲存區取出角色後對其連線送出封包; 目標離線(找不到頻道)或不存在時靜默不做事。具跨頻道封包送出副作用。- Parameters:
targetId- 目標角色 IDpacket- 已組好的封包位元組
-
sendGuildPacket
public static void sendGuildPacket(int targetIds, byte[] packet, int exception, int guildid) 把公會封包送給單一指定角色,並驗證其公會歸屬。以
World.Find.findChannel(int)定位目標所在頻道後取出角色,僅當該角色仍屬於guildid公會時才送出; 目標等於exception、離線或公會不符時靜默不送。具跨頻道封包送出副作用。- Parameters:
targetIds- 目標角色 IDpacket- 已組好的公會封包位元組exception- 要排除的角色 IDguildid- 預期的公會 ID(角色公會不符則不送)
-
sendFamilyPacket
public static void sendFamilyPacket(int targetIds, byte[] packet, int exception, int guildid) 把家族封包送給單一指定角色,並驗證其家族歸屬。以
World.Find.findChannel(int)定位目標所在頻道後取出角色,僅當該角色仍屬於guildid家族時才送出; 目標等於exception、離線或家族不符時靜默不送。具跨頻道封包送出副作用。- Parameters:
targetIds- 目標角色 IDpacket- 已組好的家族封包位元組exception- 要排除的角色 IDguildid- 預期的家族 ID(參數名沿用 guildid,實際比對getFamilyId())
-