public void OnUpdateParty(UpdatePartyMessage message) { BasePlayerCharacterEntity playerCharacterEntity; PartyData party; if (ServerPartyHandlers.TryGetParty(message.id, out party)) { switch (message.type) { case UpdatePartyMessage.UpdateType.ChangeLeader: party.SetLeader(message.characterId); ServerPartyHandlers.SetParty(message.id, party); ServerGameMessageHandlers.SendSetPartyLeaderToMembers(party); break; case UpdatePartyMessage.UpdateType.Setting: party.Setting(message.shareExp, message.shareItem); ServerPartyHandlers.SetParty(message.id, party); ServerGameMessageHandlers.SendSetPartySettingToMembers(party); break; case UpdatePartyMessage.UpdateType.Terminate: foreach (string memberId in party.GetMemberIds()) { if (ServerUserHandlers.TryGetPlayerCharacterById(memberId, out playerCharacterEntity)) { playerCharacterEntity.ClearParty(); ServerGameMessageHandlers.SendClearPartyData(playerCharacterEntity.ConnectionId, message.id); } } ServerPartyHandlers.RemoveParty(message.id); break; } } }
public void OnUpdateParty(UpdatePartyMessage message) { BasePlayerCharacterEntity playerCharacterEntity; PartyData party; if (parties.TryGetValue(message.id, out party)) { switch (message.type) { case UpdatePartyMessage.UpdateType.ChangeLeader: party.SetLeader(message.characterId); parties[message.id] = party; SendChangePartyLeaderToClients(party); break; case UpdatePartyMessage.UpdateType.Setting: party.Setting(message.shareExp, message.shareItem); parties[message.id] = party; SendPartySettingToClients(party); break; case UpdatePartyMessage.UpdateType.Terminate: foreach (var memberId in party.GetMemberIds()) { if (playerCharactersById.TryGetValue(memberId, out playerCharacterEntity)) { playerCharacterEntity.ClearParty(); SendPartyTerminateToClient(playerCharacterEntity.ConnectionId, message.id); } } parties.Remove(message.id); break; } } }
private void HandleUpdatePartyAtClient(LiteNetLibMessageHandler messageHandler) { UpdatePartyMessage message = messageHandler.ReadMessage <UpdatePartyMessage>(); if (mapNetworkManager != null) { mapNetworkManager.OnUpdateParty(message); } }
private void HandleUpdatePartyAtServer(LiteNetLibMessageHandler messageHandler) { long connectionId = messageHandler.connectionId; UpdatePartyMessage message = messageHandler.ReadMessage <UpdatePartyMessage>(); if (mapServerConnectionIds.Contains(connectionId)) { foreach (long mapServerConnectionId in mapServerConnectionIds) { if (mapServerConnectionId != connectionId) { ServerSendPacket(mapServerConnectionId, DeliveryMethod.ReliableOrdered, MMOMessageTypes.UpdateParty, message); } } } }
private void HandleUpdateParty(MessageHandlerData messageHandler) { long connectionId = messageHandler.ConnectionId; UpdatePartyMessage message = messageHandler.ReadMessage <UpdatePartyMessage>(); if (MapServerPeers.ContainsKey(connectionId)) { foreach (long mapServerConnectionId in MapServerPeers.Keys) { if (mapServerConnectionId != connectionId) { SendPacket(mapServerConnectionId, 0, DeliveryMethod.ReliableOrdered, MMOMessageTypes.UpdateParty, (writer) => writer.PutValue(message)); } } } }