simonw代码@痕记

WOW插件:ShortKey 4.7 发布(2009.9.27)


最近更新及下载:http://bbs.cwowaddon.com/thread-805-1-1.html

我在这里只保存一些历史信息.

更新:
v4.7 2009.9.28
这个版本主要在代码结构方面变化很大, 对最终用户影响不大.
1. 不再限定同一TargetFrame下的不同配置存在Condition参数为空时的顺序要求, 无论如何配置, 为空的Condition配置项始终会被自动置为最后. 同时也将Condition参数为空的配置项作为默认配置. (多数用户应该还用不到这个高级功能)
2. 增加了在游戏内配置的支持能力, 但没有GUI的支持目前还不能使用.
3. ShortKeyConfig.lua 改名为 ShortKey.Config.lua, 请注意改变你的配置文件名.
4. ShortKeyGUI更换图标, 优化了一些显示, 配合ShortKey结构的变化做了一些改变, 请更新, 否则不能使用.
下面的更新与用户无关:
1. 大面积重构, 完全纳入层次化的标准软件开发架构模式, 分了Model, DB, Business, Service, UI等几个层次, 为下一步大计划打好基础. (以后我会慢慢介绍)
2. 应用了新增的DB lib, 用于处理存储方面的需求, 未来会将这个lib纳入Eva.
3. 在DB和UI层上提供了非Eva的Native(wow原生方式, 不依赖任何库)的支持, 但DB的Native方式还没做好. 也就是说ShortKey可以脱离Eva运行(需要改toc), 主要目的在于演示Eva随进随出的便利性.

v4.6 2009.8.31
1. 新增一个图形界面ShortKeyGUI用于简单操控和查看绑定信息.
2. 新增Talent条件以更好的应用于双天赋配置.
3. 新增PARTYMEMBERFRAMES的变量用于代表冗长的团队窗体1-4, 更方便用户配置.
4. 新增绑定前自动清除功能, 以防止条件变更时新配置覆盖不完全上一个配置引发冲突.

v4.5 2009.8.20
按照wow3.x新版安全模型重写, 全新架构设计, 变动巨大, 在基本没有改变配置格式的情况下带来了更为强大的功能. 改动太多仅列出主要更新.
1. 新增基于上下文的全局配置完整性检查, 最大限度的在载入时帮助发现用户的配置错误.
2. 新条件(Condition)语法使用标准宏语法代替以前语法并支持上下文条件组合计算(超强), 支持所有Type配置情况.
3. 新增当为键盘键时支持TargetFrames属性的配置, 即可以将键盘键绑定在显示的窗体上了.
4. 新增当为鼠标键时支持Target属性的配置, 即可以改变绑定显示窗体的目标属性.
5. 新增用户选择载入功能, 用户可以自己选择时机载入.
6. 新增配置组的用户载入条件设置, 用户可以根据自己的需求增改载入判断条件.
7. 改动, Value和TargetFrames属性现在仅支持字符串类型, 不再支持table数组类型.
8. 改动, 去掉了序列施法功能, 采用宏代替.

以下内容失效
------------------------------------------------------

如何更好的使用以及示例:http://simonw.cnblogs.com/archive/2005/10/31/265531.html

ShortKey在wow2.0前可以说将blz赋予的动作功能合法的发挥到了极致, 在2.0后Blz将ShortKey几乎所有的优点都融入了安全模版, blz架构上的翻天覆地变化导致ShortKey不得不重新设计, 所以版本直接跳到4好和以往区分.

以往版本:http://www.cnblogs.com/simonw/archive/2005/10/20/258271.html

在经过2万荣誉的战场后, ShortKey 4.0 新版终于出炉了, 一方面因安全模版没有以前强大了, 另一方面同样因安全模版及新增api更简单的实现了不少更方便的功能.

作者: simonw From CWDG  2区 暗影之月, 人类牧师, 民族英雄
Blog: http://simonw.cnblogs.com/
官方站点: http://bbs.cwowaddon.com/

功能方面:
1. 支持键盘鼠标等各个组合按键绑定到法术, 物品, 技能, 宏, 目标, 系统功能.
2. 支持在自定义窗体上的鼠标按键绑定.
3. 支持同一按键上的序列法术动作绑定.

插件优点:
1. 完全载入期绑定, 资源占用极小, 运行时可以说不再占用额外资源.
2. 完全静态lua配置, 以后不论去哪里玩wow只需要带这一个插件就不用再配各种按键了.
3. 高级使用者完全可以用ShortKey来代替动作条插件,治疗插件,智能buff插件, 宏插件等n多占资源的插件.

