# SpellWhisper **Repository Path**: aoikaze/SpellWhisper ## Basic Information - **Project Name**: SpellWhisper - **Description**: WOW Classic Addon:Some Spells Casting/Resist/Fail/Break/Interrupt Announce - **Primary Language**: Lua - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-03-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpellWhisper #### 介绍 WOW Classic Addon:Some Spells Casting/Resist/Fail/Break/Interrupt Announce #### 软件架构 基于WOW Classic的轻量级施法提示插件v1.4.5 #### 更新说明 1.4.5 修复SelfBuff表未定义导致的自定义技能无法保存问题。 1.4.4 重做所有监控技能的Table Index,从英文改成中文,方便游戏中自定义。新增了延时命令提示,现在输入/sw in命令后会有即时的反馈,不用再担心是不是输入成功了。 1.4.3 新增“自体增益”类型技能,默认为空,可自行添加需要监控的自体Buff,例如短暂强力、脆弱护甲、盾墙什么的。 1.4.2 修复显示的技能列表与下拉菜单选择的类型不一致的问题。现在,必须点击显示才会显示技能列表。加载显示为空。 1.4.1 新增自定义监控技能 说明:请将技能添加至对应的列表。在下拉菜单选择。输入技能后,请回车后再点击“增加”、“移除”。 1.3.7 增加Yell和RW频道,修复驱散提示(仅进攻驱散) 1.3.7BETA 增加RW输出频道 1.3.3 修改界面字串,使其更符合实际,修复bug。 1.3.2 通过识别GUID来判断破控对象,更加精准。 1.3.1 解决同一场战斗中多个对象破控时,第二个及以后破控无提示问题。 1.3.0 新增防破控刷屏Slider,可以设置几秒内提示一次破控,避免刷屏。 1.2.0 新增更新提示功能,通过同步频道提示和接受其他人版本信息,提示更新。 1.1.2 修复几个已知bug。 1.1.1 新增自身技能通报开关,选中后,将只提示自己技能造成的破控、打断,以及自身技能被抵抗情况,默认关闭。 1.1.0 重做同步模块。 1.0.8 修复打断、破控、失误通告的同步问题,现在,同一个团队只会有一个人通报这些信息了。 1.0.7 新增宁神射击失误通报。 1.0.6 在Config界面中增加了本主题链接。 1.0.5 战场打字被人一套带走?打开SW战场自动报告功能,确保第一时间在战场频道通报信息!(为避免刷屏,目前仅对自身有效) 1.0.4 现在,当你进入战场后,SW能将打断、破控、抵抗信息正确发送到战场频道了!新增驱散魔法(Dispel Magic)、净化术(Purge)抵抗提示。 1.0.3 更新/sw in 命令的实现方法,解决了同一个宏中,只有最后一个/sw in 命令生效的问题。 1.0.2 修正了Unit返回值的顺序,解决了接收到当前目标密语时无法跟随当前目标的问题。 1.0.1 正式版发布 #### 安装教程 1. 解压缩 2. 整个文件夹放置于_classic/Interface/AddOns 目录下 3. 在游戏中加载 #### 安装提示 1.4.4 因重做SpellTableIndex,建议删除WTF/Account/你的账号/SavedVariables/SpellWhisper.lua文件,再更新登录游戏。(当然不删也能用,就是默认监控技能必须在游戏中用英文名删除) 1.4.2 修复技能列表与下拉菜单不一致的BUG,现在只有在点击显示后才会显示当前类型技能列表。 1.4.1 因技能监控调整,建议退出游戏后,删除WTF/Account/你的账号/SavedVariables/SpellWhisper.lua文件,再更新登录游戏。 1.1.1 因默认技能设置由顺序表修改为字典表,建议登录游戏前,删除WTF/Account/你的账号/SavedVariables/SpellWhisper.lua文件(当然不删也没有什么太大影响)。 重要更新提示:已上传桃乐豆,今后可在桃乐豆自动更新。 1.0.7 更新安装提示:因为默认监控技能有调整,请登录游戏前,删除WTF/Account/你的账号/SavedVariables/SpellWhisper.lua文件。 1.0.5 更新安装提示:因为默认监控技能有调整,请登录游戏前,删除WTF/Account/你的账号/SavedVariables/SpellWhisper.lua文件。 1.0.1 本插件仅1个文件夹,文件夹内包含1个toc文件和5个lua文件,请解压缩后放置于Interface/AddOns目录下,注意,请勿嵌套。也就是AddOns/SpellWhisper下面应该是1个toc文件和5个lua文件,而非另一个SpellWhisper目录。 #### 使用说明 0. 登录时会在默认窗口打印加载提示,共1行,包括加载成功提示和插件状态提示(启用/停用),如未见到,则说明加载未成功,请检查插件位置是否正确。 1. 斜杠命令:/spellwhisper 和 /sw 会在默认窗口打印说明,很简单的一句话。 2. 斜杠命令:/spellwhisper gui 和 /sw gui 将开启设置页面,如果不喜欢用斜杠命令,也可在 ESC菜单-界面设置-插件 页面左侧的列表中找到SpellWhisper设置页面。 3. 斜杠命令:/spellwhisper in 和 /sw in 是延时命令,支持除/cast /use外的绝大部分宏命令,详细说明见后。 4. 设置页面:启用SpellWhisper。这是插件的总开关,点上勾就是启用,没有勾上就是禁用。 5. 设置页面:输出频道。下拉菜单,决定打断、破控、失误 时提示的频道位置,默认是团队。这个团队是向下兼容的,也就是如果你不在一个团队,而是一个小队,那么选择团队将会在队伍频道提示。另外,我认为不组队不需要提示,所以在非组队情况下,这个插件不会进行打断、破控、失误的提示。 6. 设置页面:防打扰延时。关闭-20秒可选的一个滑杆。这个决定防止刷频的时间长度,在这个时间内,同一个提示内容仅出现一次。例如MT位置不好,脱离视野,如果关闭这个滑杆,那么你每次治疗失败都会密语MT治疗失败,而默认情况下,9秒内某个治疗技能施法失败,只会提醒一次。 7. 设置页面:启用密语通知。这是治疗失败提示开关。勾上,就会在治疗失败时提示目标,你是距离我太远,还是脱离视野了。与防打扰延时共同作用。 8. 设置页面:启用同目标密语警告。这是针对控制技能的。勾上,你在施放可被打破的控制技能,例如变羊、休眠、束缚亡灵时,会自动密那些选中你控制对象的队友,告诉他们转换目标,避免打破控制。默认关闭。 9. 设置页面:密语自动跟随。下面有两个输入框,可以自行输入关键词。有几点注意。一是输入关键词后必须回车确认才能设置成功,二是关键词必须完全匹配你才会跟他走,三是只有队友密语才会跟随。默认为空,也就是没有关键词,谁说也不管用。 10. 自动同步发言者:每次进入队伍,或者队伍状态有变化的时候,插件会自动发送一个发言Rank信息,Rank最高的人才发送提示,这样能避免一个破控几个甚至十几个人一起提示造成的刷屏,发言顺序:队长(团长)>助理>普通成员。这个功能不提供开关,无需关心。 ———————————————————————————————————————————————————————————————————————————————— 当前监控的技能列表: ———————————————————————————————————————————————————————————————————————————————— 控制技能: "忏悔" "翼龙钉刺" "凿击" "制裁之锤" "驱散射击" "致盲" "闷棍" "死亡缠绕" "变形术" "休眠" "束缚亡灵" "放逐术" "恐惧术" "纠缠根须" "超度亡灵" "奴役恶魔" "恐吓野兽" 治疗技能: "圣光术" "圣光闪现" "圣疗术" "神圣震击" "次级治疗波" "治疗波" "治疗链" "治疗之触" "愈合" "回春术" "迅捷治愈" "真言术:盾" "治疗术" "次级治疗术" "恢复" "快速治疗" "强效治疗术" 增益技能: "激活" "能量灌注" "防护恐惧结界" "神圣干涉" "保护祝福" "自由祝福" 复活/召唤技能: "复生" "复活术" "救赎" "先祖之魂" "召唤仪式" "灵魂石复活" 抵抗提示技能: "嘲讽" "惩戒痛击" "挑战怒吼" "低吼" "挑战咆哮" "肾击" "假死" "驱散魔法" "净化术" "宁神射击" 大部分监控列表已经可以自主增减。 ———————————————————————————————————————————————————————————————————————————————— 延时命令介绍: ———————————————————————————————————————————————————————————————————————————————— 怀旧服没有/in命令,但是其实是有需求的,所以我通过OnUpdate实现了部分in的功能。 命令/sw in [seconds] [task] 解释一下: /sw in是命令头,其实用/spellwhisper in也可以,但没必要。 [seconds]是延时时间,单位是秒,支持小数,但是小于0.1没有意义。 [task]是[seconds]秒后需要完成的任务。 这么说可能很抽象,下面,我举个具体例子: /sw in 5 /g Hello, World! 其结果就是:5秒后,在公会频道说,Hello World! 再举个例子: /sw in 30 /dismount 结果:30秒后,自动下马。 如果配合/use 迅捷白色陆行机械鸟,写一个宏: /use 迅捷白色陆行机械鸟 /sw in 30 dismount 结果就是:上鸟,30秒后自动下鸟。 当然,这是没有什么意义的。只是告诉你,/sw in命令可以用于各种宏。对了,[task]里面的/不是必须的,可写,可不写,都行。 来个有意义的用法: #showtooltip /cast 保护祝福 /sw in 7 run for i=1,4 do local n,b,f,u=UnitName,UnitBuff,"保护祝福","party"..i if n(u) then for j=1,40 do if b(u,j) and b(u,j)==f then SendChatMessage(f.."3秒后结束","whisper",nil,n(u)) break end end end end 这是什么意思呢?就是,对队友使用保护祝福后,在保护祝福还剩3秒时,密他一下,告诉他保护祝福快没了。 再来个有意义的: #showtooltip /cast 寒冰屏障 /run f,s=ChatFrame10.editBox,tostring for i=1,9 do local m="/sw in "..s(i).." emote 冰箱将于"..s(10-i).."秒后结束!" f:SetText(m) ChatEdit_SendText(f) f:SetText(m) end 运行结果就是冰箱后,每秒在Emote频道倒数,直到冰箱结束。(随便按!不会重复刷屏!) 重要提示: 受系统限制,/sw in 里面的[task]不能包含use、cast、target、startattack,use、cast、target、startattack,use、cast、target、startattack!重要的事情说3遍! #### 参与贡献 1. 起步/提示 Mariatakagi 2. 参与测试:Babyannie(玉儿宝贝)、超级大西瓜、蔡小桓、Kuma(Nazz)等,排名不分先后