2014-02-23 07:56| 查看: 5166 |作者: 小雪+陈雨
关于智能判断 这里介绍下比较常用的几项判断: 1.增益与减益的判断(buff或者debuff,见上) 2.技能冷却判断(见上) 3.纯阳与和尚的集气判断(见上) 4.气血以及内力的值或者比的判断 5.读条状态 6.距离判断 7.其他 前四项可以在上面找到解释,这里只是重复解释一下。 1.增益于减益判断 建议使用函数封装,以下为原始语句: 以下为自身增益的检测 /script for _, D in pairs(GetClientPlayer().GetBuffList()) do if D.dwID == 增益的ID then 执行语句 end end; 以下为自身减益的检测 /script for _, D in pairs(GetClientPlayer().GetBuffList() or {}) do if D.dwID == 减益的ID then 执行语句 end end; 那么进行一下封装,成一个比较灵活的检测目标增益减益以及等级的判断 /script function buff(mb,id,lvl) for _, D in pairs(mb.GetBuffList() or {}) do if D.dwID==id and (lvl==nil or D.dwLevel==lvl) then return true end end return false end 如果前面加入了小封装,则N=自身,T等于敌对目标的话,在这里,MB=N就是判断自身状态,MB=T就是判断敌方状态。 ID就是增益减益的ID,等级对应BUFF等级,有些BUFF有 层数的,如剑舞。 2.技能冷却判断 同样建议使用函数封装,以下为原始语句 /script XX1,XX2,XX3=N.GetSkillCDProgress(技能ID,技能等级) 这XX1用不到,XX2是代表公共冷却,XX3则是代表技能冷却。 进行下简单的封装 /scrpit function cd(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) return C end 如果要将技能冷却判断跟使用技能一起封装的话就这样 /script function use(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) if C==0 then OnUseSkill(id,N.GetSkillLevel(id)) end end 3.纯阳与和尚的集气判断 判断集气的API是 nAccumulateValue 纯阳或和尚的气或豆的个数 纯阳为半个气为1,也就是0-10之间的数,比如7就是3个半气 和尚为0-3指间的数,一比一 只能判断自身集气数,没有强大到判断敌方集气数。 使用方法如下 /script if GetClientPlayer.nAccumulateValue==10 then OnUseSkill(301,X) end 进行下封装 /script P=GetClientPlayer.nAccumulateValue /script if P==10 then OnUseSkill(301,X) end 4.气血以及内力值或者比的判断 关于这类的判断会用到以下几个API nCurrentLife 当前生命 nMaxLife 最大生命 nCurrentMana 当前内力 nMaxMana 最大内力 判断自身当前生命值 /script HP=GetClientPlayer.nCurrentLife /script if HP=<5000 then OnUseSkill(XXX,X) end 判断内力值就把nCurrentLife换成nCurrentMana 判断自身生命比 /script HPR=GetClientPlayer.nCurrentLife/GetCLientPlayer.nMaxLife /script if HPR<=0.5 then OnUseSkill(XXX,X) end 判断自身当前内力比就将nCurrentLife以及nMaxLife,换成对应的nCurrentMana跟nMaxMana 判断敌方当前生命值 /script T=GetTargetHandle(GetClientPlayer.GetTarget()) /script tHP=T.nCurrentLife /script if tHP<=5000 then OnUseSkill(XXX,X) end 判断内力值就把nCurrentLife换成nCurrentMana 判断敌方生命比 /script T=GetTargetHandle(GetClientPlayer.GetTarget()) /script tHPR=T.nCurrentLife/T.nMaxLife /script if tHPR<=0.5 then OnUseSkill(XXX,X) end 判断自身当前内力比就将nCurrentLife以及nMaxLife,换成对应的nCurrentMana跟nMaxMana |