请问,如何在WOW中制作简单且使用的SM宏命令?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问,如何在WOW中制作简单且使用的SM宏命令?相关的知识,希望对你有一定的参考价值。

参考技术A 分类: 游戏 >> 网易游戏 >> 魔兽世界
问题描述:

请高手指点,希望不是很复杂

解析:

宏命令完全手册 (wowui.duowan)

一:基础教程

1.什么是宏命令?

玩过EQ的都知道一点宏的知识,比如组队时用来告诉队友你的行动,告诉目标等。最简单的比如puller 常用

的: /v %t过来了,大家集中火力。 法师常用的: /v 我要催眠%t,大家不要打醒他 这些宏个性鲜明,是EQ的一

大乐趣之一。

然而EQ毕竟是N年前的游戏,宏也比较简单,和它比起来。WOW的宏就复杂和强大的多了。它的函数就有上千种

,如果都掌握,能实现许多匪夷所思的功能。

一个宏可以完成一个相对比较复杂的命令.比如战斗中发布命令,如果打字当然不算麻烦,但在战斗中却很要命.

浪费了时间和生命.一个简单的宏便可以用一个键来完成这一切.

2.宏命令的设置流程:

首先,回车,再敲/MACRO。看见了吧?会弹出一个窗口,上面有New(新建宏命令)和Complete(完成宏命令

)两个按键。点New,又会弹出一个窗口,哇,花花绿绿的,里面包括了WOW几乎所有的技能图标,随你喜欢,随便

选一个!它就是你设置的宏命令的图标了,给它取个名字吧!方便你用的时候好找。然后回到第一个窗口,在它上

面有一个输入菜单(别告诉我找不到…它可是占了这个窗口的一半多…)在里面输入特定的内容,然后点Complete

。接下来你要做的就是把这个代表你宏命令的图标用鼠标左键拉到快捷栏里,想怎么用就怎么用…

3.下面就是怎样设置宏的内容了,简单的设置大家可以看我们网站上"基础"篇的宏介绍.

相信很多人都知道WOW中的斜杠"/"和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比

如:/Kneel是让你跪下来的动作而/say就是最基础的对话动作

我们现在用一个宏把他们串起来:

第一行内容:“/Kneel”

第二行内容:“/say 如果你不嫁给我,那么我就一辈子不起来…” ”

这样你的人物就会先下跪再说:"如果你不嫁给我,那么我就一辈子不起来…"

宏可以应用所有WOW中已经定义了的斜杠"/"和表情命令,更要命的是,宏甚至可以应用人物的魔法和技能,

只需要在宏的定义过程中应用"/cast"命令,下面是已知的一些常用命令:

/Assist 这是个援助进攻的命令。当你的队伍同时面对几个敌人时,只要点击自己的队友(一般是队伍中的战

士),然后使用这个命令,你的目标就会变成战士所选中的目标。大家集中火力消灭一个起!

/Cast 这是个使用技能的命令。当你在宏命令里输入/Cast 技能名(技能等级)或者只要按住Shift同时用鼠

标点击一下你想要输入的技能的图标。例如当你是一个战士,想制作一个使用战斗怒吼的宏时,你可以输入/Cast

Battle Shout(Rank 1)或者是直接按住Shift点击Battle Shout这个技能的图标。当然你可以在一个宏的不同行

上输入几个技能,那么当你使用这个宏时,几个技能就会一起释放出来,再用不着你像章鱼一样同时按下几个键了



%t 这个符号也许会经常出现在你的宏命令里,它是一个代码,代表你当前所选中的人名。例如,你在宏里写

下这么一句。(注意:后面要加一空格。) “/g %t ,今天天气真好,有没兴趣和我一起上山采蘑菇…”

如果你点中一位名叫苯笨的玩家,那么当你按下这个宏时,你就会说:“笨笨,今天天气真好,有没兴趣和我

一起上山采蘑菇…”

/Target 这是一个自动选择目标的命令,你可以在宏里输入/Target (xxx),那么当你按下这个宏时,你将

自动选定这个叫xxx的目标。

/in 这是一个延时命令,时间以秒为单位.同时它不支持攻击指令.格式:/in 3 dance 三秒后跳舞,如/in 3

dance,就是在3秒后跳舞,

/say start!

/in 3 say 3s later

/in 6 say 6s later

二:进阶教程

一些有用的 Macro

1。允许你在窗口和全屏状态之间切换

/script SetCVar("gxWindow", 1 - GetCVar("gxWindow"));

/console gxRestart

2。对于法师,必须要有的:将“X”换为你目前的变形术等级(下同);用它替换掉变形术技能。当你在队伍

之外时使用它会得到“你不在队伍中。”的信息,但在队伍中的时候其它同伴会了解到你将释放的变形术目标。

/p Sheeping >>> %t <<<

/cast Polymorph (Rank X)

3。作为一个术士,这是在队伍中使用的宏:首先将目标转为拖怪手或者坦克正在攻击的目标,然后命令宠物

向前攻击,跟着一个虚弱诅咒。

/assist 队伍中的拖怪手或者坦克的名字

/script PetAttack();

/cast Curse of Weakness (Rank X)

4。从背包和袋子里切换身上的武器

/script if ( not CursorHasItem() ) then PickupContainerItem(, );

PickupInventoryItem( ); end

bag# - 使用哪一个袋子的物品(0、1、2、3、4。0是背包)

slot# - 袋子里的位置(从0至左上)

equip# - 16 是主要武器, 17 是副武器

5。这个宏治疗队伍里你指定的人,如果你不在队伍中它会治疗你自己。然后会自动将目标切换回你最后一个

敌人。它同时还会使用队聊提醒队友你会治疗哪一个人。

/script if (UnitName("target") ~=nil and UnitIsFriend("player","target")) then

CastSpellByName("Heal(Rank X)") SendChatMessage("Ining Heal to %T", "Party") else

TargetUnit("player") CastSpellByName("Heal(Rank X)") TargetLastEnemy(); end

6。加速任务显示速度

/script QUEST_DEscriptION_GRADIENT_CPS = 600000

/script RegisterForSave("QUEST_DEscriptION_GRADIENT_CPS")

/script DEFAULT_CHAT_FRAME:AddMessage("quest text will scroll faster now");

7。消除等待接受任务的时间

/script AcceptQuest()

8。这个宏可以在路上自动护送玩家做任务。

/assist [player name]

/cast 法术(Rank X)

/target [player name]

/follow [player name]

9。切换主副武器,详情看第四条

/script PickupInventoryItem(16); PickupInventoryItem(17);

10。在没有目标或者目标是敌人的时候给自己加增益魔法或治疗。

CastSpellByName("Spell Name(Rank X)");

if ((SpellIsTargeting()) and (not UnitIsFriend("player","target")))

then

SpellTargetUnit("player");

end;

TargetLastEnemy();

11。切换双手武器与单手+盾或者双手挥舞武器

/script PickupInventoryItem(17);if(CursorHasItem()) then PickupContainerItem

(4,2);PickupContainerItem(4,1);PickupInventoryItem(16);else PickupContainerItem

(4,1);PickupInventoryItem(16);PickupContainerItem(4,2);PickupInventoryItem(17);end

12。设定“真实鼠标视野”

/script CameraOrSelectOrMoveStart(arg1);

想取消就再次输入。

13。切换近程技能栏和远程技能栏

/script CURRENT_ACTIONBAR_PAGE = 2;

/script ChangeActionBarPage();

/cast aspectofmon key (just use the left click)

/script CURRENT_ACTIONBAR_PAGE = 1;

/script ChangeActionBarPage();

/cast aspectofhawk (just use the left click)

14。牧师对队友的一键加血,比如一号键给第一队友加血,二号键给第二队友加血,免除了还要鼠标确

定目标的操作。依次类推,从第一个人到最后一个

给队友1加血:

/script TargetUnit(GetPartyMember(1))

CastSpellByName(Heal(Rank X)) TargetLastEnemy()

给队友2加血:

/script TargetUnit(GetPartyMember(2)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()

给队友3加血:

/script TargetUnit(GetPartyMember(3)) CastSpellByName(Heal(Rank X)) TargetLastEnemy()

15。一键解决喂养宠物:这个宏会从最左边的袋子里的第一个位置拿出食物喂养宠物,如果所在的位置

没有食物,它会自动打开袋子。

/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(4, 1)) then

