public static void HandleGameFightSpectatePlayerRequestMessage(WorldClient client, GameFightSpectatePlayerRequestMessage message) { if (client.Character.IsFighting()) { return; } var player = World.Instance.GetCharacter((int)message.playerId); if (player == null) { return; } if (!client.Character.FriendsBook.IsFriend(player.Account.Id) && !client.Character.Guild.Members.Any(x => x.Character?.Id == player.Id)) { return; } if (!player.IsFighting()) { SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.TOO_LATE); return; } var fight = FightManager.Instance.GetFight(player.Fight.Id); if (fight == null) { SendChallengeFightJoinRefusedMessage(client, client.Character, FighterRefusedReasonEnum.TOO_LATE); return; } if (!fight.IsStarted) { return; } if (!fight.CanSpectatorJoin(client.Character) || client.Character.IsInFight()) { return; } ContextRoleplayHandler.SendCurrentMapMessage(client, fight.Map.Id); fight.AddSpectator(client.Character.CreateSpectator(fight)); }
private void GameFightSpectatePlayerRequestMessageHandler(DofusClient client, GameFightSpectatePlayerRequestMessage message) { client.Logger.Log("Un spectateur a rejoint le combat.", LogMessageType.FightLog); }