首页> 中国专利> 网络游戏系统中的角色数据管理装置和方法

网络游戏系统中的角色数据管理装置和方法

摘要

本发明公开了一种网络游戏系统中的角色数据管理装置及角色数据管理方法,所述网络游戏系统对角色进行分区运行,本发明包括大区角色管理模块和至少二个分区角色管理模块,大区角色管理模块用于转发源分区角色管理模块和目的分区角色管理模块之间的角色数据转移信息;分区角色管理模块用于管理本分区内的角色数据;在转移角色数据时,发送转出的角色数据给大区角色管理模块,由大区角色管理模块将所述角色数据转入到目的分区角色管理模块;当接收到大区角色管理模块转入的角色数据时,在本分区内创建所转入的角色数据。利用本发明,可以实现在游戏分区之间进行角色数据的自动转移,降低游戏系统的运行维护成本。

著录项

  • 公开/公告号CN101216866A

    专利类型发明专利

  • 公开/公告日2008-07-09

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN200710304203.X

  • 发明设计人 成珀;

    申请日2007-12-26

  • 分类号G06F19/00(20060101);

  • 代理机构11228 北京汇泽知识产权代理有限公司;

  • 代理人龚建华

  • 地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2023-12-17 20:28:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-12-16

    授权

    授权

  • 2008-09-03

    实质审查的生效

    实质审查的生效

  • 2008-07-09

    公开

    公开

说明书

技术领域

本发明涉及通信网络应用技术,尤其涉及一种网络游戏系统中的角色数据管理装置和方法。

背景技术

随着网络通讯技术的飞快发展,网络游戏作为一种休闲娱乐方式已经被越来越多的人接受。网络游戏是指主要通过互联网或局域网由多人共同参与的电子计算机游戏。在目前的技术方案中,网络游戏主要通过网络游戏系统实现。目前的网络游戏系统建立在通讯网络上,包括网络侧的网络游戏服务器和终端侧的网络游戏客户端,用户可以通过网络游戏客户端建立一个或一个以上的角色,并为所建立的角色起名字,通过网络游戏客户端登陆所述网络游戏系统,按照游戏运行逻辑在虚拟世界中操作所扮演的角色。

目前的网络游戏系统可以对游戏和角色进行分区运行。也就是说,在一个分区中运行一个或一个以上的游戏逻辑,每一个分区业界一般称之为游戏分区(World),用户可以在分区中创建角色并进行游戏。一个以上的分区可以组成一个大区,业界一般称之为游戏大区(Cluster)。

角色数据是指用户在游戏中的人物资料,包括人物当前穿戴的装备、背包和仓库中存放的物品、人物等级经验、人物使用的技能等等。所有游戏逻辑最终都是围绕角色数据完成。角色数据关系到角色在游戏分区中的能力成长,与其他游戏角色之间的交互。为方便维护角色数据,通常都是将同一个游戏分区中的角色数据按照一定的拆分规则,统一存放在一个数据库的各个角色数据表中。

图1为现有网络游戏系统内某一分区的角色数据管理装置的示意图。参见图1,所述角色数据管理装置包括:

游戏运行服务器(Zone Server)101,用于处理具体的游戏逻辑。

分区注册管理模块(World Login)102,用于根据游戏运行服务器101的请求管理整个分区内的角色,包括角色创建、角色登入、角色登出、角色删除等操作逻辑。

分区角色统计数据库(All Role DB)105,用于记录本分区内角色的统计数据,其中主要包括角色ID、角色名、帐号、角色名创建时间等信息。

分区数据存取模块(World Misc)103,是所述分区注册管理模块的辅助模块,用于根据分区注册管理模块的操作指令对所述分区角色统计数据库中的角色统计数据进行存取。

分区角色数据库(Role DB)106,用于记录本分区内角色的详细数据。

角色数据服务器(Role Server)104,用于根据分区注册管理模块的操作指令对所述分区角色数据库中的角色数据进行存取。

由于一个游戏大区可以包括一个以上的游戏分区,因此目前出现了将一个游戏分区中创建的角色数据转移到另一个游戏分区,以便用户在另一游戏分区继续利用同一角色进行游戏的需求。