本插件适用对象:
1. pk及键盘流爱好者.
2. 至少有学过一门计算机语言, windwos应用熟练.
敬告: 如果你不符合上面2点还是别用了, 会让你很迷茫的.

如何配置:
用记事本打开ShortKey目录下的ShortKeyConfig.lua根据里面的说明编辑, 有基础的一看就懂, 每基础的如果实在想用让别人帮你配吧.

最后提示:
本插件没有界面所以也就没有截图, 再一个别向simonw提除了暗牧以外的任何职业技能该如何配置, 我只懂暗牧, 其他职业都没玩过.

更新:
v4.22 2009.8.3 (不建议新用户下载, 请等待下一个版本)
实在抱歉这么久才出一个wow 3.x的紧急补救版. 这是一个过渡版, 序列动作, 形态变化, 智能施法在这个版本中暂时屏蔽, 仅支持最基本的法术, 物品, 宏的绑定.
1.修复了SecureHandlerStateTemplate名字的改变引起的错误
2.注释掉与3.0安全模板不兼容的部分

v4.21 2008.3.21
1. 修复了对第三方插件窗体支持的bug, 更好的支持在第三方插件窗体做按键绑定.

v4.2 2008.3.19
1. 增加了在同一按键上针对不同形态, 潜行与否, 动作条序号变化而绑定不同技能的功能. 通过新增Condition参数实现.
2. 修正, 重复配置的键盘按键, 后面的将覆盖前面的配置.

v4.13 2007.8.25
1. 修复了Type为actionbar, pet, maintank, mainassist, click时的不正常工作
2. 增加了2个系统按键绑定功能设定, 重载UI, 查看按键绑定列表.
3. 增加了调试功能, /sk 配置条目

v4.12 2007.8.9
修复了当button为checkbutton时引发的bug, 内部对象ShortKeyButton已经能完全从任意类型button继承.

v4.11 2007.8.6
修复了在同一窗体上绑定同一个键对应友善和敌对目标时, 后面的设置会覆盖前面设置的bug.

v4.1 2007.8.2
1. 已全面支持各种类型的按键绑定
2. 宏绑定,增加支持宏名字
3. 序列动作增加智能施法选项, 施法5秒后无动作自动复位
4. 使用Eva Framework 重新设计, 大幅优化代码结构, 需要注意的是:
因以前的设计失误, 此次配置结构发生小幅变化, 增加了Condition配置项, 以前Target="helpbutton"和Target="harmbutton"这样的配置需要改成C和C 您的配置才能正常使用. 在此深表歉意, 另外, ShortKey的配置结构一般不会轻易变化的.

v4.01 2007.7.10
1.修复了当配置了小队窗体后载入时没有小队成员也显示小队窗体的问题.
2.修复了宏绑定的bug, 附带了宏绑定的示例.

v4.0 2007.7.9
wow2.0后重写

------------------------------------------------------

3.x 以前简介:
ShortKey为你的技能,装备,物品使用提供一键绑定的功能。恰当使用能让你的微操作水平提高一个等级。强大的可配置功能为你提供无限扩展可能,完全的静态方式配置让你一劳永逸。
1.提供了人物身上19项装备,10个自定义物品,各职业20个自定义魔法,20组自定义组合技能使用单键绑定。
2.支持条件触发,自定义动作,超强动作延时,保留目标,鼠标动作,wow脚本等功能。
3.内置装备切换,buff检查,血魔状态,pvp目标锁,等常用动作与条件。

v3.2
1.加入了界面元素的鼠标动作绑定, 支持对玩家栏, 目标栏, 队友栏, 其他自定义栏的鼠标左,中,右,4,5键以及与alt, control, shift的组合动作绑定.

v3.0
1.全新的独立延时引擎设计更加方便二次开发,增加了Cycle动作循环与Interval循环间隔2个新参数。
2.大幅度优化代码,更高的执行效率和更少的资源占用。
3.将action,condition放入了ShortKeyExtLib.lua扩展库文件,作为第三方程序提供。
4.加入了序列动作概念KeyPress参数,可以将各种动作在不同时间映射到一个键上。

v2.3
1.增加了有趣的讲故事功能,配合我的ShortRobot可以做故事点播。
2.增加了PVP目标锁,检测法术是否可用等功能。
3.配置文件中对法师的技能进一步详细化,修正了少许bug。

v2.2
1.增加了动作延时指令Delay,但无法支持对魔法技能的延时。
2.增加了对Script的支持,可以把宏中/script 之后的东西都复制过来。
3.修正了配置文件中对部分职业的配置错误,并增加了部分示例。

v2.01
修复了装备使用出错的bug,增加了一个列出自己身上buff英文名称的函数。

