Exemplo n.º 1
0
        private void DieTask_OnAdditionStart(SmartEngine.Network.Map.Actor actor, Buff skill)
        {
            if (client.Character.Tasks.TryRemove("DieTask", out Task removed))
            {
                removed.Deactivate();
            }

            client.Character.Status.Recovering = true;
            UpdateEvent evt = new UpdateEvent()
            {
                Actor             = client.Character,
                Target            = client.Character,
                UpdateType        = UpdateTypes.PlayerRecover,
                ExtraActivateMode = UpdateEvent.ExtraUpdateModes.None
            };

            client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);

            evt = new UpdateEvent()
            {
                Actor      = client.Character,
                Target     = client.Character,
                AdditionID = 65000,
                UpdateType = UpdateTypes.Actor
            };
            //evt.AddActorPara(Common.Packets.GameServer.PacketParameter.Dead, 3);
            client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);
        }
Exemplo n.º 2
0
        private void DieTask_OnAdditionEnd(SmartEngine.Network.Map.Actor actor, Buff skill, bool cancel)
        {
            client.Character.Tasks.TryRemove("DieTask", out Task removed);
            UpdateEvent evt = new UpdateEvent()
            {
                Actor             = client.Character,
                Target            = client.Character,
                AdditionSession   = 28674,
                ExtraActivateMode = UpdateEvent.ExtraUpdateModes.Cancel,
                SkillSession      = 255,
                AdditionID        = 65010,
                UpdateType        = UpdateTypes.Actor,
                //evt.AddActorPara(Common.Packets.GameServer.PacketParameter.Speed, 62);
                UserData = new byte[] { 9, 3, 0 }
            };

            if (!cancel)
            {
                client.Character.Status.Dying = false;
                //evt.AddActorPara(Common.Packets.GameServer.PacketParameter.Dead, 1);
            }
            client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);

            evt = new UpdateEvent()
            {
                Actor             = client.Character,
                Target            = client.Character,
                AdditionSession   = 28674,
                ExtraActivateMode = UpdateEvent.ExtraUpdateModes.Cancel,
                UpdateType        = UpdateTypes.ActorExtension
            };
            client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);
        }
Exemplo n.º 3
0
        private void ActorItemPickDropTask_OnAdditionEnd(SmartEngine.Network.Map.Actor actor, Buff skill, bool cancel)
        {
            Map.Map map = MapManager.Instance.GetMap(pc.MapInstanceID);

            pc.Tasks.TryRemove("ActorItemPickDropTask", out Task removed);
            switch (action)
            {
            case ActionTypes.Pick:
            {
                UpdateEvent evt = new UpdateEvent()
                {
                    UpdateType = UpdateTypes.ItemPick,
                    Actor      = pc,
                    Target     = item,
                    UserData   = (byte)1
                };
                map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, pc, true);
            }
            break;

            case ActionTypes.PickCorpse:
            {
                UpdateEvent evt = new UpdateEvent()
                {
                    UpdateType = UpdateTypes.ItemPickCorpse,
                    Actor      = pc,
                    Target     = item,
                    UserData   = (byte)1
                };
                map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, pc, true);
            }
            break;

            case ActionTypes.Drop:
            {
                UpdateEvent evt = new UpdateEvent()
                {
                    UpdateType = UpdateTypes.ItemDrop,
                    Actor      = pc,
                    Target     = item,
                    X          = (short)item.X,
                    Y          = (short)item.Y,
                    Z          = (short)item.Z,
                    UserData   = (byte)1
                };
                map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, pc, true);
            }
            break;
            }
        }
Exemplo n.º 4
0
        private void DieTask_OnAdditionStart(SmartEngine.Network.Map.Actor actor, Buff skill)
        {
            UpdateEvent evt = UpdateEvent.NewActorAdditionEvent(client.Character, client.Character, 255, 28674, 65010, UpdateEvent.ExtraUpdateModes.Activate);

            //evt.AddActorPara(Common.Packets.GameServer.PacketParameter.Speed, 6);
            client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);

            evt = new UpdateEvent()
            {
                Actor           = client.Character,
                Target          = client.Character,
                AdditionSession = 28674,
                SkillSession    = 0,
                AdditionID      = 65010,
                RestTime        = 80000,
                UpdateType      = UpdateTypes.ActorExtension
            };
            client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);
        }
Exemplo n.º 5
0
        private void DieTask_OnAdditionEnd(SmartEngine.Network.Map.Actor actor, Buff skill, bool cancel)
        {
            client.Character.Tasks.TryRemove("RecoverTask", out Task removed);
            client.Character.Status.Recovering = false;
            if (!cancel)
            {
                UpdateEvent evt = new UpdateEvent()
                {
                    Actor      = client.Character,
                    Target     = client.Character,
                    UpdateType = UpdateTypes.Actor
                };
                //evt.AddActorPara(Common.Packets.GameServer.PacketParameter.Dead, 0);
                client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);
                Interlocked.Exchange(ref client.Character.HP, (int)(client.Character.MaxHP * 0.7f));
                client.SendPlayerHP();
                client.Character.Status.Dead  = false;
                client.Character.Status.Dying = false;

                evt = new UpdateEvent()
                {
                    Actor             = client.Character,
                    Target            = client.Character,
                    UpdateType        = UpdateTypes.PlayerRecover,
                    ExtraActivateMode = UpdateEvent.ExtraUpdateModes.Activate
                };
                client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);
            }
            else
            {
                UpdateEvent evt = new UpdateEvent()
                {
                    Actor             = client.Character,
                    Target            = client.Character,
                    UpdateType        = UpdateTypes.PlayerRecover,
                    ExtraActivateMode = UpdateEvent.ExtraUpdateModes.Cancel
                };
                client.Map.SendEventToAllActorsWhoCanSeeActor(MapEvents.EVENT_BROADCAST, evt, client.Character, true);
            }
        }