为了满足这个需求,现有的技术方案请参见图2。具体包括:将需要进行角色数据转移的源游戏分区和目的游戏分区的角色数据管理装置停机,即禁止用户登录游戏系统,以保证角色数据在转移过程中的一致性;然后由人工将需要转移的角色数据通过脚本批量地从源游戏分区的分区角色数据库中取出,再插入到目的游戏分区的分区角色数据库中,并将所转移的角色数据从源游戏分区的分区角色数据库中删除。

上述现有技术存在着以下缺陷:

1)由于游戏分区之间不能直接自动地进行角色数据转移,整个角色数据的转移过程需要由专业人员在游戏分区停机后通过人工操作来完成,因此无法自动实现角色数据转移,导致整个游戏系统的运行维护成本比较高。

2)为了保证角色数据在转移过程中的一致性,必须停机处理,因此在游戏运行时不能进行角色数据的转移,影响了游戏系统的正常运行。

发明内容

有鉴于此,本发明所要解决的技术问题在于提供一种网络游戏系统中的角色数据管理装置,从而实现在游戏分区之间进行角色数据的自动转移,降低游戏系统的运行维护成本。

本发明所要解决的另一技术问题在于提供一种网络游戏系统中的角色数据管理方法,从而实现在游戏分区之间进行角色数据的自动转移,降低游戏系统的运行维护成本。

为了实现上述发明目的,本发明的主要技术方案为:

一种网络游戏系统中的角色数据管理装置,所述网络游戏系统对角色进行分区运行,该装置包括大区角色管理模块和至少二个分区角色管理模块,其中:

大区角色管理模块用于转发源分区角色管理模块和目的分区角色管理模块之间的角色数据转移信息;

分区角色管理模块用于管理本分区内的角色数据;在转移角色数据时,发送转出的角色数据给大区角色管理模块,由大区角色管理模块将所述角色数据转入到目的分区角色管理模块;当接收到大区角色管理模块转入的角色数据时,在本分区内创建所转入的角色数据。

优选的,所述分区角色管理模块具体包括:

分区注册管理模块,用于接收转移指令,通知角色数据服务器获取所要转出的角色数据,发送给大区角色管理模块;同时接收大区角色管理模块转入的角色数据,通过角色数据服务器在本分区内创建所转入的角色数据;

分区角色数据库,用于记录本分区内的角色数据;

角色数据服务器,用于对所述分区角色数据库中的数据进行读写操作。

优选的,所述角色数据服务器中进一步包括:锁定模块,用于在有角色数据转出或转入时,将转出的源角色数据或转入的副本角色数据锁定,并阻止分区角色管理模块对所述处于锁定状态的角色数据进行操作。

优选的,所述角色数据服务器中进一步包括:角色数据唯一性验证模块,具体包括第一验证模块和第二验证模块,其中:

第一验证模块用于遍历本分区内处于锁定状态的源角色数据,通过分区注册管理模块和大区角色管理模块发送查询消息到目的分区角色管理模块,查询所述源角色数据对应的副本角色数据是否已经成功创建,如果是,则解除对所述源角色数据的锁定,并删除所述源角色数据;

第二验证模块用于遍历本分区内处于锁定状态的副本角色数据,通过分区注册管理模块和大区角色管理模块发送查询消息到源分区角色管理模块,查询所述副本角色数据对应的源角色数据是否删除,如果是,则解除对所述副本角色数据的锁定。

优选的,所述角色数据服务器中进一步包括自动解锁单元,用于监测本分区内处于锁定状态的源角色数据的锁定时间是否超过预定时间,如果超过,则解除对该源角色数据的锁定。

优选的,所述角色数据服务器中进一步包括第三验证模块,用于遍历本分区内处于锁定状态的副本角色数据,通过分区注册管理模块和大区角色管理模块发送查询消息到源分区角色管理模块,查询所述副本角色数据对应的源角色数据是否解除锁定,如果是,则解除对所述副本角色数据的锁定,并删除该副本角色数据。

一种网络游戏系统中的角色数据管理方法,适用于对角色进行分区运行的网络游戏系统,设置大区角色管理模块;在转移角色数据时包括:

A、源游戏分区将需要转出的角色数据发送到大区角色管理模块;

B、大区角色管理模块将所述角色数据转入到目的游戏分区;

