【教程】【GC七段】 扩充你的GC函数库---获取GCD数值
本帖最后由 托托 于 2016-2-5 20:51 编辑最近在做一个骑士方案 想完整重现SIMC的输出流程
BTW:
前面有个用OVALE加载SIMC脚本的帖子 初学者用是不错 最小投入最大回报 但是有2个问题
1.很多功能无法微调
2.SIMC流程做得很细,根据技能范围精确到怪物个数使用不同技能,对目标数量判断使用不同技能OVALE不行,只有简单粗暴的一个AOE
在制作过程中发现SIMC经常用到2个参数:gcd 和 gcd.max
两者区别就是gcd.max是常态的gcd时间,gcd是即时的gcd时间(比如触发了带急速的附魔饰品,或者开嗜血啦)
发现GC的函数库里好像没有类似功能 索性自己写
调用方法:(没有任何依赖,全部魔兽API,经测试数据准确没有任何浮动)
提供三个函数
1.MY_GetBaseGCD()返回本职业裸态GCD
2.MY_GetMaxGCD()返回常态GCD(刷新机制:非战斗状态放任意技能,就记录目前的GCD)
3.MY_GetNowGCD() 返回即时GCD(刷新机制:放任意技能,就记录当前的GCD)
使用方法:
1.用记事本打开Interface\AddOns\GC\wowamfunctions.lua
2.翻到最后另起一行
3.粘贴
--------------GCD Start--------------
local MY_BASE_GCD = {
["DEATHKNIGHT"] = { 1.0 },
["DRUID"] = { 1.5 },
["HUNTER"] = { 1.0 },
["MAGE"] = { 1.5 },
["MONK"] = { 1.5 },
["PALADIN"] = { 1.5 },
["PRIEST"] = { 1.5 },
["ROGUE"] = { 1.0 },
["SHAMAN"] = { 1.5 },
["WARLOCK"] = { 1.5 },
["WARRIOR"] = { 1.5 },
}
local MY_MAX_GCD = nil
local MY_NOW_GCD = nil
function MY_GetBaseGCD()
local gcd
local baseGCD = MY_BASE_GCD[select(2, UnitClass("player"))
]
if baseGCD then
gcd = baseGCD
else
gcd = 1.5
end
return gcd
end
function MY_GetMaxGCD()
if MY_MAX_GCD==nil
then
MY_RegGCD()
return MY_GetBaseGCD()
else
return MY_MAX_GCD
end
end
function MY_GetNowGCD()
if MY_NOW_GCD==nil
then
MY_RegGCD()
return MY_GetBaseGCD()
else
return MY_NOW_GCD
end
end
function MY_RegGCD()
MY_GCD_EVENT=MY_GCD_EVENT or CreateFrame("frame")
MY_GCD_EVENT:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
MY_GCD_EVENT:SetScript("OnEvent",function(_,_,_,e,_,_,_,_,_,_,_,_,_,_)
if(e=="SPELL_CAST_SUCCESS")
then
local _,x=GetSpellCooldown(61304)
if (x>0)
then
if UnitAffectingCombat("player")
then
MY_NOW_GCD=x
--print("NOW "..x.."")
else
MY_MAX_GCD=x
MY_NOW_GCD=x
--print("MAX "..x.."")
end
end
end
end)
end
--------------GCD End--------------
自己写函数什么的太给力了! 膜拜啊,一直也想自己写点函数丰富一下,但始终找不到头绪,希望能多交流 我是慕名而来,请收下我的膝盖 我用GetSpellCooldown,必须是执行后,才可以读取。求教,请问是否有官方函数可以直接读取到技能的实时冷却周期? ydh 发表于 2015-8-4 02:30
我用GetSpellCooldown,必须是执行后,才可以读取。求教,请问是否有官方函数可以直接读取到技能的实时冷却 ...
根据急速缩短CD的技能一般可以这样算 GetSpellBaseCooldown(spellName)/(1+GetMeleeHaste()/100)/1000 htt0528 发表于 2015-8-17 04:10
根据急速缩短CD的技能一般可以这样算 GetSpellBaseCooldown(spellName)/(1+GetMeleeHaste()/100)/1000
谢谢提供获取GCD数值解决办法 谢谢大神。学习了。。 谢谢大神。学习了。。
页:
[1]