/// <summary> /// Occurs when leaving a zone /// </summary> /// <param name="character"></param> public virtual void OnLeave(Character character) { if (character.currentzone == this) { if (!this.Regiontree.Unsubscribe(character)) { Trace.TraceError("Unsubscribe failed"); } Regiontree tree = character.currentzone.Regiontree; foreach (MapObject target in tree.SearchActors(character, Saga.Enumarations.SearchFlags.DynamicObjects)) { if (MapObject.IsPlayer(target)) { Character cTarget = (Character)target; if (cTarget != character && cTarget.client.isloaded == true) { character.HideObject(cTarget); } target.Disappear(character); } else { target.Disappear(character); } } } }
/// <summary> /// Occurs when leaving a zone /// </summary> /// <param name="character"></param> public virtual void OnLeave(Character character) { if (character.currentzone == this) { if (!this.Regiontree.Unsubscribe(character)) { Trace.TraceError("Unsubscribe failed"); } Regiontree tree = character.currentzone.Regiontree; foreach (MapObject target in tree.SearchActors(character, Saga.Enumarations.SearchFlags.DynamicObjects)) { if (MapObject.IsPlayer(target)) { Character cTarget = (Character)target; if (cTarget != character && cTarget.client.isloaded == true) character.HideObject(cTarget); target.Disappear(character); } else { target.Disappear(character); } } } }