C、目的游戏分区在本分区内创建所转入的角色数据。

优选的,在源游戏分区转出角色数据时,进一步包括:将所述转出的角色数据锁定,禁止对锁定的角色数据进行操作;

在目的游戏分区创建所转入的角色数据时,进一步包括:将创建的角色数据锁定,禁止对锁定的角色数据进行操作。

优选的,步骤C之后,进一步包括:

D、当所述目的游戏分区成功创建所转入的角色数据后,通过大区角色管理模块转发数据创建成功的消息给源游戏分区;

E、源游戏分区收到所述数据创建成功的消息后,将对应的源角色数据进行解锁,并删除源角色数据。

优选的,步骤E之后,进一步包括:

F、源游戏分区通过大区角色管理模块转发成功删除源角色数据的消息给目的游戏分区;

G、目的游戏分区收到所述成功删除源角色数据的消息后,将对应创建的副本角色数据解锁。

优选的,步骤C之后,进一步包括:源游戏分区遍历本分区内处于锁定状态的源角色数据,对于每个处于锁定状态的源角色数据,执行以下流程:

a1、通过大区角色管理模块转发查询消息到目的游戏分区,用于查询目的游戏分区是否已经成功创建源角色数据的副本;

a2、目的游戏分区将所述创建结果通过大区角色管理模块转发到源游戏分区;

a3、源游戏分区识别所返回结果的内容,当所述结果表明目的游戏分区已经成功创建所述源角色数据的副本时,对所述源角色数据解锁,并删除所述源角色数据。

优选的,该方法进一步包括:目的游戏分区遍历本分区内处于锁定状态的副本角色数据,对于每个处于锁定状态的副本角色数据,执行以下流程:

b1、目的游戏分区通过大区角色管理模块转发查询消息到源游戏分区,用于查询所述副本角色数据对应的源角色数据的状态;

b2、源游戏分区将反映所述源角色数据状态的查询结果通过大区角色管理模块返回给目的游戏分区;

b3、目的游戏分区识别所述返回查询结果的内容,当所述查询结果表明源游戏分区已经删除所述源角色数据时,对所述处于锁定状态的副本角色数据进行解锁。

优选的,源游戏分区锁定转出的角色数据后,如果锁定时间超过预定时间,则自动对该角色数据进行解锁。

优选的,进一步包括:目的游戏分区遍历本分区内处于锁定状态的副本角色数据,对于每个处于锁定状态的副本角色数据,执行以下流程:

c1、目的游戏分区通过大区角色管理模块转发查询消息到源游戏分区,用于查询所述副本角色数据对应的源角色数据的状态;

c2、源游戏分区将反映所述源角色数据状态的查询结果通过大区角色管理模块返回给目的游戏分区;

c3、目的游戏分区识别所述返回查询结果的内容,当所述查询结果表明所述源角色数据已经解锁,则对所述处于锁定状态的副本角色数据进行解锁,并删除该副本角色数据。

本发明具有以下有益效果:

一、由于本发明在游戏系统中设置大区角色管理模块,作为游戏分区之间的转移数据的中转设备,分区角色管理模块中具有自动执行的角色数据服务器和分区注册管理模块,游戏分区之间转移角色数据时,由分区角色管理模块自动获取需转出的角色数据,并由大区角色管理模块自动转发角色数据的相关转移信息,并且目的游戏分区收到转入的角色数据后,自动按照创建新角色的流程,将所述转入的角色数据创建在本游戏分区内。因此,本发明不需要人工干预,就可以实现在游戏分区之间进行角色数据的自动转移,降低游戏系统的运行维护成本。而且,所述角色数据的转移过程不需要专业人员在系统后台进行,用户可以在系统前台自主地进行角色数据转移操作,从而方便了用户操作,增强了用户的体验感受。

二、由于在角色数据的转出和转入过程中,本发明对角色数据进行锁定,禁止对其进行操作,因此不需要停机也可保证角色数据在转移过程中的一致性,即角色数据在转移过程中不会改变。从而可以实现在进行角色数据的转移时,不影响游戏系统的正常运行。

三、本发明还可以进一步在角色数据成功转入目的游戏分区后,删除源游戏分区内的源角色数据,从而保证在整个游戏大区内角色数据的唯一性,方便对角色数据进行统一的管理,提高管理效率。

四、为了避免确认消息丢失造成角色数据复制失败或者丢失,本发明还可以进一步由源游戏分区和目的游戏分区分别轮训遍历检测所述转移角色数据的唯一性,以进一步保证角色数据在任一时刻只在一个游戏分区中有效。从而进一步提高了对角色数据的管理效率。

附图说明

图1为现有网络游戏系统内某一分区的角色数据管理装置的示意图;

图2为现有转移角色数据的示意图;

图3为本发明所述角色数据管理装置的示意图;

图4为本发明所述角色数据管理方法的一种实施例的流程图;

图5为源游戏分区轮训检测转移角色数据唯一性的一种实施流程图;

图6为目的游戏分区轮训检测转移角色数据唯一性的一种实施流程图。

具体实施方式

下面通过具体实施例和附图对本发明做进一步详细说明。

本发明所适用的网络游戏系统对角色进行分区运行。在一个分区中运行一个或一个以上的游戏逻辑,每一个分区业界一般称之为游戏分区,用户可以在分区中创建角色并进行游戏。一个以上的分区可以组成一个大区,业界一般称之为游戏大区。

图3为本发明所述角色数据管理装置的示意图。参见图3,本发明所述的角色数据管理装置包括至少二个分区角色管理模块301和一个大区角色管理模块302。其中:

分区角色管理模块301用于管理本分区内角色的数据。所述的管理操作除了转移角色数据,还包括创建、删除角色,以及登入、登出角色数据等。由于本发明主要涉及转移角色数据操作,因此本文中主要对转移角色数据进行说明,其它的管理操作可以参考现有分区角色管理模块的管理操作技术。

分区角色管理模块301在转移角色数据时,发送转出的角色数据给大区角色管理模块,由大区角色管理模块将所述角色数据转入到目的分区角色管理模块;当接收到大区角色管理模块转入的角色数据时,在本分区内创建所转入的角色数据。

大区角色管理模块302用于管理大区内角色的统计数据,在转移角色数据过程中起到源分区角色管理模块和目的分区角色管理模块之间的信息中转作用。

如图3所示,所述分区角色管理模块301主要包括:分区注册管理模块(World login)311、角色数据服务器(Zone server)313以及分区角色数据库(Role DB)312。还可以进一步包括分区数据存取模块(World misc)315和分区角色统计数据库(All Role DB)314。

分区注册管理模块311用于按照网络游戏系统中的游戏运行服务器(Zone server)101的请求,执行角色的管理操作,例如包括转移角色数据、以及角色创建、删除、登入、登出等操作。所述游戏运行服务器101上可以提供角色数据转移请求的触发接口,用户可以输入需要转移的角色标识以及转移的目的游戏分区标识。分区注册管理模块311在接收到游戏运行服务器101的转移指令后,通知角色数据服务器313获取所述指令中所要转出的角色数据,将角色数据连同目的游戏分区的标识发送给大区角色管理模块302,由大区角色管理模块302转发所述角色数据到目的游戏分区的分区注册管理模块;同时,分区注册管理模块311接收大区角色管理模块转入的角色数据,安装新角色创建流程将转入的角色数据作为新角色进行创建,即通过角色数据服务器313在本分区内创建所转入的角色数据。

分区角色数据库312用于记录本分区内角色的详细数据,包括初始化数据等。

以下表1所示为分区角色数据库表的结构。

 名字  属性  说明 dwUin  Unsigned int  帐号名 szName  Varchar(20)  primary key  角色名 …  …  角色其他详细数据 bLockFlag  Small int  角色数据锁定标记  LOCK_TYPE_NULL角色数据未被锁定  LOCK_TYPE_SRC角色源数据锁定标记  LOCK_TYPE_COPY角色数据副本锁定标记  当角色数据锁定时角色不可见 dwCopyWor ldID  Int  当bLockFlag为LOCK_TYPE_SRC时为目的游  戏分区编号  当bLockFlag为LOCK_TYPE_COPY时为源游  戏分区编号 dtTransTime  DateTime  转换开始时间

                           表1

