示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#3
0
 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);
 }
示例#4
0
        /// <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);
        }