/// <summary> /// 处理重生(加速回血) /// </summary> /// <param name="client"></param> public static double ProcessHuZhaoRecoverPercent(Monster monster) { double percent = 0.0; //如果已经死亡,则不再调度 if (monster.VLife > 0) { BufferData bufferData = null; //判断此地图是否允许使用Buffer if (Global.CanMapUseBuffer(monster.CurrentMapCode, (int)BufferItemTypes.TimeHUZHAONoShow)) { bufferData = Global.GetMonsterBufferDataByID(monster, (int)BufferItemTypes.TimeHUZHAONoShow); if (null != bufferData) { if (bufferData.BufferVal > 0) //如果还有储备 { HuZhaoBufferItem huZhaoBufferItem = monster.MyBufferExtManager.FindBufferItem((int)BufferItemTypes.TimeHUZHAONoShow) as HuZhaoBufferItem; if (huZhaoBufferItem != null) { percent = huZhaoBufferItem.RecoverLifePercent; } } else { ///删除,防止遗漏,占用内存资源 Global.RemoveMonsterBufferData(monster, (int)BufferItemTypes.TimeHUZHAONoShow); monster.MyBufferExtManager.RemoveBufferItem((int)BufferItemTypes.TimeHUZHAONoShow); } } } } return(percent); }
public static double ProcessHuZhaoRecoverPercent(Monster monster) { double percent = 0.0; if (monster.VLife > 0.0) { if (Global.CanMapUseBuffer(monster.CurrentMapCode, 97)) { BufferData bufferData = Global.GetMonsterBufferDataByID(monster, 97); if (null != bufferData) { if (bufferData.BufferVal > 0L) { HuZhaoBufferItem huZhaoBufferItem = monster.MyBufferExtManager.FindBufferItem(97) as HuZhaoBufferItem; if (huZhaoBufferItem != null) { percent = huZhaoBufferItem.RecoverLifePercent; } } else { Global.RemoveMonsterBufferData(monster, 97); monster.MyBufferExtManager.RemoveBufferItem(97); } } } } return(percent); }
public static int ProcessHuZhaoSubLifeV(Monster monster, int subLifeV) { if (monster.VLife > 0.0) { if (Global.CanMapUseBuffer(monster.CurrentMapCode, 97)) { BufferData bufferData = Global.GetMonsterBufferDataByID(monster, 97); if (null != bufferData) { if (bufferData.BufferVal > 0L) { long needLifeV = (long)(monster.MonsterInfo.VLifeMax - monster.VLife); HuZhaoBufferItem huZhaoBufferItem = monster.MyBufferExtManager.FindBufferItem(97) as HuZhaoBufferItem; if (huZhaoBufferItem != null) { needLifeV = Global.GMin(needLifeV, (long)huZhaoBufferItem.InjuredV); needLifeV = (long)((int)Global.GMin(needLifeV, (long)((int)bufferData.BufferVal))); bufferData.BufferVal -= (long)Global.GMin((int)bufferData.BufferVal, huZhaoBufferItem.InjuredV); subLifeV = (int)Global.GMin(needLifeV, (long)subLifeV); } } else { Global.RemoveMonsterBufferData(monster, 97); monster.MyBufferExtManager.RemoveBufferItem(97); bufferData.BufferSecs = 0; bufferData.StartTime = 0L; GameManager.ClientMgr.NotifyOtherBufferData(monster, bufferData); } } } } return(subLifeV); }
/// <summary> /// 处理重生(减少血) /// </summary> /// <param name="client"></param> public static int ProcessHuZhaoSubLifeV(Monster monster, int subLifeV) { //如果已经死亡,则不再调度 if (monster.VLife > 0) { BufferData bufferData = null; //判断此地图是否允许使用Buffer if (Global.CanMapUseBuffer(monster.CurrentMapCode, (int)BufferItemTypes.TimeHUZHAONoShow)) { bufferData = Global.GetMonsterBufferDataByID(monster, (int)BufferItemTypes.TimeHUZHAONoShow); if (null != bufferData) { if (bufferData.BufferVal > 0) //如果还有储备 { #if ___CC___FUCK___YOU___BB___ int needLifeV = (int)(monster.XMonsterInfo.MaxHP - monster.VLife); #else int needLifeV = (int)(monster.MonsterInfo.VLifeMax - monster.VLife); #endif HuZhaoBufferItem huZhaoBufferItem = monster.MyBufferExtManager.FindBufferItem((int)BufferItemTypes.TimeHUZHAONoShow) as HuZhaoBufferItem; if (huZhaoBufferItem != null) { needLifeV = Global.GMin(needLifeV, huZhaoBufferItem.InjuredV); needLifeV = (int)Global.GMin(needLifeV, (int)bufferData.BufferVal); bufferData.BufferVal -= (int)Global.GMin((int)bufferData.BufferVal, huZhaoBufferItem.InjuredV); //储备减少 subLifeV = Global.GMin(needLifeV, subLifeV); } } else { ///删除,防止遗漏,占用内存资源 Global.RemoveMonsterBufferData(monster, (int)BufferItemTypes.TimeHUZHAONoShow); monster.MyBufferExtManager.RemoveBufferItem((int)BufferItemTypes.TimeHUZHAONoShow); bufferData.BufferSecs = 0; bufferData.StartTime = 0; GameManager.ClientMgr.NotifyOtherBufferData(monster, bufferData); } } } } return(subLifeV); }