v2.0
再次重写所有代码,全新的设计思路,无限的扩展可能。在这里需要向以前版本的用户道歉,由于变化巨大无法兼容以前的配置文件,需要从新配置。
1.内置了条件和动作的支持,同时支持条件动作自定义。
2.增加到20个自定义法术
3.增加到20个自定义组合技能
4.增加到10个自定义物品
5.对所有职业提供了示例性配置
6.去掉了所有的游戏中配置支持,完全静态配置

v1.2
1.提供了5个自定义组合技能的单键绑定功能。(前提是这些技能可以在一起施放)
2.将配置文件独立了出来

v1.0 :
支持wow 1800,我几乎重写了所有的代码,使原先只能支持牧师使用变为支持所有职业。
1.提供了人物身上全部18项装备的使用单键绑定(前提是你的装备可以使用)。
2.提供了5个自定义物品的使用单键绑定。
3.对于特殊自定义物品坐骑和绷带的单键绑定支持,绷带对自己使用。
4.对各种职业提供10个技能魔法单键绑定支持。
bug修复:
1.修正了自我施法后目标有可能选择错误。
2.修正了牧师暗影形态还原时可能会取消其他buff的错误。

v0.5:2005.10
为牧师常用技能提供单键绑定功能
1.单键绑定的自我施法功能包括:恢复,快速治疗,强效治疗,盾,暗影形态
2.恢复魔法的重复buff检测,防止魔法浪费
3.单键绑定的打断施法,自我施放技能包括:马
4.单键绑定的打断施法,释放魔法,物品,装备的技能包括:魔杖,心灵尖啸,沉默,饰品,头盔,鞋子
5.自定义物品使用的单键绑定。


安装使用:
解开压缩包,将ShortKey文件夹拷贝到你的World of Warcraft\Interface\AddOns\ 文件夹下。
例如C:\Program Files\World of Warcraft\Interface\AddOns\ShortKey
进入wow游戏,按esc键点击按键设置,找到ShortKey即可做快捷键设置。

配置说明:
配置文件在本插件目录下ShortKeyConfig.lua文件,请对此文件编辑。
通用参数说明:
Target : 默认为当前目标.支持wow的unit参数,player代表自己,target代表目标,patryN代表第n个队友.部分技能支持玩家姓名输入.
StopCast : 默认为true.真假值,只支持true/false输入.是否在执行技能前后先执行技能打断,大部分组合技能需要开启此设置.
HoldTarget : 默认为false.真假值,只支持true/false输入.是否保存当前目标.
Delay : 以秒为单位的数字,设定动作执行的延时时间.
Cycle : 整数,默认为1,设定动作循环执行的次数,-1为无限循环,0为不执行.
Interval : 默认为5,以秒为单位的数字,设定每组动作间的执行延时时间.
KeyPress : 真假值,只支持true/false输入.默认为false.表示此动作实际是否需要按下键才会执行.
Script : 支持wow脚本但不支持宏,脚本中的"前需要加\,当此参数不为空时将忽略其他参数.
Condition : 默认为空.根据条件决定技能是否执行.
条件(Condition)参数说明:
Name : 条件名称,可以使用本插件内置的Condition.xxxx形式的条件名,也可以使用自定义函数名称,形式如"yourFunctionName".
State : 真假值,只支持true/false输入.表示为真或者假时条件成立.
Parameters : 条件的参数,条件函数的参数列表,顺序应与原有函数一致.

物品(Item)参数说明:
Name : 物品名称,支持模糊名,若有重名存在则选取最先找到的.

装备(Equipment)参数说明:
Name : 身上的装备名称,支持模糊名,若有重名存在则选取最先找到的.

法术(Spell)参数说明:
Name : 法术精确名称.
Rank : 法术级别,若无级别无需填写.
ToggleBuff : 系统内置buff名称,英文.法术执行时你会有一个持续buff,取消时通过取消buff取消法术,这样的情况需要用到此参数,一般这样的技能很少.

组合技能(Combo)参数说明:
序号[0] : 每个组合技能的序号[0]提供对本组合技能的总体配置.Name可以填写任意描述,如果此项目中填写HoldTarget或者Condition将对本技能全局生效.
Type : 技能类型. 只支持以下4种类型 Type.Equip, Type.Item, Type.Spell, Type.Action

动作(Action)参数说明:
Name : 动作名称,可以使用本插件内置的Action.xxxx形式的动作名,也可以使用自定义函数名称,形式如"yourFunctionName".
Parameters : 动作的参数,动作函数的参数列表,顺序应与原有函数一致.

内置条件与动作说明:
条件
IsBuffUp 目标是否有buff,参数目标名,buff名
IsDebuffUp 目标是否有debuff,参数目标名,debuff名
IsHpInRange 目标生命值是否在范围内,参数目标名,条件(>,<,=),生命值(若在0和1之间则为百分比否则为绝对值)
IsMpInRange 目标法术,能量,怒气值是否在范围内,参数目标名,条件(>,<,=),生命值(若在0和1之间则为百分比否则为绝对值)
IsItemUseable 物品是否处于可用状态,参数物品名
IsSpellUseable 技能是否处于可用状态,参数技能所在的动作按钮编号

动作
CancelSelfBuff 取消自己的buff,参数buff名称
SwitchEquip 更换装备,参数装备位置(参见localization装备位置的中文定义),装备1名称,装备2名称
Jump 跳跃
Say 说话,参见wow函数 SendChatMessage参数
ShowBuffName 显示目标身上的buff或者debuff,参数目标名,类型名(buff或者debuff)
LockTarget 锁定PVP目标,对npc无效
UnLockTarget 解锁PVP目标


欢迎讨论与意见反馈。




 

0
0
(请您对文章做出评价)
« 上一篇:Asp.Net Forums与现有系统整合方案示例
» 下一篇:WOW插件:ChatFormat 0.11 发布

posted on 2005-10-20 01:08 simonw 阅读(12545) 评论(56)  编辑 收藏 网摘 所属分类: World Of Warcraft

评论

#1楼 2005-10-27 09:29 colortear[未注册用户]

支持,我很喜欢这个UI,操作更体贴自己了,hoho。   回复  引用    

#2楼 2005-10-31 10:06 colortear[未注册用户]

我在使用1.0的过程中出现了一些问题;
我自己想定义几个技能进去,是否只需要改ShortKeyClass.lua里面的参数
如:SK_ClassSpells[8] = "";
我改成了 SK_ClassSpells[8] = ShortKey_CreateSpellInfo("心灵之火", "6", "", "");
更改完任何一个SK_CLASSSPELLS括号里面的内容,在游戏显示界面就会出现名字是 乱麻的情况,具体能不能使用我也就没有敢试。
还有,我不太了解我填写中文的技能名字就可以释放那个技能了?还是您在其他的参数里面做了对应的定义?

我在MSN里面联系过您。
  回复  引用    

#3楼[楼主] 2005-10-31 14:36 simonw      

感谢你的支持,在存盘的时候应该保存为utf-8或者unicode的格式就没问题了。
至于中文技能名称如果把握不准确可以在wow中打开宏设置编辑一个宏,按住shift点击你的技能就会出现中文名,复制下来即可。
  回复  引用  查看    

#4楼 2005-11-01 17:46 Force[未注册用户]

请问弹药(即箭和子弹)能更换吗?   回复  引用    

#5楼[楼主] 2005-11-01 20:13 simonw      

ShortKey 不是换装插件,而弹药项目是始终无法使用的,所以没有被加入。如果想换装有专门的换装插件。   回复  引用  查看    

#6楼 2005-11-02 09:11 Force[未注册用户]

哦,谢谢,明白了   回复  引用    

#7楼 2005-11-07 23:17 请教[未注册用户]

有了它我就可以把不用看的,总用的技能放起来了啊,能省不少地方,不过我是在网吧玩,如何保存它的设置呢   回复  引用    

#8楼[楼主] 2005-11-09 15:26 simonw      

把你配置好的ShortKeyConfig.lua存到邮箱里到时候在覆盖就可以了。   回复  引用  查看    

#9楼 2005-11-17 08:51 pass[未注册用户]

不是说要加入和动作邦定的组合技能吗???怎么还没出来1.3或1.3x版?   回复  引用    

#10楼[楼主] 2005-11-17 20:01 simonw      

忙呀,理解下。前段一直再弄ShortUnitFrame,刚发布了今天已经开始着手开发ShortKey新版本了,变化预计将是很大的。   回复  引用  查看    

#11楼 2005-11-22 18:15 pass[未注册用户]

首先恭喜你开发成功新版本。接着我的问题来了
{Name = "摔拌+反击+猛禽一击", HoldTarget = true}

如何将这个组合技能和跳跃绑定在一起?当有目标时候,就是完成 跳跃+摔拌+反击+猛禽一击;而无目标或目标不在技能范内,就只完成跳跃动作。

这个思路怎么搞?
  回复  引用    

#12楼 2005-12-02 16:00 pass[未注册用户]

动作可否加入 向左或右跑 ? 按Q(E)键的向左或右跑   回复  引用    

