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"); }
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); }
public override void Decode(ByteStream stream) { this.m_allianceId = stream.ReadLong(); this.m_allianceRole = (LogicAvatarAllianceRole)stream.ReadInt(); base.Decode(stream); }
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"); }
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(); }
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(); }
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(); } }
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; }
public void SetData(LogicLong allianceId, LogicAvatarAllianceRole allianceRole) { this.m_allianceId = allianceId; this.m_allianceRole = allianceRole; }
public void SetAllianceData(LogicLong memberId, LogicAvatarAllianceRole memberRole) { this.m_memberId = memberId; this.m_memberRole = memberRole; }
public void SetSenderRole(LogicAvatarAllianceRole value) { this.m_senderRole = value; }