Пример #1
0
        public override bool CanInvite(Character character, out PartyJoinErrorEnum error, Character inviter = null, bool send = true)
        {
            if (Members.Any())
            {
                var lower = Members.Min(x => x.Level);
                var upper = Members.Max(x => x.Level);

                if (Math.Max(character.Level, upper) - Math.Min(character.Level, lower) > ArenaManager.ArenaMaxLevelDifference)
                {
                    if (inviter != null && send)
                    {
                        // Impossible d'inviter %1 : l'écart maximal entre le plus haut et le plus bas niveau d'une équipe Kolizéum ne peut dépasser 50 niveaux.
                        inviter.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 359,
                                                       character.Name);
                    }

                    error = PartyJoinErrorEnum.PARTY_JOIN_ERROR_UNMET_CRITERION;
                    return(false);
                }
            }

            if (character.ArenaPenality > DateTime.Now)
            {
                if (inviter != null && send)
                {
                    // %1 est interdit de Kolizéum pour un certain temps car il a abandonné un match de Kolizéum.
                    inviter.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 328, character.Name);
                }

                error = PartyJoinErrorEnum.PARTY_JOIN_ERROR_UNMET_CRITERION;
                return(false);
            }

            if (character.Level >= ArenaManager.ArenaMinLevel)
            {
                return(base.CanInvite(character, out error, inviter, send));
            }

            if (send)
            {
                if (inviter != null)
                {
                    // %1 doit être au moins niveau 50 pour faire des combats en Kolizéum.
                    inviter.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 327, character.Name);
                }
                else
                {
                    // Vous devez être au moins niveau 50 pour faire des combats en Kolizéum.
                    character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 326);
                }
            }

            error = PartyJoinErrorEnum.PARTY_JOIN_ERROR_UNMET_CRITERION;
            return(false);
        }
Пример #2
0
        public virtual bool CanInvite(Character character, out PartyJoinErrorEnum error, Character inviter = null, bool send = true)
        {
            if (IsMember(character) || IsGuest(character))
            {
                error = PartyJoinErrorEnum.PARTY_JOIN_ERROR_PLAYER_ALREADY_INVITED;
                return(false);
            }

            if (IsFull)
            {
                error = PartyJoinErrorEnum.PARTY_JOIN_ERROR_PARTY_FULL;
                return(false);
            }

            error = PartyJoinErrorEnum.PARTY_JOIN_ERROR_UNKNOWN;
            return(true);
        }
Пример #3
0
 public static void SendPartyCannotJoinErrorMessage(IPacketReceiver client, PartyJoinErrorEnum reason)
 {
     client.Send(new PartyCannotJoinErrorMessage(0, (sbyte)reason));
 }
Пример #4
0
 public static void SendPartyCannotJoinErrorMessage(IPacketReceiver client, Game.Parties.Party party, PartyJoinErrorEnum reason)
 {
     client.Send(new PartyCannotJoinErrorMessage(party.Id, (sbyte)reason));
 }