一种游戏配置档导出方法、装置、设备及存储介质与流程
2021-01-11 11:01:37|339|起点商标网
本申请涉及数据处理
技术领域:
:,尤其涉及一种游戏配置档导出方法、装置、设备及存储介质。
背景技术:
::在使用lua的游戏中,游戏配置档通常是以lua配置文件作为导出格式。lua配置文件通常采用table结构,而table结构在底层表现为数组或哈希表两种格式。目前,在游戏内容配置档中的键值是非数字或不连续数字的情况下,需要采用哈希表格式来存储lua配置文件。而哈希表格式的存储方式需要占用额外的存储空间来弥补哈希碰撞问题,这导致lua配置文件对内存的占用居高不下。技术实现要素:本申请的多个方面提供一种游戏配置档导出方法、装置、设备及存储介质,用以压缩游戏配置档对内存的占用量。本申请实施例提供一种游戏配置档导出方法,包括:响应于游戏配置档导出指令,获取待导出的配置档;若所述配置档中的至少一个字段键值为非连续数字,则为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。本申请实施例还提供一种游戏配置档导出装置,包括:获取模块,设置为响应于游戏配置档导出指令,获取待导出的配置档;构建模块,设置为若所述配置档中的至少一个字段键值为非连续数字,则为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;导出模块,设置为按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;写入模块,设置为将所述映射关系配置到所述配置文件对应的元表中。本申请实施例还提供一种计算设备,包括存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于:响应于游戏配置档导出指令,获取待导出的配置档;若所述配置档中的至少一个字段键值为非连续数字,则为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的游戏配置档导出方法。在本申请实施例中,在待导出的配置档包含的字段键值为非连续数字的情况下,不再按照哈希表格式导出配置档。而是可为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系,并按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。据此,本实施例中,对于包含的字段键值为非连续数字的配置档,仍可按照数组格式进行导出,从而可更多地采用数组格式导出配置档,而由于数组格式相较于哈希表格式占用的内存更小,因此,可有效压缩配置档占用的内存。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请一实施例提供的一种游戏配置档导出方法的流程示意图;图2为本申请一示例性实施例提供的一种游戏配置档导出方案的逻辑示意图;图3为本申请一示例性实施例提供的一种游戏配置档导出装置的结构示意图;图4为本申请一示例性实施例提供的一种计算设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。针对现有技术中存在的游戏配置档对内存的占用过高的技术问题,本申请实施例的一些实施例中:在待导出的配置档包含的字段键值为非连续数字的情况下,不再按照哈希表格式导出配置档。而是可为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系,并按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。据此,本实施例中,对于包含的字段键值为非连续数字的配置档,仍可按照数组格式进行导出,从而可更多地采用数组格式导出配置档,而由于数组格式相较于哈希表格式占用的内存更小,因此,可有效压缩配置档占用的内存。以下结合附图,详细说明本申请各实施例提供的技术方案。图1为本申请一实施例提供的一种游戏配置档导出方法的流程示意图。图2为本申请一示例性实施例提供的一种游戏配置档导出方案的逻辑示意图。参考图1和2,该游戏配置档导出方法,包括:步骤100、响应于游戏配置档导出指令,获取待导出的配置档;步骤101、若配置档中的至少一个字段键值为非连续数字,则为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;步骤102、按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件;步骤103、将映射关系配置到配置文件对应的元表中。本实施例提供的游戏配置档导出方法可应用于各种需要导出游戏配置档导出档的场景,例如,游戏场景等,本实施例对应用场景不做限定。在不同应用场景下,配置档中的配置信息可以是多种多样的。例如,在游戏场景下,配置档可以是与游戏内容相关的等级表、怪物表等等。通常,可将配置档导出为table结构的配置文件,而table结构在底层可表现为数组或哈希表两种格式。在lua中,通常是基于字段键值是否为连续数字来确定采用哪种格式的table结构。对于包含的字段键值为非连续数字的配置档,会采用哈希表格式导出配置档;而对于包含的字段键值为连续数字的配置档,才会采用数组格式导出配置档。申请人在研究过程中发现,数组的内存是连续的,可按照数组索引编号(1..n)来存储元素内容(配置信息)。而哈希表则可使用key-value的方式来存储数据(配置信息),但是通常需要占用两倍于数据本身大小的内容来降低哈希碰撞的概率。因此,哈希表格式相较于数组格式需要占用更多的内存。为了有效的压缩内容,本实施例提出,在配置档中的至少一个字段键值为非连续数字的情况下,仍将配置档导出为数组格式的配置文件,而不再导出为哈希表格式的配置文件,以最大限度的使用数组方式来压缩内存占用量。在本实施例的步骤100中,可响应于游戏配置档导出指令,获取待导出的配置档。其中,lua为一种脚本语言,对于采用lua作为脚本语言的各种应用程序来说,可使用编辑器编辑配置档。例如,可采用excel格式编辑配置档如下:等级描述升级经验1新手10022003300上述配置档中包含3条配置记录,“等级”、“描述”、“升级经验”为配置档中的字段键值,每条配置记录分别在各字段键值下存在配置信息。例如,第一条配置记录在“升级经验”下的配置信息为“100”。本实施例中,可在游戏配置档导出指令的触发下,获取上述的配置档。当然,除了可采用excel格式外,还是采用其它编辑格式来编辑配置档,本实施例中对配置档的编辑格式不做限定。另外,本实施例中,对游戏配置档导出指令的来源也不做限定,游戏配置档导出指令可来源于用户操作等。在配置档中的至少一个字段键值为非连续数字的情况下,在步骤101中,可为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系。例如,针对上述示例性的配置表,可将连续的数组索引编码1、2、3分配给字段键值“等级”、“描述”和“升级经验”。这可将配置档中的至少一个字段键值,转化为连续的数值索引编码,也即是连续的数字,因此,符合了数组格式的导出要求。在此基础上,步骤102中,可按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件。在该步骤中,以配置档中至少一个字段键值各自对应的数组索引编码为依据,可按照与配置档中至少一个字段键值为连续数字的导出方案,将配置档导出为数组格式的配置文件。配置文件可作为后续的配置信息查询阶段中的查询基础。为了支持配置信息查询功能,在步骤103中,还可将步骤102中构建出的数组索引编码与键值之间的映射关系配置到配置文件对应的元表中。其中,元表为table结构的操作指南,元表中可包含多种元方法。本实施例中,可将数组索引编码与键值之间的映射关系写入元表包含的__index方法中,以在__index方法中定义索引失败的情况下的查询路径。具体的查询过程将在后文中进行详述。据此,本实施例中,在待导出的配置档包含的字段键值为非连续数字的情况下,不再按照哈希表格式导出配置档。而是可为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系,并按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。据此,本实施例中,对于包含的字段键值为非连续数字的配置档,仍可按照数组格式进行导出,从而可更多地采用数组格式导出配置档,而由于数组格式相较于哈希表格式占用的内存更小,因此,可有效压缩配置档占用的内存。在上述或下述实施例中,可采用多种实现方式为至少一个字段键值分配连续的数组索引编码。在一种可选的实现方式中,可分别统计至少一个字段键值下的资源使用热度;基于资源使用热度对至少一个字段键值进行排序;按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值。其中,以配置档中的第一字段键值为例,确定资源使用热度的方案可以是:确定在第一字段键值下配置信息不为空的目标配置记录;根据确定出的目标配置记录的数量,确定第一字段键值下的资源使用热度。第一字段键值可以是配置档中的至少一个字段键值中的任意一个。在该实现方式中,可按照资源使用热度从高到低的顺序,对至少一个字段键值进行排序,并按照至少一个字段键值的顺序,将递增的数字索引编码依次分配给至少一个字段键值。也即是,在该实现方式中,对配置档中的至少一个字段键值进行了重排序,并将重排序后的至少一个字段键值与递增的数字索引编码建立映射关联。例如,在前述的示例性配置档中,字段键值“等级”下存在3个不为空的配置信息、“描述”下存在1个不为空的配置信息、“升级经验”下存在3个不为空的配置信息,则重排序后的字段键值的顺序为:“等级”、“升级经验”、“描述”,若数组索引编码为1、2、3,则为“等级”分配数组索引编码1,为“升级经验”分配数组索引编码2,为“描述”分配数组索引编码3。从而构建出如下的映射关系:字段键值数组索引编码等级1升级经验2描述3据此,可为配置档中的至少一个字段键值分配连续的数组索引编码,而且,可按照数组索引编码,对至少一个字段键值进行重排序,这使得在进行配置档导出的过程中,可将更多的为空的配置信息安排在数组的尾部并不在需要对这类配置信息进行存储,以节省内存占用量。在此基础上,可将上述的映射关系写入为配置档导出的配置文件的元表中。当然,本实施例中,还可采用其它实现方式来为配置档中的至少一个字段键值分配连续的数组索引编码。例如,按照至少一个字段键值的原始顺序,分配数组索引编码等,本实施例并不限于此。在上述或下述实施例中,可按照配置档中至少一个字段键值重排序后的顺序,将配置档导出为数组格式的配置文件。本实施例中,可为配置档包含的至少一条配置记录分别导出对应的数组。由于不同配置记录的数组导出过程类似,以下以第一配置记录为例,进行导出过程的说明,应当理解的是,第一配置记录可以是配置档包含的至少一条配置记录中的任意一条。本实施例中,可根据至少一个字段键值各自对应的数组索引编码以及第一配置记录中各配置信息所属的字段键值,确定第一配置记录中各配置信息对应的数组索引编码;按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组。申请人在研究过程中发现,单条配置记录中,经常出现在一个或多个字段键值下的配置信息为空的情况,为此,本实施例中,若第一配置记录在第一字段键值下的配置信息为空,则可判断第一配置记录在第一字段键值之后的其它字段键值下的配置信息是否全部为空。若判断结果为否,则可在第一配置记录对应的数组中,将第一配置记录在第一配置记录下的配置信息记录为nil结构;而若判断结果为是,则可不再第一配置记录在第一配置记录下的配置信息。其中,至少一个字段键值按照其对应的数组索引编码排列。还是以前述的示例性配置档为例,对于第一条配置记录,可为其生成对应的数组为{1,100,新手};对于第二条配置记录,可为其生成对应的数组为{2,200};对于第三条配置记录,可为其生成对应的数组为{3,300}。其中,第二条和第三条配置记录在字段键值“描述”下的配置信息均为空,而且经过重排序后,字段键值“描述”满足“之后的其它字段键值下的配置信息是否全部为空”这一无需存储的条件,因此,在对应的数组中,不再存储第二条和第三条配置记录在“描述”下的配置信息。据此,按照重排序后的字段键值数组导出的方案,与不进行重排序而进行数组导致的方案相比,根据不同配置记录中包含的为空的配置信息的多少,可不同程度地节约为空的配置信息所占用的内存。符合前述的无需存储的条件的配置信息越多,节省的内存越多。另外,正如前述实施例中提及的,可对配置档中的至少一条配置记录分别导出数组。可选地,本实施例中,可为至少一条配置记录分别维护元表,并至少一条配置记录分别维护元表分别写入数组索引编码与字段键值之间的映射关系。对于不同的配置记录对应的元表中的映射关系可能存在细微差别,差别在于:重排序后的字段键值中,配置信息连续为空的最后一个或多个字段键值可无需写入映射关系中。在上述或下述实施例中,可接收配置信息查询请求,配置信息查询请求中包含目标配置记录的标识和目标字段键值;若在配置文件中未查询到目标字段键值,则根据配置文件的元表中包含的数组索引编码与键值之间的映射关系,确定目标字段键值对应的目标数据索引编码;查询目标配置记录对应的数组中位于目标数据索引编码下的配置信息,作为查询结果。本实施例中,用户可按原始的查询方式,在查询请求中指定需要查询的目标配置记录以及目标字段键值。对于配置档中的至少一个字段键值为非连续数字的情况,按照本实施例提供的游戏配置档导出方案已经导出为数组格式的配置文件。因此,在接收到配置信息查询请求时,由于配置文件中不再是key-value的哈希表格式,因此,并无法在配置文件中查找到目标字段键值。在这种情形下,将触发对配置文件的元表查询机制。结合前述实施例可知,数组索引编码与字段键值之间的映射关系已经配置在配置文件对应的元表中,在此基础上,本实施例中,可查询配置文件的元表,以确定目标字段键值对应的数组索引编码,从而确定出所需的配置信息在数组中的位置,进而可从数组中找到正确的配置信息。正如前述实施例中提及的,可为配置档中的至少一条配置记录分别维护元表,基于此,本实施例中,可查询目标配置文档对应的元表,以确定目标字段键值对应的数组索引编码,从而更快速地查询到所需的配置信息。据此,本实施例中,可按照原始的查询方式,以目标配置记录和目标掉落id字段键值为查询依据,从按照本实施例导出的配置文件中,准确地查询到所需的配置信息。在使用感受上,用户无需改变查询方式,因此,感知不到本实施例中配置文件的变化,而在内存占用量上,本实施例中配置文件的内存占用量大大减少,可有效节省内存。以下以游戏场景中的怪物配置档为例,进行配置档导出以及查询方案的说明。怪物配置档如下:其中,该配置档中的字段键值包括“id”、“名称”、“等级”、“技能名”和“掉落经验值”。该配置档中包含3条配置记录,每条配置记录在各字段键值下的配置信息不再详述,例如,第一条配置信息在“名称”下的配置信息为“老虎”。由于该配置档中的字段键值为非连续的数字,因此,按照传统的导出方案,导出的配置文件(哈希表格式的table结构)为:localmonsterconfig={[1]={id=“1000”,name=“老虎”,level=0,skill=“猛扑”},[2]={id=“1001”,level=1,skill=“怒吼”},[3]={id=“1002”,level=2,skill=“猛扑”,drop=3000}}本实施例摒弃了这种哈希表格式的配置文件,而是,将该配置档导出为数组格式的配置文件,导出的过程为:遍历该配置档,统计每个字段键值下不为空的配置信息的数量,例如,“名称”下的数量为1,而“等级”下的数量为3。以及统计出的数量,确定每个字段键值的资源使用热度,统计出的数量越多,资源使用热度越高。并按照资源使用热度对该配置档中的字段键值进行重排序。重排序后的字段键值顺序为:“id”>“等级”>“技能名”>“名称”>“掉落经验值”。按照重排序后的顺序,为字段键值分配连续的数组索引编码,构建数组索引编码和字段键值之间的映射关系如下:以“等级”例,可按照以下方式,实现映射关系的构建:localkeytoindex={level=1}localindex=keytoindex[“level”]locallevel=config[index]这样,可基于字段键值对应的数组索引编码,确定字段键值在导出的数组中的位置,从而将配置档导出为数组格式的配置文件。可采用以下方案导出配置文件:localmonsterconfig={[0]={1000,0,“猛扑”,“老虎”},[1]={1001,1,“怒吼”},[2]={1002,2,“震地”,nil,3000}其中,配置记录中最后连续为空的配置信息无需导出至数组中。而,非连续为空的配置信息则导出为nil结构。而且,还可按照以下方式,将上述的映射关系配置到配置文件的元表中:localkeytoindex={id=0,level=1,skill=2,name=3,drop=4}localmetatable={__index=function(t,k)returnrawget(t,keytoindex[k])end}其中,k表示字段键值,t表示配置记录。据此,可将映射关系配置到元表中的__index元方法中。至此,完成了配置档的导出过程。在查询过程中,用户可在查询请求中指定目标配置记录和目标字段键值。例如,期望查询被3级的老虎攻击会掉落多少经验值,则可在查询请求中指定目标配置记录config[2],指定目标字段键值drop。据此,可从config[2]对应的元表中,查询drop对应的数组索引编码,如上文记载的,drop对应的数组索引编码为4,则查询请求将转换为数组的查询格式config[2].4,也即是,查询配置记录config[2]对应的数组中的第4个元素的元素值,作为查询结果,而config[2]对应的数组中的第4个元素的元素值为3000。因此,可将3000作为查询结果。这样,对于配置表中的字段键值为非连续数字的情况,依然可将配置档导出为数组格式的配置文件,这与传统的需将配置档导出为哈希表格式的配置文件的方案相比,可有效压缩内存占用量;而且,用户对配置文件的改变并无感知,因此,并无需改变原始的查询习惯。需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的字段键值、配置记录等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。前述实施例提供的轨迹生成方法可以由一游戏配置档导出装置来执行,图3为本申请一示例性实施例提供的一种游戏配置档导出装置的结构示意图。参考图3,该游戏配置档导出装置可包括:获取模块30,设置为响应于游戏配置档导出指令,获取待导出的配置档;构建模块31,设置为若配置档中的至少一个字段键值为非连续数字,则为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;导出模块32,设置为按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件;写入模块33,设置为将映射关系配置到配置文件对应的元表中。在一可选的实施例中,构建模块31在为至少一个字段键值分配连续的数组索引编码时,用于:分别统计至少一个字段键值下的资源使用热度;基于资源使用热度对至少一个字段键值进行排序;按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,构建模块31在分别统计至少一个字段键值下的资源使用热度时,用于:确定在第一字段键值下配置信息不为空的目标配置记录;根据确定出的目标配置记录的数量,确定第一字段键值下的资源使用热度;其中,第一字段键值为至少一个字段键值中的任意一个。在一可选的实施例中,构建模块31在基于资源使用热度对至少一个字段键值进行排序时,用于:按照资源使用热度从高到低的顺序,对至少一个字段键值进行排序。按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值时,用于:按照至少一个字段键值的顺序,将递增的数字索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,还包括查询模块34,查询模块34用于:接收配置信息查询请求,配置信息查询请求中包含目标配置记录的标识和目标字段键值;若在配置文件中未查询到目标字段键值,则根据配置文件的元表中包含的数组索引编码与键值之间的映射关系,确定目标字段键值对应的目标数据索引编码;查询目标配置记录对应的数组中位于目标数据索引编码下的配置信息,作为查询结果。在一可选的实施例中,导出模块32在按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件时,用于:根据至少一个字段键值各自对应的数组索引编码以及第一配置记录中各配置信息所属的字段键值,确定第一配置记录中各配置信息对应的数组索引编码;按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组;其中,第一配置记录为至少一条配置记录中的任意一条。在一可选的实施例中,导出模块32在按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组时,用于:若第一配置记录在第一字段键值下的配置信息为空,则判断第一配置记录在第一字段键值之后的其它字段键值下的配置信息是否全部为空;若否,则在第一配置记录对应的数组中,将第一配置记录在第一配置记录下的配置信息记录为nil结构;其中,至少一个字段键值按照其对应的数组索引编码排列。值得说明的是,上述关于游戏配置档导出装置各实施例中的技术细节,可参考前述的游戏配置档导出方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。前述实施例中的游戏配置档导出装置可以实现为软件或实现为软件和硬件的组合,该游戏配置档导出装置可集成设置在计算设备中。图4为本申请一示例性实施例提供的一种计算设备的结构示意图,参考图4,该计算设备包括:存储器40和处理器41。存储器40,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器40可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。处理器41,与存储器40耦合,用于执行存储器40中的计算机程序,以用于:响应于游戏配置档导出指令,获取待导出的配置档;若配置档中的至少一个字段键值为非连续数字,则为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件;将映射关系配置到配置文件对应的元表中。在一可选的实施例中,处理器41在为至少一个字段键值分配连续的数组索引编码时,用于:分别统计至少一个字段键值下的资源使用热度;基于资源使用热度对至少一个字段键值进行排序;按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,处理器41在分别统计至少一个字段键值下的资源使用热度时,用于:确定在第一字段键值下配置信息不为空的目标配置记录;根据确定出的目标配置记录的数量,确定第一字段键值下的资源使用热度;其中,第一字段键值为至少一个字段键值中的任意一个。在一可选的实施例中,处理器41在基于资源使用热度对至少一个字段键值进行排序时,用于:按照资源使用热度从高到低的顺序,对至少一个字段键值进行排序。按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值时,用于:按照至少一个字段键值的顺序,将递增的数字索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,处理器41还用于:接收配置信息查询请求,配置信息查询请求中包含目标配置记录的标识和目标字段键值;若在配置文件中未查询到目标字段键值,则根据配置文件的元表中包含的数组索引编码与键值之间的映射关系,确定目标字段键值对应的目标数据索引编码;查询目标配置记录对应的数组中位于目标数据索引编码下的配置信息,作为查询结果。在一可选的实施例中,处理器41在按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件时,用于:根据至少一个字段键值各自对应的数组索引编码以及第一配置记录中各配置信息所属的字段键值,确定第一配置记录中各配置信息对应的数组索引编码;按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组;其中,第一配置记录为至少一条配置记录中的任意一条。在一可选的实施例中,处理器41在按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组时,用于:若第一配置记录在第一字段键值下的配置信息为空,则判断第一配置记录在第一字段键值之后的其它字段键值下的配置信息是否全部为空;若否,则在第一配置记录对应的数组中,将第一配置记录在第一配置记录下的配置信息记录为nil结构;其中,至少一个字段键值按照其对应的数组索引编码排列。进一步,如图4所示,该计算设备还包括:通信组件42、电源组件43等其它组件。图4中仅示意性给出部分组件,并不意味着计算设备只包括图4所示组件。值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的游戏配置档导出方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。上述图4中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。上述图4中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
技术领域:
:,尤其涉及一种游戏配置档导出方法、装置、设备及存储介质。
背景技术:
::在使用lua的游戏中,游戏配置档通常是以lua配置文件作为导出格式。lua配置文件通常采用table结构,而table结构在底层表现为数组或哈希表两种格式。目前,在游戏内容配置档中的键值是非数字或不连续数字的情况下,需要采用哈希表格式来存储lua配置文件。而哈希表格式的存储方式需要占用额外的存储空间来弥补哈希碰撞问题,这导致lua配置文件对内存的占用居高不下。技术实现要素:本申请的多个方面提供一种游戏配置档导出方法、装置、设备及存储介质,用以压缩游戏配置档对内存的占用量。本申请实施例提供一种游戏配置档导出方法,包括:响应于游戏配置档导出指令,获取待导出的配置档;若所述配置档中的至少一个字段键值为非连续数字,则为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。本申请实施例还提供一种游戏配置档导出装置,包括:获取模块,设置为响应于游戏配置档导出指令,获取待导出的配置档;构建模块,设置为若所述配置档中的至少一个字段键值为非连续数字,则为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;导出模块,设置为按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;写入模块,设置为将所述映射关系配置到所述配置文件对应的元表中。本申请实施例还提供一种计算设备,包括存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于:响应于游戏配置档导出指令,获取待导出的配置档;若所述配置档中的至少一个字段键值为非连续数字,则为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的游戏配置档导出方法。在本申请实施例中,在待导出的配置档包含的字段键值为非连续数字的情况下,不再按照哈希表格式导出配置档。而是可为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系,并按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。据此,本实施例中,对于包含的字段键值为非连续数字的配置档,仍可按照数组格式进行导出,从而可更多地采用数组格式导出配置档,而由于数组格式相较于哈希表格式占用的内存更小,因此,可有效压缩配置档占用的内存。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请一实施例提供的一种游戏配置档导出方法的流程示意图;图2为本申请一示例性实施例提供的一种游戏配置档导出方案的逻辑示意图;图3为本申请一示例性实施例提供的一种游戏配置档导出装置的结构示意图;图4为本申请一示例性实施例提供的一种计算设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。针对现有技术中存在的游戏配置档对内存的占用过高的技术问题,本申请实施例的一些实施例中:在待导出的配置档包含的字段键值为非连续数字的情况下,不再按照哈希表格式导出配置档。而是可为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系,并按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。据此,本实施例中,对于包含的字段键值为非连续数字的配置档,仍可按照数组格式进行导出,从而可更多地采用数组格式导出配置档,而由于数组格式相较于哈希表格式占用的内存更小,因此,可有效压缩配置档占用的内存。以下结合附图,详细说明本申请各实施例提供的技术方案。图1为本申请一实施例提供的一种游戏配置档导出方法的流程示意图。图2为本申请一示例性实施例提供的一种游戏配置档导出方案的逻辑示意图。参考图1和2,该游戏配置档导出方法,包括:步骤100、响应于游戏配置档导出指令,获取待导出的配置档;步骤101、若配置档中的至少一个字段键值为非连续数字,则为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;步骤102、按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件;步骤103、将映射关系配置到配置文件对应的元表中。本实施例提供的游戏配置档导出方法可应用于各种需要导出游戏配置档导出档的场景,例如,游戏场景等,本实施例对应用场景不做限定。在不同应用场景下,配置档中的配置信息可以是多种多样的。例如,在游戏场景下,配置档可以是与游戏内容相关的等级表、怪物表等等。通常,可将配置档导出为table结构的配置文件,而table结构在底层可表现为数组或哈希表两种格式。在lua中,通常是基于字段键值是否为连续数字来确定采用哪种格式的table结构。对于包含的字段键值为非连续数字的配置档,会采用哈希表格式导出配置档;而对于包含的字段键值为连续数字的配置档,才会采用数组格式导出配置档。申请人在研究过程中发现,数组的内存是连续的,可按照数组索引编号(1..n)来存储元素内容(配置信息)。而哈希表则可使用key-value的方式来存储数据(配置信息),但是通常需要占用两倍于数据本身大小的内容来降低哈希碰撞的概率。因此,哈希表格式相较于数组格式需要占用更多的内存。为了有效的压缩内容,本实施例提出,在配置档中的至少一个字段键值为非连续数字的情况下,仍将配置档导出为数组格式的配置文件,而不再导出为哈希表格式的配置文件,以最大限度的使用数组方式来压缩内存占用量。在本实施例的步骤100中,可响应于游戏配置档导出指令,获取待导出的配置档。其中,lua为一种脚本语言,对于采用lua作为脚本语言的各种应用程序来说,可使用编辑器编辑配置档。例如,可采用excel格式编辑配置档如下:等级描述升级经验1新手10022003300上述配置档中包含3条配置记录,“等级”、“描述”、“升级经验”为配置档中的字段键值,每条配置记录分别在各字段键值下存在配置信息。例如,第一条配置记录在“升级经验”下的配置信息为“100”。本实施例中,可在游戏配置档导出指令的触发下,获取上述的配置档。当然,除了可采用excel格式外,还是采用其它编辑格式来编辑配置档,本实施例中对配置档的编辑格式不做限定。另外,本实施例中,对游戏配置档导出指令的来源也不做限定,游戏配置档导出指令可来源于用户操作等。在配置档中的至少一个字段键值为非连续数字的情况下,在步骤101中,可为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系。例如,针对上述示例性的配置表,可将连续的数组索引编码1、2、3分配给字段键值“等级”、“描述”和“升级经验”。这可将配置档中的至少一个字段键值,转化为连续的数值索引编码,也即是连续的数字,因此,符合了数组格式的导出要求。在此基础上,步骤102中,可按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件。在该步骤中,以配置档中至少一个字段键值各自对应的数组索引编码为依据,可按照与配置档中至少一个字段键值为连续数字的导出方案,将配置档导出为数组格式的配置文件。配置文件可作为后续的配置信息查询阶段中的查询基础。为了支持配置信息查询功能,在步骤103中,还可将步骤102中构建出的数组索引编码与键值之间的映射关系配置到配置文件对应的元表中。其中,元表为table结构的操作指南,元表中可包含多种元方法。本实施例中,可将数组索引编码与键值之间的映射关系写入元表包含的__index方法中,以在__index方法中定义索引失败的情况下的查询路径。具体的查询过程将在后文中进行详述。据此,本实施例中,在待导出的配置档包含的字段键值为非连续数字的情况下,不再按照哈希表格式导出配置档。而是可为所述至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系,并按照所述至少一个字段键值各自对应的数组索引编码,将所述配置档导出为数组格式的配置文件;将所述映射关系配置到所述配置文件对应的元表中。据此,本实施例中,对于包含的字段键值为非连续数字的配置档,仍可按照数组格式进行导出,从而可更多地采用数组格式导出配置档,而由于数组格式相较于哈希表格式占用的内存更小,因此,可有效压缩配置档占用的内存。在上述或下述实施例中,可采用多种实现方式为至少一个字段键值分配连续的数组索引编码。在一种可选的实现方式中,可分别统计至少一个字段键值下的资源使用热度;基于资源使用热度对至少一个字段键值进行排序;按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值。其中,以配置档中的第一字段键值为例,确定资源使用热度的方案可以是:确定在第一字段键值下配置信息不为空的目标配置记录;根据确定出的目标配置记录的数量,确定第一字段键值下的资源使用热度。第一字段键值可以是配置档中的至少一个字段键值中的任意一个。在该实现方式中,可按照资源使用热度从高到低的顺序,对至少一个字段键值进行排序,并按照至少一个字段键值的顺序,将递增的数字索引编码依次分配给至少一个字段键值。也即是,在该实现方式中,对配置档中的至少一个字段键值进行了重排序,并将重排序后的至少一个字段键值与递增的数字索引编码建立映射关联。例如,在前述的示例性配置档中,字段键值“等级”下存在3个不为空的配置信息、“描述”下存在1个不为空的配置信息、“升级经验”下存在3个不为空的配置信息,则重排序后的字段键值的顺序为:“等级”、“升级经验”、“描述”,若数组索引编码为1、2、3,则为“等级”分配数组索引编码1,为“升级经验”分配数组索引编码2,为“描述”分配数组索引编码3。从而构建出如下的映射关系:字段键值数组索引编码等级1升级经验2描述3据此,可为配置档中的至少一个字段键值分配连续的数组索引编码,而且,可按照数组索引编码,对至少一个字段键值进行重排序,这使得在进行配置档导出的过程中,可将更多的为空的配置信息安排在数组的尾部并不在需要对这类配置信息进行存储,以节省内存占用量。在此基础上,可将上述的映射关系写入为配置档导出的配置文件的元表中。当然,本实施例中,还可采用其它实现方式来为配置档中的至少一个字段键值分配连续的数组索引编码。例如,按照至少一个字段键值的原始顺序,分配数组索引编码等,本实施例并不限于此。在上述或下述实施例中,可按照配置档中至少一个字段键值重排序后的顺序,将配置档导出为数组格式的配置文件。本实施例中,可为配置档包含的至少一条配置记录分别导出对应的数组。由于不同配置记录的数组导出过程类似,以下以第一配置记录为例,进行导出过程的说明,应当理解的是,第一配置记录可以是配置档包含的至少一条配置记录中的任意一条。本实施例中,可根据至少一个字段键值各自对应的数组索引编码以及第一配置记录中各配置信息所属的字段键值,确定第一配置记录中各配置信息对应的数组索引编码;按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组。申请人在研究过程中发现,单条配置记录中,经常出现在一个或多个字段键值下的配置信息为空的情况,为此,本实施例中,若第一配置记录在第一字段键值下的配置信息为空,则可判断第一配置记录在第一字段键值之后的其它字段键值下的配置信息是否全部为空。若判断结果为否,则可在第一配置记录对应的数组中,将第一配置记录在第一配置记录下的配置信息记录为nil结构;而若判断结果为是,则可不再第一配置记录在第一配置记录下的配置信息。其中,至少一个字段键值按照其对应的数组索引编码排列。还是以前述的示例性配置档为例,对于第一条配置记录,可为其生成对应的数组为{1,100,新手};对于第二条配置记录,可为其生成对应的数组为{2,200};对于第三条配置记录,可为其生成对应的数组为{3,300}。其中,第二条和第三条配置记录在字段键值“描述”下的配置信息均为空,而且经过重排序后,字段键值“描述”满足“之后的其它字段键值下的配置信息是否全部为空”这一无需存储的条件,因此,在对应的数组中,不再存储第二条和第三条配置记录在“描述”下的配置信息。据此,按照重排序后的字段键值数组导出的方案,与不进行重排序而进行数组导致的方案相比,根据不同配置记录中包含的为空的配置信息的多少,可不同程度地节约为空的配置信息所占用的内存。符合前述的无需存储的条件的配置信息越多,节省的内存越多。另外,正如前述实施例中提及的,可对配置档中的至少一条配置记录分别导出数组。可选地,本实施例中,可为至少一条配置记录分别维护元表,并至少一条配置记录分别维护元表分别写入数组索引编码与字段键值之间的映射关系。对于不同的配置记录对应的元表中的映射关系可能存在细微差别,差别在于:重排序后的字段键值中,配置信息连续为空的最后一个或多个字段键值可无需写入映射关系中。在上述或下述实施例中,可接收配置信息查询请求,配置信息查询请求中包含目标配置记录的标识和目标字段键值;若在配置文件中未查询到目标字段键值,则根据配置文件的元表中包含的数组索引编码与键值之间的映射关系,确定目标字段键值对应的目标数据索引编码;查询目标配置记录对应的数组中位于目标数据索引编码下的配置信息,作为查询结果。本实施例中,用户可按原始的查询方式,在查询请求中指定需要查询的目标配置记录以及目标字段键值。对于配置档中的至少一个字段键值为非连续数字的情况,按照本实施例提供的游戏配置档导出方案已经导出为数组格式的配置文件。因此,在接收到配置信息查询请求时,由于配置文件中不再是key-value的哈希表格式,因此,并无法在配置文件中查找到目标字段键值。在这种情形下,将触发对配置文件的元表查询机制。结合前述实施例可知,数组索引编码与字段键值之间的映射关系已经配置在配置文件对应的元表中,在此基础上,本实施例中,可查询配置文件的元表,以确定目标字段键值对应的数组索引编码,从而确定出所需的配置信息在数组中的位置,进而可从数组中找到正确的配置信息。正如前述实施例中提及的,可为配置档中的至少一条配置记录分别维护元表,基于此,本实施例中,可查询目标配置文档对应的元表,以确定目标字段键值对应的数组索引编码,从而更快速地查询到所需的配置信息。据此,本实施例中,可按照原始的查询方式,以目标配置记录和目标掉落id字段键值为查询依据,从按照本实施例导出的配置文件中,准确地查询到所需的配置信息。在使用感受上,用户无需改变查询方式,因此,感知不到本实施例中配置文件的变化,而在内存占用量上,本实施例中配置文件的内存占用量大大减少,可有效节省内存。以下以游戏场景中的怪物配置档为例,进行配置档导出以及查询方案的说明。怪物配置档如下:其中,该配置档中的字段键值包括“id”、“名称”、“等级”、“技能名”和“掉落经验值”。该配置档中包含3条配置记录,每条配置记录在各字段键值下的配置信息不再详述,例如,第一条配置信息在“名称”下的配置信息为“老虎”。由于该配置档中的字段键值为非连续的数字,因此,按照传统的导出方案,导出的配置文件(哈希表格式的table结构)为:localmonsterconfig={[1]={id=“1000”,name=“老虎”,level=0,skill=“猛扑”},[2]={id=“1001”,level=1,skill=“怒吼”},[3]={id=“1002”,level=2,skill=“猛扑”,drop=3000}}本实施例摒弃了这种哈希表格式的配置文件,而是,将该配置档导出为数组格式的配置文件,导出的过程为:遍历该配置档,统计每个字段键值下不为空的配置信息的数量,例如,“名称”下的数量为1,而“等级”下的数量为3。以及统计出的数量,确定每个字段键值的资源使用热度,统计出的数量越多,资源使用热度越高。并按照资源使用热度对该配置档中的字段键值进行重排序。重排序后的字段键值顺序为:“id”>“等级”>“技能名”>“名称”>“掉落经验值”。按照重排序后的顺序,为字段键值分配连续的数组索引编码,构建数组索引编码和字段键值之间的映射关系如下:以“等级”例,可按照以下方式,实现映射关系的构建:localkeytoindex={level=1}localindex=keytoindex[“level”]locallevel=config[index]这样,可基于字段键值对应的数组索引编码,确定字段键值在导出的数组中的位置,从而将配置档导出为数组格式的配置文件。可采用以下方案导出配置文件:localmonsterconfig={[0]={1000,0,“猛扑”,“老虎”},[1]={1001,1,“怒吼”},[2]={1002,2,“震地”,nil,3000}其中,配置记录中最后连续为空的配置信息无需导出至数组中。而,非连续为空的配置信息则导出为nil结构。而且,还可按照以下方式,将上述的映射关系配置到配置文件的元表中:localkeytoindex={id=0,level=1,skill=2,name=3,drop=4}localmetatable={__index=function(t,k)returnrawget(t,keytoindex[k])end}其中,k表示字段键值,t表示配置记录。据此,可将映射关系配置到元表中的__index元方法中。至此,完成了配置档的导出过程。在查询过程中,用户可在查询请求中指定目标配置记录和目标字段键值。例如,期望查询被3级的老虎攻击会掉落多少经验值,则可在查询请求中指定目标配置记录config[2],指定目标字段键值drop。据此,可从config[2]对应的元表中,查询drop对应的数组索引编码,如上文记载的,drop对应的数组索引编码为4,则查询请求将转换为数组的查询格式config[2].4,也即是,查询配置记录config[2]对应的数组中的第4个元素的元素值,作为查询结果,而config[2]对应的数组中的第4个元素的元素值为3000。因此,可将3000作为查询结果。这样,对于配置表中的字段键值为非连续数字的情况,依然可将配置档导出为数组格式的配置文件,这与传统的需将配置档导出为哈希表格式的配置文件的方案相比,可有效压缩内存占用量;而且,用户对配置文件的改变并无感知,因此,并无需改变原始的查询习惯。需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的字段键值、配置记录等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。前述实施例提供的轨迹生成方法可以由一游戏配置档导出装置来执行,图3为本申请一示例性实施例提供的一种游戏配置档导出装置的结构示意图。参考图3,该游戏配置档导出装置可包括:获取模块30,设置为响应于游戏配置档导出指令,获取待导出的配置档;构建模块31,设置为若配置档中的至少一个字段键值为非连续数字,则为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;导出模块32,设置为按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件;写入模块33,设置为将映射关系配置到配置文件对应的元表中。在一可选的实施例中,构建模块31在为至少一个字段键值分配连续的数组索引编码时,用于:分别统计至少一个字段键值下的资源使用热度;基于资源使用热度对至少一个字段键值进行排序;按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,构建模块31在分别统计至少一个字段键值下的资源使用热度时,用于:确定在第一字段键值下配置信息不为空的目标配置记录;根据确定出的目标配置记录的数量,确定第一字段键值下的资源使用热度;其中,第一字段键值为至少一个字段键值中的任意一个。在一可选的实施例中,构建模块31在基于资源使用热度对至少一个字段键值进行排序时,用于:按照资源使用热度从高到低的顺序,对至少一个字段键值进行排序。按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值时,用于:按照至少一个字段键值的顺序,将递增的数字索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,还包括查询模块34,查询模块34用于:接收配置信息查询请求,配置信息查询请求中包含目标配置记录的标识和目标字段键值;若在配置文件中未查询到目标字段键值,则根据配置文件的元表中包含的数组索引编码与键值之间的映射关系,确定目标字段键值对应的目标数据索引编码;查询目标配置记录对应的数组中位于目标数据索引编码下的配置信息,作为查询结果。在一可选的实施例中,导出模块32在按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件时,用于:根据至少一个字段键值各自对应的数组索引编码以及第一配置记录中各配置信息所属的字段键值,确定第一配置记录中各配置信息对应的数组索引编码;按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组;其中,第一配置记录为至少一条配置记录中的任意一条。在一可选的实施例中,导出模块32在按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组时,用于:若第一配置记录在第一字段键值下的配置信息为空,则判断第一配置记录在第一字段键值之后的其它字段键值下的配置信息是否全部为空;若否,则在第一配置记录对应的数组中,将第一配置记录在第一配置记录下的配置信息记录为nil结构;其中,至少一个字段键值按照其对应的数组索引编码排列。值得说明的是,上述关于游戏配置档导出装置各实施例中的技术细节,可参考前述的游戏配置档导出方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。前述实施例中的游戏配置档导出装置可以实现为软件或实现为软件和硬件的组合,该游戏配置档导出装置可集成设置在计算设备中。图4为本申请一示例性实施例提供的一种计算设备的结构示意图,参考图4,该计算设备包括:存储器40和处理器41。存储器40,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器40可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。处理器41,与存储器40耦合,用于执行存储器40中的计算机程序,以用于:响应于游戏配置档导出指令,获取待导出的配置档;若配置档中的至少一个字段键值为非连续数字,则为至少一个字段键值分配连续的数组索引编码,以构建数组索引编码与键值之间的映射关系;按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件;将映射关系配置到配置文件对应的元表中。在一可选的实施例中,处理器41在为至少一个字段键值分配连续的数组索引编码时,用于:分别统计至少一个字段键值下的资源使用热度;基于资源使用热度对至少一个字段键值进行排序;按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,处理器41在分别统计至少一个字段键值下的资源使用热度时,用于:确定在第一字段键值下配置信息不为空的目标配置记录;根据确定出的目标配置记录的数量,确定第一字段键值下的资源使用热度;其中,第一字段键值为至少一个字段键值中的任意一个。在一可选的实施例中,处理器41在基于资源使用热度对至少一个字段键值进行排序时,用于:按照资源使用热度从高到低的顺序,对至少一个字段键值进行排序。按照至少一个字段键值的顺序,将连续的数组索引编码依次分配给至少一个字段键值时,用于:按照至少一个字段键值的顺序,将递增的数字索引编码依次分配给至少一个字段键值。在一可选的实施例中,配置档包含至少一条配置记录在至少一个字段键值下的配置信息,处理器41还用于:接收配置信息查询请求,配置信息查询请求中包含目标配置记录的标识和目标字段键值;若在配置文件中未查询到目标字段键值,则根据配置文件的元表中包含的数组索引编码与键值之间的映射关系,确定目标字段键值对应的目标数据索引编码;查询目标配置记录对应的数组中位于目标数据索引编码下的配置信息,作为查询结果。在一可选的实施例中,处理器41在按照至少一个字段键值各自对应的数组索引编码,将配置档导出为数组格式的配置文件时,用于:根据至少一个字段键值各自对应的数组索引编码以及第一配置记录中各配置信息所属的字段键值,确定第一配置记录中各配置信息对应的数组索引编码;按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组;其中,第一配置记录为至少一条配置记录中的任意一条。在一可选的实施例中,处理器41在按照第一配置记录中各配置信息对应的数组索引编码,生成第一配置记录对应的数组时,用于:若第一配置记录在第一字段键值下的配置信息为空,则判断第一配置记录在第一字段键值之后的其它字段键值下的配置信息是否全部为空;若否,则在第一配置记录对应的数组中,将第一配置记录在第一配置记录下的配置信息记录为nil结构;其中,至少一个字段键值按照其对应的数组索引编码排列。进一步,如图4所示,该计算设备还包括:通信组件42、电源组件43等其它组件。图4中仅示意性给出部分组件,并不意味着计算设备只包括图4所示组件。值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的游戏配置档导出方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。上述图4中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。上述图4中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips