示例#1
0
        public virtual void Load(LogicJSONObject jsonObject)
        {
            LogicJSONNumber senderAvatarIdHighObject = jsonObject.GetJSONNumber("sender_avatar_id_high");
            LogicJSONNumber senderAvatarIdLowObject  = jsonObject.GetJSONNumber("sender_avatar_id_low");

            if (senderAvatarIdHighObject != null && senderAvatarIdLowObject != null)
            {
                this.m_senderAvatarId = new LogicLong(senderAvatarIdHighObject.GetIntValue(), senderAvatarIdLowObject.GetIntValue());
            }

            LogicJSONNumber senderHomeIdHighObject = jsonObject.GetJSONNumber("sender_home_id_high");
            LogicJSONNumber senderHomeIdLowObject  = jsonObject.GetJSONNumber("sender_home_id_low");

            if (senderHomeIdHighObject != null && senderHomeIdLowObject != null)
            {
                this.m_senderHomeId = new LogicLong(senderHomeIdHighObject.GetIntValue(), senderHomeIdLowObject.GetIntValue());
            }


            this.m_senderName       = LogicJSONHelper.GetString(jsonObject, "sender_name");
            this.m_senderLevel      = LogicJSONHelper.GetInt(jsonObject, "sender_level");
            this.m_senderLeagueType = LogicJSONHelper.GetInt(jsonObject, "sender_league_type");
            this.m_senderRole       = (LogicAvatarAllianceRole)LogicJSONHelper.GetInt(jsonObject, "sender_role");
            this.m_removed          = LogicJSONHelper.GetBool(jsonObject, "removed");
        }
示例#2
0
        public override int Execute(LogicLevel level)
        {
            LogicAvatarAllianceRole allianceRole = level.GetHomeOwnerAvatar().GetAllianceRole();

            if (allianceRole == LogicAvatarAllianceRole.LEADER || allianceRole == LogicAvatarAllianceRole.CO_LEADER)
            {
                LogicBuilding allianceCastle = level.GetGameObjectManagerAt(0).GetAllianceCastle();

                if (allianceCastle != null)
                {
                    LogicBunkerComponent bunkerComponent = allianceCastle.GetBunkerComponent();

                    if (bunkerComponent != null && bunkerComponent.GetClanMailCooldownTime() == 0)
                    {
                        bunkerComponent.StartClanMailCooldownTime();
                        level.GetHomeOwnerAvatar().GetChangeListener().SendClanMail(this.m_message);

                        return(0);
                    }
                }

                return(-2);
            }

            return(-1);
        }
示例#3
0
        public override void Decode(ByteStream stream)
        {
            this.m_allianceId   = stream.ReadLong();
            this.m_allianceRole = (LogicAvatarAllianceRole)stream.ReadInt();

            base.Decode(stream);
        }
示例#4
0
        public override int Execute(LogicLevel level)
        {
            LogicAvatar             homeOwnerAvatar = level.GetHomeOwnerAvatar();
            LogicAvatarAllianceRole allianceRole    = homeOwnerAvatar.GetAllianceRole();

            if (allianceRole != LogicAvatarAllianceRole.MEMBER)
            {
                if (allianceRole == LogicAvatarAllianceRole.LEADER || allianceRole == LogicAvatarAllianceRole.CO_LEADER)
                {
                    level.GetHomeOwnerAvatar().GetChangeListener().KickPlayer(this.m_playerId, this.m_message);
                    return(0);
                }

                LogicBuilding allianceCastle = level.GetGameObjectManagerAt(0).GetAllianceCastle();

                if (allianceCastle != null)
                {
                    LogicBunkerComponent bunkerComponent = allianceCastle.GetBunkerComponent();

                    if (bunkerComponent != null)
                    {
                        if (bunkerComponent.GetElderCooldownTime() == 0)
                        {
                            bunkerComponent.StartElderKickCooldownTime();
                            level.GetHomeOwnerAvatar().GetChangeListener().KickPlayer(this.m_playerId, this.m_message);
                            return(0);
                        }
                    }
                }

                return(-2);
            }

            return(-1);
        }
        public void Load(LogicJSONObject jsonObject)
        {
            LogicJSONNumber avatarIdHighObject = jsonObject.GetJSONNumber("avatar_id_high");
            LogicJSONNumber avatarIdLowObject  = jsonObject.GetJSONNumber("avatar_id_low");

            if (avatarIdHighObject != null && avatarIdLowObject != null)
            {
                this.m_avatarId = new LogicLong(avatarIdHighObject.GetIntValue(), avatarIdLowObject.GetIntValue());
            }

            LogicJSONNumber homeIdHighObject = jsonObject.GetJSONNumber("home_id_high");
            LogicJSONNumber homeIdLowObject  = jsonObject.GetJSONNumber("home_id_low");

            if (homeIdHighObject != null && homeIdLowObject != null)
            {
                this.m_homeId = new LogicLong(homeIdHighObject.GetIntValue(), homeIdLowObject.GetIntValue());
            }

            this.m_name                  = LogicJSONHelper.GetString(jsonObject, "name");
            this.m_allianceRole          = (LogicAvatarAllianceRole)LogicJSONHelper.GetInt(jsonObject, "alliance_role");
            this.m_expLevel              = LogicJSONHelper.GetInt(jsonObject, "xp_level");
            this.m_leagueType            = LogicJSONHelper.GetInt(jsonObject, "league_type");
            this.m_score                 = LogicJSONHelper.GetInt(jsonObject, "score");
            this.m_duelScore             = LogicJSONHelper.GetInt(jsonObject, "duel_score");
            this.m_donationCount         = LogicJSONHelper.GetInt(jsonObject, "donations");
            this.m_receivedDonationCount = LogicJSONHelper.GetInt(jsonObject, "received_donations");
            this.m_order                 = LogicJSONHelper.GetInt(jsonObject, "order");
            this.m_previousOrder         = LogicJSONHelper.GetInt(jsonObject, "prev_order");
            this.m_orderVillage2         = LogicJSONHelper.GetInt(jsonObject, "order_v2");
            this.m_previousOrderVillage2 = LogicJSONHelper.GetInt(jsonObject, "prev_order_v2");
            this.m_warCooldown           = LogicJSONHelper.GetInt(jsonObject, "war_cooldown");
            this.m_warPreference         = LogicJSONHelper.GetInt(jsonObject, "war_preference");
        }
示例#6
0
        public virtual void Decode(ByteStream stream)
        {
            this.m_id = stream.ReadLong();

            bool hasSenderAvatarId = stream.ReadBoolean();
            bool hasSenderHomeId   = stream.ReadBoolean();

            this.m_removed = stream.ReadBoolean();

            if (hasSenderAvatarId)
            {
                this.m_senderAvatarId = stream.ReadLong();
            }

            if (hasSenderHomeId)
            {
                this.m_senderHomeId = stream.ReadLong();
            }

            this.m_senderName       = stream.ReadString(900000);
            this.m_senderLevel      = stream.ReadInt();
            this.m_senderLeagueType = stream.ReadInt();
            this.m_senderRole       = (LogicAvatarAllianceRole)stream.ReadInt();
            this.m_ageSeconds       = stream.ReadInt();
        }
示例#7
0
        public override void Decode()
        {
            base.Decode();

            this.m_memberId   = this.m_stream.ReadLong();
            this.m_memberRole = (LogicAvatarAllianceRole)this.m_stream.ReadInt();
        }
        public void ChangeMemberRole(AllianceMemberEntry allianceMemberEntry, LogicAvatarAllianceRole allianceRole, LogicLong eventAvatarId, string eventAvatarName)
        {
            if (allianceMemberEntry.GetAllianceRole() != allianceRole)
            {
                bool isPromoted = allianceMemberEntry.HasLowerRoleThan(allianceRole);

                allianceMemberEntry.SetAllianceRole(allianceRole);

                LogicChangeAllianceRoleCommand logicChangeAllianceRoleCommand = new LogicChangeAllianceRoleCommand();
                logicChangeAllianceRoleCommand.SetData(this.Id, allianceRole);
                ServerMessageManager.SendMessage(new GameAllowServerCommandMessage
                {
                    AccountId     = allianceMemberEntry.GetAvatarId(),
                    ServerCommand = logicChangeAllianceRoleCommand
                }, 9);

                AllianceEventStreamEntry allianceEventStreamEntry = new AllianceEventStreamEntry();
                AllianceStreamEntryUtil.SetSenderInfo(allianceEventStreamEntry, allianceMemberEntry);

                allianceEventStreamEntry.SetEventAvatarId(eventAvatarId);
                allianceEventStreamEntry.SetEventAvatarName(eventAvatarName);
                allianceEventStreamEntry.SetEventType(isPromoted ? AllianceEventStreamEntryType.PROMOTED : AllianceEventStreamEntryType.DEMOTED);

                StreamManager.Create(this.Id, allianceEventStreamEntry);

                this.AddStreamEntry(allianceEventStreamEntry);
            }
        }
 public override void Decode(ByteStream stream)
 {
     this.AllianceId       = stream.ReadLong();
     this.AllianceName     = stream.ReadString(900000);
     this.AllianceBadgeId  = stream.ReadVInt();
     this.AllianceExpLevel = stream.ReadVInt();
     this.AllianceRole     = (LogicAvatarAllianceRole)stream.ReadVInt();
 }
示例#10
0
        private static void OnLeaveAllianceMemberMessageReceived(LeaveAllianceMemberMessage message)
        {
            if (AllianceManager.TryGet(message.AccountId, out Alliance alliance) && alliance.Members.TryGetValue(message.MemberId, out AllianceMemberEntry memberEntry))
            {
                if (memberEntry.GetAllianceRole() == LogicAvatarAllianceRole.LEADER)
                {
                    AllianceMemberEntry     higherMemberEntry = null;
                    LogicAvatarAllianceRole higherMemberRole  = 0;

                    foreach (AllianceMemberEntry member in alliance.Members.Values)
                    {
                        if (member != memberEntry && (higherMemberEntry == null || !member.HasLowerRoleThan(higherMemberRole)))
                        {
                            higherMemberEntry = member;
                            higherMemberRole  = member.GetAllianceRole();
                        }
                    }

                    if (higherMemberEntry != null)
                    {
                        alliance.ChangeMemberRole(higherMemberEntry, LogicAvatarAllianceRole.LEADER, memberEntry.GetAvatarId(), memberEntry.GetName());
                    }
                }

                alliance.RemoveMember(message.MemberId);

                AllianceSession session = alliance.GetCurrentOnlineMemberSession(message.AccountId);

                if (session != null)
                {
                    AllianceSessionManager.Remove(session.Id);
                }

                AllianceEventStreamEntry allianceEventStreamEntry = new AllianceEventStreamEntry();
                AllianceStreamEntryUtil.SetSenderInfo(allianceEventStreamEntry, memberEntry);

                allianceEventStreamEntry.SetEventType(AllianceEventStreamEntryType.LEFT);
                allianceEventStreamEntry.SetEventAvatarId(memberEntry.GetAvatarId());
                allianceEventStreamEntry.SetEventAvatarName(memberEntry.GetName());

                StreamManager.Create(alliance.Id, allianceEventStreamEntry);

                alliance.AddStreamEntry(allianceEventStreamEntry);

                AllianceManager.Save(alliance);
            }

            ServerMessageManager.SendMessage(new AllianceLeavedMessage
            {
                AccountId  = message.MemberId,
                AllianceId = message.AccountId
            }, 9);
        }
        private void OnLeaveAllianceMessageReceived(LeaveAllianceMessage message)
        {
            if (this.m_session.Alliance != null)
            {
                Alliance            alliance    = this.m_session.Alliance;
                AllianceMemberEntry memberEntry = alliance.Members[this.m_session.AccountId];

                if (memberEntry.GetAllianceRole() == LogicAvatarAllianceRole.LEADER)
                {
                    AllianceMemberEntry     higherMemberEntry = null;
                    LogicAvatarAllianceRole higherMemberRole  = 0;

                    foreach (AllianceMemberEntry member in alliance.Members.Values)
                    {
                        if (member != memberEntry && (higherMemberEntry == null || !member.HasLowerRoleThan(higherMemberRole)))
                        {
                            higherMemberEntry = member;
                            higherMemberRole  = member.GetAllianceRole();
                        }
                    }

                    if (higherMemberEntry != null)
                    {
                        alliance.ChangeMemberRole(higherMemberEntry, LogicAvatarAllianceRole.LEADER, memberEntry.GetAvatarId(), memberEntry.GetName());
                    }
                }

                AllianceEventStreamEntry allianceEventStreamEntry = new AllianceEventStreamEntry();
                AllianceStreamEntryUtil.SetSenderInfo(allianceEventStreamEntry, memberEntry);

                allianceEventStreamEntry.SetEventType(AllianceEventStreamEntryType.LEFT);
                allianceEventStreamEntry.SetEventAvatarId(memberEntry.GetAvatarId());
                allianceEventStreamEntry.SetEventAvatarName(memberEntry.GetName());

                StreamManager.Create(alliance.Id, allianceEventStreamEntry);

                alliance.AddStreamEntry(allianceEventStreamEntry);
                alliance.RemoveMember(this.m_session.AccountId);

                ServerMessageManager.SendMessage(new AllianceLeavedMessage
                {
                    AccountId  = this.m_session.AccountId,
                    AllianceId = alliance.Id
                }, 9);

                AllianceManager.Save(alliance);
            }
        }
        public static bool HasLowerRole(LogicAvatarAllianceRole role1, LogicAvatarAllianceRole role2)
        {
            switch (role2)
            {
            case LogicAvatarAllianceRole.LEADER:
                return(role1 != LogicAvatarAllianceRole.LEADER);

            case LogicAvatarAllianceRole.ELDER:
                return(role1 == LogicAvatarAllianceRole.MEMBER);

            case LogicAvatarAllianceRole.CO_LEADER:
                return(role1 != LogicAvatarAllianceRole.LEADER &&
                       role1 != LogicAvatarAllianceRole.CO_LEADER);

            default:
                return(false);
            }
        }
        public bool HasLowerRoleThan(LogicAvatarAllianceRole role)
        {
            switch (role)
            {
            case LogicAvatarAllianceRole.LEADER:
                return(this.m_allianceRole != LogicAvatarAllianceRole.LEADER);

            case LogicAvatarAllianceRole.ELDER:
                return(this.m_allianceRole == LogicAvatarAllianceRole.MEMBER);

            case LogicAvatarAllianceRole.CO_LEADER:
                return(this.m_allianceRole != LogicAvatarAllianceRole.LEADER &&
                       this.m_allianceRole != LogicAvatarAllianceRole.CO_LEADER);

            default:
                return(false);
            }
        }
        public void Decode(ByteStream stream)
        {
            this.m_avatarId              = stream.ReadLong();
            this.m_name                  = stream.ReadString(900000);
            this.m_allianceRole          = (LogicAvatarAllianceRole)stream.ReadInt();
            this.m_expLevel              = stream.ReadInt();
            this.m_leagueType            = stream.ReadInt();
            this.m_score                 = stream.ReadInt();
            this.m_duelScore             = stream.ReadInt();
            this.m_donationCount         = stream.ReadInt();
            this.m_receivedDonationCount = stream.ReadInt();
            this.m_order                 = stream.ReadInt();
            this.m_previousOrder         = stream.ReadInt();
            this.m_orderVillage2         = stream.ReadInt();
            this.m_previousOrderVillage2 = stream.ReadInt();
            this.m_createdTime           = stream.ReadInt();
            this.m_warCooldown           = stream.ReadInt();
            this.m_warPreference         = stream.ReadInt();

            if (stream.ReadBoolean())
            {
                this.m_homeId = stream.ReadLong();
            }
        }
