当前位置:首页 > 引擎 > 996引擎

传奇脚本CSV表格读取全套使用教程

admin3小时前2
在传奇版本制作、脚本编写、功能配置过程中,CSV表格是存储属性配置、任务数据、怪物参数、道具信息最常用的外置数据文件。合理运用传奇引擎内置的CSV读取脚本命令,能够实现数据轻量化管理、减少脚本冗余、提升版本运行稳定性。本文详细拆解传奇脚本CSV表格读取两种主流实现方式、完整命令语法、实操案例,帮助版…

在传奇版本制作、脚本编写、功能配置过程中,CSV表格是存储属性配置、任务数据、怪物参数、道具信息最常用的外置数据文件。合理运用传奇引擎内置的CSV读取脚本命令,能够实现数据轻量化管理、减少脚本冗余、提升版本运行稳定性。本文详细拆解传奇脚本CSV表格读取两种主流实现方式、完整命令语法、实操案例,帮助版本制作者快速掌握全套使用技巧。

一、传奇CSV表格读取核心说明

传奇引擎针对CSV文件读取提供两套独立脚本体系,适配不同使用场景:常量内存读取模式、动态路径读取模式。所有CSV读取命令适配主流GOM、GEEM、LEG等主流传奇引擎,表格行列索引遵循统一规则,规避脚本报错、数据读取异常问题。

基础通用规则:

1. 行列索引基准:大部分读取函数行列默认从0开始;获取行列总数函数默认从1开始;

2. 命名规范:表格文件名前缀添加cfg_,可将文件以常量形式常驻内存,适合不频繁修改的配置表格;

3. 加载建议:常驻内存的CSV表格,推荐在QM启动触发[@Startup]中执行加载,避免重复加载占用服务器资源。

二、常驻内存式CSV读取(方式一)

该方式通过NEWREADCSV命令加载带cfg_前缀的CSV表格,数据常驻服务器内存,读取速度更快,适合官职配置、属性参数、基础常量等固定数据表格,是传奇版本标配的配置读取方案。

2.1 基础加载命令

命令格式:NEWREADCSV ..\Data\cfg_自定义表格名.csv

实操示例:NEWREADCSV ..\Data\cfg_guanzhi.csv(官职配置表格)

执行说明:加载后cfg_guanzhi.csv表格以常量形式存入内存,全局脚本可直接调用,无需重复读取磁盘文件。

2.2 内存表格核心读取命令

表格加载完成后,通过以下内置函数读取内存中的常量数据,所有行列参数支持嵌套自定义变量,灵活性极强。

函数1:指定行列数据读取

语法:<$cfg_表格名(行_列)>

说明:直接读取表格中指定行列的数据,行列默认从0开始,可嵌套任意自定义变量动态调用。

示例:<$cfg_guanzhi(1_1)> 读取官职表格第1行第1列的配置数据

函数2:获取关键字起始行

语法:<$GetTypeBRow(表格名,列号,关键字)>

说明:检索指定列中目标关键字所在的初始行,行列默认从0开始,多用于区间数据筛选。

示例:<$GetTypeBRow(cfg_guanzhi,4,11)> 读取官职表格第4列中,关键字11对应的起始行号

函数3:获取关键字结束行

语法:<$GetTypeERow(表格名,列号,关键字)>

说明:检索指定列中目标关键字所在的最后一行,行列默认从0开始,搭配起始行实现区间批量读取。

示例:<$GetTypeERow(cfg_guanzhi,5,11)> 读取官职表格第5列中,关键字11对应的结束行号

函数4:获取表格最大行数

语法:<$Getcsv(cfg_文件名,Row)>

说明:统计表格总行数,行数默认从1开始,建议在引擎启动时获取并存入全局变量,方便后续循环调用。

函数5:获取表格最大列数

语法:<$GetCsv(cfg_文件名,Col)>

说明:根据表格第一行数据统计总列数,列数默认从1开始,使用规则与最大行数函数一致。

三、动态路径式CSV读取(方式二)

该方式无需将表格常驻内存,通过文件路径动态读取CSV数据,适合任务表格、临时活动数据、动态更新的道具清单等频繁修改的文件,读写更灵活,不占用常驻内存资源。

3.1 四大核心功能命令

功能1:动态加载CSV表格

格式:NEWREADCSV 文件路径

作用:临时加载指定路径的CSV文件,脚本执行完毕后自动释放内存,无常驻占用。

功能2:指定行列动态读取

格式:NEWDQCSV 路径 行数 列数 存入变量

作用:读取目标路径表格中指定行列的数据,行列基准从0开始,读取结果存入自定义变量。

功能3:获取表格行列总数

格式:GetHLCSV 路径 0/1 存入变量

作用:获取表格总行数或总列数,参数0代表行数,参数1代表列数,结果存入变量供脚本运算。

功能4:字符串行号检索

格式:GetGJCSV 参数1 参数2 参数3 参数4 参数5 参数6

参数详解:

参数1=CSV文件完整路径;参数2=需要检索的目标字符串;参数3=检索行号区间(开始行~结束行,缩小区间可提升检索速度);参数4=指定检索的表格列;参数5=0/1(0取起始行、1取结束行);参数6=存储结果的自定义变量

3.2 全套可直接复用脚本案例

以下脚本适配所有主流传奇引擎,复制后可直接放入QuestDiary目录配套脚本中使用,无需修改底层语法。

;加载csv表格内容例子:

[@加载表格]

#IF

#ACT

NEWREADCSV ..\QuestDiary\test.csv

SENDMSG 6 加载成功

;读取表里面的第几行第几列内容例子:

[@读取表第几行第几列内容]

#IF

#ACT

NEWDQCSV ..\QuestDiary\test.csv 2 2 S0

SENDMSG 6 表里面的第二行第二列是:<$STR(S0)>

;获取当前表格最大行数、和获取表格最大列数例子:

[@取最大行号]

#if

#act

GetHLCSV ..\QuestDiary\test.csv 0 N0

SENDMSG 6 最大行数:<$STR(N0)>

;取字符串在csv表格中的行号例子:

[@取字符串在表位置]

#IF

#ACT

GetGJCSV ..\QuestDiary\test.csv 测试 0~10 2 0 N0

SENDMSG 6 [测试]字符串在表的<$STR(N0)>行第2列

四、传奇CSV读取脚本使用注意事项

1. 场景选型:固定配置表格(官职、称号、基础属性)用方式一常驻内存;活动、任务、动态数据用方式二动态读取,兼顾速度与内存占用;

2. 索引区分:内存常量函数行列从0起始,行列统计函数从1起始,编写脚本时切勿混淆索引基准;

3. 性能优化:大范围检索数据时,必须在GetGJCSV命令中限定行号区间,避免全表检索导致服务器卡顿;

4. 路径规范:CSV文件路径区分大小写,传奇服务端默认相对路径以..\开头,禁止使用中文文件夹名,防止读取失败。

扫描二维码推送至手机访问。

本文章九路游发布,如需转载请注明出处。如有侵权请联系站长删除。

本文链接:https://www.9luu.com/854.html

分享给朋友: