《剑侠情缘网络版叁》付费账号分离协议 :
1.服务协议条款确认和接纳
金山软件提供的角色付费账号分离服务将会按照本协议和金山软件公布的其他游戏规则严格执行。在此提醒您:在申请本服务前,请您仔细阅读本协议条款,特别需要注意本协议中免除或者限制金山软件责任的条款和其他限制您权利的条款。如果您不同意本协议的内容,请不要申请或者使用本服务。一旦您点击"我接受"的按钮或者您向金山软件提交使用本服务的申请或者您继续使用本服务,即视为您与金山软件已达成协议,自愿接受本协议的所有内容。
2.申报条件
您如果希望进行角色付费账号分离操作,您应完全满足以下全部条件:
1. 申请角色不能处于临时冻结或永久冻结状态。
2. 试玩账号暂时不提供角色付费账号分离服务。
3. 申请角色必须处于离线状态。
4. 申请角色不能在拍卖行中有通宝处于寄售状态。
5. 目标账号必须与申请角色的源账号注册身份证信息相同。
6. 目标账号不能与申请角色的源账号相同。
7. 目标账号必须为新账号,即从未在《剑侠情缘网络版叁》登陆过的账号。
8. 目标账号必须为未在本次申请前作为目标账号被成功分离进游戏角色的账号。
如不满足上述申报条件中的一项或几项,则您的申请将不予受理。
3.注意事项
1. 申请角色付费账号分离过程中需要验证申请角色所属金山通行证的身份证注册信息。
2. 请在申请角色付费账号分离前确保该角色没有通宝在拍卖行中处于寄售状态,否则将无法通过系统验证。
3. 请在申请前确保申请角色的源账号与目标账号的注册身份信息相同。
4. 请在申请前确保目标账号为新账号,即从未在《剑侠情缘网络版叁》中登陆过的账号。
5. 角色付费账号分离操作不会影响申请角色的任何数据信息。
6. 您不能使用角色账号分离功能将游戏角色分离到源账号内。
7. 申请角色付费账号分离的源金山通行证需要提前绑定邮箱,当操作完成后,操作结果会被发送至您的绑定邮箱中。
8. 账号分离只转移您的游戏角色,而不会将您的源账号的游戏时间余额及通宝余额转移到目标账号中去。若您申请转入的目标账号内没有游戏时间余额。则您需要在转入目标账号中充值后才能登陆游戏。
9. 角色付费账号分离服务为有偿服务。在您申请并确认后,系统将扣除源账号内的9000通宝,如果您的源账号内通宝余额不足,则申请阶段系统将要求您进行充值。
10. 账号分离操作并不能即时完成。在申请角色付费账号分离的角色申请通过后,您的角色将进入角色付费账号分离队列,并被临时冻结,直至角色付费账号分离服务完成时解除临时冻结。通常情况下本服务可在临时冻结之时起24小时内(临时冻结时限)为您完成,如遇特殊情况,金山软件有权在临时冻结时限届满后适当延长临时冻结时间,您在此同意金山软件有权自行对是否属于特殊情况予以判断并有权自行决定是否延长临时冻结时间及延长的具体时间,任何情况下您都不得以临时冻结时间被延长或以临时冻结时间被延长给您造成任何损失为由要求金山软件承担任何法律责任。
11. 为了您的角色信息安全,账号分离程序将不会在《剑侠情缘网络版叁》例行维护日(每周一或周四)以及后续可能追加的临时维护日的次日0:00-24:00执行,但您依然可以在此期间提交角色付费账号分离申请。您的角色在成功提交角色付费账号分离申请后将会进入角色付费账号分离队列,并被临时冻结,直至角色付费账号分离服务完成后自动解冻。
12. 如果角色已成功申请角色转服或帐号角色分离业务,请等待角色转服或分离完成后再申请帐号绑定信息变更或帐号临时冻结,因为帐号一旦冻结系统将自动取消角色转服或角色帐号分离,并且取消后已扣除通宝是不予返还的,因此,在办理增值业务时,请不要与帐号绑定信息变更及帐号临时冻结同时申请。
4、有限责任:
金山软件承诺将尽最大努力为您提供本服务, 但不对此服务提供任何担保。金山软件亦不对您因使用本服务而导致的任何损失而承担任何责任。您在此同意接受并自行承担角色付费账号分离服务所可能包含的任何风险(包括但不限于角色丢失、角色账号分离失败等可能出现的情况),且同意金山软件为您提供服务。同时一旦您确认支付角色付费账号分离服务所需的9000通宝后,无论结果如何,已支付的9000通宝将不得回兑成现金、金山一卡通或以其他任何形式退还,除非游戏运营方另行明确同意或者适用的法律法规另有明确要求。
为保障公司业务发展,金山软件拥有随时变更、终止本服务和本协议的权利。如有必要,金山软件将会采取公告等形式公布于《剑侠情缘网络版叁》官网公告中。金山软件提请您定期查阅有关变更、终止等信息。如您提交的服务申请已经通过但服务尚未完成时,本服务或本协议内容变更或终止的,金山软件将继续按照您提交申请时的服务内容及协议内容,为您提供本服务。对于您在本服务或本协议内容变更或终止前金山软件已经为您完成的角色账号分离服务,您不能以本服务或本协议内容变更或终止为由要求撤销已经完成的服务或者要求退款。您在本服务或本协议内容变更后申请使用本服务的,则视为您对届时的变更后的本服务及本协议内容均已知悉并全部予以认可,金山软件有权且仅需按照届时的变更后的本服务及本协议内容为您提供本服务。
您申请角色付费账号分离服务并接受本协议的同时,应同时遵守您为使用本款网络游戏已经确认并接受的其他任何协议、规则。
在法律允许的最大范围内,金山软件保留对本协议的最终解释权。
《剑侠情缘网络版叁》付费转服协议 :
1.服务协议条款确认和接纳
金山软件提供的角色付费转服服务将会按照本协议和金山软件公布的其他游戏规则严格执行。在此提醒您:在申请本服务前,请您仔细阅读本协议条款,特别需要注意本协议中免除或者限制金山软件责任的条款和其他限制您权利的条款。如果您不同意本协议的内容,请不要申请或者使用本服务。一旦您点击"我接受"的按钮或者您向金山软件提交使用本服务的申请或者您继续使用本服务,即视为您与金山软件已达成协议,自愿接受本协议的所有内容。
2.申报条件
您如果希望进行角色付费转服操作,您应完全满足以下全部条件:
1. 申请角色付费转服的角色距上次完成角色付费转服操作次日起超过30天,即一个角色在完成角色付费转服次日起30天内(含30天)无法再次申请角色付费转服。
2. 申请角色创建时间超过30天。若角色创建时间不足30天(含30天),则该角色将处于转服冷却期内,无法申请角色付费转服服务。
3. 申请角色不能处于临时冻结或永久冻结状态。
4. 试玩账号暂时不提供角色付费转服服务。
5. 申请角色不能为现任帮主,如帮主想转服,需先行转让帮主职务后才可申请。
6. 申请角色必须处于离线状态。
7. 申请角色不能在拍卖行中有通宝处于寄售状态。
8. 申请转入的目标服务器开服时间需要超过90天(不含90天)。
9. 申请角色所携带的金币数量需符合以下规则。
1-30级:最多可携带500金上限(即小于等于500金)
31-50级:最多可携带5000金上限(即小于等于5000金)
51-70级:最多可携带20000金上限(即小于等于20000金)
71级-80级:最多可携带50000金上限。(即小于等于50000金)
81级以上:最多可携带80000金上限。(即小于等于80000金)
10. 申请转入的目标服务器近期活跃玩家数量(由金山软件依据其自行统计数量判断)未超过金山软件设置的人数限制。
11. 申请转出的目标服务器近期活跃玩家数量(由金山软件依据其自行统计数量判断)未超过金山软件设置的人数限制。
12. 申请角色所在阵营在目标服务器中处于相对平衡的状态(是否处于相对平衡状态金山软件有权依据其自行统计的相关数据及其自有的平衡判断标准自行予以判断)。
13. 申请转入的目标服务器网络模式与计费模式需与申请角色所在服务器保持一致。目前暂时只支持电信一、二、三、四、六区之间的跨区转服。其他区服将在后续逐步开放。
14. 如果角色已成功申请角色转服或帐号角色分离业务,请等待角色转服或分离完成后再申请帐号绑定信息变更或帐号临时冻结,因为帐号一旦冻结系统将自动取消角色转服或角色帐号分离,并且取消后已扣除通宝是不予返还的,因此,在办理增值业务时,请不要与帐号绑定信息变更及帐号临时冻结同时申请。
如不满足上述申报条件中的任意一项或几项,则您的申请将不予受理。
3.注意事项
1. 请在申请角色付费转服前彻底清空该角色的邮箱和在拍卖行中的物品,否则会丢失已有邮件和物品。
2. 请在申请角色付费转服前确保该角色没有通宝在拍卖行中处于寄售状态,否则将无法通过系统验证。
3. 申请角色付费转服过程中需要验证申请角色所属金山通行证的身份证注册信息。
4. 申请角色付费转服的金山通行证需要提前绑定邮箱,当操作完成后,操作结果会被发送至您的绑定邮箱中。
5. 如果申请角色为帮主,请在申请角色付费转服前转让帮主职务,现任帮主的角色付费转服申请将无法受理。
6. 如果申请角色身上金币携带数量超过角色等级对应的规则限制,则无法进行转服申请。
7. 角色付费转服可能会因目标服务器人数超过限制或阵营趋于不平衡而提前关闭。提示您注意,如申请多个角色同时转服,或者是帮会集体转服,请您一并申请,金山软件将尽最大努力提供付费转服服务,但因目标服务器人数超标或阵营趋于不平衡,金山软件无法保证多个角色或帮会集体同时转服,您已明确知悉上述内容,且认可金山软件的操作,愿意承担因此而可能造成的损失。
8. 如果在转服后出现申请转服角色名在目标服务器中已被占用的情况,则申请转服的角色需要在角色登陆界面进行角色名称重置,此处角色名称重置是免费的。
9. 角色付费转服服务为有偿服务。在您申请并确认后,系统将扣除申请角色所属大区的对应通宝通宝(同区转服9000通宝,跨区转服12000通宝),如果您的申请角色所属大区通宝余额不足,则申请阶段系统将要求您进行充值。
10. 跨区转服只转移您的游戏角色,而不会转移您的源服务器所在大区的游戏时间余额。若您申请转入的大区内没有游戏时间余额。则您需要在转入的大区充值后才能登陆游戏。
11. 转服操作并不能即时完成。在申请角色付费转服的角色申请通过后,您的角色将进入角色付费转服队列,并被临时冻结,直至角色付费转服服务完成时解除临时冻结。通常情况下,本服务可在临时冻结之时起24小时内(临时冻结时限)为您完成,如遇特殊情况,金山软件有权在临时冻结时限届满后适当延长临时冻结时间,您在此同意金山软件有权自行对是否属于特殊情况予以判断并有权自行决定是否延长临时冻结时间及延长的具体时间,任何情况下您都不得以临时冻结时间被延长或以临时冻结时间被延长给您造成任何损失为由要求金山软件承担任何法律责任。
12. 为了您的角色信息安全,转服程序将不会在《剑侠情缘网络版叁》例行维护日(每周一或周四)以及后续可能追加的临时维护日0:00-24:00执行,但您依然可以在此期间提交角色付费转服申请。您的角色在成功提交角色付费申请后将会进入角色付费转服队列,并被临时冻结,直至角色付费转服服务完成后自动解冻。
4.可携带与不可携带数据
1. 可携带数据:金币、装备、威望、帮贡、声望、经脉、称号、挂件、任务、成就、阅读和生活技能、当前精力和体力值、战阶积分、背包与仓库中物品、已结算的师徒值。
2. 不可携带数据:拍卖行中的物品、邮箱中的邮件、好友关系、帮会从属、帮会仓库、副本进度、未结算的师徒值、战阶积分排名、科举考试十甲、独步江湖中的五甲排名、金兰戒、连理枝显示的角色名称、未领取的回归大礼包、未使用的角色改名机会。
5、有限责任:
您申请并以输入身份证号码的方式确认申请角色付费转服后,你的该游戏角色的不可携带数据(见本协议第4条第2款)将被清空。
金山软件承诺将尽最大努力为您提供本服务, 但不对此服务提供任何担保。金山软件亦不对您因使用本服务而导致的任何损失而承担任何责任。您在此同意接受并自行承担角色付费转服服务所可能包含的任何风险(包括但不限于游戏角色丢失、角色转服失败等情况),且同意金山软件为您提供服务。同时一旦您确认支付角色付费转服服务所需的9000通宝(同区转服)或12000通宝(跨区转服)后,无论结果如何,已支付的9000通宝(同区转服)或12000通宝(跨区转服)将不得回兑成现金、金山一卡通或以其他任何形式退还,除非游戏运营方另行明确同意或者适用的法律法规另有明确要求。
为保障公司业务发展,金山软件拥有随时变更、终止本服务和本协议的权利。如有必要,金山软件将会采取公告等形式公布于《剑侠情缘网络版叁》官网公告内。金山软件提请您定期查阅有关变更、终止等信息。如您提交的服务申请已经通过但服务尚未完成时,本服务或本协议内容变更或终止的,金山软件将继续按照您提交申请时的服务内容及协议内容,为您提供本服务。对于在本服务或本协议内容变更或终止前金山软件已经为您完成的角色付费转服服务,您不能以本服务或本协议内容变更或终止为由要求撤销已经完成的服务或者要求退款。你在本服务或本协议内容变更后申请使用本服务的,则视为您对届时的变更后的本服务及本协议内容均已知悉并全部予以认可,金山软件有权且仅需按照届时的变更后的本服务及本服务协议内容为您提供本服务。
您申请角色付费转服服务并接受本协议的同时,应同时遵守您为使用本款网络游戏已经确认并接受的其他任何协议、规则。
在法律允许的最大范围内,金山软件保留对本协议的最终解释权。
粘包和分包是利用Socket在TCP协议下内部的优化机制。
1、什么是粘包
只有TCP有粘包现象,UDP永远不会粘包,为何,且听我娓娓道来。发送数据时间间隔很短,数据了很小,也就是发送数据比较频繁,会合到一起,产生粘包;
2、什么是分包
当我们发送的数据量很大的时候,可能是几千字节,TCP就会自动分开发送,其实说通俗点,就是你去拿快递,一看20个,一次拿不完,分几次拿!
3、总结
指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。出现粘包现象的原因是多方面的,它既可能由发送方造成,也可能由接收方造成。
发送方引起的粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据。
若连续几次发送的数据都很少,通常TCP会根据优化算法把这些数据合成一包后一次发送出去,这样接收方就收到了粘包数据。接收方引起的粘包是由于接收方用户进程不及时接收数据,从而导致粘包现象。
这是因为接收方先把收到的数据放在系统接收缓冲区,用户进程从该缓冲区取数据,若下一包数据到达时前一包数据尚未被用户进程取走,则下一包数据放到系统接收缓冲区时就接到前一包数据之后,而用户进程根据预先设定的缓冲区大小从系统接收缓冲区取数据,这样就一次取到了多包数据。分包是指在出现粘包的时候我们的接收方要进行分包处理。
在前面的测试程序中,是没有粘包问题的,这时候你可能有疑惑,我为啥数据会发送的特别快,我们以游戏服务器举例,比如游戏有联机对战功能,这时候肯定是需要同步位置信息的,这个频率是很快的,大约每秒就要40~80次,这个时候就会出现粘包问题。
其实很简单只要简单修改一下客户端即可。
1、程序测试 — 粘包问题
客户端:
服务器查看调试信息:
服务器已启动......
有一个客户端进行连接成功......
从客户端接收到的数据:0
从客户端接收到的数据:123
从客户端接收到的数据:4567
从客户端接收到的数据:8910
从客户端接收到的数据:1112131415
从客户端接收到的数据:161718
从客户端接收到的数据:192021222324
从客户端接收到的数据:25262728
从客户端接收到的数据:2930313233
从客户端接收到的数据:34353637
从客户端接收到的数据:38394041
从客户端接收到的数据:42434445
从客户端接收到的数据:46474849
从客户端接收到的数据:50515253
从客户端接收到的数据:5455565758
从客户端接收到的数据:59606162636465666768
从客户端接收到的数据:6970717273
从客户端接收到的数据:74757677
从客户端接收到的数据:78798081
从客户端接收到的数据:82838485
从客户端接收到的数据:86878889
从客户端接收到的数据:90919293
从客户端接收到的数据:9495969798
从客户端接收到的数据:99
(很明显数据没有发送100次)
1、程序测试 — 粘包问题
客户端:
服务器查看调试信息:
服务器已启动......
有一个客户端进行连接成功......
从客户端接收到的数据:
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000撒大声地所多所多所多所多所多所多所多所多所多所000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000撒大声地所多所多所多所多所多所多所多所多所多所多所多所多所多所多撒大声地所 多所多所多所多所多所多所多所多所多所多所多所多所多所多撒大声地所多所多所多所多所多所多所多所多所多所多所多所多所多所多000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000----------------------------------------------------------------撒大声地所多所多所多所多所多所多所多所多所?
从客户端接收到的数据:
77777777777777777777777777777777777777777777777777777777790909090909090909090909090909090909090000000000000000000000000099
(可以看出服务器是分两次接收的,但其实只要static byte[] dataBuffer = new byte[1024]给的空间足够大,分包问题就可解决)
其实也很好解决,我们在发送数据的时候事先存储数据的长度,不过用来存储数据长度的内存大小需要指定好,否则就没法判断了。
假设我们现在的数据出现了粘包,如下图所示:
这里只是演示一下,如果只有连续发送4次数据,一般是不会出现粘包的,看上图橙色部分表示我们用一个int32类型储存数据的长度,蓝色部分为我们实际要发送的数据,现在发生了粘包,也就是这四条数据合在一起发送给了服务器,
此时这条数据的总大小为 4字节 * 4 + 5 + 7 + 10 + 4 = 42字节
我们通过读取4字节数据可以知道数据的实际长度,以第一个数据为例,我们读取4字节数据,知道了这个数据有5个字节,程序如下:
int data_length = BitConverter.ToInt32(_data, 0)
此时的data_length = 5此时我们就读取这5个字节的数据即可!
string s = Encoding.UTF8.GetString(_data, 4, 5)
然后我们截取数据,从源数据的第4 + 5的位置开始截取到一个新数组,新字节数组索引从零开始,此时新字节数据的长度为42 - (5 + 4);(下图为新字节数组)
Array.Copy(_data, 5 + 4, _data, 0, 42 - (5 + 4))
依次循环下去,粘包就被成功的分包了。当然这个不要忘记每次更新一下当前数据长度。
_curLength = _curLength - (data_length + 4)// _curLength = 42 - (5 + 4)
1、客户端
创建Message类,用于发送数据前做处理,使得首4字节储存数据长度。
Message:
Main:
2、服务端
创建Message类,解决粘包问题!
Main:
服务器查看调试信息:
服务器已启动......
有一个客户端进行连接成功......
解析到一条数据:0米
4
8
解析到一条数据:1米
4
630
解析到一条数据:2米
4
622
解析到一条数据:3米
4
614
解析到一条数据:4米
4
606
解析到一条数据:5米
4
598
解析到一条数据:6米
4
590
解析到一条数据:7米
4
582
解析到一条数据:8米
4
574
解析到一条数据:9米
4
566
解析到一条数据:10米
5
558
..............................................................................
解析到一条数据:98米
5
18
解析到一条数据:99米
5
9
有客户端退出.....
你解决个屁,异步接收的情况下,把_data数组调大点就完了,傻逼,咱们是做游戏!一般不会有分包问题!!
游戏服务器分离到不同地区多台服务器上,1.通过多台服务器负载均衡玩家,减少主服务器的运算压力,提高运算性能;
2.不同地区,不同线路的玩家选择最适合的游戏大区,提高网络性能和网络延迟,方便游戏玩家更佳体验效果。
3.某一台服务器故障不会影响其他服务器的运行,保证玩家随时都能够体验游戏。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)