表1中,所述一个角色的角色数据中需要包括帐号名、角色名、角色的其它详细数据,所述其它详细数据例如包括角色人物当前穿戴的装备、背包和仓库中存放的物品、人物等级经验、人物使用的技能等等。

针对角色数据的转移功能,所述角色数据中还包括角色数据锁定标记(bLockFlag)、对方分区标识(dwCopyWorldID)以及转换开始时间(dtTransTime)。所述bLockFlag表明当前角色数据是否被锁定。当角色数据被锁定时,则禁止对该角色数据进行操作,在帐号登入的角色列表中此角色是不可见的,不允许使用该角色数据,例如包括角色登入、角色数据转移等操作;从而保证了角色数据在搬移的过程中,这个角色数据不会改变。bLockFlag的值分别为:

源数据锁定标记(LOCK_TYPE_SRC),当搬移角色数据时,在源游戏分区的角色数据上打上此标记,表明此角色数据为源数据,并在dwCopyWorldID中记录目标游戏分区的编号。

副本数据锁定标记(LOCK_TYPE_COPY),当搬移角色数据时,在目的游戏分区的角色数据上打上此标记,表明此角色数据为副本角色数据,并在dwCopyWorldID中记录源游戏分区的编号。

角色数据未被锁定(LOCK_TYPE_NULL),当角色数据处于该未被锁定状态时,游戏分区可以对该角色数据进行操作。

角色数据服务器313用于根据分区注册管理模块311的操作指令对所述分区角色数据库312中的角色数据进行存取操作。

所述角色数据服务器313中进一步包括:锁定模块,用于在有角色数据转出或转入时,将转出的源角色数据或转入的副本角色数据锁定,并阻止分区角色管理模块对所述处于锁定状态的角色数据进行操作。自动解锁单元,用于监测本分区内处于锁定状态的源角色数据的锁定时间是否超过预定时间,如果超过,则解除对该源角色数据的锁定。

本发明在角色数据的转移过程中,需要保证角色数据搬移的过程的原子性,即:角色数据在搬移过程中不会改变,角色数据在任一时刻只在一个游戏分区中有效。所述的角色数据搬移操作可以简化为,使用一个游戏分区中已有的角色数据在另一个游戏分区中创建角色的过程。

为了保证角色数据在任一时刻只在一个游戏分区中有效,所述角色数据服务器313中还进一步包括:角色数据唯一性验证模块,具体包括第一验证模块和第二验证模块,其中:

第一验证模块用于遍历本分区内处于锁定状态的源角色数据,通过分区注册管理模块和大区角色管理模块发送查询消息到目的分区角色管理模块,查询所述源角色数据对应的副本角色数据是否已经成功创建,如果是,则解除对所述源角色数据的锁定,并删除所述源角色数据。

第二验证模块用于遍历本分区内处于锁定状态的副本角色数据,通过分区注册管理模块和大区角色管理模块发送查询消息到源分区角色管理模块,查询所述副本角色数据对应的源角色数据是否删除,如果是,则解除对所述副本角色数据的锁定。

所述角色数据服务器313中还可进一步包括第三验证模块,用于遍历本分区内处于锁定状态的副本角色数据,通过分区注册管理模块和大区角色管理模块发送查询消息到源分区角色管理模块,查询所述副本角色数据对应的源角色数据是否解除锁定,如果是,则解除对所述副本角色数据的锁定,并删除该副本角色数据。

在分区角色管理模块中,还可以进一步包括:分区角色统计数据库314和分区数据存取模块315。分区注册管理模块311还可以将本分区内的角色的统计数据存入分区角色统计数据库314中,所述的角色统计数据中至少包括本分区内每个角色的角色名,便于网络游戏系统进行本分区内的角色数据操作。分区数据存取模块315,为分区注册管理模块311的辅助模块,用于根据分区注册管理模块311的操作指令对所述分区角色统计数据库314中的角色统计数据进行存取。

如图3所示,所述大区角色管理模块302具体包括:

大区注册管理模块(Cluster login)321,主要用于转发源分区角色管理模块和目的分区角色管理模块之间的角色数据转移信息。还可以根据分区注册管理模块311的请求对大区内的角色数据进行管理操作,例如在角色创建、删除时对角色的统计数据进行相应操作。在某分区角色管理模块301创建角色时,查询该角色名在大区范围内是否已经存在,如果已经存在则指示所述分区角色管理模块拒绝创建所述角色名,如果不存在,则记录所要创建角色的角色名等统计数据,并指示所述分区角色管理模块301创建所述角色。

