当前位置:首页>>魔兽资讯>>正文
魔兽TellMeWhen文字显示样式的应用
2015-08-02 19:24:50 作者:hjg719 来源:NGA 浏览次数:0
摘要:TellMeWhen文字显示样式的应用:也就是用这个来显示一些文字信息的功能。
接下来是理论知识

  • 简单的语法介绍(简单?当然了,只有几十个字符的一串哪有多少语法可言啊)
  • 基本
  • 属性
  • TMW
  • 单位
基础语法

语法

LibDogTag-3.0标签本质是一些以方括号括起来的普通标签文本,例如 这是一个[标签] 。一般的语法是“OO [标签] XX”这样的形式,其中oo和xx都是普通的文字,而 [标签] 会被替换成其所代表的动态文字。所有的标签和操作符都不是大小写敏感的,但是如果标签没写错,将会被自动纠正为正常的大小写格式。给一些没什么基础的同学先解释一下“返回”的概念:以第一个标签为例,写出[Alt]这个标签表示我在问系统“alt键被按下了吗?”系统回答我True(按下的),这个动作就是返回,True就叫返回值。或者大家也可以认为这些有返回值的标签都是一个变量,他们根据对应的情况变化他们的值(value),我们则是在向系统询问这些值。接下来你会看到的介绍中会大量出现“返回”这个词。

修饰符

修饰符用于更改标签的输出文字的样子。例如 :Hide(0) 修饰符在标签输出结果等于数字 0 的时候会隐藏该结果文本,因此 [HP:Hide(0)] 将会显示玩家当前的HP值,等到HP值为0时则什么都不显示。你也可以连续设置多个修饰符,例如:[MissingHP:Hide(0):Red] 将会以红色显示当前缺少的HP值,并且在该值为0时不显示东西。修饰符其实是一种标签的语法简化,所以 [HP:Hide(0)] 和 [Hide(HP, 0)] 的作用是完全一致的。所有的修饰符都可以这样使用,同时所有的标签都可以当作参数,前提是这个修饰符接受参数。

参数

标签和修饰符都可以接受参数,以类似 [标签(参数)] 或者 [标签:修饰符(参数)] 这样的格式输入。你也可以不按照顺序来指定参数,但是要附带参数名称,例如 [HP(unit='player')] ,这跟 [HP('player')] 以及 ['player':HP] 的效果是一样的。

文本

字符串需要用双引号或者单引号括起来,例如 ["你" '好'] 。数字则可以正常按照数字输入,例如 [1234 56.78 1e6] 。也有跟标签同样作用的文本,例如 nil,true 以及 false 。(最后这三个叫做“布尔值”,True-真,False-假,nil-空或者说未知,后面我们要用到这个概念)

逻辑判断 ( if 语句 )

运算符 & 以及 and 实现了逻辑与的效果,例如 [OO and XX] 将会检查OO是不是值为 非false ,如果是,则运行XX。

运算符 || 以及 or 实现了逻辑或的效果,例如 [OO or XX] 将会检查OO是不是值为 false ,如果是,则运行XX,否则显示OO。

运算符 ? 实现了 if 语句的效果,它可以与 ! 运算符结合用以创建一个 if-else 语句。例如 [IsPlayer ? "Player"] 或者 [IsPlayer ? "Player" ! "NPC"] 。

运算符 if 实现了 if 语句的效果,它可以与 else 运算符结合用以创建一个 if-else 语句。例如 [if IsPlayer then "Player" end] or [if IsPlayer then "Player" else "NPC" end] 或者 [if IsPlayer then "Player" elseif IsPet then "Pet" else "NPC"] 。

运算符 not 以及 ~ 会将一个 false 值转为 true ,或者将一个 true 值转为 false 。例如 [not IsPlayer] 或者 [~IsPlayer]

举例

