|
|
最近求助区发帖提问的挺多
但问的问题越来越离谱
归纳了一下,有让人看不懂问的是什么的,有直接问开卷答案的,有自己已经把答案写出来了还在问的,= =
鉴于有些刚入门没有基础的萌新确实理解不了.单纯只把答案写出来没有意义,同样的问题还是会重复问上无数遍
所以开个贴扫盲一下基础的一些概念,以及一些自行调试排错解决bug的方法.有其他语言基础的就可以直接跳过了
1.数据类型
在写职业循环逻辑时,萌新会使用到的数据类型只有前三种,第四种了解概念即可,第五种则是你熟练后会用到的.
字符串:或者叫文本,由两个英文引号包起来的,例如"123"、"abc" 、"按不出".只要是两个引号里面的内容,不管写了啥,统统作为一个字符串(也有例外情况比如转义,这个可以自行去了解下,一般萌新用不到)
整数:阿拉伯数字即为整数,当然也有浮点数也就是小数,但小数是可以直接和整数进行运算符计算或者是比较的,所以姑且就归为一谈了.
布尔:布尔值只有两个,要么是是要么是否,也就是true或false.其实在平时用的是最多的.
空值:空值就是啥都没有,nil.经常有人发报错"a nil value",或是其他类似的,就是说的这个
表:萌新把他理解为数组也好,集合也行,总之就是一个包含多个值的值,例如a={"1",2},表里的值可以是不同的数据类型,还有些其他复杂情况,比如表里的某个元素也是表,这样嵌套也是可以的
当一个变量我们不知道里面装的值是什么数据类型时,可以用type()进行查看,分别对应string-字符串,number-整数,table-表.
2.变量
local a就是创建了一个名为a的局部变量,变量名你自己想叫什么叫什么,但只能是字母,最多加个下划线啥的.一个变量里可以保存一个值,这个值的数据类型上文已经说过了,如果你需要一个变量里保存多个值,就需要上文说到的表.这部分只能自己去lua基础里面去啃,我可能不怎么讲的清楚.
3.函数
函数有几个构成部分
函数名,也就是你们平时写循环时用到的命令 比如BeeRun()
参数,例如BeeRun("圣光闪现"),参数可以为空,也可以有多个,这取决于这个函数的创建者是如何要求的.
过程,你们用的是魔峰已经封装好的库,当然是看不到过程的,要是有兴趣的话可以去魔峰的根目录里打开WowBee.Functions.lua查看函数过程.
返回值,同参数一样,可以没有,也可以有多个,取决于函数创建者是怎么写的.
举个例子,BeeIsRun("雷霆一击"),大家应该知道这一句就是是否可以使用雷霆一击的意思,函数的第一个返回值就是布尔值,true就是可以,false就是不可以
所以就有了这样的代码:
if BeeIsRun("雷霆一击") then
BeeRun("雷霆一击")
end
但实际上这样写是错的,按这样运行的话,雷霆一击永远放不出来,如果你尝试过print(BeeIsRun("雷霆一击"))去查看一下函数的返回值的话你就会发现
返回值为false,且无论目标参数怎么写都是false,(目测是因为函数过程里调用了官方的isspellinrange的函数,而该函数无法正确作用于范围技能).
所以这种情况就只能用BeeSpellCD()来进行判断是否可用
还有一种情况是BeeIsRun("/cast 雷霆一击")这种写法也是错的,因为函数手册里明确说明 注意:当是宏名称的时候并且存在 BeeIsRun 返回true(只判断宏是否存在,忽略宏內容)。也就是说无论任何时候这时的返回值都是true.即使是雷霆一击本无法使用的环境
通过上述的例子我想表达的是,想要独立写一个原创的脚本.
你需要有一个魔峰函数手册,你得知道这个函数是干嘛用的,函数过程是为了计算什么结果,或是实现什么目的.他的参数要求你填什么,返回值该怎么利用.
有时很简单的一个问题,你自己print打印一下就知道是怎么回事了,1+2我告诉你了等于3,结果2+1你又不会了,又上论坛问一次.
很多人是根本没有函数手册的,或者有但根本没看过,直接按照别人的脚本写法去仿写,结果就导致了最开始被学习的那个人写了个错误语句,后面的所有人都跟着有样学样.
看看函数手册把~!另外碰到问题尽量自己多调试,善用print分析问题.
以上,诸君武运昌隆.
|
|