Пример #1
0
    // 스킬 피격 정보 패킷 획득 함수
    public void OnReceiveSkillHitPacket(PacketId id, byte[] data)
    {
        SkillHitPacket packet = new SkillHitPacket(data);
        SkillHitData   hit    = packet.GetPacket();

        Debug.Log((hitCnt++) + " 피격 된 놈 : " + hit.campNumber + " 캠프의 " + hit.index + " 서버 체력은 " + hit.serverHP);
        GameManager.instance.ApplySkillEffect(hit.campNumber, hit.index, hit.statusType, hit.ccType, hit.amount, hit.duration, hit.serverHP);
    }
Пример #2
0
    public void SendLocalHitInfo(int campNumber, int index, int statusType, int ccType, int amount, float duration)
    {
        SkillHitData data = new SkillHitData(campNumber, index, statusType, ccType, amount, duration, 0);

        SkillHitPacket packet = new SkillHitPacket(data);

        networkManager.SendReliable <SkillHitData>(packet);
    }
Пример #3
0
        public bool Serialize(SkillHitData packet)
        {
            bool ret = true;

            ret &= Serialize(packet.campNumber);
            ret &= Serialize(packet.index);
            ret &= Serialize(packet.statusType);
            ret &= Serialize(packet.ccType);
            ret &= Serialize(packet.amount);
            ret &= Serialize(packet.duration);
            ret &= Serialize(packet.serverHP);
            ret &= Serialize(packet.trash1);
            ret &= Serialize(packet.trash2);
            return(ret);
        }
Пример #4
0
        /// <summary>
        /// 技能到达
        /// </summary>
        /// <param name="receiver"></param>
        /// <param name="casterid"></param>
        /// <param name="param0"></param>
        /// <param name="?"></param>
        public override void ReceiveTarget(IActor receiver, IActor caster, object param0)
        {
            base.ReceiveTarget(receiver, caster, param0);

            byte      hitIndex = (byte)param0;
            RoleActor rev      = receiver as RoleActor;
            RoleActor ct       = caster as RoleActor;
            var       hitRet   = CheckHitType(ct, rev);
            int       dmg      = GetDamage(ct, rev, hitRet);

            dmg = (int)(dmg / this.mData.hitCount);

            SkillHitData hit = new SkillHitData();

            hit.HitType = (byte)hitRet;
            hit.Damage  = dmg;
            rev.OnSkillReceive(ct, this, hit);
        }
Пример #5
0
        public bool Deserialize(ref SkillHitData element)
        {
            // 데이터가 정의되어있지 않다면
            if (GetDataSize() == 0)
            {
                return(false);
            }

            bool ret = true;

            ret &= Deserialize(ref element.campNumber);
            ret &= Deserialize(ref element.index);
            ret &= Deserialize(ref element.statusType);
            ret &= Deserialize(ref element.ccType);
            ret &= Deserialize(ref element.amount);
            ret &= Deserialize(ref element.duration);
            ret &= Deserialize(ref element.serverHP);
            ret &= Deserialize(ref element.trash1);
            ret &= Deserialize(ref element.trash2);

            return(ret);
        }