public static void SendAuraUpdate(Unit owner, Aura aura) { if (owner is NPC) { Asda2CombatHandler.SendNpcBuffedResponse((NPC)owner, aura); } else { if (!(owner is Character)) { return; } Character character = (Character)owner; if (!character.CanMove) { Asda2MovmentHandler.SendEndMoveByFastInstantRegularMoveResponse(character); } Asda2SpellHandler.SendCharacterBuffedResponse(character, aura); if (character.IsInGroup) { Asda2GroupHandler.SendPartyMemberBuffInfoResponse(character); } if (character.SoulmateCharacter == null) { return; } Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(character); } }
/// <summary>Removes all of this Aura's occupied fields</summary> protected void RemoveFromClient() { if (!IsVisible) { return; } Character owner1 = Owner as Character; NPC owner2 = Owner as NPC; if (owner2 != null) { Asda2CombatHandler.SendMonstrStateChangedResponse(owner2, Asda2NpcState.Ok); } if (owner1 == null) { return; } Asda2SpellHandler.SendBuffEndedResponse(owner1, Spell.RealId); if (owner1.IsInGroup) { Asda2GroupHandler.SendPartyMemberBuffInfoResponse(owner1); } if (owner1.SoulmateCharacter == null) { return; } Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(owner1); }
/// <summary> /// Removes all of this Aura's occupied fields /// </summary> protected void RemoveFromClient() { if (!IsVisible) { return; } var character = Owner as Character; var owner = Owner as NPC; if (owner != null) { Asda2CombatHandler.SendMonstrStateChangedResponse(owner, Asda2NpcState.Ok); } if (character != null) { Asda2SpellHandler.SendBuffEndedResponse(character, Spell.RealId); if (character.IsInGroup) { Asda2GroupHandler.SendPartyMemberBuffInfoResponse(character); } if (character.SoulmateCharacter != null) { Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(character); } } //AuraHandler.SendRemoveAura(m_auras.Owner, this); }
public void UpdateCharacters() { //update characters SaveAndFlush(); var firstChrAcc = RealmServer.Instance.GetLoggedInAccount(AccId); var secondChrAcc = RealmServer.Instance.GetLoggedInAccount(RelatedAccId); if (firstChrAcc != null && firstChrAcc.ActiveCharacter != null) { if (!IsActive) { firstChrAcc.ActiveCharacter.RemovaAllSoulmateBonuses(); } firstChrAcc.ActiveCharacter.ProcessSoulmateRelation(false); if (IsActive && secondChrAcc != null && secondChrAcc.ActiveCharacter != null) { Asda2SoulmateHandler.SendYouHaveSoulmatedWithResponse(firstChrAcc.ActiveCharacter.Client, SoulmatingResult.Ok, (uint)SoulmateRelationGuid, RelatedAccId, secondChrAcc.ActiveCharacter.Name); } } if (secondChrAcc != null && secondChrAcc.ActiveCharacter != null) { if (!IsActive) { secondChrAcc.ActiveCharacter.RemovaAllSoulmateBonuses(); } secondChrAcc.ActiveCharacter.ProcessSoulmateRelation(false); if (IsActive && firstChrAcc != null && firstChrAcc.ActiveCharacter != null) { Asda2SoulmateHandler.SendYouHaveSoulmatedWithResponse(secondChrAcc.ActiveCharacter.Client, SoulmatingResult.Ok, (uint)SoulmateRelationGuid, AccId, firstChrAcc.ActiveCharacter.Name); } } }
public static void SendAuraUpdate(Unit owner, Aura aura) { if (owner is NPC) { Asda2CombatHandler.SendNpcBuffedResponse((NPC)owner, aura); } else if (owner is Character) { var chr = (Character)owner; if (!chr.CanMove) { Asda2MovmentHandler.SendEndMoveByFastInstantRegularMoveResponse(chr); } Asda2SpellHandler.SendCharacterBuffedResponse(chr, aura); if (chr.IsInGroup) { Asda2GroupHandler.SendPartyMemberBuffInfoResponse(chr); } if (chr.SoulmateCharacter != null) { Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(chr); } } /*if (!owner.IsAreaActive) return; * using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_AURA_UPDATE)) * { * owner.EntityId.WritePacked(packet); * * WriteAura(aura, packet); * * owner.SendPacketToArea(packet); * }*/ }
private static void NotifyMoving(Character chr) { if (chr.IsInGroup) { Asda2GroupHandler.SendPartyMemberPositionInfoResponse(chr); } if (chr.IsSoulmated) { Asda2SoulmateHandler.SendSoulmatePositionResponse(chr.Client); } if (chr.IsAsda2BattlegroundInProgress) { Asda2BattlegroundHandler.SendCharacterPositionInfoOnWarResponse(chr); } }
private static void NotifyMoving(Character chr) { chr.Map.CallDelayed(3000, (Action)(() => { if (chr.IsInGroup) { Asda2GroupHandler.SendPartyMemberPositionInfoResponse(chr); } if (chr.IsSoulmated) { Asda2SoulmateHandler.SendSoulmatePositionResponse(chr.Client); } if (!chr.IsAsda2BattlegroundInProgress) { return; } Asda2BattlegroundHandler.SendCharacterPositionInfoOnWarResponse(chr); })); }
public void UpdateCharacters() { this.SaveAndFlush(); RealmAccount loggedInAccount1 = ServerApp <WCell.RealmServer.RealmServer> .Instance.GetLoggedInAccount(this.AccId); RealmAccount loggedInAccount2 = ServerApp <WCell.RealmServer.RealmServer> .Instance.GetLoggedInAccount(this.RelatedAccId); if (loggedInAccount1 != null && loggedInAccount1.ActiveCharacter != null) { if (!this.IsActive) { loggedInAccount1.ActiveCharacter.RemovaAllSoulmateBonuses(); } loggedInAccount1.ActiveCharacter.ProcessSoulmateRelation(false); if (this.IsActive && loggedInAccount2 != null && loggedInAccount2.ActiveCharacter != null) { Asda2SoulmateHandler.SendYouHaveSoulmatedWithResponse(loggedInAccount1.ActiveCharacter.Client, SoulmatingResult.Ok, (uint)this.SoulmateRelationGuid, this.RelatedAccId, loggedInAccount2.ActiveCharacter.Name); } } if (loggedInAccount2 == null || loggedInAccount2.ActiveCharacter == null) { return; } if (!this.IsActive) { loggedInAccount2.ActiveCharacter.RemovaAllSoulmateBonuses(); } loggedInAccount2.ActiveCharacter.ProcessSoulmateRelation(false); if (!this.IsActive || loggedInAccount1 == null || loggedInAccount1.ActiveCharacter == null) { return; } Asda2SoulmateHandler.SendYouHaveSoulmatedWithResponse(loggedInAccount2.ActiveCharacter.Client, SoulmatingResult.Ok, (uint)this.SoulmateRelationGuid, this.AccId, loggedInAccount1.ActiveCharacter.Name); }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { int num1 = trigger.Text.NextInt(1); int num2 = trigger.Text.NextInt(250); float num3 = trigger.Text.NextFloat(0.7f); string str = trigger.Text.NextModifiers(); int num4 = 0; if (str == "n") { foreach (Character nearbyCharacter in (IEnumerable <Character>)trigger.Args.Character .GetNearbyCharacters <Character>(200f, false)) { Vector3 position = trigger.Args.Character.Position; Vector2 posDiff = Utility.GetPosDiff(num4++); nearbyCharacter.TeleportTo(trigger.Args.Character.Map.Id, new Vector3(position.X + posDiff.X * num3, position.Y + posDiff.Y * num3)); } } else { foreach (Character allCharacter in World.GetAllCharacters()) { if (allCharacter != trigger.Args.Target && allCharacter.Level >= num1 && num2 >= allCharacter.Level) { if (str == "f") { Vector3 position = trigger.Args.Character.Position; Vector2 posDiff = Utility.GetPosDiff(num4++); allCharacter.TeleportTo(trigger.Args.Character.Map.Id, new Vector3(position.X + posDiff.X * num3, position.Y + posDiff.Y * num3)); } else { Asda2SoulmateHandler.SendSoulmateSummoningYouResponse(trigger.Args.Character, allCharacter); } } } } }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { var minLevel = trigger.Text.NextInt(1); var maxLevel = trigger.Text.NextInt(250); var diffMod = trigger.Text.NextFloat(0.7f); var mod = trigger.Text.NextModifiers(); var i = 0; if (mod == "n") { foreach (var chr in trigger.Args.Character.GetNearbyCharacters(200, false)) { var pos = trigger.Args.Character.Position; var diff = Utility.GetPosDiff(i++); chr.TeleportTo(trigger.Args.Character.Map.Id, new Vector3(pos.X + diff.X * diffMod, pos.Y + diff.Y * diffMod)); } } else { foreach (var chr in World.GetAllCharacters()) { if (chr == trigger.Args.Target || chr.Level < minLevel || maxLevel < chr.Level) { continue; } if (mod == "f") { var pos = trigger.Args.Character.Position; var diff = Utility.GetPosDiff(i++); chr.TeleportTo(trigger.Args.Character.Map.Id, new Vector3(pos.X + diff.X * diffMod, pos.Y + diff.Y * diffMod)); } else { Asda2SoulmateHandler.SendSoulmateSummoningYouResponse(trigger.Args.Character, chr); } } } }
public override void Action(Character caster, Character friend) { Asda2SoulmateHandler.SendSoulmateSummoningYouResponse(caster, friend); base.Action(caster, friend); }