代码拉取完成,页面将自动刷新
--author:wking@NGA
--[[
flag_inout_Instance变量是进出副本标志变量
在副本内=0
在副本外=1
通过几个条件判断,确定从副本外进入到副本内后,值由1变为0;从副本内进入到副本外后,值由0变为1。
]]
function ()
--通告输出判断代码段开始
-- AddMessage未知错误,删除代码段
--通告输出判断代码段结束
--判断等级,返回经验值阈值代码段开始
if UnitLevel("player") == MAX_PLAYER_LEVEL_TABLE[GetExpansionLevel()] then -- 满级不做经验值判断
exp_threshold = -1
elseif UnitLevel("player") < 11 then
exp_threshold = 1000
else
exp_threshold = 2000
end
--判断等级,返回经验值阈值代码段结束
--调试模式强制赋值,出副本即可公告
if aura_env.config["isdebug"] then
exp_threshold = -1
if aura_env.var["total_time"] < 120 then
aura_env.var["total_time"] = aura_env.var["total_time"] + 120
end
end
-- 获取当前经验条声望信息代码
local faction = {}
aura_env.var["faction_name"],faction['standing'],faction['min'],faction['max'],faction['value'],faction['factionID'] = GetWatchedFactionInfo() --无声望条时,faction_name=nil,其他项为0
if aura_env.var["faction_name"] == nil then
aura_env.var["faction_name"] = "-"
end
-- 计算升级、声望信息代码
local str_exp_pct = string.format("%0.2f", (UnitXPMax("player")-UnitXP("player"))/UnitXPMax("player")*100) -- 升级还需多少百分比的经验
local str_exp_num = string.format("%0.1f", (UnitXPMax("player")-UnitXP("player"))/aura_env.var["total_exp"]) -- 升级还需刷多少次副本
local str_fct_get = faction['value'] - aura_env.var["faction_start"] -- 当前副本获得声望数值
local str_fct_num = string.format("%0.1f", (faction['max'] - faction['value'])/str_fct_get) -- 声望升级还需刷多少次副本
if str_exp_num == "-nan(ind)" or str_exp_num == "-inf" or str_exp_num == "inf" then str_exp_num = "-" end
if str_fct_num == "-nan(ind)" or str_fct_num == "-inf" or str_fct_num == "inf" then str_fct_num = "-" end
if ( not IsInInstance() and not UnitIsDeadOrGhost("player") ) and ( aura_env.var["total_exp"] > exp_threshold and aura_env.var["total_time"] > 120 or aura_env.var["flag_inout_Instance"] == 1 ) then --在副本外,记录初始时间经验等级
if aura_env.var["isUILoadingFinish"] == 1 then
if aura_env.var["flag_inout_Instance"] <1 then --通告代码
if aura_env.var["end_time"] == 0 then
aura_env.var["end_time"] = GetTime()
if aura_env.config["isdebug"] then print(date("%H:%M:%S") .. " [DEBUG] aura_env.var[end_time] = " .. GetTime()) end
end
else
aura_env.var["isUILoadingFinish"] = 0
end
end
if aura_env.var["end_time"] ~= 0 and (GetTime() - aura_env.var["end_time"] >= 0.5) then -- 触发EVENT,变量赋值后,延时0.05秒喊话
aura_env.var["end_time"] = 0
local hour,minute = GetGameTime()
str = "("..string.format("%02u", hour)..":"..string.format("%02u", minute)..")副本次数" .. aura_env.var["num"] .. ",副本用时" .. string.format("%02u", aura_env.var["total_time_min"]) .. ":" .. string.format("%02u", aura_env.var["total_time_sec"])
str_exp = ",杀怪数量" .. string.format("%u", aura_env.var["kill_count"]) ..",获得经验" .. string.format("%u", aura_env.var["total_exp"]) ..",当前等级" .. UnitLevel("player") ..",升级还需".. str_exp_num .."次。"
str_fct = "获得".. str_fct_get.. "点".. aura_env.var["faction_name"].. "声望,声望升级还需" .. str_fct_num .. "次。"
str = str .. str_exp .. str_fct .. "【ExpHelper】"
if #str < 255 then -- 如果发送字符大于系统限制255,分开发送
if aura_env.config["isdebug"] then print(date("%H:%M:%S") .. " [DEBUG]" .. str) end
if aura_env.config["send_exp"] == 1 then --不通告
--nothing
elseif aura_env.config["send_exp"] == 2 then --通告队伍频道
if IsInGroup() then
SendChatMessage(str, "PARTY")
else
print("不在队伍中,无法通告")
end
elseif aura_env.config["send_exp"] == 3 then --私密自己
SendChatMessage(str,"WHISPER", nil, UnitName("player"))
elseif aura_env.config["send_exp"] == 4 then --通告仅自己可见
_G["ChatFrame"..aura_env.config["send_exp_chat_num"]]:AddMessage(str)
end
else
if aura_env.config["isdebug"] then print(date("%H:%M:%S") .. " [DEBUG]" .. str_exp) end
if aura_env.config["send_exp"] == 1 then --不通告
--nothing
elseif aura_env.config["send_exp"] == 2 then --通告队伍频道
if IsInGroup() then
SendChatMessage(str_exp, "PARTY")
else
print("不在队伍中,无法通告")
end
elseif aura_env.config["send_exp"] == 3 then --私密自己
SendChatMessage(str_exp,"WHISPER", nil, UnitName("player"))
elseif aura_env.config["send_exp"] == 4 then --通告仅自己可见
_G["ChatFrame"..aura_env.config["send_exp_chat_num"]]:AddMessage(str_exp)
end
if aura_env.config["isdebug"] then print(date("%H:%M:%S") .. " [DEBUG]" .. str_fct) end
if aura_env.config["send_exp"] == 1 then --不通告
--nothing
elseif aura_env.config["send_exp"] == 2 then --通告队伍频道
if IsInGroup() then
SendChatMessage(str_fct, "PARTY")
else
print("不在队伍中,无法通告")
end
elseif aura_env.config["send_exp"] == 3 then --私密自己
SendChatMessage(str_fct,"WHISPER", nil, UnitName("player"))
elseif aura_env.config["send_exp"] == 4 then --通告仅自己可见
_G["ChatFrame"..aura_env.config["send_exp_chat_num"]]:AddMessage(str_fct)
end
end
aura_env.var["flag_inout_Instance"] = 1
aura_env.var["isUILoadingFinish"] = 0
if aura_env.config["isdebug"] then print(date("%H:%M:%S") .. " [DEBUG] 出副本,变量重置") end
end
else --在副本内
aura_env.var["total_time"] = GetTime() - aura_env.var["start_time"]
if aura_env.var["isUILoadingFinish"] == 1 then -- 等待UI载入完毕
if aura_env.var["flag_inout_Instance"] == 1 then
local faction_temp = {GetWatchedFactionInfo()} --获取当前经验条声望信息 faction_temp[1]=nil则没有监控声望条
if faction_temp[1] ~= nil then -- 不需要考虑else情况,因为初始化已经赋值过了
aura_env.var["faction_start"] = faction_temp[5]
end
aura_env.var["isUILoadingFinish"] = 0
aura_env.var["flag_inout_Instance"] = 0
aura_env.var["start_time"] = GetTime()
aura_env.var["start_exp"] = UnitXP("player") --目前等级已获得经验
aura_env.var["start_levelexpmax"] = UnitXPMax("player") --记录开始等级所需最大经验
aura_env.var["start_level"] = UnitLevel("player")
aura_env.var["kill_count"] = 0 --在这里重置杀怪数,以便副本外不重置可以看到上一次副本杀了几个怪
aura_env.var["num"] = aura_env.var["num"] + 1
if aura_env.config["isdebug"] then print(date("%H:%M:%S") .. " [DEBUG] 进入副本,变量重置") end
end
end
if UnitLevel("player") == aura_env.var["start_level"] then
aura_env.var["total_exp"] = UnitXP("player") - aura_env.var["start_exp"]
else --如果升级了
aura_env.var["total_exp"] = UnitXP("player") + aura_env.var["start_levelexpmax"] - aura_env.var["start_exp"]
end
end
if aura_env.var["total_time"] ~= 0 then --修复副本外载入脚本,由于total_time=0导致计算每秒效率会出错的BUG
aura_env.var["exp_per_time"] = aura_env.var["total_exp"] / aura_env.var["total_time"]
else
aura_env.var["exp_per_time"] = 0
end
aura_env.var["total_time_min"] = aura_env.var["total_time"] / 60
aura_env.var["total_time_sec"] = aura_env.var["total_time"] % 60
return_str = "\n副本次数: " .. aura_env.var["num"]
return_str = return_str .. "\n副本用时: " .. string.format("%02u", aura_env.var["total_time_min"]) .. ":" .. string.format("%02u", aura_env.var["total_time_sec"])
return_str = return_str .. "\n杀怪数量: " .. string.format("%u", aura_env.var["kill_count"])
return_str = return_str .. "\n获得经验: " .. string.format("%u", aura_env.var["total_exp"])
return_str = return_str .. "\n每秒效率: "..string.format("%u", aura_env.var["exp_per_time"])
return_str = return_str .. "\n升级还需: " .. str_exp_pct .. "% ".. str_exp_num .."次"
return_str = return_str .. "\n获得声望: " .. str_fct_get .. " ".. str_fct_num .."次"
--debug
if aura_env.config["isdebug"] then
if ( not IsInInstance() and not UnitIsDeadOrGhost("player") ) and ( aura_env.var["total_exp"] > exp_threshold and aura_env.var["total_time"] > 120 or aura_env.var["flag_inout_Instance"] == 1 ) then
return_str = return_str .. "\n\n在副本外"
else
return_str = return_str .. "\n\n在副本内"
end
if aura_env.config["send_exp"] == 1 then --不通告
return_str = return_str .. "\n不通告"
elseif aura_env.config["send_exp"] == 2 then --通告队伍频道
if IsInGroup() then
return_str = return_str .. "\n队伍通告,在队伍中"
else
return_str = return_str .. "\n队伍通告,不在队伍"
end
elseif aura_env.config["send_exp"] == 3 then --私密自己
return_str = return_str .. "\n通告私密自己"
elseif aura_env.config["send_exp"] == 4 then --通告仅自己可见
return_str = return_str .. "\n通告仅自己可见"
end
if str == nil then
return_str = return_str .. "\n发送消息长度(最大255字节):" .. "-"
else
return_str = return_str .. "\n发送消息长度(最大255字节):" .. #str
end
return_str = return_str .. "\nstr_exp_pct[" .. type(str_exp_pct) .. "] = " .. str_exp_pct
return_str = return_str .. "\nstr_exp_num[" .. type(str_exp_num) .. "] = " .. str_exp_num
return_str = return_str .. "\nstr_fct_get[" .. type(str_fct_get) .. "] = " .. str_fct_get
return_str = return_str .. "\nstr_fct_num[" .. type(str_fct_num) .. "] = " .. str_fct_num
-- 显示内容格式化
for k,v in pairs(aura_env.var) do
if type(v) == "number" then
return_str = return_str .. "\n" .. k .. "=" .. string.format("%2.2f", v)
elseif type(v) == "string" then
return_str = return_str .. "\n" .. k .. "=" .. v
end
end
end
return return_str
end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。