internal override void Process() { if (m_vAllianceName == null) { m_vAllianceName = "Clan"; } if (m_vAllianceName.Length < 16 || m_vAllianceName.Length < 1) { if (m_vAllianceDescription.Length < 259 || m_vAllianceDescription.Length < 0) { Alliance alliance = ObjectManager.CreateAlliance(0); alliance.m_vAllianceName = m_vAllianceName; alliance.m_vAllianceDescription = m_vAllianceDescription; alliance.m_vAllianceType = m_vAllianceType; alliance.m_vRequiredScore = m_vRequiredScore; alliance.m_vAllianceBadgeData = m_vAllianceBadgeData; alliance.m_vAllianceOrigin = m_vAllianceOrigin; alliance.m_vWarFrequency = m_vWarFrequency; alliance.SetWarAndFriendlytStatus(m_vWarAndFriendlyStatus); this.Device.Player.Avatar.AllianceId = alliance.m_vAllianceId; AllianceMemberEntry member = new AllianceMemberEntry(this.Device.Player.Avatar.UserId) { Role = 2 }; alliance.AddAllianceMember(member); JoinedAllianceCommand b = new JoinedAllianceCommand(this.Device); b.SetAlliance(alliance); AllianceRoleUpdateCommand d = new AllianceRoleUpdateCommand(this.Device); d.SetAlliance(alliance); d.SetRole(2); d.Tick(this.Device.Player); new AvailableServerCommandMessage(this.Device, b.Handle()).Send(); new AvailableServerCommandMessage(this.Device, d.Handle()).Send(); } else { ResourcesManager.DisconnectClient(Device); } } else { ResourcesManager.DisconnectClient(Device); } }
internal override async void Process() { try { Alliance alliance = ObjectManager.GetAlliance(m_vAllianceId); if (alliance != null) { if (!alliance.IsAllianceFull()) { this.Device.Player.Avatar.AllianceId = alliance.m_vAllianceId; AllianceMemberEntry member = new AllianceMemberEntry(this.Device.Player.Avatar.UserId); member.Role = 1; alliance.AddAllianceMember(member); JoinedAllianceCommand b = new JoinedAllianceCommand(this.Device); b.SetAlliance(alliance); AllianceRoleUpdateCommand c = new AllianceRoleUpdateCommand(this.Device); c.SetAlliance(alliance); c.SetRole(1); c.Tick(this.Device.Player); AllianceEventStreamEntry eventStreamEntry = new AllianceEventStreamEntry(); eventStreamEntry.ID = alliance.m_vChatMessages.Count + 1; eventStreamEntry.SetSender(this.Device.Player.Avatar); eventStreamEntry.EventType = 3; alliance.AddChatMessage(eventStreamEntry); new AvailableServerCommandMessage(this.Device, b.Handle()).Send(); new AvailableServerCommandMessage(this.Device, c.Handle()).Send(); new AllianceStreamMessage(Device, alliance).Send(); foreach (AllianceMemberEntry a in alliance.GetAllianceMembers()) { Level l = await ResourcesManager.GetPlayer(a.AvatarId); new AllianceStreamEntryMessage(l.Client) { StreamEntry = eventStreamEntry }.Send(); } } } } catch (Exception) { } }
internal override async void Process() { try { Level target = await ResourcesManager.GetPlayer(m_vId); ClientAvatar player = this.Device.Player.Avatar; Alliance alliance = ObjectManager.GetAlliance(player.AllianceId); if (await player.GetAllianceRole() == 2 || await player.GetAllianceRole() == 4) { if (player.AllianceId == target.Avatar.AllianceId) { int oldrole = await target.Avatar.GetAllianceRole(); target.Avatar.SetAllianceRole(m_vRole); if (m_vRole == 2) { player.SetAllianceRole(4); AllianceEventStreamEntry demote = new AllianceEventStreamEntry(); demote.ID = alliance.m_vChatMessages.Count + 1; demote.SetSender(player); demote.EventType = 6; alliance.AddChatMessage(demote); AllianceEventStreamEntry promote = new AllianceEventStreamEntry(); promote.ID = alliance.m_vChatMessages.Count + 1; promote.SetSender(target.Avatar); promote.EventType = 5; alliance.AddChatMessage(promote); AllianceRoleUpdateCommand p = new AllianceRoleUpdateCommand(this.Device); AvailableServerCommandMessage pa = new AvailableServerCommandMessage(Device, p.Handle()); AllianceRoleUpdateCommand t = new AllianceRoleUpdateCommand(target.Client); AvailableServerCommandMessage ta = new AvailableServerCommandMessage(target.Client, t.Handle()); PromoteAllianceMemberOkMessage rup = new PromoteAllianceMemberOkMessage(Device) { Id = this.Device.Player.Avatar.UserId, Role = 4 }; PromoteAllianceMemberOkMessage rub = new PromoteAllianceMemberOkMessage(target.Client) { Id = target.Avatar.UserId, Role = 2 }; t.SetAlliance(alliance); p.SetAlliance(alliance); t.SetRole(2); p.SetRole(4); t.Tick(target); p.Tick(this.Device.Player); if (ResourcesManager.IsPlayerOnline(target)) { ta.Send(); rub.Send(); } rup.Send(); pa.Send(); foreach (AllianceMemberEntry op in alliance.GetAllianceMembers()) { Level aplayer = await ResourcesManager.GetPlayer(op.AvatarId); if (aplayer.Client != null) { new AllianceStreamEntryMessage(aplayer.Client) { StreamEntry = demote }.Send(); new AllianceStreamEntryMessage(aplayer.Client) { StreamEntry = promote }.Send(); } } } else { AllianceRoleUpdateCommand t = new AllianceRoleUpdateCommand(target.Client); AvailableServerCommandMessage ta = new AvailableServerCommandMessage(target.Client, t.Handle()); t.SetAlliance(alliance); t.SetRole(m_vRole); t.Tick(target); PromoteAllianceMemberOkMessage ru = new PromoteAllianceMemberOkMessage(target.Client) { Id = target.Avatar.UserId, Role = m_vRole }; if (ResourcesManager.IsPlayerOnline(target)) { ta.Send(); ru.Send(); } AllianceEventStreamEntry stream = new AllianceEventStreamEntry(); stream.ID = alliance.m_vChatMessages.Count + 1; stream.SetSender(target.Avatar); stream.EventType = m_vRole > oldrole ? 5 : 6; alliance.AddChatMessage(stream); foreach (AllianceMemberEntry op in alliance.GetAllianceMembers()) { Level aplayer = await ResourcesManager.GetPlayer(op.AvatarId); if (aplayer.Client != null) { new AllianceStreamEntryMessage(aplayer.Client) { StreamEntry = stream }.Send(); } } } } } } catch (Exception) { } }
internal async void Process() { try { Alliance a = ObjectManager.GetAlliance(this.Device.Player.Avatar.AllianceId); StreamEntry message = a.m_vChatMessages.Find(c => c.ID == MessageID); Level requester = await ResourcesManager.GetPlayer(message.SenderID); if (Choice == 1) { if (!a.IsAllianceFull()) { requester.Avatar.AllianceId = a.m_vAllianceId; AllianceMemberEntry member = new AllianceMemberEntry(requester.Avatar.UserId); member.Role = 1; a.AddAllianceMember(member); StreamEntry e = a.m_vChatMessages.Find(c => c.ID == MessageID); e.SetJudgeName(this.Device.Player.Avatar.AvatarName); e.SetState(2); AllianceEventStreamEntry eventStreamEntry = new AllianceEventStreamEntry(); eventStreamEntry.ID = a.m_vChatMessages.Count + 1; eventStreamEntry.SetSender(requester.Avatar); eventStreamEntry.EventType = 2; a.AddChatMessage(eventStreamEntry); foreach (AllianceMemberEntry op in a.GetAllianceMembers()) { Level player = await ResourcesManager.GetPlayer(op.AvatarId); if (player.Client != null) { new AllianceStreamEntryMessage(player.Client) { StreamEntry = eventStreamEntry }.Send(); new AllianceStreamEntryMessage(player.Client) { StreamEntry = e }.Send(); } } if (ResourcesManager.IsPlayerOnline(requester)) { JoinedAllianceCommand joinAllianceCommand = new JoinedAllianceCommand(requester.Client); joinAllianceCommand.SetAlliance(a); new AvailableServerCommandMessage(requester.Client, joinAllianceCommand.Handle()).Send(); AllianceRoleUpdateCommand d = new AllianceRoleUpdateCommand(requester.Client); d.SetAlliance(a); d.SetRole(4); d.Tick(requester); new AvailableServerCommandMessage(requester.Client, d.Handle()).Send(); new AllianceStreamMessage(requester.Client, a).Send(); } } } else { StreamEntry e = a.m_vChatMessages.Find(c => c.ID == MessageID); e.SetJudgeName(this.Device.Player.Avatar.AvatarName); e.SetState(3); foreach (AllianceMemberEntry op in a.GetAllianceMembers()) { Level player = await ResourcesManager.GetPlayer(op.AvatarId); if (player.Client != null) { new AllianceStreamEntryMessage(player.Client) { StreamEntry = e }.Send(); } } } } catch (Exception) { } }
internal override async void Process() { try { ClientAvatar avatar = this.Device.Player.Avatar; Alliance alliance = ObjectManager.GetAlliance(avatar.AllianceId); if (await avatar.GetAllianceRole() == 2 && alliance.GetAllianceMembers().Count > 1) { List <AllianceMemberEntry> members = alliance.GetAllianceMembers(); foreach (AllianceMemberEntry player in members.Where(player => player.Role >= 3)) { player.Role = 2; if (ResourcesManager.IsPlayerOnline(await ResourcesManager.GetPlayer(player.AvatarId))) { Level l = await ResourcesManager.GetPlayer(player.AvatarId); AllianceRoleUpdateCommand c = new AllianceRoleUpdateCommand(l.Client); c.SetAlliance(alliance); c.SetRole(2); c.Tick(l); new AvailableServerCommandMessage(l.Client, c.Handle()).Send(); } done = true; break; } if (!done) { int count = alliance.GetAllianceMembers().Count; Random rnd = new Random(); int id = rnd.Next(1, count); while (id != this.Device.Player.Avatar.UserId) { id = rnd.Next(1, count); } int loop = 0; foreach (AllianceMemberEntry player in members) { loop++; if (loop == id) { player.Role = 2; if (ResourcesManager.IsPlayerOnline(await ResourcesManager.GetPlayer(player.AvatarId))) { Level l2 = await ResourcesManager.GetPlayer(player.AvatarId); AllianceRoleUpdateCommand e = new AllianceRoleUpdateCommand(l2.Client); e.SetAlliance(alliance); e.SetRole(2); e.Tick(l2); new AvailableServerCommandMessage(l2.Client, e.Handle()).Send(); } break; } } } } LeavedAllianceCommand a = new LeavedAllianceCommand(this.Device); a.SetAlliance(alliance); a.SetReason(1); new AvailableServerCommandMessage(Device, a.Handle()).Send(); alliance.RemoveMember(avatar.UserId); avatar.AllianceId = 0; if (alliance.GetAllianceMembers().Count > 0) { AllianceEventStreamEntry eventStreamEntry = new AllianceEventStreamEntry(); eventStreamEntry.ID = alliance.m_vChatMessages.Count + 1; eventStreamEntry.SetSender(avatar); eventStreamEntry.EventType = 4; alliance.AddChatMessage(eventStreamEntry); foreach (Level onlinePlayer in ResourcesManager.m_vOnlinePlayers) { if (onlinePlayer.Avatar.AllianceId == alliance.m_vAllianceId) { new AllianceStreamEntryMessage(onlinePlayer.Client) { StreamEntry = eventStreamEntry }.Send(); } } } else { Resources.DatabaseManager.RemoveAlliance(alliance); } new LeaveAllianceOkMessage(Device, alliance).Send(); } catch (Exception) { } }