现在让我介绍我们目前的例子:
CODE
function hi_initialize()
SlashCmdList["HIHI"] = hi_command;
SLASH_HIHI1 = "/hihi";
SLASH_HIHI2 = "/您好";
end
function hi_command(msg)
message(msg);
end
大家可以看到我们写两个小function 一个叫hi_initialize 一个叫 hi_command. 在hi.xml里面,如果模块顺利在入的话hi_initialize是第一个被呼叫的.在这里我们自行设定了一些"/"指令.我想大家因该对于游戏里面的一些"/"指令并不陌生.
同样的我们也可以帮我们的模块设定这些"/"指令.
SlashCmdList["HIHI"] = hi_command; 代表的意思是如果我们么组的"/"指令被呼叫的话,我们因该执行hi_command这一个function.
SLASH_HIHI1 = "/hihi";
SLASH_HIHI2 = "/您好";
这里是帮我们的"/"指令定出名称,目前我还不确定我们是否可以自行自做出中文指令,但是我想只要可以在WOW输入中文,上面的设计就因该没问题.(所以还请可以在WOW输入中文的玩家测试一下.
这里要稍微注意的一点是SlashCmdList["HIHI"]里面的HIHI必须要和SLASH_HIHI1和SLASH_HIHI2 的HIHI依样.如果我们把HIHI改成NIHAO 那么就会变成SlashCmdList["NIHAO"], SLASH_NIHAO1, 以及SLASH_NIHAO2. 至于HIHI 或是 NIHAO 后面的 1 和 2 只是变量,代表了同样的指令,有哪些变种的指令.
当我们打入了"/hihi"或是"/您好" 就会执行下面的function
function hi_command(msg)
message(msg);
end
基本上只是在游戏画面上出现一个窗口,然后窗口上面显示我们在指令后面打入的讯息.
例如我们输入"/hihi 测试"
那么出现的窗口就会显示 "测试" 在那上面.
好了,我们写好这三个档案了.现在我们要告诉WOW加载我们的HI模块.
首先,到"C:Program FilesWorld of Warcraftinterface"这个子目录里面.如果还没有这个子目录的话,自行开一个新的.然后在这个目录里面开一个新的目录叫做"AddOns"所有玩家设计的模块都因该摆在这个目录里面.然后在"AddOns"这个目录里面在开一个目录叫做"HI".最后把我们做好的三个档案存到这个目录里面.
"C:Program FilesWorld of WarcraftinterfaceAddOnsHI"
现在我们可以测试这个模块了喔.
稍微介绍一下WOW简易管理模块的方式.如果当玩家有安装自行设计的模块的话(比如说COSMOS),在进入角色选单的时候,我们可以看到画面的左下方有一个Addons的按钮.大家可以在者里自行选择所希望开启的模块.在模块名子前面打勾,表示选择角色之后,游戏就会开始加载模块.没打勾就代表不会加载. 请注意,WOW有模块加载的上限.所果所有加载的模块用到的资源超过32MB,游戏会自动关闭.这时候就需要去管理接口关掉一些模块喔.
下一篇文章,我将教大家如何在lua档案里面?#092;用WOW的核心指令,以及如何只使用3个档案,就可以写出很有帮助的SCRIPT.
Chapter Three
在来一系列的文章,我要教猎人的玩家如何利用模块设计,有效率的执行远距离,近距离,以及宠物攻击. 顺便介绍一些WOW的核心指令.
我想玩过网络游戏的玩家,多多少少都因该听过外挂.什么是外挂?其实就是能自动的帮助玩家执行一些指令.基本上很类似MACRO(没听过MACRO的人,因该有听过EZSCRIPT吧)
WOW本身就有提供MACRO这样的功能.只要我们在游戏中输入"MACRO"之后,我们就可以开始设计我们自己的辅助指令.但是WOW的MACRO有很多限制.第一,WOW的MACRO是半自动的,意思就是说,你一定要按下某一个键盘按键,或是老鼠按键,才能执行你所设定的MACRO.第二,游戏中的MACRO有字数上的限制.最多只能输入255个英文字符.第三,WOW的MACRO无法设定时间上面的间隔.在MACRO里面的所有的指令会被一次执行.第四,如果你所执行的很多指令中有很多都有指令冷却时间(例如魔法的COOLDOWM),那么MACRO只会执行第一个可以执行的指令.
同样的,当我们设计模块的时候,我们也同样受限于这样的限制,但是却没有255个英文字符的限定,在这样的情况下,我们可以自做更复杂的指令方式.
今天我要教大家的模块是猎人辅助模块.
WOW的猎人是属于远距离攻击的单位,最需要控制的是如何有要的利用各式的ASPECT以及宠物攻击.当近距离攻击的时候,猎人需要用到ASPECT OF MonKEY,当远距离攻击的时候,需要用到ASPECT OF HAWK. 但是我想很多人因该都会遇到,同时指示宠物攻击,玩家攻击,以及转换ASPECT的时候,会手忙脚乱.现在我们的目标是如何设计一个模块可以让我们在操作上更顺畅.
猎人辅助模块设计目标:
1:玩家主动攻击的时候,宠物也会主动攻击(WOW的基本模式是,玩家按攻击,然后还要按宠物攻击).
2:玩家与宠物永远是攻击同一个目标,以最快最有效率的方式来减少战斗画面上的危机.避免宠物与玩家通时攻击不同的敌人,造成最后的结果是玩家与宠物同时阵亡.
3:有效的辨识玩家的攻击方式,然后执行最有效率的ASPECT.例如玩家近距离攻击的时候不是在ASPECT OF HAWK的状况下.
4:有效的?#092;用远距离攻击技能(包括了节省MANA,快速选择敌人目标等等)
好了,有了以上的目标,现在开始让我们来设计.首先,来制作模块所需要的最基本的三个档案.因为我替我的模块设计的名称叫做HunterAssistant(猎人辅助),所以我的三个基本档案叫做:
HunterAssistant.toc
HunterAssistant.xml
HunterAssistant.lua
CODE
HunterAssistant.toc:
## Interface: 4150
## Title: Hunter Assistant V0.1
## Notes: Macro scripts for assisting Hunter
## OptionalDeps:
## Dependencies:
HunterAssistant.xml
HunterAssistant.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
<script file="HunterAssistant.lua"/>
<Frame name="HunterAssistantFrame">
<scripts>
<OnLoad>
this:RegisterEvent("VARIABLES_LOADED");
</OnLoad>
<OnEvent>
if (event == "VARIABLES_LOADED") then
HunterAssistant_init();
end
</OnEvent>
</Scripts>
</Frame>
</Ui>
我将不在第这两个档案多做解释.有疑问的,请参考上一篇文章.毕竟我只使用的最简单的设计.
现在的重点LUA核心檔.我先把档案内容列出来,然后在以另外的文章详细的解释每个指令.
HunterAssistant.lua:
CODE
function HunterAssistant_init()
-- define slash command here
SlashCmdList["HA_HunterMarkI"] = HA_HunterMarkI;
SLASH_HA_HunterMarkI1 = "/HAHunterMarkI";
SLASH_HA_HunterMarkI2 = "/hahmi";
SlashCmdList["HA_HunterMarkII"] = HA_HunterMarkII;
SLASH_HA_HunterMarkII1 = "/HAHunterMarkII";
SLASH_HA_HunterMarkII2 = "/hahmii";
SlashCmdList["HA_AttackMelee"] = HA_AttackMelee;
SLASH_HA_AttackMelee1 = "/HAAttackMelee";
SLASH_HA_AttackMelee2 = "/haam";
SlashCmdList["HA_AttackRangeI"] = HA_AttackRangeI;
SLASH_HA_AttackRangeI1 = "/HAAttackRangeI";
SLASH_HA_AttackRangeI2 = "/haari";
SlashCmdList["HA_AttackRangeII"] = HA_AttackRangeII;
SLASH_HA_AttackRangeII1 = "/HAAttackRangeII";
SLASH_HA_AttackRangeII2 = "/haarii";
SlashCmdList["HA_StingSerpentI"] = HA_StingSerpentI;
SLASH_HA_StingSerpentI1 = "/HAStingSerpentI";
SLASH_HA_StingSerpentI2 = "/hasseri";
SlashCmdList["HA_StingSerpentII"] = HA_StingSerpentII;
CODE
function hi_initialize()
SlashCmdList["HIHI"] = hi_command;
SLASH_HIHI1 = "/hihi";
SLASH_HIHI2 = "/您好";
end
function hi_command(msg)
message(msg);
end
大家可以看到我们写两个小function 一个叫hi_initialize 一个叫 hi_command. 在hi.xml里面,如果模块顺利在入的话hi_initialize是第一个被呼叫的.在这里我们自行设定了一些"/"指令.我想大家因该对于游戏里面的一些"/"指令并不陌生.
同样的我们也可以帮我们的模块设定这些"/"指令.
SlashCmdList["HIHI"] = hi_command; 代表的意思是如果我们么组的"/"指令被呼叫的话,我们因该执行hi_command这一个function.
SLASH_HIHI1 = "/hihi";
SLASH_HIHI2 = "/您好";
这里是帮我们的"/"指令定出名称,目前我还不确定我们是否可以自行自做出中文指令,但是我想只要可以在WOW输入中文,上面的设计就因该没问题.(所以还请可以在WOW输入中文的玩家测试一下.
这里要稍微注意的一点是SlashCmdList["HIHI"]里面的HIHI必须要和SLASH_HIHI1和SLASH_HIHI2 的HIHI依样.如果我们把HIHI改成NIHAO 那么就会变成SlashCmdList["NIHAO"], SLASH_NIHAO1, 以及SLASH_NIHAO2. 至于HIHI 或是 NIHAO 后面的 1 和 2 只是变量,代表了同样的指令,有哪些变种的指令.
当我们打入了"/hihi"或是"/您好" 就会执行下面的function
function hi_command(msg)
message(msg);
end
基本上只是在游戏画面上出现一个窗口,然后窗口上面显示我们在指令后面打入的讯息.
例如我们输入"/hihi 测试"
那么出现的窗口就会显示 "测试" 在那上面.
好了,我们写好这三个档案了.现在我们要告诉WOW加载我们的HI模块.
首先,到"C:Program FilesWorld of Warcraftinterface"这个子目录里面.如果还没有这个子目录的话,自行开一个新的.然后在这个目录里面开一个新的目录叫做"AddOns"所有玩家设计的模块都因该摆在这个目录里面.然后在"AddOns"这个目录里面在开一个目录叫做"HI".最后把我们做好的三个档案存到这个目录里面.
"C:Program FilesWorld of WarcraftinterfaceAddOnsHI"
现在我们可以测试这个模块了喔.
稍微介绍一下WOW简易管理模块的方式.如果当玩家有安装自行设计的模块的话(比如说COSMOS),在进入角色选单的时候,我们可以看到画面的左下方有一个Addons的按钮.大家可以在者里自行选择所希望开启的模块.在模块名子前面打勾,表示选择角色之后,游戏就会开始加载模块.没打勾就代表不会加载. 请注意,WOW有模块加载的上限.所果所有加载的模块用到的资源超过32MB,游戏会自动关闭.这时候就需要去管理接口关掉一些模块喔.
下一篇文章,我将教大家如何在lua档案里面?#092;用WOW的核心指令,以及如何只使用3个档案,就可以写出很有帮助的SCRIPT.
Chapter Three
在来一系列的文章,我要教猎人的玩家如何利用模块设计,有效率的执行远距离,近距离,以及宠物攻击. 顺便介绍一些WOW的核心指令.
我想玩过网络游戏的玩家,多多少少都因该听过外挂.什么是外挂?其实就是能自动的帮助玩家执行一些指令.基本上很类似MACRO(没听过MACRO的人,因该有听过EZSCRIPT吧)
WOW本身就有提供MACRO这样的功能.只要我们在游戏中输入"MACRO"之后,我们就可以开始设计我们自己的辅助指令.但是WOW的MACRO有很多限制.第一,WOW的MACRO是半自动的,意思就是说,你一定要按下某一个键盘按键,或是老鼠按键,才能执行你所设定的MACRO.第二,游戏中的MACRO有字数上的限制.最多只能输入255个英文字符.第三,WOW的MACRO无法设定时间上面的间隔.在MACRO里面的所有的指令会被一次执行.第四,如果你所执行的很多指令中有很多都有指令冷却时间(例如魔法的COOLDOWM),那么MACRO只会执行第一个可以执行的指令.
同样的,当我们设计模块的时候,我们也同样受限于这样的限制,但是却没有255个英文字符的限定,在这样的情况下,我们可以自做更复杂的指令方式.
今天我要教大家的模块是猎人辅助模块.
WOW的猎人是属于远距离攻击的单位,最需要控制的是如何有要的利用各式的ASPECT以及宠物攻击.当近距离攻击的时候,猎人需要用到ASPECT OF MonKEY,当远距离攻击的时候,需要用到ASPECT OF HAWK. 但是我想很多人因该都会遇到,同时指示宠物攻击,玩家攻击,以及转换ASPECT的时候,会手忙脚乱.现在我们的目标是如何设计一个模块可以让我们在操作上更顺畅.
猎人辅助模块设计目标:
1:玩家主动攻击的时候,宠物也会主动攻击(WOW的基本模式是,玩家按攻击,然后还要按宠物攻击).
2:玩家与宠物永远是攻击同一个目标,以最快最有效率的方式来减少战斗画面上的危机.避免宠物与玩家通时攻击不同的敌人,造成最后的结果是玩家与宠物同时阵亡.
3:有效的辨识玩家的攻击方式,然后执行最有效率的ASPECT.例如玩家近距离攻击的时候不是在ASPECT OF HAWK的状况下.
4:有效的?#092;用远距离攻击技能(包括了节省MANA,快速选择敌人目标等等)
好了,有了以上的目标,现在开始让我们来设计.首先,来制作模块所需要的最基本的三个档案.因为我替我的模块设计的名称叫做HunterAssistant(猎人辅助),所以我的三个基本档案叫做:
HunterAssistant.toc
HunterAssistant.xml
HunterAssistant.lua
CODE
HunterAssistant.toc:
## Interface: 4150
## Title: Hunter Assistant V0.1
## Notes: Macro scripts for assisting Hunter
## OptionalDeps:
## Dependencies:
HunterAssistant.xml
HunterAssistant.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
<script file="HunterAssistant.lua"/>
<Frame name="HunterAssistantFrame">
<scripts>
<OnLoad>
this:RegisterEvent("VARIABLES_LOADED");
</OnLoad>
<OnEvent>
if (event == "VARIABLES_LOADED") then
HunterAssistant_init();
end
</OnEvent>
</Scripts>
</Frame>
</Ui>
我将不在第这两个档案多做解释.有疑问的,请参考上一篇文章.毕竟我只使用的最简单的设计.
现在的重点LUA核心檔.我先把档案内容列出来,然后在以另外的文章详细的解释每个指令.
HunterAssistant.lua:
CODE
function HunterAssistant_init()
-- define slash command here
SlashCmdList["HA_HunterMarkI"] = HA_HunterMarkI;
SLASH_HA_HunterMarkI1 = "/HAHunterMarkI";
SLASH_HA_HunterMarkI2 = "/hahmi";
SlashCmdList["HA_HunterMarkII"] = HA_HunterMarkII;
SLASH_HA_HunterMarkII1 = "/HAHunterMarkII";
SLASH_HA_HunterMarkII2 = "/hahmii";
SlashCmdList["HA_AttackMelee"] = HA_AttackMelee;
SLASH_HA_AttackMelee1 = "/HAAttackMelee";
SLASH_HA_AttackMelee2 = "/haam";
SlashCmdList["HA_AttackRangeI"] = HA_AttackRangeI;
SLASH_HA_AttackRangeI1 = "/HAAttackRangeI";
SLASH_HA_AttackRangeI2 = "/haari";
SlashCmdList["HA_AttackRangeII"] = HA_AttackRangeII;
SLASH_HA_AttackRangeII1 = "/HAAttackRangeII";
SLASH_HA_AttackRangeII2 = "/haarii";
SlashCmdList["HA_StingSerpentI"] = HA_StingSerpentI;
SLASH_HA_StingSerpentI1 = "/HAStingSerpentI";
SLASH_HA_StingSerpentI2 = "/hasseri";
SlashCmdList["HA_StingSerpentII"] = HA_StingSerpentII;
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}