数据查找的方法及装置的制作方法

文档序号:6464404阅读:146来源:国知局
专利名称:数据查找的方法及装置的制作方法
技术领域
本发明涉及网络通信领域,尤其涉及一种数据查找的方法及装置。
背景技术
随着通信技术的发展,网络在人们的日常工作、生活中占据了日益重要 的位置。在网络中,常常需要对网络中的地图进行数据查找。下面,以网络
游戏为例,说明对网络中的地图进行数据查找的方法对非玩家控制角色(Non Player Character, NPC )分配相应数量的变量;根据接收到的对NPC进行读 写的指令,查找指令对应的变量,变量用于记录该NPC在游戏地图中的状态、 位置、身份等信息的参数。
在实现本发明的过程中,发明人发现采用变量记录NPC的参数的方法, 当游戏地图中NPC数量越来越多时,相应需要增加变量,不断增加的变量将 占用大量的系统内容,从而影响游戏的运行效率。同样的,在其他网络系统 中,采用变量记录地图中点的数据,会消耗系统的内存,当变量数量较多时, 对系统内存的占用较多,从而影响到系统的运行效率。

发明内容
本发明的目的在于提供一种数据查找的方法及装置,节省系统的资源。
本发明提供一种数据查找的方法,该方法包括
接收数据的读写指令,所述读写指令包括标识和操作内容;
通过所述读写指令中的标识查找状态表中的标识;
如果所述状态表中的标识与所述读写指令中的标识匹配,则以状态表中 匹配的标识作为查找结果;
如果所述状态表中的标识与所述读写指令中的标识不匹配,则分解所述 读写指令中的标识;通过分解后的部分标识查找状态表中的标识,并以状态 表中匹配的标识作为查找结果。
进一步的,该方法还包括根据所述读写指令中的操作内容更新所述状态表中查找结果的状态。 进一步的,所述分解所述读写指令中的标识包括
将所述读写指令中的标识按照层次关系分解成第 一级标识和第二级标识。
进一步的,所述通过分解后的部分标识查找状态表中的标识包括 查找所述状态表中的标识是否包含所述第 一级标识。 进一步的,所述以状态表中匹配的标识作为查找结果包括 将所述状态表中包含所述第一级标识的所有标识作为查找结果。 进一步的,当查找结果包括两个或两个以上状态表中的标识时,根据所
述读写指令中的操作内容更新所述状态表中查找结果的状态包括
如果所述操作内容中包括一项操作,则将查找结果中的每个状态表中的
标识的状态更新为该项」操作对应的状态;
如果所述操作内容中包括两项或两项以上的操作,则将查找结果中的每
个状态表中的标识的状态更新为所述两项或两项以上的4喿作对应的状态。 本发明还提供一种数据查找的装置,该装置包括
接收单元,用于接收数据的读写指令,所述读写指令包括标识和操作内
容;
存储单元,用于存储状态表;
查找单元,用于通过所述接收单元接收的读写指令中的标识查找所述存 储单元存储的状态表中的标识;如果所述状态表中的标识与所述读写指令中 的标识匹配,则以状态表中匹配的标识作为查找结果;如果所述状态表中的 标识与所述读写指令中的标识不匹配,则分解所述读写指令中的标识;通过 分解后的部分标识查找状态表中的标识,并以状态表中匹配的标识作为查找 结果。
进一步的,该装置还包括
更新单元,用于根据所述接收单元接收的读写指令中的操作内容更新所 述存储单元存储的状态表中查找结果的状态。 进一步的,所述查找单元包括分解子单元,用于将所述接收单元接收的读写指令中的标识按照层次关 系分解成第 一级标识和第二级标识;
查找子单元,用于查找所述存储单元存储的状态表中的标识是否包含所 述分解子单元分解得到的第 一级标识;
结果子单元,用于将所述查找子单元查找到的状态表中包含所述第一级 标识的所有标识作为查找结果。
进一步的,当查找结果包括两个或两个以上状态表中的标识时,所述更 新单元包括
判断子单元,用于判断所述接收单元接收的操作内容中包括一项操作还 是包括两项或两项以上的操作;
更新子单元,用于当所述判断子单元判读"l喿作内容中包括一项操作,将 查找结果中的每个状态表中的标识的状态更新为该项操作对应的状态;当所 述判读子单元判断操作内容中包括两项或两项以上的操作,将查找结果中的
每个状态表中的标识的状态更新为所述两项或两项以上的操作对应的状态。
现有技术中采用变量记录地图中点的数据,随着点的数量增加,变量占 用内存较多,当地图中需要记录海量点的数据,尤其当地图包括多个子地图, 点的数量更为庞大,本发明采用状态表记录点的数据,状态表所占用内存一 定,即使地图中有海量点的数据,对于内存的消耗一定,从而即节省资源, 又保证系统的运行效率。
同时,现有技术中一次仅能查找到一个点的数据,本发明可以通过对标 识进行分解,采用部分标识查找的方式, 一次查找到多个点,可以快速地进 行大量数据的查找,提高查找速度和效率。


