相信很多人都知道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("Incoming 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 aspectofmonkey (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的宏函数库可以去这两个地方查:

http://www.cosmosui.org/texts/BlizzardCommands.xml

http://www.wowwiki.com/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的宏可以让盗贼实现自动根据combo点数来使用技能(未测试),其中还使用了角

色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)个人觉得很简单啦——宏1要放在动作条2上

/cast 暗影形态

/script CURRENT_ACTIONBAR_PAGE=1;

/script ChangeActionBarPage();

(说明:后两条命令的分号别丢了就是——命令1不说了,命令2是设置当前动作条为第一条,命令3是应用动作条切换命令)

退暗影及切换到治疗动作条(我的治疗动作条是条2),就这个让我头痛了一会儿——宏2要放在动作条1上

/script local T;

/script for i=0,15,1 do T=GetPlayerBuffTexture(i);if (T and string.find(T,"Shadow")) then CancelPlayerBuff(i);break;end end

/script CURRENT_ACTIONBAR_PAGE=2;

/script ChangeActionBarPage();

(说明:千万注意分号,该有的要有,不该有的别乱加,命令2请千万不要换行,“Shadow”首字母大写别忘记了,——命令1是设置一个变量T作用在命令2中可以看出;命令2最复杂,有兴趣的可以看下面的特别说明;命令3、4就不用说了,同上)

这两个宏我从42用到现在44,都是在刚更新的1.7版上用的,应该绝对没有问题。

特别说明:

为了方便看,我把命令2的语句分行写出来,并且隔出其首空格,请注意,在输入宏命令时一个命令里面不能换行,请全部写在一行里——

for i=0,15,1 do

T=GetPlayerBuffTexture(i);

if (T and string.find(T,"Shadow")) then

CancelPlayerBuff(i);break;

end

end

在游戏里,进入暗影和退出暗影,本来想不过是一个命令键,但实际上两次按键是不同的动作,进入暗影不用说是“施放(cast)暗影形态”,很简单,可退出暗影实际上并不是把这个法术再施放一次,而是要把“暗影形态”的效果消除。

我也是在那里闷了半天,忽然想到在暗影形态下时,buff位置有一个图标,所以理论上来说退出暗影不就等于取消这个buff图标么,也就是debuff了。所以查看buff/debuff函数列表,确实有一个CancelPlayerBuff(buffid)的函数。可恶的是,这个函数的参数是“buffid”,也就是以buff的序列号为标准来debuff的。暗影形态施放以后,其buff图标的序列可不固定,因为随时可能在之前被加上其他的增益减益buff啊!

所以很自然,就会想到循环和判断命令的效果。for 用法很简单了,这个 for 循环是从0开始循环到15,步长为1,即循环16次——据说一个人身上同时能加的buff暴雪有规定,最多16个。每次用 if 判断当前buff是不是“暗影形态(ShadowForm,我偷懒就只写了个Shadow)”,是就把它给debuff掉(即使用cancelplayerbuff函数)同时退出循环,不是就继续循环下去。

要判断一个buff是不是“暗影形态”,又要用一个buff/debuff组的函数,也就是那个GetPlayerBuffTexture,这个函数返回的又不是简单的buff名称,而是一长串包括所谓路径和buff名的字符,所以又用了一个string的find方法来判断返回的字串里有没有“Shadow”这几个字符,有就是暗影,没有就不是。注意“Shadow”的首字母大写,否则找出来有误^-^。

更深的了解

第1步,我们需要做的是了解UnitDebuff,也就是一个单位的Debuff,UnitDebuff得到的结果是一个字符串,一般都是当前Debuff的图标:Interface\\\\Icons\\\\XXXX,由于我并没有收集所有MC、BWL等地方的Debuff,所以有兴趣,你可以自己收集一下,因为前16个字符总是Interface\\\\Icons\\\\所以你可以通过/script for i=1,17,1 do if UnitDebuff(‘Player’,i)~=nil then SendChatMessage(string.sub(UnitDebuff(‘Player’,i),17),’SAY’);end;end;

这条指令来得到当前你自己身上的所有Debuff,你可以做一个宏执行当前指令,也可以直接打开对话框输入然后回车,他便会把你身上的所有Debuff在说话频道显示出来(如果不对,可能就是end;多了或者少了……后同),幸好世界上有插件,不然被小白看到举报GM了……这里我还要介绍一条UseAction(ID);这条是一个呼叫其他宏的好办法之一(只是之一),ID就是宏所在的技能栏位,ID=(技能栏的页数-1)*12+所在位置号,譬如第2页2号栏就是12+2=14号,第11页第1栏就是121号。(如果你不知道*就是乘号,恐怕后面的就比较难理解了)