大区角色统计数据库(Cluster all role DB)323,用于记录当前大区中的角色统计数据,其中至少包括当前大区内每个角色的角色名。

大区数据存取模块(Cluster misc)322,为所述大区注册管理模块321的辅助模块,用于根据大区注册管理模块321的操作指令对所述大区角色统计数据库323中的角色统计数据进行存取。

图4为本发明所述角色数据管理方法的一种实施例的流程图。假设在本实施例中,要从World 1(即游戏分区1)中转移一个角色的角色数据到World2(即游戏分区2);并且相对于World 1,所转移的角色数据称为源角色数据或者转出角色数据,相对于World 2,所转移的角色数据称为副本角色数据或者转入角色数据。参见图4,所述流程包括:

步骤401、zone server向World 1的World login1发送角色数据转移请求;该请求中指定了需要转移的角色标识。

步骤402、World login1检查所述需要转移的角色是否在线,如果角色不在线,则发送转移消息到Role server1读取所述角色的角色数据,否则,向zone server返回错误消息,不允许搬移角色数据。

步骤403、Role server 1在所述角色数据上打上标记LOCK_TYPE_SRC以锁定所述角色数据,并记录目标World的标识(World id 1),返回所述角色数据给World login 1。

步骤404、World login 1将角色数据发送给Cluster login。

步骤405、Cluster login将角色数据转发给目的游戏分区World 2的World login 2。World login 2利用创建角色流程在本分区内创建所述角色数据。

步骤406、World login 2发送注册消息给World misc 2,由World misc 2在World 2的角色统计表中注册角色名字并分配角色在World2中的角色ID。

步骤407、World misc 2注册角色名字成功,返回角色ID给World login2。

步骤408、World login 2发送角色数据给Role server 2,以在World 2的角色数据库中保存角色数据。

步骤409、Role server2在World2的角色数据库中记录角色数据,在角色数据上打上标记LOCK_TYPE_COPY以锁定该角色数据,并记录源游戏分区World 1的编号;在完成前述操作后,Role server 2返回角色数据创建成功(即角色数据保存成功)的消息给World login2。

步骤410、World login 2将角色数据转移结果返回给Cluster login,所述转移结果中包括所述角色数据是否创建成功的信息。

步骤411、Cluster login返回角色数据转移结果给World login 1。至此角色数据复制结束。

步骤412、World login1将角色数据转移结果返回给zone server。

为了保证在游戏大区中角色数据的唯一性,即一个角色只能出现在一个游戏分区中。因此本发明在World login 1收到Cluster login返回角色数据转移结果后还可以进一步包括:

步骤413、World login 1识别所述角色数据转移结果的内容,当所述结果内容表明角色数据创建成功时,则发送转移结果到Role server 1。

步骤414、Role server 1在所述源角色数据上打上标记LOCK_TYPE_NULL,以解除所述源角色数据的锁定状态,然后删除该源角色数据。从而保证所述角色数据只有在World 2中存在;Role server 1删除所述源角色数据后,发送源角色数据已删除消息给World login1。

步骤415、World login1发送源角色数据已删除消息给Cluster login。

步骤416、Cluster login发送源角色数据已删除消息给副本角色数据所在World 2的World login2。

步骤417、World login 2通知Role server 2设置副本角色数据锁定状态为LOCK_TYPE_NULL,以解除对副本角色数据的锁定。用户可以在World2登入此角色,角色数据转移结束。

在上述处理流程中,游戏分区角色数据复制转移的相关消息需要经过大区角色管理模块中的cluster_login转发,但是分区角色管理模块到大区角色管理模块之间的专线很不稳定,经常出现断线的情况。为了避免确认消息丢失造成角色数据复制失败或者丢失,本发明还可以进一步由源游戏分区和目的游戏分区分别轮训检测所述转移角色数据的唯一性,以进一步保证角色数据在任一时刻只在一个游戏分区中有效。

图5为源游戏分区轮训检测转移角色数据唯一性的一种实施流程图。参见图5,该流程包括:

步骤501、Role server1遍历分区角色数据库列表中处于LOCK_TYPE_SRC状态(即锁定状态)的角色数据,对于每个处于LOCK_TYPE_SRC状态的角色数据,发送查询消息给World login1。所述查询消息中包括处于LOCK_TYPE_SRC状态的角色标识,用于查询所标识角色的角色数据是否已经成功创建到目的游戏分区。

步骤502、World login 1转发所述查询消息到Cluster login。

步骤503、Cluster login将所述查询消息转发给World 2的World login 2。

步骤504、World login 2转发所述查询消息到World 2的Role server 2,以查询所述查询消息中标识角色的数据状态,即所标识角色的角色数据是否已经成功地创建到World 2。

步骤505、Role server2返回查询结果到World login2。

步骤506、World login2返回所述查询结果到Cluster login。

步骤507、Cluster login返回所述查询结果到World1的World login1,World login1识别所述查询结果的内容,如果查询结果表明某个处于LOCK_TYPE_SRC状态的角色(例如角色a)的数据已经成功地创建到World2,则执行步骤508和步骤809。如果查询结果表明某个处于LOCK_TYPE_SRC状态的角色(例如角色b)的数据没有成功地创建到World2,则在World 1中继续锁定该角色b的角色数据。

步骤508、World login1通知World misc1从World 1角色统计表中删除所述角色a对应的角色名。

步骤509、World login1通知Role server 1从World 1角色数据库中对角色a的角色数据进行解锁,并删除角色a的角色数据。

图6为目的游戏分区轮训检测转移角色数据唯一性的一种实施流程图。参见图6,该流程包括:

步骤601、目的游戏分区World 2的Role server 2遍历本分区角色数据库中所有处于LOCK_TYPE_COPY状态的角色数据(即处于锁定状态的副本角色数据),对于每个处于LOCK_TYPE_COPY状态的角色数据,发送查询消息给World login2。所述查询消息中包括处于LOCK_TYPE_COPY状态的角色标识,用于查询在源游戏分区中,所标识角色的源角色数据是否已经成功删除。

步骤602、World login 2将所述查询消息转发给Cluster login。

步骤603、Cluster login将所述查询消息转发给源游戏分区World 1的World login 1。

步骤604、World login 1转发所述查询消息到Role server1;Role server1从角色数据库中查询所述查询消息中所标识角色的源角色数据是否已经成功删除。

步骤605、Role server 1返回查询结果给World login 1。

步骤606、World login 1返回所述查询结果给Cluster login。

步骤607、Cluster login返回所述查询结果给World 2的World login 2。

步骤608、World login 2识别所述查询结果的内容,如果查询结果表明某个处于LOCK_TYPE_COPY状态的角色(例如角色a)的数据在World 1中已经成功删除,则说明角色a在World 2中的副本角色数据当前是唯一的,因此World login 2通知Role server 2设置角色a的数据锁定状态为LOCK_TYPE_NULL,以解除对角色a的数据锁定。用户可以在World 2中登入此角色a,角色转移结束。

另外,由于角色数据在转移过程中可能出现消息丢失造成转移失败的情况,所以在本发明中还可对异常情况做处理,从而保持角色数据在World之间是唯一的。主要包括:

1)当源游戏分区的转出角色数据(即源角色数据)的锁定状态超过预定时间(例如24小时)后,说明角色转移消息在途中由于网络繁忙或者阻塞等原因被丢掉了,此时源游戏分区自动对该转出的角色源数据进行解锁,用户可以继续使用这个角色数据进行游戏操作。在图4所述的步骤413和步骤414中,如果所述结果内容表明角色数据转移成功,而对应的源角色数据此时已经处于非锁定状态(例如由于锁定超时而自动解锁),则Role server1判定所述角色数据创建失效,并取消角色数据转移的操作,结束图4流程。

2)当发生1)所述的情况时,在图6所述的流程中,World login 2收到的查询结果中可能会表明某个处于LOCK_TYPE_COPY状态的角色(例如角色d)的数据在World 1中已经解锁,说明World 1放弃了角色转移操作。此时,World 2自动对该角色d进行解锁,并删除角色d的副本角色数据,取消角色转移操作。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号