lua配置表优化以及元表

2024-01-05 20:04
文章标签 配置 优化 lua 元表

本文主要是介绍lua配置表优化以及元表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

table1 = 
{[100] = {Hung = 0,IDType = 7,InitMapID = 10000,Name = "荣誉阶梯",Timeout = 0},[101] = {Hung = 0,IDType = 0,InitMapID = 10100,MinLv = 50,Name = "盘山道",NumEveryDay = 1,PworldID = 101,Timeout = 1200,Type = 2}
}local __default_values = {Cheats = "",ClientCtrlFlag = 0,Des = "",DungeonEffect = 0,EnterUseVig = 0,FailBtnFlag = 7,GeneralWaveID = 0,Hung = 2,IDType = 26,InitMapID = 0,MaxLv = 0,MinLv = 0,Name = "守护者副本",NumEveryDay = 0,OpeningEffect_Delay = 0,OpeningEffect_Id = 0,OpeningEffect_Time = 0,PopAlive = 0,PworldID = 100,RelativeID = 0,ResourceID = "",StartPositon = 0,Timeout = 300,Type = 0,Typemain = 0,exit = 0,exit2 = 0,q_isscript = 0
}local mt = {__index = function(tbl, key)local val = rawget(tbl, key)if val then return valelse return __default_values[key]endend,__newindex = function(tbl, key, value)rawset(tbl, key, value)end,__pairs = function (tbl)local func = function (tbl, key)local nk, nv = next(__default_values, key)if nk then nv = tbl[nk]endreturn nk, nvendreturn func, tbl, nilend
}-- 设置元表
for _,item in pairs(table1) dosetmetatable(item, mt)
endGetList = function()--不用元表可以使用填充的方式--[[for _, tbl in pairs(table1) dofor key, value in pairs(__default_values) dolocal val = rawget(tbl, key)if val==nil thenrawset(tbl, key, value)endendend--]]return table1; 
end;Get = function(id) if table1[id] == nil thenPrintConfig(string.format("<color=red>X_itemdef表id %s 的数据为空!</color>",id))endreturn table1[id]; 
end;for k, tbl in pairs(GetList()) dofor m, n in pairs(tbl) doprint(k, m, n)end
end

这篇关于lua配置表优化以及元表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574007

相关文章

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分