第2步,这才是我们真正的开始,你需要新建一个宏,贴上自己喜欢的图标,起个酷点的名字,这个宏,将是一键MC的触发按钮,你可以把它摆在技能栏1,因为要狂按这个快捷图标,所以1可能方便一点,但这并不代表你一定得把它放在1。这个宏的主要功能是初始化一些变量:

/script PM={‘Party1’,’Party2’,’Party3’,’Party4’,’Player’}; PMCount=5; DB={XXX,XXXX}; DBCount=2; CheckBar=X; WorkBar=Y; DoBar=Z; UseHL=60; NeedCheck=1; UseAction(CheckBar);

这段宏的功能是定义PM数组,每次MC被分组后就可以自己设定一下,我这里设定的是根据队友1,队友2……队友4,最后自己的顺序,这个顺序很重要,越前面的越受照顾,而PMCount就是PM数组的单元个数。之后定义DB数组,这个数组的单元就是所有的你需要解的Debuff的名字,越前面的越受关心,而这里的XXX和XXXX之类的就是第一步中获得的,请注意千万不要打错,还要注意大小写。DBCount就是DB数组的单元个数。CheckBar就是把用来检测(第三步会说到)的宏的位置,WorkBar是用来工作的宏的位置,DoBar就是干活的宏的位置。UseHL是一个1~100的数字,用来比对加血时机,这些都将在后面说到。NeedCheck作用在于是否继续循环的标记。最后就是呼叫下一个宏。

第3步,检测的宏(CheckBar指向的),这个宏的工作很简单,只是检测需要对某个角色进行“帮助”

/script for i=0,PMCount,1 do if NeedCheck==1 then if PM[i]~=nil then Targ=PM[i];if UnitHealth(Targ)>0 then UseAction(WorkBar);end;end;end;end;