图1是本发明实施例一中数据查找的方法的流程示意图; 图2是本发明实施例二中的层级示意图; 图3是本发明实施例二中数据查找的方法的流程示意图; 图4是本发明实施例五中数据查找的装置的结构示意图。
具体实施例方式
下面结合附图对本发明实施例的具体实施方式
做进一步的详细阐述。
实施例一, 一种数据查找的方法,请参阅图1,该方法包括
101、 接收数据的读写指令,读写指令包括标识和才喿作内容。
102、 通过读写指令中的标识查找状态表中的标识。
状态表所占用内存一定,状态表可以包括一副地图的点的数据,也可以 包括两幅或两幅以上的地图的点的数据。
103、 如果状态表中的标识与读写指令中的标识匹配,则以状态表中匹配 的标识作为查找结果。
例如,读写指令中的标识是"一级城市",状态表中的标识是"一级城 市",则将状态表中的标识"一级城市,,作为查找结果。
104、 如果状态表中的标识与读写指令中的标识不匹配,则分解读写指令 中的标识;通过分解后的部分标识查找状态表中的标识,并以状态表中匹配 的标识作为查找结果。
其中,分解读写指令中的标识可以包括
将读写指令中的标识按照层次关系分解成第一级标识和第二级标识。 例如,读写指令中的标识是"一级城市下的所有建筑物,,,状态表中的 标识是"一级城市"、"一级城市下的邮局"、"一级城市下的医院"、"二级城 市"等等,状态表中的标识与读写指令中的标识都不匹配,则将读写指令中 的标识按照层次关系分解成第一级标识"一级城市下的,,和第二级标识"所 有建筑物"。
进一步的,通过分解后的部分标识查找状态表中的标识可以包括
查找状态表中的标识是否包含第 一级标识。
进一步的,以状态表中匹配的标识作为查找结果可以包括
将状态表中包含第 一级标识的所有标识作为查找结果。
例如,状态表中的"一级城市下的邮局"、"一级城市下的医院"都包含
第一级标识"一级i成市下的",那么,"一级;成市下的邮局"、"一级;成市下的
医院"都作为查找结果。进一步的,该方法还可以包括
105、根据读写指令中的操作内容更新状态表中查找结果的状态。
其中,当查找结果包括两个或两个以上状态表中的标识时,根据读写指 令中的操作内容更新状态表中查找结果的状态可以包括
如果操作内容中包括一项操作,则将查找结果中的每个状态表中的标识 的状态更新为该项操作对应的状态;
如果操作内容中包括两项或两项以上的操作,则将查找结果中的每个状 态表中的标识的状态更新为两项或两项以上的4喿作对应的状态。
例如,"一级城市下的邮局"、"一级城市下的医院,,都作为查找结果;如 果操作内容中包括一项操作隐藏,那么将"一级城市下的邮局"的状态更 新为隐藏、"一级城市下的医院,,的状态也更新为隐藏。
或者,"一级城市下的邮局"、"一级城市下的医院,,都作为查找结果;如 果操作内容中包括两项操作邮局加盖、医院隐藏,那么将"一级城市下的 邮局"的状态更新为加盖、"一级城市下的医院"的状态更新为隐藏。
现有技术中采用变量记录地图中点的数据,随着点的数量增加,变量占 用内存较多,当地图中需要记录海量点的数据,尤其当地图包括多个子地图, 点的数量更为庞大的,本实施例采用状态表记录点的数据,状态表所占用内 存一定,即使地图中有海量点的数据,对于内存的消耗一定,从而即节省资 源,又保证系统的运行效率。同时,现有技术中一次仅能查找到一个点的数 据,本实施例可以通过对标识进4亍分解,釆用部分标识查找的方式, 一次查 找到多个点,甚至可以一次查找到多幅地图中的多个点,^v而实现快速地进 行大量数据的查找,提高查找速度和效率。
实施例二,本实施例是实施例一的方法在网络游戏中的具体应用。 在开发阶段,在状态平台的状态表中,将不同的NPC赋予各种不同的标
识,只要知道一皮赋予了什么标识,就可以*接照标识的分类找到NPC。例如,可
以将NPCU武予领主、子领主的标识。
从技术角度讲系统是通过在不同地图上,NPC被分配的状态来找到他们的,因为在服务器加载地图的时候,NPC已经根据策划或程序在状态平台
中填写的表格被定义为地图领主l号,地图领主2号等。
这样的话,就好像这些NPC被分配了地址一样。想要找到这些NPC,只 要执行状态平台设定的状态搜索或状态发送,就能快速给被分配状态的NPC 一个具体的信息。这些信息可以是游戏允许的任何状态。如图3
从玩家理解角度讲假如一个玩家进入一副地图寻找一个随时变换位置 或不知道位置的NPC时,他只需使用某些任务给予的道具,就能在地图上显 示出该NPC的位置。
原理就是这个特定的NPC被置成领主,而道具是使用后可以在任意地 方直接给该领主发送信息的。信息的内容可以是让该领主NPC显示位置,或 者是隐藏起来,或者是变个样子等多种状态。
除了将NPC置成领主,还可以置成子领主,子领主属于领主下一层的标 识,领主和子领主的层级关系请参阅图2,想要给所有这些NPC发送信息, 只需要一个指令,如给该地图所有子领主增加变身状态。
另外,根据不同功能人物的需要,只要在给特定NPC发送信息前,加上 地图编号的条件,就可以实现在任意地图就能够对任意地图NPC发送信息的 方法。例如,请参阅图3,通过一条读写指令,对地图1和地图4中的领主和 四个子领主同时进行读写。使用了本实施例的方法后,寻找特定的NPC变得 快速而简便。
实施例三,本实施例是实施例二在具体网络游戏中的 一种应用。
例如,在网络游戏《封神榜n》东海龙宫副本中,该功能设计的玩法是,
玩家进入一个场景中,该场景地图上有5个NPC法坛,属性分别是金木水火
土。要求玩家按照顺序击破法坛,而每次玩家进入后,金木水火土法坛的顺 序都会改变。击破金法坛后,木法坛才可以净皮攻击,以此类推。
技术角度
首先在地图上^^5个点来安置5个NPC,为了游戏需要,5个NPC每次 刷出的位置是不固定的。需要在系统中找到这5个NPC并给他们加上金木水 火土的属性。这时候,只要将这5个NPC分别定义为子领主0—4号,再在状态平台 上规定0—4号NPC在服务器加载时被分配金木水火土等属性。
这样,玩家在寻找到随机位置的金法坛后,金法坛(子领主0号)就会 给子领主1号木法坛发信息,通知它可以被攻击了。而此时系统不需要知道 木法坛到底在地图的什么位置,因为系统只需要找到地图子领主1号即可。
玩家角度
玩家每次游戏的时候,金木水火土法坛的位置都是未知的,每次体验游 戏都有新鲜感,而每次破坏完金法坛再能破坏木法坛的设定也完全按照我们 的设计进行。不需要程序写大段代码也不需要分配变量给这些NPC记录状态。
实施例四,本实施例是实施例二在具体网络游戏中的另 一种应用。
例如在网络游戏《封神榜II》的国战系统中,大量应用了地图领主子 领主的技术来达到方便快速与NPC互动的目的。
每一座国战城市都有7个建筑物(NPC)其中镇国木为地图的领主NPC, 其他6个建筑物为子领主NPC。当宣战方玩家到达对方地图后,可以^使用宣 战道具。该道具的作用是直接给该地图的领主发送信息,通知它已经宣战。 而宣战方的玩家只需要使用 一个道具,无需对地图上任何NPC估支出操作就可 以影响该地图的某个特定NPC。
其后,当防守方的领主NPC接收到宣战方的宣战信息后,会同时将该信 息传递给地图的子领主6个建筑物NPC,并将跨数副地图传递该信息给宣战 方的地图领主表示自己接受宣战。
所有这些过程,都是因为这些NPC在服务器加载时将自己定义为地图的 领主或者子领主。当这一切完成的时候,对这些NPC的寻找和操作变得异常 方便。既不需要写大段的程序代码,又不用分配大量的变量。
实施例五,本实施例是实施例一的方法的执行主体,该主体可以独立设 置,也可以集成在网络设备,例如游戏平台中。
一种数据查找的装置,请参阅图4,该装置包括
接收单元401,用于接收数据的读写指令,读写指令包括标识和操:作内容;存储单元402,用于存储状态表;
查找单元403,用于通过接收单元接收的读写指令中的标识查找存储单元 存储的状态表中的标识;如果状态表中的标识与读写指令中的标识匹配,则 以状态表中匹配的标识作为查找结果;如果状态表中的标识与读写指令中的 标识不匹配,则分解读写指令中的标识;通过分解后的部分标识查找状态表 中的标识,并以状态表中匹配的标识作为查找结果。
进一步的,该装置还包括
更新单元404,用于根据接收单元接收的读写指令中的操作内容更新存储 单元存储的状态表中查找结果的状态。 进一步的,查找单元403包括
分解子单元403-1,用于将接收单元接收的读写指令中的标识按照层次关 系分解成第 一级标识和第二级标识;
查找子单元403-2,用于查找存储单元存储的状态表中的标识是否包含分 解子单元分解得到的第 一级标识;
结果子单元403-3,用于将查找子单元查找到的状态表中包含第一级标识 的所有标识作为查找结果。
进一步的,当查找结果包括两个或两个以上状态表中的标识时,更新单 元404包括
判断子单元404-1 ,用于判断接收单元接收的操作内容中包括一项操作还 是包括两项或两项以上的梯:作;
更新子单元404-2,用于当判断子单元判读操作内容中包括一项操作,将 查找结果中的每个状态表中的标识的状态更新为该项操作对应的状态;当判 读子单元判断操作内容中包括两项或两项以上的操作,将查找结果中的每个
状态表中的标识的状态更新为两项或两项以上的4喿作对应的状态。
现有技术中采用变量记录地图中点的数据,随着点的数量增加,变量占 用内存较多,当地图中需要记录海量点的数据,尤其当地图包括多个子地图, 点的数量更为庞大的,本实施例采用存储单元存储的状态表记录点的数据, 状态表所占用内存一定,即使地图中有海量点的数据,对于内存的消耗一定,从而即节省资源,又保证系统的运行效率。同时,现有技术中一次仅能查找 到一个点的数据,本实施例可以通过查找单元对标识进行分解,采用部分标 识查找的方式, 一次查找到多个点,甚至可以一次查找到多幅地图中的多个 点,从而实现快速地进行大量数据的查找,提高查找速度和效率。
本发明实施例中的"接收" 一词可以理解为主动从其他模块获取也可以 是接收其他模块发送来的信息。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的 模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述 分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的 一个或 多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成 多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来 实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者 部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介
质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设 备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例 或者实施例的某些部分所述的方法。
以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种数据查找的方法,其特征在于,该方法包括接收数据的读写指令,所述读写指令包括标识和操作内容;通过所述读写指令中的标识查找状态表中的标识;如果所述状态表中的标识与所述读写指令中的标识匹配,则以状态表中匹配的标识作为查找结果;如果所述状态表中的标识与所述读写指令中的标识不匹配,则分解所述读写指令中的标识;通过分解后的部分标识查找状态表中的标识,并以状态表中匹配的标识作为查找结果。
2、 根据权利要求1所述的方法,其特征在于,该方法还包括 根据所述读写指令中的操作内容更新所述状态表中查找结果的状态。
3、 根据权利要求1所述的方法,其特征在于,所述分解所述读写指令中 的标识包4舌将所述读写指令中的标识按照层次关系分解成第一级标识和第二级标识。
4、 才艮据权利要求3所述的方法,其特征在于,所述通过分解后的部分标 识查找状态表中的标识包括查找所述状态表中的标识是否包含所述第一级标识。
5、 根据权利要求4所述的方法,其特征在于,所述以状态表中匹配的标 识作为查找结果包括将所述状态表中包含所述第 一级标识的所有标识作为查找结果。
6、 根据权利要求2至5任一项所述的方法,其特征在于,当查找结果包 括两个或两个以上状态表中的标识时,根据所述读写指令中的操作内容更新 所述状态表中查找结果的状态包括如果所述操作内容中包括一项操作,则将查找结果中的每个状态表中的 标识的状态更新为该项操作对应的状态;如果所述操作内容中包括两项或两项以上的操作,则将查找结果中的每个状态表中的标识的状态更新为所述两项或两项以上的#:作对应的状态。
7、 一种数据查找的装置,其特征在于,该装置包括接收单元,用于接收数据的读写指令,所述读写指令包括标识和操作内容;存储单元,用于存储状态表;查找单元,用于通过所述接收单元接收的读写指令中的标识查找所述存 储单元存储的状态表中的标识;如果所述状态表中的标识与所述读写指令中 的标识匹配,则以状态表中匹配的标识作为查找结果;如果所述状态表中的 标识与所述读写指令中的标识不匹配,则分解所述读写指令中的标识;通过 分解后的部分标识查找状态表中的标识,并以状态表中匹配的标识作为查找 结果。
8、 根据权利要求7所述的装置,其特征在于,该装置还包括 更新单元,用于根据所述接收单元接收的读写指令中的操作内容更新所述存储单元存储的状态表中查找结果的状态。
9、 根据权利要求7所述的方法,其特征在于,所述查找单元包括 分解子单元,用于将所述接收单元接收的读写指令中的标识按照层次关系分解成第 一级标识和第二级标识;查找子单元,用于查找所述存储单元存储的状态表中的标识是否包含所 述分解子单元分解得到的第 一级标识;结果子单元,用于将所述查找子单元查找到的状态表中包含所述第一级 标识的所有标识作为查找结果。
10、 根据权利要求8或9所述的装置,其特征在于,当查找结果包括两 个或两个以上状态表中的标识时,所述更新单元包括判断子单元,用于判断所述接收单元接收的操作内容中包括一项操作还 是包括两项或两项以上的纟喿作;更新子单元,用于当所述判断子单元判读操作内容中包括一项操作,将述判读子单元判断操作内容中包括两项或两项以上的操作,将查找结果中的 每个状态表中的标识的状态更新为所述两项或两项以上的操:作对应的状态。
全文摘要
本发明公开了一种数据查找的方法及装置,其中数据查找的方法包括接收数据的读写指令,所述读写指令包括标识和操作内容;通过所述读写指令中的标识查找状态表中的标识;如果所述状态表中的标识与所述读写指令中的标识匹配,则以状态表中匹配的标识作为查找结果;如果所述状态表中的标识与所述读写指令中的标识不匹配,则分解所述读写指令中的标识;通过分解后的部分标识查找状态表中的标识,并以状态表中匹配的标识作为查找结果。采用状态表记录点的数据,状态表所占用内存一定,即使地图中有海量点的数据,对于内存的消耗一定,从而即节省资源,又保证系统的运行效率。
文档编号G06F17/30GK101295318SQ200810115469
公开日2008年10月29日 申请日期2008年6月24日 优先权日2008年6月24日
发明者津 赵 申请人:北京金山软件有限公司;北京金山数字娱乐科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1