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)); //} } }
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(); }
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); }
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); } } }