这个宏功能是:从0到PM个数-1检查对象是否存在,如果存在并且活着,就检测是否需要帮助他,之所以这里用了for i=0,PMCount,1而不是PMCount-1是因为我觉得这里的for语句对应Vc的应该是for(int i=0;i第4步,帮助的宏(DoBar指向的),这个宏的工作就是检测我该如何帮助一个对象

/script if UnitHealth(Targ)*100/UnitHealthMax(Targ)<=UseHL then CastSpellByName(‘你的魔法(注意还得有等级)’); else for m=1,17,1 do if UnitDebuff(Targ,m)~=nil then for n=0,DBCount,1 do if string.sub(UnitDebuff(Targ,m),17)==DB[n] then UseAction(X);break; end;end;end;end;end;

这个宏的作用是:首先检测玩家是否需要加血(生命值低于UseHL%),如果是则给与加血,如果不是,那么就检查是否需要接触异常状态,如果需要则使用放在X号栏位的宏来解决这个Debuff。

第5步,解决Debuff的宏

/script TargetUnit(Targ);CastSpellByName(‘清洁型的法术’);TargetLastEnemy();NeedCheck=0;

这是一个比较常用的给某个对象使用某个魔法之后立即点到最后一个有敌意的敌人的宏,最后多了一个NeedCheck=0,把当前循环需要继续的标志设为0,来结束当前循环。

cmake取消宏定义_魔兽怀旧服,牧师实用宏相关推荐

  1. 扎拉赞恩 服务器 微信群,扎拉赞恩的头颅在哪_魔兽怀旧服扎拉赞恩的头颅位置_快吧游戏...

    <魔兽世界>怀旧服开服在即,随之而来的各职业任务要怎么完成,怎么做等一系列问题也困扰了不少小伙伴,今天小编就给大家带来一篇关于魔兽怀旧服扎拉赞恩的头颅位置介绍的文章,希望可以帮助到各位,下 ...

  2. 卡顿严重_魔兽怀旧服:安其拉开门二测结果出炉,暴雪依然无法解决卡顿问题...

    前言:上周魔兽世界怀旧服安其拉开门压力测试结束之后,暴雪便宣布将会在今天开启第二轮压力测试,然而这一次的压力测试结果同样不太理想. 安其拉开门二次压力测试结果 暴雪在今天如期开放了安其拉开门的第二次压 ...

  3. 怀旧魔兽最新服务器,魔兽怀旧服:这才是永久60服务器的现状,“真实且残酷”!...

    游戏中我们是朋友,聊天侃地,在这里我们可以无拘无束地发言,不会有任何人阻挠,还有大家最喜欢喷的小编,请把口水收集好,随时准备和小编一起对喷! 魔兽怀旧服这才是永久60服务器的现状,"真实且残 ...

  4. 魔兽怀旧最新开服务器,魔兽怀旧服:这才是永久60服务器的现状,“真实且残酷”!...

    游戏中我们是朋友,聊天侃地,在这里我们可以无拘无束地发言,不会有任何人阻挠,还有大家最喜欢喷的小编,请把口水收集好,随时准备和小编一起对喷! 魔兽怀旧服这才是永久60服务器的现状,"真实且残 ...

  5. 魔兽转服务器有什么影响,魔兽怀旧服:免费转出是败笔,牺牲了大部分服务器,成全为两个服...

    游戏中我们是朋友,聊天侃地,在这里我们可以无拘无束地发言,不会有任何人阻挠,还有大家最喜欢喷的小编,请把口水收集好,随时准备和小编一起对喷! 魔兽怀旧服免费转出是败笔,牺牲了大部分服务器,成全为两个服 ...

  6. 稳定wow60级服务器,魔兽怀旧服:永久60级怀旧服是什么体验?

    魔兽怀旧服:永久60级怀旧服是什么体验? 2021-03-08编辑:jackey 自从2021年暴雪嘉年华公布TBC即将开放的消息后,关注TBC怀旧服的老玩家突然就多起来了. 而根据暴雪早前释放的消息 ...

  7. 怀旧服野外pvp最多的服务器,魔兽怀旧服:最想要去的服务器,野外PVP很“传统”,很欢乐!...

    游戏中我们是朋友,聊天侃地,在这里我们可以无拘无束地发言,不会有任何人阻挠,还有大家最喜欢喷的小编,请把口水收集好,随时准备和小编一起对喷! 魔兽怀旧服最想要去的服务器,野外PVP很"传统& ...

  8. 魔兽世界怀旧服最新服务器开发时间,怀旧服开70最新消息汇总 魔兽怀旧服TBC开放时间几个阶段?...

    很多玩家关心魔兽世界怀旧服开70最新消息进展的情况,到底魔兽怀旧服TBC开放时间几个阶段.在这里就做一个关于暴雪可能开TBC的时间. 最早的时候,暴雪已经向当今的许多玩家发送了一份有关70级的tbc怀 ...

  9. 魔兽最多人的服务器,魔兽怀旧服:70级热门服务器人口一览!这4大服最值得建号投入!...

    很多朋友一定想知道,魔兽怀旧服开70之后,到底哪些服务器会大量排队,哪些服务器能维持阵营平衡,又有哪些服务器最值得我们建号投入?今天,我们来分析一下当前各大热门服务器的人口情况,看看前夕以后,你究竟该 ...

最新文章

  1. PHP + Redis 实现消息队列
  2. C语言训练题-铺草坪简易版
  3. Glib 对 C 函数进行单元测试
  4. ORA-12519, TNS:no appropriate service handler found
  5. [图神经网络] 图节点Node表示(DeepWalk与Node2Vec)
  6. 这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?
  7. 如何用TypeScript开发微信小程序
  8. [App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论
  9. 02 button的练习
  10. 花2.9元买一包头绳,收到一张3元好评返现卡,我凌乱了……
  11. php 按key大小排序,PHP实现二维数组根据key进行排序的方法
  12. 算法学习之路|到底买不买
  13. Ubuntu 下搭建 GCC 交叉编译工具链
  14. 和巨耀通杯计算机基础知识大赛,南京邮电大学第二十二届科技节活动之 “和巨耀通杯”网页设计大赛圆满落幕...
  15. 第73课内幕资料详细版 Spark SQL Thrift Server 实战 每天晚上20:00YY频道现场授课频道68917580
  16. Win11此应用无法在你的电脑上运行怎么解决
  17. 精彩正定 激情古城——2008中国.正定摄影艺术大展盛大开幕
  18. 提高网络安全性:探索ADAudit Plus的全功能IT安全审计解决方案
  19. Python与Excel——Xlwings基础操作
  20. hse是什么意思的缩写_什么是HSE? HSE是什么?

热门文章

  1. 前端网页制作-javaScripe 初学笔记
  2. 进栈顺序为abcd则出栈顺序为_进栈顺序为a、b、c、d,则出栈顺序可以为?
  3. java 重载 大于_详解java重载与覆写的区别
  4. 今天闲着没事弄个几个表情包
  5. Android Studio自动排版的两种方法
  6. java并发编程(更新)
  7. 测试Word2013发布博客
  8. mysql 单块读 多块读_求指点:STM32F103VC的SDIO读SD卡单块读成功,多块读却不行?...
  9. python定义fmax_Python标准库:内置函数max(iterable, *[, key, default])说明
  10. (39)FPGA四种常用逻辑门(与非门)