public uint Execute(PacketDistributed ipacket)
        {
            GC_SKILL_FINISH packet = (GC_SKILL_FINISH )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic

            int _objId = packet.ObjId;

            Obj_Character Sender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(_objId);

            if (Sender == null)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            SkillCore _skillCore = Sender.SkillCore;

            if (_skillCore == null)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            if (packet.FinsjType == (int)SKILLFINISHREASON.BREAK)
            {
                _skillCore.BreakCurSkill();
            }
            else if (packet.FinsjType == (int)SKILLFINISHREASON.FINISH)
            {
                _skillCore.SkillFinsh();
            }
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
        public uint Execute(PacketDistributed ipacket)
        {
            GC_SHOW_SKILLNAME packet = (GC_SHOW_SKILLNAME)ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }

            int    nSkillId    = packet.Skillid;
            int    nSenderId   = packet.Senderid;
            string szSkillName = "";

            if (packet.HasSkillname)
            {
                szSkillName = packet.Skillname;
            }

            SkillCore.ShowSkillName(nSkillId, nSenderId, szSkillName);


            //enter your logic
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }