循环句式: for 循环变量 = 初值,终值,每次的增量 do 语句块 end for循环是插件中常用的一种循环方式,for在这里可以理解为"在...时候",上面语句可以理解为:在循环变量从初值到终值,根据增量每次改变的时候时候,执行语句。这类型的语句主要是用于需要多次重复执行的命令,比如说循环小队成员找到相应的人物名字。
例:
打印结果为:1,3,5,7,9 每次的增量如果没有写,就表示默认是1。
打印结果为:20,15,10,5,0,-5,-10 in pairs的运用: 假设我们有个表格: 表格t:
我们想要打印出这个表格右边的数字,那么就这样写:t={[1]=1,[2]=5,[3]=12,[5]=20}for i,v in pairs(t) doprint(v)end打印结果为:1,5,12,20 in pairs指的是i,v成对地,这个的意思就是说,在i,v于表格t中成对的时候:即i为第一列,v为第二列,打印v。因为我们表格是双列表格,所以成对是绝对成立的,于是就导出所有第二列的数值。
函数封装:关于函数封装这个问题简单说一下。 这个的作用就是将代码打包,方便在其他地方进行调用,同时也是方便调试的时候找错并且修改。 例: if a>b then print(a) elseif b>a then print(b) elseif a==b then print("相等的") 剑三中的一些常用API:B叔说,我们跟系统是用函数进行沟通,但是彼此之间并不同步。比如说我的函数说:“你是谁?”,而系统函数却回复:“那座山很高。”。API就是系统告诉我们他会什么语言,我们便要说他懂得语言来进行沟通。以下为比较常见的一些API: - GetClientPlayer()
- 获取本机的player对象。
- GetNpc(dw)
- 获取npc对象,参数为NPCID。
- GetPlayer(dw)
- 获取一个player对象,参数为playerID。
- GetDoodad(dw)
- 获取一个Doodad对象,参数为doodad的ID
- RegisterEvent(sz,function)
- 注册一个客户端事件,可以在Event()函数中响应它。参数为事件名,响应时间的函数。当它作为一个全局函数使用的时候,由于脚本程序是由上至下逐行解释的,所以一定要把响应事件的函数定义在它的前面。
- RegisterCustomData(sz)
- 注册一个用户数据,参数是数据名。
- GetTarget()
- 获取目标,返回值为目标类型,目标ID
- GetTargetHandle(tType,tID)
- 获取目标,参数为目标类型,目标ID
- GetKungfuMount()
- 获取当前装备内功,返回值为内功ID
- GetSkillPrepareState()
- 获取技能准备状态,返回值为四个,是否在吟唱,技能ID,技能等级,读条进度
- GetCharacterDistance(dwID,dwID)
- 获取两者之间的距离,需要除以64方为真正距离,参数为两者的ID
- GetClientTeam()
- 获取客户端玩家默认小队代号
- GetClientTong()
- 获取客户端玩家默认帮会代号
- OnFrameCreate(),OnFrameBreathe()
- 上面这两个事件实际上是两个函数,当遇到插件创建事件时会调用OnFrameCreate()。一般在没有特殊设置的情况下,当界面窗口可见时,会每秒调用16次OnFrameBreathe()函数。下面是一个API的列表,剑三所开放的白名单
|