protected override void OnHandle(IPacket packet, NetState netState, ServerWorldState worldState) { ChatStatusPacket packetToHandle = (ChatStatusPacket)packet; ServerCharacter serverCharacter = (ServerCharacter)worldState.GetCharacter(netState.WorldId); if (serverCharacter != null) { foreach (int mapCharacterId in worldState.Characters) { ServerCharacter characterToUpdate = (ServerCharacter)worldState.GetCharacter(mapCharacterId); NetState clientSendTo = characterToUpdate.Owner; ChatStatusPacket packetToSend; if (serverCharacter.IsDead && !characterToUpdate.IsDead) { packetToSend = new ChatStatusPacket(serverCharacter.Id, packetToHandle.State); } else { packetToSend = new ChatStatusPacket(serverCharacter.Id, packetToHandle.State); } clientSendTo.Send(packetToSend); } } }
protected override void OnHandle(IPacket packet, ClientWorldState worldState) { ChatStatusPacket recivedPacket = (ChatStatusPacket)packet; worldState.SetChatState(recivedPacket.MobileId, recivedPacket.State); }
internal void ToggleChat(int id, bool state) { ChatStatusPacket packet = new ChatStatusPacket(id, state); worldServerClient.Send(packet); }