首 页 | 技术文章 | 魔兽视频欣赏 | 魔兽新闻 | 魔兽官方新闻 | 魔兽国际新闻 | 魔兽国内动态 | 任务副本攻略 | 战场战术 | 职业心得 | 专业技能 | PvP研究
 

· 技术研究
· 魔兽职业功略
· 魔兽新闻
· 魔兽攻略大杂烩
· 魔兽精美壁纸
· 模仿Stuck界面UI包 ..
· 任意修改你的wow字體..
· 如何将自身种族显示..
· [猎人]用DAB来简化你..
· DAB使用入门 12月5日..
· DAB3.0使用心得
· [翻译]一个超强的Fl..
· WOW创造了ADDONS,A..
· CT_RaidAssist 1.41..
· 无限可能的FLEXBAR(..
· FlexBar实现鼠标跟随..
· DiscordMacroFuncti..
 
 
无限可能的FLEXBAR(FLEXBAR高级部分
作者:佚名  来源:不详  发布时间:2006-6-24 17:23:13  发布人:admin

减小字体 增大字体

这个帖子是论坛上朋友的经验汇总帖
我个人写的。更多的是提示。具体的深入,朋友自行研究。。因为用FLEXBAR走到这一步。更多的乐趣是来自自己研究的快感。~

分为三部分。
一。ASK&ANSWER
二。FLEXBAR的扩展功能
三。写一个完整的FLEXBAR代码的思路

一。ASK&ANSWER

  QUOTE:
我用flexbar 后,把原界面改了,请问怎么才可以把宠物的技能栏再出现在界面上呢????????

7月2日 wangmarsfa 朋友指出解决方法
/flexbarflexpet id= # petid= # '[toggle= 'true'][reset='true'= ]
Set's the specified ID to mimic the specified pet button.  Pet ID is the number of the button counting from one starting at the left of the default pet bar.  Note a couple of limitations in these:  1 - you can't drag pet actions into them at this time, you must show the original pet bar and put the pet actions in there - the flex buttons will update to match.  2.  If the mimiced pet button has no action and you have hidegrid on, the button will not hide.

Example:  /flexbar flexpet id=1 petid=1
Any button with id 1 will now display the the icon from and execute the action on pet button 1 (usually "attack").

尝试下这个命令/flexbar flexpet id=1 petid=1,就是把宠物按扭1放在任何映射到ID1的按扭上

  QUOTE:
哪儿有FLEXBAR的汉化版?

这个问题其实不该收录在这里。。不过提出的朋友很多。还是说一下。
FLEXBAR其实提供的是命令对话方式。所以汉化版是不可能存在的。就算强行汉化了也不能解决什么实质性的问题,所以想用汉化版FLEXBAR的朋友。还是放弃它把。
cdhua2010朋友 做了一个好经典的比方:FLEXBAR难道你想这样设置命令:
/flex动作条 显示 按钮等于壹到柒捡柒 事件等于'美女' 对象等于'MM'?
除了命令还是命令 没什么好汉化的


  QUOTE:
FLEXBAR太烦琐了。我做一个自己的界面要输入N条命令。如果错了一条而且忘记保存之前的了得全部重输

其实,我调试FLEXBAR的代码。都是把命令先用记事本写好放在FlexBar_config.LUA中的。然后进入游戏调用。如果错了。退出游戏在FlexBar_config.LUA修改,再进入游戏重置FLEXBAR再次调用就可以了。至于具体怎么放在FlexBar_config.LUA文件中。我会写在第三部分里面的

  QUOTE:
FLEXBAR每次一执行我的命令就会有提示。实在很烦。可以关掉吗?

有这个命令的/FLEXBAR Verbose State='off'(关闭FLEXBAR命令提示)
所以我个人所有放在FlexBar_config.LUA文件中的代码。头一句都会是这个。。

  QUOTE:
每次我进入游戏都先显示原来的界面。要过一会才会出现FLEXBAR的界面。这个正常吗?


非常正常,FLEXBAR的作者是特意这么安排的。防止一些意想不到的问题导致系统崩溃。如果你实在嫌太慢。那么在Global Options中有个Load Speed选项

 

二。FLEXBAR的扩展功能

这部分不会写的废话连篇。因为能够用到这些命令的朋友。应该都是对FLEXBAR兴趣浓厚,而且自己有研究精神的。而且这部分的命令我自己也在摸索阶段,只是小有心得,所以在这里面我只是点出几个具体的命令,提出来大家讨论,共同研究。

1。自动执行宏
命令runmacro
比如在我之前FS界面的代码中有这样一句
runmacro macro='/s HPLOW!' on='healthbelow20' target='Player'",
他的意思就是玩家生命低于20%的时候自动喊话 HPLOW!
命令中兰色的部分就是你要执行的宏,具体怎么写?别问我,。我对宏研究不多。反正就是和在游戏中的宏一样的写法就对了。

  QUOTE:
有个注意点
FLEXBAR调用的宏是不可以释放技能的。暴雪的工程师屏蔽了这一功能。因为我害怕封号,所以没有用大号做实验。。。至于小号嘛。。嘿嘿。。不怕死的自行研究。。我不希望在这里讨论。。就此打住
(感谢monfan和KGD朋友由于我的措辞不当,对这部分提出异议。做了相应修改)


2。延时
在之前的指南中。有朋友问了我这个问题想在按扭120可以使用之后显示他。我在22楼做了分析,并给出了相应的代码。
/FLEXBAR SHOW BUTTON=120 ON='isusable' TARGET=120
/FLEXBAR HIDE BUTTON=120 ON='bindingkeydown' TARGET=120
/FLEXBAR HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120
现在我想更加的完善这个功能。在按扭120可以使用之后至少显示他5秒钟。
那么就这么修改
/FLEXBAR SHOW BUTTON=120 ON='isusable' TARGET=120
/FLEXBAR HIDE BUTTON=120 ON='bindingkeydown' TARGET=120  in=50
/FLEXBAR HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120 in=50
通过这个例子应该知道延时功能怎么用了把?就不铺展开来进行解释了。

  QUOTE:
2个注意点
(1)延时是以十分之一秒做为单位的。也就是说10=1秒 5=半秒
(2)延时在命令中的执行顺序是排在事件之后 条件之前的
比方说在这个命令中/FLEXBAR HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120 in=50
当你鼠标点击了按扭120之后,事件发生。延时5秒之后执行动作隐藏按扭120
再比如这个命令/FLEXBAR HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120 in=50 if='healthabove50<"player">
当你鼠标点击了按扭120之后,事件发生。延时5秒之后判断条件生命高与50%是否成立。如果成立执行动作隐藏按扭120


3。映射
很多人都说映射用起来很简单。理解起来很复杂。其实,都很简单。
在WOW中。每个按扭都有2个属性。ID和编号
比方说FLEXBAR的按扭1的ID是1,WOW原来的工具栏的按扭的ID也是1,那么你把技FLEXBAR按扭1的技能换掉的时候。WOW原来工具栏的按扭1也自动换掉了。

那么FLEXBAR就提供了Remap命令。变换按扭的ID和编号的对应关系
/flexbar remap button=1 base=13
就是把20号ID的动作映射到按扭1
说白点。就是你按下按扭1的时候执行ID20对应的动作

/flexbar remap button=1-12 base=13
这就是把ID13赋予按钮1,ID14赋予按钮2依此类推,直到按钮12被赋予ID24
通过这个命令很多功能就可以很顺利的实现比方贼切换潜行自动变换工具条
/flexbar remap button=1-12 base=13 on='GainAura' target='潜行'
/flexbar remap button=1-12 base=1 on='LoseAura' target='潜行'

三。写一个完整的FLEXBAR代码的思路

1。写FLEXBAR代码有3个途径
(1)最基本的
游戏中用/FELXBAR+命令 一句一句的敲进去

(2)编辑FlexBar_config.LUA,在游戏中调用
这个方法比起上面的要方便许多。
先给2个命令
/flexbar resetall confirm='yes'
重新载入FLEXBAR。就是删除你所有之前在FLEXBAR中输入的命令。重新载入FLEXBAR
/flexbar loadconfig config='vv'
调用FlexBar_config.LUA文件中vv 部分代码的,
注意这可能是FLEXBAR中唯一一个需要区别大小写的命令
就是说/flexbar loadconfig config='vv'和/flexbar loadconfig config='VV'是调用不同的代码
具体的把命令放在FlexBar_config.LUA文件中是这样的
vv={
命令
}
vv是你给代码起的名字
花括号{}括起来的部分就是你写的代码
注意FLEXBAR命令放在这里有稍微不同的写法

随便找一句
/flexbar remap button=1-12 base=13

放在FlexBar_config.LUA文件中就是这样
vv={
"remap button=1-12 base=13",
}
那么你在游戏中输入/flexbar remap button=1-12 base=13和输入/flexbar loadconfig config='vv'就是等效的了
具体点就是把命令中的/FLEXBAR去掉 然后用双引号 "  " 把命令括起来再在句子最后加入逗号 ,  就OK拉
注意一点,在LUA文件中出现中文请用utf-8格式进行编辑(感谢AC米兰给我的提示)

  QUOTE:
不过用这个方法我有一个问题一直没有解决。并且几乎在我所有的帖子中都发出了求助,可惜都没有得到解决。
在这里。我再提出来
/flexbar movetomouse button=23 dx=-25 dy=25 on='manabelow10' target='player' if='affectingcombat<"player">'
这样的句子。我无法把它放在FlexBar_config.LUA文件。
原因我找到了。是句子中兰色的部分,那个该死的双引号和FlexBar_config.LUA文件中固定格式需要的双引号冲突。。就是说
"hide button=23-30 on='healthabove90' target='player' if='manaabove90<"player">'",
FLEXBAR总是要把粗体的双引号先做为一对。。
后来我找了许多资料。作者有写到如果想在输出的文本中包含'单引号。。那么要在单引号之后加个\
但是无效。\只是把"转换为了字符。。所以。句子直接失效。。奢望有解决方法的朋友能给我分享。。253先了


(3)。用脚本编辑器

(关于脚本编辑器xdata 在他的 我的法师Flexbar配置+代码说明+脚本编辑器简单使用说明 做了简单的阐述。并且给出了所有命令的连接,我在这里补充点我的看法)

在FLEXBAR1。37之后作者提供了GUI界面。其中的脚本编辑器的光芒尤为耀眼。因为它让FLEXBAR更加强大。使用起来,我感觉更像是在写一段C语言的代码。我目前也只是在摸索阶段,不敢妄自菲薄,胡说一些自己都不太清楚的东西。所以这里只是大概介绍一下
因为脚本编辑器是GUI界面,所以SAVE,LOAD,DEL,之类的方法就不废话了,可以参考xdata的帖子

我想说说一些格式
还是这个命令
runmacro macro='/s HPLOW!' on='healthbelow20' target='Player'"
写成脚本就是
IF

(太懒了。。不想写了。再写我要吐血了。。就让这个帖子成为一个半成品。。。稍微提示一点点。。想突破禁区,让技能能够由事件和条件进行判断,自动执行。就在这里做做文章。。)



2。我个人写一段FLEXBAR的思路
就拿在之前帖子中的回帖来说说

  QUOTE:
Originally posted by sapron at 2005-6-28 10:59 AM
我有一个想法,就是猎人的狂暴技能,因为此技能必须要玩家在受到重击后才能使用,那么我就想写一个FB,大意为:平常时候自动隐藏,当进入战斗状态后受到重击自动显示此技能。此技能在120号上面!
/flexbar hide button=120
/flexbar show button=120 on='playercombat' target='重击'

这两句是否可以完成上述意思?  


我非常欣赏你可以具体的提出例子。所以单独放出来帮你分析一下。


先看看你写的
/flexbar hide button=120
/flexbar show button=120 on='playercombat' target='重击'
2个问题。
1。技能是否可以使用是有个专门的事件命令的isusable(其实应该称为事件函数,不过这么写太专业了点。所以换个说法)。我会在文章的第二部分整理出大部分的命令,函数,和他们的用法

2。你先输入第一句命令,OK。FLEXBAR收到你的指令了,它开始动作,隐藏了按扭120
之后你输入第二句命令。我们姑且假设你的事件命令用的是对了。。那么FLEXBAR也会接受到你的指令。
OK。当你被重击之后。按扭120显示了。。。不错。似乎是达到了你想要的目标。。但是你发现没有?按扭120显示之后就再也不会消失了。。为什么?因为你没有在第一句中加入事件。




如果我是你。那么我先分析我想到达什么样子的目的。

目标:在需要的时候显示按扭120,在不需要的时候隐藏按扭120

根据以上的分析的话。。要实现你的目标至少需要2个命令
第一个命令显示按扭120
第二个命令是隐藏按扭120

那么我先写下这2句
/FLEXBAR SHOW BUTTON=120
/FLEXBAR HIDE BUTTON=120

现在开始判断
什么时候是需要的?我受到重击的时候是需要的


就是说 显示按扭 的事件 应该是 受到重击
/FLEXBAR SHOW BUTTON=120 ON='isusable' TARGET=120
(在FLEXBAR中判断这个技能是否可以使用。有个专门的事件函数isusable。)

那么隐藏按扭呢?比较麻烦点。我们可以假设为按扭120不可以使用的时候
/FLEXBAR HIDE BUTTON=120 ON='notusable' TARGET=120

现在应该有点样子了。

不过我们还要进一步分析。什么时候隐藏按扭,
在实际使用中发现。我使用过按扭120之后。往往就是我需要隐藏他的时候。所以按下按扭120按扭120不可以使用更加适合做为隐藏按扭的事件
/FLEXBAR HIDE BUTTON=120 ON='bindingkeydown' TARGET=120
但是我并不是总是用快捷键的。有时候。我是用鼠标去点击的。所以再加一句
/FLEXBAR HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120

这样最终的结果也就出来了

  CODE:[Copy to clipboard]  
/FLEXBAR SHOW BUTTON=120 ON='isusable' TARGET=120
/FLEXBAR HIDE BUTTON=120 ON='bindingkeydown' TARGET=120
/FLEXBAR HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120


补充:
我们再结合上面的部分把这3句话丢到FlexBar_config.LUA中
vv={
"SHOW BUTTON=120 ON='isusable' TARGET=120".
"HIDE BUTTON=120 ON='bindingkeydown' TARGET=120",
"HIDE BUTTON=120 ON='leftbuttonclick' TARGET=120".
}

OK.比较完美的一段代码就成形了,之后还可以再润润色,比方把按扭排列排列。移动移动。加个纹理。修改下文字说明。等等等等。朋友们应该都会自行发挥了把?

[ ] [返回上一页] [打 印] [收 藏]
 
 
   
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright 2005-2006 YesDown.Net All Rights Reserved
版权所有 下载天空 魔兽世界插件中文站