0

超级宏论坛

分类导航全部

温馨提示

站内问题请先查看帮助中心
每一位侠士都有过小白经历,希望大家多一点耐心,互相帮助,江湖有你随行,步步惊(喜)心

发帖说明

  1. 求助类问题请在提问前请先搜索已解决方案,并描述清楚问题。
  2. 宏与工具的提问时请在帖子中“@ 用户名”,以便作者收到通知,否则作者可能无法知晓。
关闭生成文章|
无色幽明 关注 发布时间: 2014-03-26 最后更新: 2014-03-26 24308 0
打印
分享
正序查看
无色幽明 40 认证团队 认证玩家 签约作者 1# 最后更新 2014-03-26
更多 回复
第三章·第3节:变量与自定义变量(var)

主稿:龙蔡、YYL




变量与自定义变量变量的基本含义
例句1:
/Skill [life<0.4] 无相诀
变量的含义即是:每次运行都可能是不同的值。
变量一般都是写在方括号内进行逻辑运算,从而影响到一行语句的运行结果。
例句中,每次运行,life的值都可能是不同的值,从而影响到无相诀的施放,那么这里 life就是一个变量。
广泛一点,整个方括号内的也都可以看作一个变量。

变量的类型
目前插件的变量类型,有布尔型、数字型、字符串型。

布尔型,即 “真”<true> ,假<false> 两种结果
/Skill [horse] 战八方
如[horse]的判断结果只有两种,<true><false>
变量值为<true>的时候,判断为真,执行技能[战八方]

数字型,如life、mana、sun、moon 这类,是个数字
一般用来进行大小比较
例如:
/Skill [sun<50] 赤日轮

字符串型,很少用到。暂不讲解!
为了了解变量的类型,可以查阅说明文档中相关部分。
同时,插件提供了打印功能,可以打印出变量的运行结果
/print [horse]
/print [sun]
用这处理方式,就可以在聊天栏的黄字中看到输出的结果,便于宏的调试
关于“真”与“假”
/cast [...] 技能
类似这样的语句,中括号当中的判断结果,
如果是为<false>,那么就称之为“假”,就不会执行释放技能!
除<false>之外的所有值,都会被判断为真,而执行释放技能!

自定义变量简析
如例句1中,<life>这个变量是属于插件本身提供的判断。
而自定义变量,就是我们通过命令赋值,需要的时候再调用运算。
所有的自定义变量名都是以“v_”开头,
/var定义或者修改变量的值,使用时如同插件本身的判断一样处理即可。
例句2:
/var [life]v_life
/Skill [v_life<0.4]无相诀
上例句中,第一行通过/var 命令将life的值赋值给 自定义变量 v_life
第二行,直接引用变量进行判断,如同使用life一样

宏头部自定义开关变量
以“#”开头的宏头部命令中,#varbool、#varnum定义的开关,本质上也是一个自定义变量
例句3:(一篇结构完整的简短的宏)
#name 自定义变量
#varbool v_a
#varnum v_b,2
/Skill [v_a]后撤
/Skill [v_b=1]扶摇直上
上面的宏内容定义了两个开关,
一个是#varbool定义的开关,变量名为v_a,他的值在<true><false>之间切换,默认值为<true>
另外一个#varnum 定义的开关,变量名为v_b,他的值在<1><2>之间切换,默认值为<1>
后面两句/Skill的执行,完全依赖于这两个自定义变量的值
自定义变量的生命周期
#varbool、#varnum定义的变量,会在加载时设置默认值,会一直存在
未进行任何赋值操作的变量,默认返回值为<false>。
仅通过/var 命令赋值的变量,在游戏小退、修改宏之后会重置为<false>。



一般来说,超级宏里面有四种自定义变量
1. varbool
2. varbox
3. varnum
4. v_变量


varnum是写法比较高明的varbox,故只剩下三种变种(其实严格来说还有一种,但是为了使教程通俗易懂,故不在此教程里面)



首先说下varbool和varnum,varbool和varnum是用在头部的变量,可以改变宏的界面,让用户可以通过界面选择他要的功能,达到与用户沟通的目的,是超级宏的特点功能之一。当初的主流宏的功能还是很简单的时候,宏写手们都是冲着这个功能而纷纷改用超级宏,为剑三PVE宏打开了全新的一页,新手请务必马上熟练这个功能。