示例#15
0
 public override void AllianceJoined(LogicLong allianceId, string allianceName, int allianceBadgeId, int allianceExpLevel, LogicAvatarAllianceRole allianceRole)
 {
     this.m_avatarChanges.Add(new AllianceJoinedAvatarChange
     {
         AllianceId       = allianceId,
         AllianceName     = allianceName,
         AllianceBadgeId  = allianceBadgeId,
         AllianceExpLevel = allianceExpLevel,
         AllianceRole     = allianceRole
     });
 }
 public virtual void AllianceJoined(LogicLong allianceId, string allianceName, int allianceBadgeId, int allianceExpLevel, LogicAvatarAllianceRole allianceRole)
 {
 }
 public void SetAllianceRole(LogicAvatarAllianceRole value)
 {
     this.m_allianceRole = value;
 }
示例#18
0
 public void SetData(LogicLong allianceId, LogicAvatarAllianceRole allianceRole)
 {
     this.m_allianceId   = allianceId;
     this.m_allianceRole = allianceRole;
 }
示例#19
0
 public void SetAllianceData(LogicLong memberId, LogicAvatarAllianceRole memberRole)
 {
     this.m_memberId   = memberId;
     this.m_memberRole = memberRole;
 }
示例#20
0
 public void SetSenderRole(LogicAvatarAllianceRole value)
 {
     this.m_senderRole = value;
 }