Exemplo n.º 1
0
        void onDespawn(Events.Despawn ev)
        {
            if (ev.Actor == null)
            {
                ev.StopProcessing = true;
                return;
            }

            Context.DestroyActor(ev.Actor);
        }
Exemplo n.º 2
0
        public void Despawn(Actor actor)
        {
            ushort actorId = actor.Id;

            // Despawn actor on all subscribers
            foreach (Player player in actor.Subscribers.ToArray())
            {
                Despawn(player, actor);
            }

            // Despawn actor on owner
            if (actor.Connection != null)
            {
                Despawn(actor.Connection.Player, actor);
            }

            // Destroy actor
            Context.DestroyActor(actor);

            // Release actor id for re-use
            actorIdPool.Release(actorId);
        }