首页 > 其他分享 >[十万个为什么] [lua] packfield

[十万个为什么] [lua] packfield

时间:2024-07-29 16:32:28浏览次数:9  
标签:packfield cnt end 十万个 write lua io elseif

local function print_pack_field(s)
	local cnt = s:byte(5)
	for i = 1, #s do
		if i == 1 then
			io.write("     size: ")
		elseif i == 5 then
			io.write("\n      cnt: ")
		elseif i == 7 then
			io.write("\n name_ref: ")
		elseif i == 9 then
			io.write("\nbdin_skip: ")
		elseif i == 11 then
			io.write("\ntype_skip: ")
		elseif i == 13 then
			io.write("\n      tag: ")
		elseif cnt > 4 and i == 15 then
			io.write("\n     tag4: ")
		elseif cnt > 5 and i == 17 then
			io.write("\n     tag5: ")
		elseif cnt > 6 and i == 19 then
			io.write("\n     tag6: ")
		elseif i == 7 + cnt * 2 then
			io.write("\nname_size: ")
		elseif i == 11 + cnt * 2 then
			io.write("\n     name: ")
		end

		io.write(string.format("%02X ", s:byte(i)))
	end
	io.write("\n\n\n")
end

 

标签:packfield,cnt,end,十万个,write,lua,io,elseif
From: https://www.cnblogs.com/kehuadong/p/18330367

相关文章

  • Lua脚本解决Redis 分布式锁
    Redis分布式锁由于判断锁和释放锁是两个步骤,在判断一致后如果线程阻塞导致锁超时释放。之后阻塞结束,当前线程继续执行释放了其它线程的锁。锁设计失败解决方法:通过lua封装比较和释放锁两个步骤:要么同时成功,要么同时失败我的疑问?为什么不对判断和释放锁两个步骤再加锁@Over......
  • Lua 语法 面向对象实现
    封装--面向对象类其实都是基于table来实现--元表相关的知识点Object={}Object.id=12functionObject:Test() print(self.id)end--冒号是会自动将调用这个函数的对象作为第一个参数传入的写法--在Object表添加new成员方法functionObject:new() --self......
  • Lua 语法 自带库
    时间相关--系统时间print(os.time())--自己传入参数得到时间print(os.time({year=2014,month=8,day=14}))--os.date("*t")localnowTime=os.date("*t")fork,vinpairs(nowTime)do print(k,v)end数学运算--math--绝对值print(math.abs(-11))--弧度转角......
  • Lua 语法 元表
    元表概念--任何表变量都可以作为另一个表变量的元表--任何表变量都可以有自己的元表(继承(浅拷贝))--当我们子表中进行一些特定操作时--会执行元表中的内容设置元表设置元表的公共方法setmetatable(被设置的表,元表)getmetatable得到元表,判断是否有元表meta={}myTa......
  • Lua 语法 协同程序
    协程的创建lua协程的类型是thread(线程)协程的本质是一个线程对象关键字:coroutine.create--创建协程fun=function()print(123)end--第一种协程创建方式co=coroutine.create(fun)--协程的本质是一个线程对象--输出类型:地址print(co)--输出threadprint(ty......
  • Lua 语法 复杂类型表 字典 , 类,结构体,表的公共操作
    字典字典的本质运用键值对一个键对应一个值和自定义索引表相似定义使用--字典是由键值对构成a={["name"]="洛溪",["age"]=14,["1"]=10}--访问单个变量用中括号填键来访问print(a["name"])print(a["1"])print(a["age"])--还可以类似成员变量的形式得......
  • lua可变参数
    遍历可变参数localfunctionTest1(...)localargCnt=select("#",...)fori=1,argCntdolocalitem=select(i,...)print(i,item)endendTest1(4,5,6) 遍历可变参数方式2localfunctionTest2(...)localargs={...}......
  • Lua 语法之迭代器
    迭代器主要是用来遍历表的两个迭代器区别#ipairspairs索引必须数字且连续索引必须数字且连续索引可以随意从1开始到nil从1开始到nil从1开始到无其他索引字符索引不识别字符索引不识别字符索引识别关键字ipairs--#得到长度其实并不准确一般不......
  • Lua 语法_复杂类型表____数组与二维数组
    复杂数据类型Lua所有的复杂类型都是table(表)数组如何用Luatable(表)实现数组--lua表中没有具体的限制可以是数值,字符串,布尔值a={1,2,3,4,"洛溪",true,nil}--Lua中默认索引从1开始0如果没有自定义索引则为空nilprint(a[0])--#号时用的获取长度的关键字--......
  • lua 游戏架构 之 游戏 AI (八)ai_tbl 行为和优先级
    定义一系列的AI行为类型和它们的优先级,以及一个映射表`ai_tbl`来关联每种AI行为类型与对应的脚本文件和优先级。以下是对代码的详细解释:lua游戏架构之游戏AI(一)ai_base-CSDN博客https://blog.csdn.net/heyuchang666/article/details/140624481?spm=1001.2014.3001.5501lua......