#13楼 2005-12-02 19:33 pass[未注册用户]

列出自己身上buff英文名称的函数?目标身上debuff英文名称的函数能出来一个吗?   回复  引用    

#14楼[楼主] 2005-12-02 21:04 simonw      

to pass
左右跑可参考wow movement类别的函数,有现成东西。关于buff、debuff英文名称我在下个版本中会做的更好用些,现在写出来写不下了。
  回复  引用  查看    

#15楼 2005-12-26 09:53 Ashama[未注册用户]

谢谢 simonw写了这么容易扩展的插件,如果能把action定义为宏就更好了。我也是牧师,写了不少宏,但是每个宏都要放在工具条上才能定义快捷键释放很麻烦,不知道simonw有没有什么好的处理方法   回复  引用    

#16楼[楼主] 2005-12-26 22:02 simonw      

to Ashama
不支持宏,但支持script,你可以将宏改成script,这样的变迁很容易的。
  回复  引用  查看    

#17楼 2006-01-01 14:08 shade[未注册用户]

支持shortkey先
请帮我写一个短暂能量护符+赞达拉英雄护符的参数.
我自己写的是:
[SK_Constant_Class_MAGE] = {
[1] = {
[0] = {Name = "短暂能量护符+赞达拉英雄护符"}, Condition = {Name = Condition.IsItemUseable, State = true, Parameters = {"短暂能量护符", "赞达拉英雄护符"}},
[1] = {Type = Type.Equip, Name = "饰品1"},
[2] = {Type = Type.Equip, Name = "饰品2"},
可是不知怎么的提示有错误,希望帮组.最好是发送一个shortkeyconfig.lua到我的邮箱:larry_cool_x@sina.com或者QQ:35019308 谢谢
  回复  引用    

#18楼 2006-01-03 09:34 longqibing[未注册用户]

偶是个菜鸟,想问下那个下载包解压后那个文件夹往那个地方放,是不是还是放在INTERFACE\ADDONS里面啊?? 不懂 请指点 谢谢了 :)   回复  引用    

#19楼 2006-01-03 09:36 longqibing[未注册用户]

饿... 没看到你上面写的安装步骤 才发现.... 呵呵 不好意思哦... 非常支持你的插件   回复  引用    

#20楼[楼主] 2006-01-03 21:45 simonw      

to shade

[SK_Constant_Class_MAGE] = {
[1] = {
[0] = {Name = "短暂能量护符+赞达拉英雄护符"},
[1] = {Type = Type.Equip, Name = "饰品1"},
[2] = {Type = Type.Equip, Name = "饰品2"},
},
}
不过貌似不能一起使用吧?你可以试试
  回复  引用  查看    

#21楼 2006-01-04 01:55 shade[未注册用户]

thx   回复  引用    

#22楼 2006-01-04 17:02 pass[未注册用户]

2.增加了PVP目标锁,检测法术是否可用等功能?

感觉不出来用处很大--这个版本

可否举例说明一下
  回复  引用    

#23楼[楼主] 2006-01-04 18:03 simonw      

主要修复些bug,增加了有趣的故事功能,PVP目标锁如果你经常pk就知道用处大了。   回复  引用  查看    

#24楼 2006-01-05 01:39 霜之嫁衣[未注册用户]

随机喊话的宏!! 感谢作者的努力! 很佩服你能沉下心来写这些ui方便大家

[1] = {
[0] = {Name = "复活1"},
[1] = {
Type = Type.Spell, Name = "复活术", Rank = "5",Target = "target",StopCast = false
},
[2] = {Type = Type.Action, Name = "", Script = "SAY={\"%t,乖,快起来~姐姐给你吃糖~\",\"%t,起来吧起来吧,不要赖皮~\",\"%t就要复活了,大家开不开心丫~ %t答:开心~[嫁衣]是最棒的~oh~yeah~\",\"%t,猪撞树上,你撞猪上了,起来起来~\",\"扑在%t的身上开始人工呼吸。%t睁开了美丽的双眼,饱含热泪的扑进[嫁衣]的怀抱大声说:[嫁衣]你救了我,无以为报,让我嫁给你吧\",\"%t,太阳都晒PP了,便便啦~\",\"感谢CCTV,MTV,SMG,上海文广,星空卫视,无线卫视。。。和一直支持,热爱我的FANS给我这次复活%t的机会。%t~以至高无上滴偶的名义,站起来,为偶战斗吧!\",\"请求%t为我冲值点卡,愿意的请点同意\"};"},
[3] = {Type = Type.Action, Name = "", Script = "SendChatMessage(SAY[math.random(1,9)],\"emote\");"},
},
  回复  引用    

#25楼 2006-01-05 04:56 生活如此[未注册用户]

LZ,你的假死+陷阱 不能用啊   回复  引用    

#26楼[楼主] 2006-01-05 19:43 simonw      

to 霜之嫁衣
再次感谢你的精彩例子,有兴趣加我msn讨论。

to 生活如此
我正在找其他猎人朋友求证,也可以把你的错误提示放上来看看
  回复  引用  查看    

#27楼 2006-01-09 17:46 WOW插件[未注册用户]

自我方面有问题

比如你和一个人决斗
用了一次自我
再和另一个人决斗
再用一次自我

目标变成上一个人了
  回复  引用    

#28楼 2006-01-10 08:59 暗夜晨风[未注册用户]

在游戏里我怎么主动地讲我所指定的故事呢。比如说我写了5个故事,但每次按讲故事那个按钮,总是讲预先设置的那个。
是不是在游戏里可以有命令指定要讲的第几个故事。
此外,是否可以提供显示故事列表的功能,每个故事分成标题和主体两部分,便于点播,就是说可以提取出一个节目单:p
  回复  引用    

#29楼 2006-01-11 17:31 Ashama[未注册用户]

再次感谢楼主写了这么好的插件,目前我遇到了一个问题。
我现在开始打术士 目前有 小鬼 魅魔 虚空 地狱犬
我想实现一个一键使用最有价值的宠物技能的方法 (魅魔的魅惑 虚空的牺牲 地狱犬的吞噬)
我目前写到
--术士--
[SK_Constant_Class_WARLOCK] = {
[1] = {
[0] = {Name = "宠物技能(虚空:牺牲;媚魔:魅惑;地狱犬:吞噬)"},
[1] = {
Type = Type.Spell, Name = "牺牲",
Condition = {Name = "testSkillExist", State = true, Parameters = {"牺牲"}}
},
[2] = {
Type = Type.Spell, Name = "魅惑",
Condition = {Name = "testSkillExist", State = true, Parameters = {"魅惑"}}
},
[3] = {
Type = Type.Spell, Name = "吞噬",
Condition = {Name = "testSkillExist", State = true, Parameters = {"吞噬"}}
},
[4] = {
Type = Type.Spell, Name = "火焰盾",
Condition = {Name = "testSkillExist", State = true, Rank = "2", Parameters = {"火焰盾"}}
},
},

并增加了方法
function testSkillExist( skillname )
SK_println("测试技能名"..skillname);
return true;
end

SK_Print_Anything = true;
function SK_println(Message)
if (SK_Print_Anything) then
DEFAULT_CHAT_FRAME:AddMessage(Message, 1, 1, 1);
end
end

可是我查了资料 没有找到判断宠物是否具有制定技能的方法 请simonw指点下
另外如果可能建议在Condition中增加条件判断玩家 /宠物是否具有当前技能的判断
  回复  引用    

#30楼[楼主] 2006-01-12 03:38 simonw      

to WOW插件
你是说HoldTarget还是目标锁?目标锁需要手动解锁才能再次锁定目标。

to 暗夜晨风
将故事需要配合ShortRobot插件才能实现点播,故事列表再点播中已经支持。

to Ashama
你要做的是不是单键根据不同的宠物类型施放相应的技能呢?你可以判断宠物类型而不需要判断技能是否存在,这样更简单些。
  回复  引用  查看    

#31楼 2006-01-12 08:40 Ashama[未注册用户]

请问恶魔宠物类型怎么判断呢?我没有找到对应的api,我使用的api手册如下
http://www.wowwiki.com/World_of_Warcraft_API#Pet_Functions
  回复  引用    

#32楼 2006-01-12 08:44 Ashama[未注册用户]

补充下 获取玩家可用技能的方法我试过了 无法获取宠物的技能,所以我就觉得应该有对应获取宠物技能的方法。
现在我的问题是无法区别不同的宠物
  回复  引用    

#33楼 2006-01-12 10:34 暗夜晨风[未注册用户]

我的意思是,我如何在团队频道,广播我所指定的第n个故事,一定要通过robot由其他人发起吗?自己不能主动选择性播放吗?个人看法,这个讲故事的创意在rp服前途无量,或许配合robot可以做出“公共水吧”之类的效果   回复  引用    

#34楼[楼主] 2006-01-12 13:58 simonw      

to Ashama
由于我无法测试,最好还是询问下其他带宠物的朋友,你可以试试GetStablePetInfo,我不知道是否可以通过名字判断。

to 暗夜晨风
你自己也可以给自己点播啊,故事播放频道,命令接收频道,命令人这都是可以配置的,你可以参照ShortKey_WordsConfig,ShortRobotConfig文件配置,仔细看说明,说明很清楚。
  回复  引用  查看    

#35楼 2006-01-12 21:59 暗夜晨风[未注册用户]

看来要两个结合起来用才可以,原来不想用机器人的,怕被人遥控作出傻事,看来偷懒不得。
期望看到更好的作品:)
  回复  引用    

#36楼 2006-01-17 10:20 Ashama[未注册用户]

谢谢simonw我找到了判断宠物技能的方法 不敢独享
先再ShortKeyConfig.lua 增加方法testPetSkillExist 内容如下
--测试宝宝是否拥有指定技能
function testPetSkillExist( skillname )
for i=1, NUM_PET_ACTION_SLOTS, 1 do
local name, subtext, texture, isToken, isActive, autoCastAllowed, autoCastEnabled = GetPetActionInfo(i);
if ( name == nil or name == "" )then
return false ;
end
if ( name == skillname) then
CastPetAction(i);
return true;
end
end
end

有了这个 修改SK_Config_Combo段为:
--术士--
[SK_Constant_Class_WARLOCK] = {
[1] = {
[0] = {Name = "宠物技能(虚空:牺牲;媚魔:魅惑;地狱犬:吞噬)"},
[1] = {
Type = Type.Spell, Name = "诱惑", Target = "target",
Condition = {Name = "testPetSkillExist", State = true, Parameters = {"诱惑"}}
},
[2] = {
Type = Type.Spell, Name = "火焰之盾", Rank = "3", Target = "player", StopCast = "true",
Condition = {Name = "testPetSkillExist", State = true, Parameters = {"火焰之盾"}}
},
[3] = {
Type = Type.Spell, Name = "吞噬魔法", Rank = "1", Target = "target", StopCast = "true",
Condition = {Name = "testPetSkillExist", State = true, Parameters = {"吞噬魔法"}}
},
[4] = {
Type = Type.Spell, Name = "牺牲", Rank = "3",
Condition = {Name = "testPetSkillExist", State = true, Rank = "2", Parameters = {"牺牲"}}
},
},
[2] = {
[0] = {Name = "诅咒增幅+痛苦诅咒"},
[1] = {Type = Type.Spell, Name = "诅咒增幅", Target = "target"},
[2] = {Type = Type.Spell, Name = "痛苦诅咒", Rank = "3", Target = "target"},
},
},


因为我的小术士只有38级。。地狱火 ,末日守卫的技能见都没见过,大家如果需要自己添加就好了
再看看 好像猎人的宠物一般更换没有那么频繁,这个功能术士用到的比较多
  回复  引用    

#37楼 2006-01-19 14:23 WOW插件[未注册用户]

[to WOW插件
你是说HoldTarget还是目标锁?目标锁需要手动解锁才能再次锁定目标。 ]

HoldTarget
  回复  引用    

#38楼 2006-01-31 18:58 tq0123[未注册用户]

为什么我现在用不了这插件了? 是不是WOW版本又更新的问题?
我的界面就没出现ShortKey
  回复  引用    

#39楼 2006-02-04 22:02 jaxon[未注册用户]

请教一下 Delay :Cycle : Interval : 的用法
能给出一个例子吗?
  回复  引用    

#40楼[楼主] 2006-02-05 10:46 simonw      

HoldTarget 没发现这样的问题。插件无法使用请检查下自己的配置。例子再配置文件中有。   回复  引用  查看    

#41楼 2006-02-08 11:02 guoyangln[未注册用户]

想求一个技能的编写。
就是法师在有冰箱的情况下施放冰箱,没有冰箱的情况下施放急速冷却再施放冰箱。
自己不太懂,不会修改,故求教,谢谢
  回复  引用    

#42楼 2006-02-14 19:25 cccc11[未注册用户]

请问下如何写自动拒绝决斗配置?   回复  引用    

#43楼 2006-03-11 01:14 逆道[未注册用户]

研究了半天还是不明白,我是菜鸟啊,谁帮忙弄个术士上痛苦诅咒`献祭`腐蚀`虹吸的一键办法啊,谢谢了   回复  引用    

#44楼 2006-03-12 17:07 李擦[未注册用户]

为什么我修改文件后,按键设置里面的 技能名称 不见了   回复  引用    

#45楼 2006-03-13 22:01 dayn9[未注册用户]

首先感谢搂主的辛勤工作,下面请教一个问题。

为了简化两类ms组合技能的定义,我定义了几个函数:
--返回区分目标敌友的条件--
function SK_FriendCondition(state)
local condition = {
Name = "UnitIsFriend",
State = state,
Parameters = {"player", "target"}
}
return condition
end

--根据目标施法:友,则对其spell1;否则对target2施放spell2--
function SK_FriendOrNot(name, spell1, spell2, target2)

local ret = {
[0] = {Name = name, StopCast = false},
[1] = {Type = Type.Spell, Name = spell1, Target = "target", Condition = SK_FriendCondition(true)},
[2] = {Type = Type.Spell, Name = spell2, Target = target2, Condition = SK_FriendCondition(false)},
}
return ret

end

--根据目标施法:友,则对其施放,否则对自己
function SK_FriendOrMe(spell)
return SK_FriendOrNot(spell, spell, spell, "player")
end

--根据目标施法:友,则对其施放spell1,否则spell2
function SK_HelpOrHurt(spell1, spell2)
return SK_FriendOrNot(spell1 .. "/" .. spell2, spell1, spell2, "target")
end

有了这四个函数,组和技能就简单了:
--牧师--
[SK_Constant_Class_PRIEST] = {
SK_FriendOrMe("真言术:盾"),
SK_FriendOrMe("恢复"),
SK_FriendOrMe("快速治疗"),
SK_FriendOrMe("治疗"),

SK_HelpOrHurt("祛病术", "痛"),
SK_HelpOrHurt("驱病术", "痛(等级1)"),



但是,没反映,如果有时间,粗略帮我看看。
  回复  引用    

#46楼[楼主] 2006-03-16 22:05 simonw      

to 李擦
仔细检查,修改错了的话就会出现你说的情况

to dayn9
数组是静态的数据结构,你这样做是无法执行的。你可以把你定义的东西赋值给变量然后将变量放入数组来简化定义
  回复  引用  查看    

#47楼 2006-03-20 17:46 我爱穷人[未注册用户]

能不能帮我写一个切换 饰品的
本人对编程实在不行.....

我的职业是猎人, 现在常用 魔暴聋眼和 皇家徽记 但是都要手动切换. 我想有1个参数.配合宏的使用.这样我再每次假死的时候就判断1下.魔暴聋眼能否用,能用的话带上.不能用的话换成徽记. 魔暴龙眼的CD是2分钟. 激活以后能使用20秒.
  回复  引用    

#48楼 2006-04-07 09:29 WOWOWOWO[未注册用户]

版本更新了,改了TOC文件里的版本号为11000还是显示过期,要怎样解决呢?   回复  引用    

#49楼 2006-04-10 16:22 darkula[未注册用户]

请教如何增加sm的组合按键,比如:自然迅捷+赞达拉自然护符+闪电链,另外要不要在"法术配置"里增加这几个技能的的名字,如果要的话该怎么写呢?谢谢!   回复  引用    

#50楼 2006-04-12 16:39 pass[未注册用户]

1.10版本不能用了。。。。快推出新版本   回复  引用    

#51楼 2006-05-09 12:11 兽兽[未注册用户]

饰品2还是有问题,一用就出错。。。能修复咩?   回复  引用    

#52楼 2006-10-12 08:45 pass[未注册用户]

猎人假死脱离战斗后,如果装备的饰品A未冷却,就切换指定的饰品B,
如果装备的饰品B未冷却,就切换指定的饰品A,
说白了就是饰品A\B互换,前提是已装备的饰品CD未到.
如何实现?


切换装备 难道只有主手和饰品1? 不能加如 副手 远程武器 等等????

还有动作 怎么有 Say 却没有 Yell?
  回复  引用    

#53楼[楼主] 2006-10-12 12:28 simonw      

to pass
互换装备得, 函数我写道了扩展库中, 你可以仿照弄下饰品, 最近有点忙, 有空了我会好好完善下常用得库, say和yell你可以直接调用sendmessage来实现, 我那只是举了个例子
  回复  引用  查看    

#54楼 2006-10-29 09:22 xq[匿名][未注册用户]

牧师恢复技能好像还是用的9级恢复 请问怎么改成10级恢复?   回复  引用    

#55楼 2007-07-11 23:01 slamfinger[未注册用户]

比较喜欢shortkey,可以说是居家旅行杀人必备利器。
在这个代码里我有一点困惑。
支持同一按键上的序列法术动作绑定.如何定义法术的等级?
{Key = "e", Type = "spell", Value = {"冰锥术", "火焰冲击"}},
我记得以前可以用rank=“”,现在如何处理?
  回复  引用    

#56楼[楼主] 2007-07-12 10:22 simonw      

to slamfinger 以后主要在这里回复了 http://bbs.cwowaddon.com/thread-805-1-1.html   回复  引用  查看