コード例 #1
0
ファイル: FlyFontDataManager.cs プロジェクト: zuojiashun/src
    public void ShowDamage(uint damageValue, uint damType, uint roleid, EntityType type, uint curHp, uint skillid = 1, uint attackerid = 0)
    {//伤害包
        // Log.LogGroup("ZDY", "show damage damagevalue is {0}", damageValue);
        Client.IEntity entity = GetEntity(roleid, type);
        if (entity == null)
        {
            Engine.Utility.Log.Error("找不到实体roleid:{0},type :{1}", roleid, type);
            return;
        }
        SetEntityCurHP(entity, curHp);
        table.SkillDatabase skillData = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(skillid);
        uint damageTimes  = 1;
        uint hurtinterval = 0;

        if (skillData != null)
        {
            damageTimes  = skillData.damagetimes;
            hurtinterval = skillData.hurtinterval;
        }


        DamageType dt = GetDamageType(damType);

        if (testType != DamageType.None)
        {
            dt = testType;
        }
        if (entity != null)
        {
            //if (damageTimes == 1 || dt == DamageType.Doge)
            {
                FlyFont font = GetFlyFont(dt);
                if (font == null)
                {
                    return;
                }
                font.InitDamageType(dt);
                AddFlyFont(entity, type, dt, font, damageValue);
            }
            //else
            //{
            //    uint damage = damageValue / damageTimes;
            //    List<int> damageList = new List<int>();
            //    int totalHurt = 0;
            //    uint averageValue = damage - damage / 4;
            //    for (int i = 0; i < damageTimes - 1; i++)
            //    {
            //        int hurt = UnityEngine.Random.Range((int)averageValue, (int)damage);
            //        damageList.Add(hurt);
            //        totalHurt += hurt;
            //    }

            //    int lastHurt = (int)damageValue - totalHurt;
            //    damageList.Add(lastHurt);
            //    StartCoroutine(AddDamage(roleid, damType, type, damageList, hurtinterval));
            //}
        }
    }
コード例 #2
0
ファイル: FlyFontDataManager.cs プロジェクト: zuojiashun/src
    void PreLoadFont()
    {
        m_dicFt = new Dictionary <DamageType, List <FlyFont> >();
        Profiler.BeginSample("PreLoadFightFont");
        Array types = Enum.GetValues(typeof(DamageType));

        for (int i = 0; i < types.Length; i++)
        {
            DamageType dt = (DamageType)types.GetValue(i);
            if (dt == DamageType.Normal || dt == DamageType.AddHp)
            {
                for (int n = 0; n < m_nNormalFontPreLoad; n++)
                {
                    FlyFont ff = GetFlyFont(dt);
                    if (ff == null)
                    {
                        return;
                    }
                    ff.InitDamageType(dt);
                    AddFontPool(dt, ff);
                }
            }
            else if (dt == DamageType.None)
            {
                continue;
            }
            else
            {
                for (int n = 0; n < m_nOtherFontPreLoad; n++)
                {
                    FlyFont ff = GetFlyFont(dt);
                    if (ff == null)
                    {
                        return;
                    }
                    ff.InitDamageType(dt);
                    AddFontPool(dt, ff);
                }
            }
        }
        var iter = m_dicFt.GetEnumerator();

        while (iter.MoveNext())
        {
            var            dic = iter.Current;
            List <FlyFont> fl  = dic.Value;
            for (int i = 0; i < fl.Count; i++)
            {
                FlyFont ff = fl[i];
                ReturnFlyFont(dic.Key, ff);
            }
        }
        m_dicFt.Clear();
        m_dicFt = null;
        Profiler.EndSample();
    }
コード例 #3
0
ファイル: FlyFontDataManager.cs プロジェクト: zuojiashun/src
    void ShowExp(int exp)
    {
        DamageType dt   = DamageType.AddExp;
        FlyFont    font = GetFlyFont(dt);

        if (font == null)
        {
            return;
        }
        font.InitDamageType(dt);
        AddFlyFont(MainPlayerHelper.GetMainPlayer(), EntityType.EntityType_Player, dt, font, exp);
    }
コード例 #4
0
ファイル: FlyFontDataManager.cs プロジェクト: zuojiashun/src
    public void ShowBuffDamage(stBuffDamage damage)
    {
        Client.IEntity entity = GetEntity(damage.uid);
        if (entity == null)
        {
            Engine.Utility.Log.Error("找不到实体roleid:{0}", damage.uid);
            return;
        }

        SetEntityCurHP(entity, damage.curHp);

        if (damage.uid != MainPlayerHelper.GetPlayerUID())
        {
            return;
        }

        EntityType entype = damage.entityType == (int)EntityType.EntityType_Player ? EntityType.EntityType_Player : EntityType.EntityType_NPC;

        DamageType dt = DamageType.Normal;

        if (damage.changeValue > 0)
        {
            dt = DamageType.AddHp;
        }
        if (testType != DamageType.None)
        {
            dt = testType;
        }
        if (entity != null)
        {
            if (damage.damagetype == (int)GameCmd.HPChangeType.HPChangeType_Buff || damage.damagetype == (int)GameCmd.HPChangeType.HPChangeType_Imme)
            {
                FlyFont font = GetFlyFont(dt);
                if (font == null)
                {
                    return;
                }
                font.InitDamageType(dt);
                AddFlyFont(entity, entype, dt, font, damage.changeValue);
            }
        }
    }