[Status || FractionalHP(known=true) || PercentHP] 将会返回以下列几种情况其中的一种(只会是一种):

  • "死亡", "离线", "鬼魂" 等 - 因为 || 运算符已经指明存在一个合法的返回值了,所以不会有更多的返回值了
  • "3560/8490" 或者 "130/6575" (不会是 "62/100" 这个样子的,除非目标真的只有 100 点HP) -- 而且也不会是 "0/2340" 或者 "0/3592" ,因为这样则表明单位已经死亡,从而会按照顺序被第一个标签给处理了
  • "25" 或者 "35" 或者 "72" (百分比生命) - 如果单位没有死,也没有离线等,并且你的插件也无法确定当前目标的具体生命值时,就会显示百分比形式的生命值。

  

[Status || (IsPlayer ? HP(known=true)) || PercentHP:Percent] 会返回跟上面差不多的结果,其中的细微差别已经表现的很明显。

  

不过还是要说明清楚,嵌套句 (IsPlayer ? HP(known=true)) 创建了一个 if 语句,该语句描述了如果 IsPlayer 的值为 false ,那么整个标签值就为 false ,如果你都能读到这里,你应该被奖励一块饼干。假如 IsPlayer 值为 true ,在这个例子里,这个嵌套句的实际返回值应该遵循逻辑与的规则,即返回的是 HP(known=true) 。所以这行代码在 IsPlayer 值为 true 的情况下(即单位是一个玩家单位)将会显示 HP(known=true) 的值。

 

[if IsFriend then -MissingHP:Green else HP:Red end] 将会返回以下列几种情况其中的一种(只会是一种):

  • 假如单位是友好单位,这将会显示他所需的治疗量数字,以回满到他的最大生命值。整个字将会以绿色显示,并且在前面还有一个负号。
  • 假如单位是敌对单位,这将会显示他当前的生命值,就像是这个序列所写的那样,它不会检测是不是存在一个具体的生命值。对于生命值不能确定具体值的敌人,它会显示百分比数字(但是没有百分号),直到可以检测到一个更精确的数字为止。这个值将会以红色显示。

目标指定

一般使用DogTag的插件会预先定义好所作用于的单位了,比如 "player" 或者 "mouseover" 以及其他的。你也可以指定一个单位覆盖掉标签或者修饰符默认的,以这样的形式:[标签(unit="myunit")] 或者 [标签:修饰符(unit="myunit")]。例如 [HP(unit='player')] 会返回玩家自己的生命值。

示例单位列表

player - 你自己的角色

target - 你的目标

targettarget - 你的目标的目标

pet - 你的宠物

mouseover - 你当前鼠标所指向的单位

focus - 你的焦点目标

party1 - 你小队里的第一名队友

partypet2 - 你小队里的第二名队友的宠物

raid3 - 你团队里的第三名队友

raidpet4 - 你团队里的第四名队友的宠物

算术运算符

可以在你的DogTag序列里面使用算术运算符,它们符合算术的常规运算顺序规则。

  • + - 加
  • - - 减
  • * - 乘
  • / - 除
  • % - 取余数
  • ^ - 求幂

比较运算符

你可以在你的DogTag序列里面使用比较运算符,就像使用算术运算符那样。

  • = - 相等
  • ~= - 不等
  • < - 小于
  • > - 大于
  • <= - 小于等于
  • >= - 大于等于

拼接

拼接(将两个文本连在一起)非常简单,你只需要将每个字符串一个接一个放置,每两个之间添加一个空格,例如 ['你' "好"] =>; "你好"。举个更现实点的例子,[HP '/' MaxHP] => "50/100" 。

 

语法就这么多,但是你实际上最需要知道的是:我手上到底有哪些牌。这决定了我到底能做到什么。 



相关报道:

[关闭] [返回顶部]


  返回首页 | 最新资讯 | 资源下载 | 魔兽图片 | 单机文档 | 技术攻略 | 玩家视频
备案号:蜀ICP备2024062380号-1
免责声明:本网站为热爱怀旧WOW的玩家们建立的魔兽世界资料网站,仅供交流和学习使用,非盈利和商用.如有侵权之处,请联系我们,我们会在24小时内确认删除侵权内容,谢谢合作。
Copyright © 2024 - 2024 WOWAII.COM Corporation, All Rights Reserved

机器人国度