OpenBag(4); else CastSpellByName("Feed Pet"); PickupContainerItem(4, 1); end end

16。术士宏

1)如果目标生命大于20,释放抽取生命法术,否则使用灵魂抽取。

/script if (UnitHealth("target")>20) then CastSpellByName("Drain Life(Rank X)") else

CastSpellByName("Drain Soul(Rank 2)") end;

2)虚弱诅咒版本

/script if (UnitMana("target")>0) then CastSpellByName("Curse of Tongues(Rank X)") else

CastSpellByName("Curse of Weakness(Rank X)") end;

17.先治疗自己,然后自动选中上次的敌人

/target Pugar 选择自己,假设自己的名字是Pugar

/cast Lesser Heal (Rank 1) 施展次级治疗rank1

/script TargetLastEnemy(); 重新选择刚刚选择的敌人

/script AttackTarget(); 攻击,等同于右键点击敌人

18.对于一个术士很有用的宏:首先将目标转为拖怪手或者坦克正在攻击的目标,然后命令宠物向前攻击

,跟着一个虚弱诅咒。

/assist 队伍中的拖怪手或者坦克的名字

/script PetAttack();

/cast Curse of Weakness (Rank X)

19.等治疗完之后提醒别人注意下自己有可能被怪打,不加延时的话,就没这个效果了。

/p healing %T, need 3s, don"t run away

/cast heal (rank 1)

/in 4 p cured %T 300HP,please notice the enemies turn on me^_^

20.在路上自动护送朋友做任务。

/assist [player name]

/cast 法术(Rank X)

/target [player name]

/follow [player name]

三:高级教程

WOW的宏函数库可以去这两个地方查:
co *** osui/texts/BlizzardCommands.xml
wowwiki/index.php/World_of_Warcraft_API

函数的使用比较简单,学习过编程的都比较容易上手,基本的用法是在函数前加/script 来使用。比如

/script CURRENT_ACTIONBAR_PAGE = X;

/script ChangeActionBarPage();

就是将你的快捷栏翻到第X页。

函数库中有许多函数都是非常有用和方便的,比如一次打开所有包包:

/script OpenAllBags();

配合关闭包包的函数,一次关闭所有包的宏也可以实现:

/script CloseBag(0);

/script CloseBag(1);

/script CloseBag(2);

/script CloseBag(3);

/script CloseBag(4);

怎么样,下次你卖东西的时候不会一个个开包关包了吧?

使用函数还不是最恐怖的,恐怖的是WOW的宏是可以用条件判断的,看下面这两个:

/script if ( GetComboPoints() >= 3 ) then CastSpellByName("Rip(Rank 2)"); else if (

UnitMana("player") >= 40 ) then CastSpellByName("Rake(Rank 1)"); end end

据说这个包含if,then的宏可以让盗贼实现自动根据bo点数来使用技能(未测试),其中还使用了角

色MANA值的调用,恐怖吧?还有这个查找spell的宏:

function GetSpellIdByItsName(myWantedSpell, myWantedRank)

local spellId = 1;

local spellBook = "spell";

local spellName, rankName;

spellName, rankName = GetSpellName(spellId, spellBook);

while (spellName ) do

if ( ( spellName == myWantedSpell ) and ( ( not myWantedRank ) or ( rankName = myWantedRank

) ) ) then return spellId; end

spellName, rankName = GetSpellName(spellId, spellBook);

end

return -1;

end

里面可以自己定义function,还使用了while,do这样的循环,是不是让你想到了N种应用的可能呢?

遗憾的是,目前官方似乎没有提供延时的宏,所以在战斗中使用多种有延时的技能是无法实现的(无延时的技

能可以实现同时使用),类似换其他武器-使用技能或法术-换回武器这样的功能也无法实现,

(所谓用宏实现剑盾战士换双手武器MS再换回来是行不通的),不过使用COSMOS的朋友可以用/in 来实现非战

斗指令的延时,比如

/in 3 say hi 就会在3秒后说句hi。

/in 6 /script MoveForwardStart(arg1);

就会在6秒后向前跑。

虽然法术和技能无法用/in指令来延时,但这样已经很强大了,比如,你可以编出各种运动的宏,如兜后,转

身等。PVP时估计是必不可少的。