varbool
指的就是布尔(bool)的方式来定义一个变量,简单的说法就是,只有开和关。
写法是:
#varbool  v_变量的名字,tip:变量的作用,tip_1:开启状态,tip_2:关闭状态,Icon:1234
分析:
#varbool
告诉插件你正在定义一个varbool变量
v_变量的名字:就是在这里定义变量,必须以v_开头,超级宏所有的变量都是以v_开头,其次是变量名字非常重要,确保对宏写手来说易于辨认,因为需要在宏里面引用,写法不可以错


tip
这里就是告诉用户这个这个变量是做什么的,你要写什么都可以,迟些在宏里面不会引用到,因为只是给用户看的,建议写得直观点,让用户可以马上明白
tip_1
:如前面所说varbool有两个状态,开或者关(真或者假),所以tip_1就是解释第一个也就是默认的状态—-开。你写什么都可以,不过一般上都是写模式开启中之类的,同样的这个也不会引用在宏里面。还有不要把tip_1和tip搞乱,tip是向用户解释整体功能,tip_1是针对开关的状态解释。
tip_2
如果你已经明白tip_1那么tip_2也是同样的道理,只是tip_2是解释第二个开关,也就是关闭状态。


icon
icon:1234
选择你要的图标,游戏里的图标都可以通过ctrl来查找iconID,如果不设置这点的话,将会使用默认太极图图标。
那么要怎样在码里面引用这个varbool呢?
很简单:
/skill [v_变量的名字]技能
因为【v_变量的名字】非假即真,直接使用就可以
例子
#varbool  v_自动扶摇,tip:扶摇模式,tip_1:开启状态,tip_2:关闭状态,Icon:1485
/skill [v_自动扶摇]扶摇直上


varnum
理解了varbool那么varnum就很好理解了,varnum其实是更加弹性的varbool,varbool只能有两种状态,而varnum却可以拥有一个直到N状态,也就是说varbool能做到的varnum都能做到,varnum能做到的varbool未必能做到,写法是:
#varnum  v_变量名字 ,3 ,tip:变量的作用, tip_1:开关1的作用, tip_2:开关2的作用, tip_3:开关3的作用, Icon_1:1111, Icon_2:2222, Icon_3:3333
varnum的解释和varbool一样,所以这里就只解释当中的差别
3,这个代表的是有3个状态,可以设置1~n个状态,不过1是没有意义,所以实用上是2~n个状态
tip_n的数量就看你有多少个状态了,icon也是
不过varbool虽然有两个状态但是icon只有一个,那是因为varbool是非假即真,图标只是亮着(真)和不亮(假),一个图标就可以代表两个状态。
例子
#varnum  v_日月模式 ,3 ,tip:明教技能模式, tip_1:自动模式, tip_2:主日模式, tip_3:主月模式, Icon_1:3869, Icon_2:3868, Icon_3:3808
在宏里面引用的话:
/skill [v_日月模式=1]自动模式的循环
/skill [v_日月模式=2]主日模式的循环
/skill [v_日月模式=3]主月模式的循环

与varbool不同,必须使用=n来决定当前状态

v_变量
这可谓是超级宏的精髓了,这个非头部的可自定义变量,你可以用也可以完全不用,因为其功能是让你的宏的结构更高明,变化更弹性,主要是用来改善宏的写法,但是在比较高级的用法会无可避免的需要用到这自定义变量不过不在这教程的讨论范围之内。

使用v_变量的方法就是赋值,赋值何解?
赋值就是,代数字上来说,如果我们要定义a为1的话,写法就是a=1,这就是赋值
v_变量可以存很多种类的数值,当中包括
–数字12345
–真假true false
–字符串
每一种方式都可以用直接与非直接方式赋值
接下来我们就看看如何为v_变量进行各种赋值,如果要检查的话,可以用print来检查结果

尝试以下数字赋值:直接方式:
/var [12345]v_数字
/print [v_数字]
打印12345
间接方式
/var [ggcd]v_数字
/print [v_数字]
打印你现在公共cd的时间

尝试以下真假赋值:直接方式:
/var [true]v_真假
/print [v_真假]
打印true
间接方式:
/var [fight]v_战斗
/print [v_战斗]
如果在战斗中会打印true反之会打印false

尝试以下的字符串赋值:直接方式
/var [string:xxx]v_string
/print [v_string]
就会打印xxx
间接方式
/var [tar]v_string
/print [v_string]
就会打印目标的名字
以上的功能都非常强大,请务必尽快掌握



点击开关回复楼层
没有更多了
请先登录

试一试@用户名 立即召唤神龙 小伙伴会收到通知喔:)无需加好友即可通知到

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则


您当前使用的浏览器版本过低,网站部分功能可能失效,请更换合适的浏览器。了解更多