下面是一个玩家写的双手武器战士自动逃跑的宏:

/script UseContainerItem(0, 2);ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown

(12);ActionButtonUp(12);

/cast Thunder Clap(Rank 1);

/script TurnLeftStart(arg1);

/in 1 /script TurnLeftStop(arg1);ToggleAutoRun();

使用这个宏的条件:在大包包第二格放了回复药,快捷栏第11,12分别是一单手一盾的快捷方式。

使用这个宏后,角色自动喝回复药,装备上盾,使用Thunder Clap(这三个动作同时进行),向后转180度后

开自动跑步键逃走。其中技能等可以根据需要自己改。怎么样,是不是很夸张啊,哈哈。

还有一些有用的宏:

切换装备,

双手切换单手并换第二个快捷栏,快捷栏第11,12分别是一单手一盾的快捷方式

/script ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12);

/script CURRENT_ACTIONBAR_PAGE = 2;

/script ChangeActionBarPage();

单手切换双手并换回第一快捷栏,快捷栏12是一双手武器快捷方式

/script ActionButtonDown(12);ActionButtonUp(12);

/script CURRENT_ACTIONBAR_PAGE = 1;

/script ChangeActionBarPage();

几个简单的宏

1. 对自己使用绷带

/script TargetUnit("Player");

/use Mageweave Bandage

/script TargetLastEnemy();

* 这里用的时 Mageweave Bandage ,你可以改成适合你自己的绷带名

* use 是 Co *** os 支持的命令,你必须安装 Co *** os 才能使用这个宏,如果你没有 Co *** os,使用下面的宏(绷带必

须放在主背包第一格)

/script TargetUnit("Player");

/script UseContainerItem(0,1);

/script TargetLastEnemy();

2. 对敌人的 Pet 使用技能

/script TargetUnitsPet("target");

/cast Blind

/script TargetLastEnemy();

* Blind 是技能名,你可以用自己的技能,这里用了盗贼的 Blind (我是盗贼啦,呵呵)

** /script 是使用 脚本 的命令,可供使用的命令参考附件

** 可以用 Shift + 点击 技能书里图标的方式在宏中添加释放技能的命令

** 可以用 Shift + 点击 物品的方式在宏中添加物品名

3. 打开所有背包

/script OpenBag(0);

/script OpenBag(1);

/script OpenBag(2);

/script OpenBag(3);

/script OpenBag(4);

打开所有背包,可能

/script OpenAllBags()

一样搞定:P

热键Shift + B 也是可以的

4.战士用,双手武器切换单手武器+盾:

首先在快捷栏10、11、12(也就是0、 -、 =的位置)拖上双手武器、单手武器、盾的快捷方式;

双手武器:

/script ActionButtonDown(10);ActionButtonUp(10);

单手武器+盾:

/script ActionButtonDown(11);ActionButtonUp(11);ActionButtonDown(12);ActionButtonUp(12);

以下命令全部中空格用下划线_来表示

%后面的都是变量

=各种命令分类收集=

参数设置

%t

切换当前目标命令

/target_%name

/assist_%name

/script_TargetLastEnemy();

游戏动作

/cast_%skillname(rank_%d)

/f

/script_UseAction(n%d, %d);

设置延迟命令

/pause_%d

聊天常用命令

/s_

/p_

/g_

/raid_

=应用部分说明=

聊天部分命令我就省略了...重点说明游戏中实际关系到游戏操作的命令

首先%t是指当前目标名称,%t大多是用在聊天中...比如:

...

你好,%t

我开始攻击%t,大家请注意...

Pull

/script TargetNearestEnemy();

/p Pulling %t

/script AttackTarget();

/v inc

Assist

/assist %t

/script AttackTarget();

UsePoison

/script UseContainerItem(bag,slot); PickupInventoryItem(16);

UseContainerItem(bag,slot);

PickupInventoryItem(17);

/in 1740 /script DEFAULT_CHAT_FRAME:AddMessage("Poison wearing off in one minute")

请问如何在linux下启动mysql

mysql我装在usr/mysql目录下,请问该怎样启动,我这两天刚装上linux操作系统,只会一些很基本的操作,我记得在windows下,运行mysql只要运行mysqld脚本就行了,但似乎linux下没这么简单,请教一下诸位高手,谢谢

首先是启动服务。如果是redhat的话,可以使用setup或者ntsysv命令进入服务设置页面后,将mysqld那项选中,然后保存退出。如果不是redhat没有以上工具的话,可以使用chkconfig --level 35 mysqld on命令来开启服务。当然,这只是要求每次系统启动时启动服务,为了不用重启,需要使用/etc/init.d/mysqld start或者service mysqld start命令来使现在的服务启动,如果是重启服务的话,使用service ** restart。
我的mysql是装系统时安装的,你的应该是后来安装的,但是应该也是可以通过上述方式打开的。
在终端中输入mysql,看是否提示有这条命令,如果提示是command not found的话,应该是PATH变量的问题。解决的方法,可以将你安装mysql的路径也加入到PATH中,也可以将mysql中的需要执行的这些命令拷贝到PATH中。不过我mysql也是个菜鸟,真的不清楚有多少命令,所以建议把安装路径加入到PATH中,可以通过修改/etc/profile或者主目录下.bashrc文件来实现。一个是全局,一个只针对本账号。就是在文件中添加PATH=/usr/mysql:$PATH,位置无所谓,添进去应该就ok了。
然后输入mysql命令看看有反映没,如果没反应,就在查查,我也没这么弄过,但是我估计应该好使。
最后是添加mysql的密码了,默认时直接输入mysql就可以进入了,所以要进行修改。输入mysqladmin -u root password ***,就是给root添加密码了,如果是修改的话,格式为mysqladmin -u root -p 旧密码 password 新密码。还有,我真的是个菜鸟,加密码之前,其他账号也可以使用mysql命令直接进入,加了之后其他帐户可以使用mysql -uroot -p命令,然后输入密码进入(root也是以同样的方法进入),但是我不知道怎么添加别的帐户,比如说其他账户tom使用mysql -utom -p来进入,不好意思了。
对了,设定密码的时候,输入的是明文,而由于bash会保留命令,最好清除一下.bash_history,不然别人用一下history命令就可以知道你的密码是什么了。
参考技术A 先初始化,命令是:mysql_install_db
然后启动服务,命令是:service mysqld start

启动mysql服务.就这么简单,我现在做的项目就用mysql,有什么问题还可继续问我。
参考技术B mysql默认安装在/var/lib/mysql目录下
a:
Couldn't
connect
to
engine!
b:
Can't
connect
to
local
MySQL
server
through
socket
'/var/lib/mysql/mysql.sock'
a.表示MySQL没有启动,需要启动MySQL(使用命令:/etc/rc.d/init.d/mysql
start)。
有时会出现即使加了
socket启动参数仍然不能连接MySQL服务器的现象,但是实际上mysql.sock这个文件是存在的(假设在/tmp目录下);这时一个快捷的方法就是在/var/lib/mysql/目录下建立一个连接:
参考技术C 首先你要确认sqlplus命令是否在你的PATH路径下,如果在的话就直接输入sqlplus,就可以使用sql命令了
如果不在的话,你要把sqlplus路径追加到PATH里面去
参考技术D mysql默认安装在/var/lib/mysql目录下
a:
Couldn't
connect
to
engine!
b:
Can't
connect
to
local
MySQL
server
through
socket
'/var/lib/mysql/mysql.sock'
a.表示MySQL没有启动,需要启动MySQL(使用命令:/etc/rc.d/init.d/mysql
start)。
有时会出现即使加了
socket启动参数仍然不能连接MySQL服务器的现象,但是实际上mysql.sock这个文件是存在的(假设在/tmp目录下);这时一个快捷的方法就是在/var/lib/mysql/目录下建立一个连接:

以上是关于请问,如何在WOW中制作简单且使用的SM宏命令?的主要内容,如果未能解决你的问题,请参考以下文章

利用Lua脚本语言制作魔兽WOW插件

dede怎么做data-wow-delay循环

请问,坦克炮弹中 HEAT, APHV, APDS, SM, AP, HE, 等等之类的,是啥意思?中国坦克现在一般配备那些炮弹

请问在JAVA中如何实现点击按钮实现数组自加一

请问在allegro当中,如何制作两个编号相同的焊盘?

请问如何用python将爬取的数据逐条传入MongoDB数据库,请大牛指点。