yy 1 год назад
Родитель
Сommit
2b4db8068c
40 измененных файлов с 1800 добавлено и 1671 удалено
  1. 2 2
      RO_Server_Trunk-branch_0.1.39/rocommon/rpc/aesctrcrypt.go
  2. 1 1
      RO_Server_Trunk-branch_0.1.39/rocommon/socket/http/acceptor.go
  3. 3 3
      RO_Server_Trunk-branch_0.1.39/rocommon/socket/procrpc.go
  4. 2 2
      RO_Server_Trunk-branch_0.1.39/rocommon/socket/tcp/acceptor.go
  5. 3 3
      RO_Server_Trunk-branch_0.1.39/rocommon/socket/tcp/connector.go
  6. 3 3
      RO_Server_Trunk-branch_0.1.39/rocommon/socket/websocket/acceptor.go
  7. 1 1
      RO_Server_Trunk-branch_0.1.39/roserver/baseserver/hook_event.go
  8. 8 8
      RO_Server_Trunk-branch_0.1.39/roserver/baseserver/model/client_user.go
  9. 338 334
      RO_Server_Trunk-branch_0.1.39/roserver/baseserver/router/route_table.go
  10. 1 1
      RO_Server_Trunk-branch_0.1.39/roserver/benchmark/main.go
  11. 45 45
      RO_Server_Trunk-branch_0.1.39/roserver/db/model/orm_helper.go
  12. 1 1
      RO_Server_Trunk-branch_0.1.39/roserver/game/model/role_battle.go
  13. 169 153
      RO_Server_Trunk-branch_0.1.39/roserver/game/msg/role_msg.go
  14. 1 1
      RO_Server_Trunk-branch_0.1.39/roserver/gate/model/proc_rpc.go
  15. 86 4
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/login.pb.go
  16. 10 0
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/login.proto
  17. 151 144
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/messagedef.pb.go
  18. 2 0
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/messagedef.proto
  19. 2 0
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/messagedefclient.proto
  20. 836 830
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/pbbind_gen.go
  21. 1 1
      RO_Server_Trunk-branch_0.1.39/roserver/serverproto/proto_cmd.py
  22. 2 2
      RO_Server_Trunk-branch_0.1.39/roserver/test/model/cli_conn.go
  23. 1 1
      RO_Server_Trunk-branch_0.1.39/roserver/test/model/game_benchmark.go
  24. 3 3
      RO_Server_Trunk-branch_0.1.39/roserver/test/model/test.go
  25. 2 2
      RO_Server_Trunk-branch_bt/rocommon/rpc/aesctrcrypt.go
  26. 1 1
      RO_Server_Trunk-branch_bt/rocommon/socket/http/acceptor.go
  27. 23 23
      RO_Server_Trunk-branch_bt/rocommon/socket/procrpc.go
  28. 4 4
      RO_Server_Trunk-branch_bt/rocommon/socket/tcp/acceptor.go
  29. 3 3
      RO_Server_Trunk-branch_bt/rocommon/socket/tcp/connector.go
  30. 3 3
      RO_Server_Trunk-branch_bt/rocommon/socket/websocket/acceptor.go
  31. 16 16
      RO_Server_Trunk-branch_bt/roserver/baseserver/hook_event.go
  32. 8 8
      RO_Server_Trunk-branch_bt/roserver/baseserver/model/client_user.go
  33. 1 1
      RO_Server_Trunk-branch_bt/roserver/benchmark/main.go
  34. 45 45
      RO_Server_Trunk-branch_bt/roserver/db/model/orm_helper.go
  35. 8 8
      RO_Server_Trunk-branch_bt/roserver/game/model/role_send.go
  36. 7 7
      RO_Server_Trunk-branch_bt/roserver/gate/model/proc_rpc.go
  37. 1 1
      RO_Server_Trunk-branch_bt/roserver/serverproto/proto_cmd.py
  38. 2 2
      RO_Server_Trunk-branch_bt/roserver/test/model/cli_conn.go
  39. 1 1
      RO_Server_Trunk-branch_bt/roserver/test/model/game_benchmark.go
  40. 3 3
      RO_Server_Trunk-branch_bt/roserver/test/model/test.go

+ 2 - 2
RO_Server_Trunk-branch_0.1.39/rocommon/rpc/aesctrcrypt.go

@@ -13,7 +13,7 @@ import (
 	textStr := []byte("we are ro team")
 
 	aesPass := []byte("wenting123456789")
-	retStr, err := rpc.AESCtrEncrypt(textStr, aesPass)
+	retStr, err := rpcc.AESCtrEncrypt(textStr, aesPass)
 	if err != nil {
 		log.Printf("err:%v", err)
 		return
@@ -21,7 +21,7 @@ import (
 	retStr1 := base64.StdEncoding.EncodeToString(retStr)
 	log.Printf("en:%v", retStr1)
 
-	plainText,err := rpc.AESCtrDecrypt(retStr, aesPass)
+	plainText,err := rpcc.AESCtrDecrypt(retStr, aesPass)
 	if err != nil {
 		log.Printf("err:%v", err)
 		return

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/rocommon/socket/http/acceptor.go

@@ -51,7 +51,7 @@ func (this *httpAcceptor) Start() rocommon.ServerNode {
 	//ServeHTTP
 	this.sv = &http.Server{Addr: this.GetAddr(), Handler: this}
 
-	ln, err := net.Listen("tcp", this.GetAddr())
+	ln, err := net.Listen("tcpa", this.GetAddr())
 	if err != nil {
 		util.ErrorF("http.listen failed=%v", err)
 		return this

+ 3 - 3
RO_Server_Trunk-branch_0.1.39/rocommon/socket/procrpc.go

@@ -81,7 +81,7 @@ func SessionQueueCall(s rocommon.Session, cb func()) {
 
 // 注册和回掉函数相关操作
 func init() {
-	RegisterProcessRPC("tcp.pb",
+	RegisterProcessRPC("tcpa.pb",
 		func(b rocommon.ProcessorRPCBundle, usercb rocommon.EventCallBack, arg ...interface{}) {
 			b.SetTransmitter(new(TCPMessageProcessor))
 			b.SetHooker(new(TCPEventHook))
@@ -148,7 +148,7 @@ func (this *TCPEventHook) InEvent(e rocommon.ProcEvent) rocommon.ProcEvent {
 	//例如远程过程调用的方式
 	inEvent, handled, err := RPCResolveInEvent(e)
 	if err != nil {
-		util.InfoF("rpc ResolveInEvent err:%v", err)
+		util.InfoF("rpcc ResolveInEvent err:%v", err)
 		return nil
 	}
 	if !handled {
@@ -163,7 +163,7 @@ func (this *TCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEvent {
 	//todo...
 	handled, err := RPCResloveOutEvent(out)
 	if err != nil {
-		util.InfoF("rpc RPCResolveOutEvent err:%v", err)
+		util.InfoF("rpcc RPCResolveOutEvent err:%v", err)
 		return nil
 	}
 

+ 2 - 2
RO_Server_Trunk-branch_0.1.39/rocommon/socket/tcp/acceptor.go

@@ -34,8 +34,8 @@ func (this *tcpAcceptor) Start() rocommon.ServerNode {
 	//https://github.com/gogf/greuse/blob/master/greuse.go
 	var listenCfg = net.ListenConfig{Control: Control}
 	util.InfoF("tcpAcceptor GetAddr:%v", this.GetAddr())
-	ln, err := listenCfg.Listen(context.Background(), "tcp", this.GetAddr())
-	//ln, err := net.Listen("tcp", this.GetAddr())
+	ln, err := listenCfg.Listen(context.Background(), "tcpa", this.GetAddr())
+	//ln, err := net.Listen("tcpa", this.GetAddr())
 	if err != nil {
 		util.PanicF("tcpAcceptor listen failure=%v", err)
 	}

+ 3 - 3
RO_Server_Trunk-branch_0.1.39/rocommon/socket/tcp/connector.go

@@ -11,7 +11,7 @@ import (
 	"time"
 )
 
-//连接器实现(启动时可能会有多个连接器)
+// 连接器实现(启动时可能会有多个连接器)
 type tcpConnector struct {
 	socket.NetRuntimeTag      //运行状态
 	socket.NetTCPSocketOption //socket相关设置
@@ -41,7 +41,7 @@ func (c *tcpConnector) connect(addr string) {
 				util.DebugF("[tcpConnector] connect begin=%v sid=%v[%v]", addr, preDesc.ID, c.connNum-1)
 			}
 		}
-		conn, err := net.Dial("tcp", addr)
+		conn, err := net.Dial("tcpa", addr)
 		if err != nil {
 			//log.Println("dail err:", err)
 			if c.reconnectTime == 0 || c.GetCloseFlag() {
@@ -100,7 +100,7 @@ func (c *tcpConnector) connect(addr string) {
 	util.InfoF("connector stop...")
 }
 
-//interface ServerNode
+// interface ServerNode
 func (c *tcpConnector) Start() rocommon.ServerNode {
 	c.StopWg.Wait()
 	if c.GetRuneState() {

+ 3 - 3
RO_Server_Trunk-branch_0.1.39/rocommon/socket/websocket/acceptor.go

@@ -11,7 +11,7 @@ import (
 	"rocommon/util"
 )
 
-//监听器实现(启动时可能会有多个连接器)
+// 监听器实现(启动时可能会有多个连接器)
 type tcpWebSocketAcceptor struct {
 	socket.NetRuntimeTag      //运行状态
 	socket.NetTCPSocketOption //socket相关设置
@@ -48,8 +48,8 @@ func (this *tcpWebSocketAcceptor) Start() rocommon.ServerNode {
 
 	//https://github.com/gogf/greuse/blob/master/greuse.go
 	var listenCfg = net.ListenConfig{Control: Control}
-	ln, err := listenCfg.Listen(context.Background(), "tcp", this.GetAddr())
-	//ln, err := net.Listen("tcp", this.GetAddr())
+	ln, err := listenCfg.Listen(context.Background(), "tcpa", this.GetAddr())
+	//ln, err := net.Listen("tcpa", this.GetAddr())
 	if err != nil {
 		util.PanicF("webSocketAcceptor listen failure=%v", err)
 	}

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/baseserver/hook_event.go

@@ -388,7 +388,7 @@ type AuthTCPEventHook struct{
 func (this *AuthTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent {
 	switch inMsg := in.Msg().(type) {
 	case *serverproto.ServiceTransmitAck:
-		gateMsg, _, err := rpc.DecodeMessage(int(inMsg.MsgId), inMsg.MsgData)
+		gateMsg, _, err := rpcc.DecodeMessage(int(inMsg.MsgId), inMsg.MsgData)
 		if err != nil {
 			util.WarnF("[AuthTCPEventHook::InEvent] msg decode err:%v msgId:%v", err.Error(), inMsg.MsgId)
 			return nil

+ 8 - 8
RO_Server_Trunk-branch_0.1.39/roserver/baseserver/model/client_user.go

@@ -49,7 +49,7 @@ var clientConnected = func(m *StateMachineCore, data interface{}) int32 {
 	return CLIENT_STATE_CONNECTED
 }
 
-//主线程中不要对结构中的数据做修改,否则会有多线程冲突(或者加锁进行操作)
+// 主线程中不要对结构中的数据做修改,否则会有多线程冲突(或者加锁进行操作)
 type ClientUser struct {
 	StateMachineCore
 	serviceNode   sync.RWMutex
@@ -149,7 +149,7 @@ func (this *ClientUser) Ping() {
 	this.LastPingTime = util.GetCurrentTimeNow()
 }
 
-//gate把接收到的数据直接发送到后端服务器节点
+// gate把接收到的数据直接发送到后端服务器节点
 func (this *ClientUser) ClientDirect2Backend(serviceId string, msgId int, seqId uint32, msgData []byte, serviceType string) error {
 	//获得后端服务器节点,并发送
 	service := GetServiceNode(serviceId)
@@ -172,7 +172,7 @@ func (this *ClientUser) ClientDirect2Backend(serviceId string, msgId int, seqId
 
 	//if msgId == 1173 {
 	//	this.kvTimeLock.Lock()
-	//	tmpMsg1, _, _ := rpc.DecodeMessage(msgId, msgData)
+	//	tmpMsg1, _, _ := rpcc.DecodeMessage(msgId, msgData)
 	//	recordTime := tmpMsg1.(*serverproto.CSPlayerBossRewardReq).RecordTimeStamp
 	//	nowTime := util.GetTimeMilliseconds()
 	//	util.DebugF("ClientKVTime=%v nowtime=%v", recordTime, nowTime)
@@ -353,7 +353,7 @@ func (this *ClientUser) ClientDirect2BackendByServiceName(serviceName string, ms
 	return nil
 }
 
-//gate发送消息到后端指定服务器节点,例如serviceName为game,就是发送到game服务器
+// gate发送消息到后端指定服务器节点,例如serviceName为game,就是发送到game服务器
 func (this *ClientUser) Client2Backend(serviceName string, msg interface{}) error {
 	serviceId := this.GetServiceBackend(serviceName)
 	//获得后端服务器节点,并发送
@@ -392,7 +392,7 @@ func (this *ClientUser) Broadcast2Backend(msg interface{}) {
 
 }
 
-//绑定用户需要发送到后台服务器的节点信息
+// 绑定用户需要发送到后台服务器的节点信息
 func (this *ClientUser) SetServiceBackend(serviceName string, serviceID string) {
 	this.serviceNode.Lock()
 	defer this.serviceNode.Unlock()
@@ -407,7 +407,7 @@ func (this *ClientUser) SetServiceBackend(serviceName string, serviceID string)
 	}
 }
 
-//根据服务器类型获取后端服务器节点信息
+// 根据服务器类型获取后端服务器节点信息
 func (this *ClientUser) GetServiceBackend(serviceName string) string {
 	this.serviceNode.RLock()
 	defer this.serviceNode.RUnlock()
@@ -418,7 +418,7 @@ func (this *ClientUser) GetServiceBackend(serviceName string) string {
 	return ""
 }
 
-///ClientUserManager
+// /ClientUserManager
 type ClientUserManager struct {
 	StateMachineCore
 	//reconnectClientList sync.Map //[openId, cli]
@@ -434,7 +434,7 @@ func NewClientUserManager() *ClientUserManager {
 	return mag
 }
 
-///game节点挂了,踢掉这个game上的玩家
+// /game节点挂了,踢掉这个game上的玩家
 func (this *ClientUserManager) OnLogicDisJoin(serviceId string) {
 	//todo...
 	//for _,cli :=range this.clientUserList {

+ 338 - 334
RO_Server_Trunk-branch_0.1.39/roserver/baseserver/router/route_table.go

@@ -5,7 +5,8 @@ type ReqAckKVInfo struct {
 	AckMsgId   int32
 	ReqMsgName string
 }
-var(
+
+var (
 	RouteTable = new(MsgRouteList)
 	//req和ack回复确认匹配协议号
 	ReqAckKVList = map[int]ReqAckKVInfo{}
@@ -13,345 +14,347 @@ var(
 
 func addRule(name string, service string, mod string, id int) {
 	rule := &MsgRouteRule{
-		MsgName: name,
+		MsgName:     name,
 		ServiceName: service,
-		Mod: mod,
-		MsgID: id,
+		Mod:         mod,
+		MsgID:       id,
 	}
 	RouteTable.Rules = append(RouteTable.Rules, rule)
 	AddRouteRule(rule)
 }
 
-//初始化路由信息,或者从服务器发现etcd中获取
-func init(){
-	addRule("CSLoginReq","game,auth","game",1002)
-	addRule("CSReconnectReq","game","game",1004)
-	addRule("CSCreateRoleReq","game","game",1007)
-	addRule("CSNameReq","game","game",1009)
-	addRule("CSGetServerTimeReq","game","game",1016)
-	addRule("CSAddAttrPointReq","game","game",1020)
-	addRule("CSResetAttrPointReq","game","game",1022)
-	addRule("CSActiveHeadReq","game","game",1025)
-	addRule("CSHeadInfoReq","game","game",1027)
-	addRule("CSSetHeadIdReq","game","game",1029)
-	addRule("CSRenameReq","game","game",1031)
-	addRule("CSChangeHeadFrameReq","game","game",1033)
-	addRule("CSHeadFrameInfoReq","game","game",1035)
-	addRule("CSUseHeadFrameItemReq","game","game",1038)
-	addRule("CSHeroLevelUpReq","game","game",1040)
-	addRule("CSHeroAdvanceReq","game","game",1042)
-	addRule("CSHeroBattleReq","game","game",1044)
-	addRule("CSHeroChipDecomposeReq","game","game",1050)
-	addRule("CSHeroStrengthReq","game","game",1052)
-	addRule("CSHeroChangeJobReq","game","game",1054)
-	addRule("CSHeroFighPowerReq","game","game",1057)
-	addRule("CSHeroResetSkillPointReq","game","game",1059)
-	addRule("CSHeroActiveReq","game","game",1061)
-	addRule("CSEquipForgeReq","game","game",1063)
-	addRule("CSEquipUpReq","game","game",1066)
-	addRule("CSEquipDownReq","game","game",1069)
-	addRule("CSEquipLevelUpAllReq","game","game",1070)
-	addRule("CSEquipSlotLevelUpReq","game","game",1072)
-	addRule("CSCardMountReq","game","game",1074)
-	addRule("CSCardDownReq","game","game",1076)
-	addRule("CSCardComposeReq","game","game",1078)
-	addRule("CSCardDecomposeReq","game","game",1080)
-	addRule("CSUseItemReq","game","game",1085)
-	addRule("CSDelItemReq","game","game",1087)
-	addRule("CSChipComposeReq","game","game",1089)
-	addRule("CSCardUpGradeReq","game","game",1092)
-	addRule("CSCardEquipAllReq","game","game",1094)
-	addRule("CSCardEquipDownReq","game","game",1096)
-	addRule("CSCardUpGradeAllReq","game","game",1098)
-	addRule("CSCardCollectInfoReq","game","game",1100)
-	addRule("CSCardCollectRewardReq","game","game",1102)
-	addRule("CSCardCollectionRankReq","game,rank","game",1105)
-	addRule("CSSkillSlotLevelUpReq","game","game",1109)
-	addRule("CSReplaceSkillReq","game","game",1111)
-	addRule("CSActiveSkillReq","game","game",1113)
-	addRule("CSSwapSkillReq","game","game",1115)
-	addRule("CSSetSkillListReq","game","game",1117)
-	addRule("CSSkillLevelUpReq","game","game",1119)
-	addRule("CSResetSkillLevelReq","game","game",1121)
-	addRule("CSFashionUpReq","game","game",1125)
-	addRule("CSFashionDownReq","game","game",1127)
-	addRule("CSFashionComposeReq","game","game",1129)
-	addRule("CSFashionPaperDecomposeReq","game","game",1131)
-	addRule("CSGetOtherPlayerDetailInfoReq","game,social","game",1143)
-	addRule("CSGetOtherPlayerBriefInfoReq","game","game",1145)
-	addRule("CSPlayerChallengeSummonReq","game,battleboss","game",1150)
-	addRule("CSPlayerChallengeHpReq","game,battleboss","game",1153)
-	addRule("CSPlayerLeaveChallengeReq","game,battleboss","game",1155)
-	addRule("CSPlayerWorldBossListReq","game,battleboss","game",1158)
-	addRule("CSChatMessageReq","game,social,guild","game",1162)
-	addRule("CSChatPlayerStateReq","game,social","game",1165)
-	addRule("CSChatOfflineMsgReq","game,db","game",1167)
-	addRule("CSPlayerIncomeReq","game","game",1171)
-	addRule("CSPlayerBossRewardReq","game","game",1173)
-	addRule("CSPlayerBattleRecordDetailSaveReq","battlerecord","battlerecord",1176)
-	addRule("CSPlayerBattleRecordDetailReq","battlerecord","battlerecord",1178)
-	addRule("CSPlayerBattleRecordReq","game,rank","game",1180)
-	addRule("CSGetMapRankReq","game","game",1183)
-	addRule("CSQuickBattleIncomeReq","game","game",1187)
-	addRule("CSBattleBossFightReq","game","game",1189)
-	addRule("CSEvilRefreshReq","game","game",1191)
-	addRule("CSEvilChallengeReq","game","game",1194)
-	addRule("CSGetTaskRewardReq","game","game",1196)
-	addRule("CSGetTaskScoreRewardReq","game","game",1199)
-	addRule("CSArenaReq","game","game",1203)
-	addRule("CSArenaMatchReq","game","game",1204)
-	addRule("CSArenaResultReq","game","game",1206)
-	addRule("CSArenaBuyCountReq","game","game",1208)
-	addRule("CSArenaRankListReq","game","game",1210)
-	addRule("CSArenaActivityReq","game","game",1212)
-	addRule("CSMailListReq","game","game",1216)
-	addRule("CSMailReadReq","game","game",1218)
-	addRule("CSMailRewardReq","game","game",1220)
-	addRule("CSMailDelReadReq","game","game",1222)
-	addRule("CSCompetitionReq","game","game",1225)
-	addRule("CSCompetitionScoreReq","game","game",1228)
-	addRule("CSShopBuyItemReq","game","game",1230)
-	addRule("CSShopInfoReq","game","game",1232)
-	addRule("CSShopRefreshReq","game","game",1234)
-	addRule("CSFriendReq","game","game",1236)
-	addRule("CSFriendAddReq","game","game",1238)
-	addRule("CSFriendDelReq","game","game",1241)
-	addRule("CSFriendBlackReq","game","game",1244)
-	addRule("CSFriendRecommendReq","game","game",1246)
-	addRule("CSFriendSearchReq","game","game",1249)
-	addRule("CSRoleGuideNtf","game","game",1252)
-	addRule("CSRoleStoryReq","game","game",1254)
-	addRule("CSNewMapCartoonReq","game","game",1256)
-	addRule("CSCompulsoryGuidanceReq","game","game",1258)
-	addRule("CSSignUpInfoReq","game","game",1260)
-	addRule("CSSignUpReq","game","game",1262)
-	addRule("CSClimbingTowerInfoReq","game","game",1264)
-	addRule("CSFriendPassTowerInfoReq","game","game",1266)
-	addRule("CSClimbingTowerBeginReq","game","game",1269)
-	addRule("CSClimbingTowerEndReq","game","game",1271)
-	addRule("CSClimbingTowerRankReq","game","game",1273)
-	addRule("CSOnlineRushInfoReq","game","game",1275)
-	addRule("CSTowerActivityReq","game","game",1277)
-	addRule("CSBuildGuildReq","game,guild","game",1281)
-	addRule("CSDisbandGuildReq","game,guild","game",1283)
-	addRule("CSApplyGuildReq","game,guild","game",1285)
-	addRule("CSQuitGuildReq","game,guild","game",1287)
-	addRule("CSKickGuildMemberReq","game,guild","game",1289)
-	addRule("CSChangeMemberTitleReq","game,guild","game",1292)
-	addRule("CSGuildRenameReq","game,guild","game",1295)
-	addRule("CSGuildReNoticeReq","game,guild","game",1297)
-	addRule("CSSetGuildInfoReq","game,guild","game",1299)
-	addRule("CSGuildLogInfoReq","game,guild","game",1301)
-	addRule("CSGuildApplyDataReq","game,guild","game",1303)
-	addRule("CSApplyInfoHandleReq","game,guild","game",1305)
-	addRule("CSGuildInfoReq","game,guild","game",1308)
-	addRule("CSGetSelfGuildInfoReq","game,guild","game",1310)
-	addRule("CSGuildMemberInfoReq","game,guild","game",1312)
-	addRule("CSRecommendGuildInfoReq","game,guild","game",1314)
-	addRule("CSOnlinePlayerGuildReq","game,guild","game",1316)
-	addRule("CSSearchGuildReq","game,guild","game",1318)
-	addRule("CSGuildBossInfoReq","game,guild","game",1321)
-	addRule("CSGuildBossLogReq","game,guild","game",1323)
-	addRule("CSGuildBossChallengeReq","game,guild","game",1325)
-	addRule("CSGuildBossSummonReq","game,guild","game",1327)
-	addRule("CSGuildBossExtraRewardReq","game,guild","game",1329)
-	addRule("CSPetLevelUpReq","game","game",1334)
-	addRule("CSPetAdvanceReq","game","game",1336)
-	addRule("CSPetSkillLevelUpReq","game","game",1338)
-	addRule("CSPetDecomposeReq","game","game",1340)
-	addRule("CSPetBondListReq","game","game",1342)
-	addRule("CSPetBondAssistListReq","game","game",1345)
-	addRule("CSPetBondActiveReq","game","game",1347)
-	addRule("CSPetAssistReq","game","game",1349)
-	addRule("CSPetBattleReq","game","game",1351)
-	addRule("CSPetManualRewardReq","game","game",1353)
-	addRule("CSPetAdvAchievementReq","game","game",1355)
-	addRule("CSExpeditionChallengePreReq","game","game",1358)
-	addRule("CSExpeditionChallengeReq","game","game",1360)
-	addRule("CSExpeditionSelectBuffReq","game","game",1362)
-	addRule("CSExpeditionRewardReq","game","game",1364)
-	addRule("CSExpeditionBattleHeroReq","game","game",1366)
-	addRule("CSExpeditionCallForHelpReq","game","game",1368)
-	addRule("CSExpeditionHelpReq","game","game",1371)
-	addRule("CSActivitiesRewardReq","game","game",1376)
-	addRule("CSActivitiesScoreRewardReq","game","game",1378)
-	addRule("CSActivitiesFirstChargeRewardReq","game","game",1381)
-	addRule("CSInvitationNumberReq","game","game",1386)
-	addRule("CSInvitationNumberUserInfoReq","game","game",1388)
-	addRule("CSInvitationBeToMemberReq","game","game",1390)
-	addRule("CSInvitationClickReq","game","game",1392)
-	addRule("CSInvitationClickReplayReq","game","game",1394)
-	addRule("CSInvitationDelMemberReq","game","game",1396)
-	addRule("CSInvitationTaskRewardReq","game","game",1398)
-	addRule("CSPayInfoGetReq","game","game",1400)
-	addRule("CSPayInfoOrderOKListGetReq","game","game",1403)
-	addRule("CSDaoChang100PlayerInfoReq","game,rank","game",1406)
-	addRule("CSDaoChang100Req","game","game",1408)
-	addRule("CSDaoChang100LogReq","game","game",1410)
-	addRule("CSDaoChang100ChallengeReq","game","game",1412)
-	addRule("CSDaoChang100ChallengeResultReq","game","game",1414)
-	addRule("CSDaoChang100TimeRewardReq","game","game",1415)
-	addRule("CSDaoChang100BuyChallengeCountReq","game","game",1417)
-	addRule("CSGiftRewardReq","game,social,gmweb","game",1419)
-	addRule("CSGMCommandReq","game","game",1421)
-	addRule("CSDrawCardReq","game","game",1424)
-	addRule("CSRuneShopInfoReq","game","game",1426)
-	addRule("CSAntiCheatReq","game","game",1433)
-	addRule("CSQuestionRewardReq","game","game",1435)
-	addRule("CSClientParamNtf","game","game",1437)
-	addRule("CSMapActivityReq","game","game",1438)
-	addRule("CSHeroReplaceJobReq","game","game",1442)
-	addRule("CSDaoChang100SetTipsReq","game","game",1444)
-	addRule("CSOnlineGetKeepSakeReq","game","game",1446)
-	addRule("CSKeepSakeRankReq","game,rank","game",1448)
-	addRule("CSKeepSakeLevelUpReq","game","game",1450)
-	addRule("CSTowerLevelMinFightPowerReq","game","game",1453)
-	addRule("CSActivitiesCollectionServerDataReq","game","game",1455)
-	addRule("CSGuildBattleInfoReq","game,guild","game",1457)
-	addRule("CSGuildBattleSettingReq","game,guild","game",1460)
-	addRule("CSGuildBattleBuyChallengeReq","game,guild","game",1462)
-	addRule("CSGuildBattleRebornReq","game,guild","game",1464)
-	addRule("CSGuildBattleRankListReq","game,guild","game",1466)
-	addRule("CSGuildBattlePosIdxListReq","game,guild","game",1468)
-	addRule("CSGuildBattleLogReq","game,guild","game",1470)
-	addRule("CSGuildBattleChallengeReq","game","game",1472)
-	addRule("CSGuildBattleChallengeResultReq","game,guild","game",1474)
-	addRule("CSGuildBattleChallengePingReq","game,guild","game",1475)
-	addRule("CSGuildBattlePKDataReq","game,guild","game",1477)
-	addRule("CSGuildBattleBuyBuffReq","game,guild","game",1483)
-	addRule("CSGuildBattleCPRankReq","game","game",1487)
-	addRule("CSGuildBattleCountPartReq","game","game",1489)
-	addRule("CSGuildBattleMvpInfoReq","game","game",1491)
-	addRule("CSGuildBattleMvpDetailReq","game","game",1492)
-	addRule("CSExpeditionScoreRankListReq","game","game",1495)
-	addRule("CSDaoChang100WheelReq","game","game",1497)
-	addRule("CSDaoChang100WheelRefreshReq","game","game",1499)
-	addRule("CSDaoChang100WheelOpenRewardReq","game","game",1501)
-	addRule("CSDaoChang100WheelRewardReq","game","game",1503)
-	addRule("CSDaoChang100WheelCloseRewardReq","game","game",1505)
-	addRule("CSFashionUpLvlReq","game","game",1507)
-	addRule("CSFashionResetAttrReq","game","game",1510)
-	addRule("CSExploreInfoReq","game","game",1513)
-	addRule("CSExploreExtraRewardReq","game","game",1515)
-	addRule("CSExploreRewardReq","game","game",1517)
-	addRule("CSDaoChang100WheelLogReq","game,db","game",1519)
-	addRule("CSAccOnlineRewardReq","game,db","game",1523)
-	addRule("CSOnlineTimeRewardReq","game","game",1525)
-	addRule("CSRedBagExchangeReq","game","game",1528)
-	addRule("CSPetActivityReq","game","game",1530)
-	addRule("CSPetActivityRankReq","game,rank","game",1532)
-	addRule("CSAddQualityPointReq","game","game",1536)
-	addRule("CSExpeditionPassRewardReq","game","game",1538)
-	addRule("CSActivitiesLikabilityRewardReq","game","game",1540)
-	addRule("CSActorAttrGetReq","game","game",1542)
-	addRule("CSPetEquipLevelUpReq","game","game",1546)
-	addRule("CSPetEquipUpReq","game","game",1548)
-	addRule("CSPetEquipDownReq","game","game",1550)
-	addRule("CSCompetitionStarInfoReq","game","game",1552)
-	addRule("CSCompetitionStarCloseRewardReq","game","game",1556)
-	addRule("CSCompetitionStarDivineReq","game","game",1559)
-	addRule("CSConverSkillExpReq","game","game",1561)
-	addRule("CSCrossYuanHangTrialRefreshTrialTypeReq","game","game",1564)
-	addRule("CSCrossYuanHangTrialReq","game","game",1566)
-	addRule("CSCrossYuanHangTrialRewardReq","game","game",1568)
-	addRule("CSCrossYuanHangTrialChallengeReq","game","game",1570)
-	addRule("CSCrossYuanHangTrialChallengeResultReq","game","game",1572)
-	addRule("CSCrossYuanHangTrialRankListReq","game","game",1574)
-	addRule("CSCrossYuanHangTrialViewListReq","game","game",1576)
-	addRule("CSCrossYuanHangTrialViewListOutReq","game","game",1578)
-	addRule("CSActivitiesExchangeReq","game","game",1580)
-	addRule("SCActivitiesExchangeAck","game","game",1581)
-	addRule("CSCrossYuanHangTrialInfoReq","game","game",1589)
-	addRule("CSCrossYuanHangTrialLogReq","game","game",1591)
-	addRule("CSRushActivityReq","game","game",1593)
-	addRule("CSRushActivityRewardReq","game","game",1595)
-	addRule("CSRushSkillActivityRankReq","game,rank","game",1597)
-	addRule("CSActivityWheelRefreshReq","game","game",1599)
-	addRule("CSActivityWheelOpenRewardReq","game","game",1601)
-	addRule("CSActivityWheelRewardReq","game","game",1603)
-	addRule("CSActivityWheelCloseRewardReq","game","game",1605)
-	addRule("CSSkillEquipUpReq","game","game",1608)
-	addRule("CSSkillEquipDownReq","game","game",1611)
-	addRule("CSSkillEquipLevelUpReq","game","game",1613)
-	addRule("CSSkillEquipSlotLevelUpReq","game","game",1615)
-	addRule("CSSkillEquipDecomposeReq","game","game",1617)
-	addRule("CSCrossTopTowerFightListReq","game","game",1620)
-	addRule("CSCrossTopTowerChallengeResultReq","game","game",1622)
-	addRule("CSCrossTopTowerForceWinReq","game","game",1624)
-	addRule("CSCrossTopTowerForceWinRankListReq","game","game",1626)
-	addRule("CSCrossTopTowerChallengeReq","game","game",1628)
-	addRule("CSHeadOperateReq","game","game",1631)
-	addRule("CSHeadDataReq","game","game",1633)
-	addRule("CSGCrossGetServerStateReq","game","game",1635)
-	addRule("CSGCrossPlayerEnterMapReq","game","game",1637)
-	addRule("CSGCrossPlayerLeaveMapReq","game","game",1639)
-	addRule("CSGCrossPlayerMapSyncPosReq","game","game",1640)
-	addRule("CSGCrossPlayerShowInfoReq","game","game",1648)
-	addRule("CSSkillEquipRemadeReq","game","game",1650)
-	addRule("CSSkillEquipPoolReq","game","game",1652)
-	addRule("CSGuildDemonInfoReq","game,guild","game",1654)
-	addRule("CSGuildDemonFightReq","game,guild","game",1656)
-	addRule("CSGuildDemonGuildRankReq","game,guild","game",1658)
-	addRule("CSGuildDemonMVPRankReq","game,guild","game",1660)
-	addRule("CSGuildDemonBuyFightCountReq","game","game",1662)
-	addRule("CSActivitySummonReq","game","game",1664)
-	addRule("CSActivitySignInReq","game","game",1666)
-	addRule("CSSkillEquipShiftReq","game","game",1668)
-	addRule("CSCrossTopTowerChallengeViewInfoReq","game","game",1670)
-	addRule("CSGCrossPlayerMapSyncParamReq","game","game",1672)
-	addRule("CSCompetitionOnVoteReq","game","game",1674)
-	addRule("CSCompetitionSelfFansInfoReq","game","game",1676)
-	addRule("CSCompetitionVoteRankReq","game","game",1678)
-	addRule("CSCompetitionFansRewardRankReq","game","game",1680)
-	addRule("CSCompetitionFansGetRewardReq","game","game",1682)
-	addRule("CSCompetitionFansDayRewardReq","game","game",1684)
-	addRule("CSCompetitionGetPlayerVoteRankReq","game","game",1686)
-	addRule("CSPetDetailInfoReq","game","game",1688)
-	addRule("CSWishBoxUseReq","game","game",1690)
-	addRule("CSWishUnlockSlotReq","game","game",1692)
-	addRule("CSWishSlotReq","game","game",1696)
-	addRule("CSActivitiesWordNoticeSetReq","game","game",1698)
-	addRule("CSPetQiyueSlotUnlockReq","game","game",1701)
-	addRule("CSPetQiyueSlotInReq","game","game",1703)
-	addRule("CSPetQiyueSlotOutReq","game","game",1705)
-	addRule("CSPetQiyueBattlePetAttrReq","game","game",1707)
-	addRule("CSCardLevelExchangeReq","game","game",1709)
-	addRule("CSCombineServerInfoReq","game","game",1712)
-	addRule("CSCreditRechargeShopItemBuyReq","game","game",1714)
-	addRule("CSRuneSpecialPrivilegeRewardReq","game","game",1717)
-	addRule("CSClimbingTowerDayRewardReq","game","game",1723)
-	addRule("CSBoliShopLevelUpReq","game","game",1725)
-	addRule("CSBoliShopRewardReq","game","game",1727)
-	addRule("CSBoliShopBuyReq","game","game",1729)
-	addRule("CSBTShopInfoReq","game","game",1736)
-	addRule("CSBoliShopInfoReq","game","game",1738)
-	addRule("CSBTRoCoinShopItemBuyReq","game","game",1740)
-	addRule("CSActivitySmashEggsReq","game","game",1742)
-	addRule("CSActivitySmashEggsMsgReq","game","game",1744)
-	addRule("CSBTFirstRechargeRewardReq","game","game",1747)
-	addRule("CSBTRecharge100RewardReq","game","game",1750)
-	addRule("SSCrossYuanHangTrialViewListReq","crossserver","crossserver",6002)
-	addRule("SSCrossYuanHangTrialReq","crossserver","crossserver",6004)
-	addRule("SSCrossYuanHangTrialChallengeReq","crossserver","crossserver",6006)
-	addRule("SSCrossYuanHangTrialChallengeResultReq","crossserver","crossserver",6008)
-	addRule("SSCrossYuanHangTrialUpdateRankScoreNtf","crossserver","crossserver",6011)
-	addRule("SSCrossYuanHangTrialRankListReq","crossserver","crossserver",6012)
-	addRule("SSCrossYuanHangTrialInfoReq","crossserver","crossserver",6016)
-	addRule("SSCrossYuanHangTrialSelfReq","crossserver","crossserver",6026)
-	addRule("SSCrossRankUpdateNtf","crossrank","crossrank",6028)
-	addRule("SSCrossRankFightInfoUpdateNtf","crossrank","crossrank",6029)
-	addRule("SSCrossTopTowerMatchFightReq","crossrank","crossrank",6030)
-	addRule("SSCrossTopTowerForceWinRankUpdateNtf","crossrank","crossrank",6032)
-	addRule("SSCrossTopTowerForceWinRankListReq","crossrank","crossrank",6033)
-	addRule("SSGCrossMapEnterReq","gcrossmap","gcrossmap",6035)
-	addRule("SSGCrossMapLeaveReq","gcrossmap","gcrossmap",6037)
-	addRule("SSGCrossMapSyncPosReq","gcrossmap","gcrossmap",6040)
-	addRule("SSGCrossMapOtherUnitShowInfoReq","gcrossmap","gcrossmap",6045)
-	addRule("SSGCrossMapUnitShowUpdateNtf","gcrossmap","gcrossmap",6047)
-	addRule("SSGCrossChatMessageReq","gcrossmap","gcrossmap",6048)
-	addRule("SSGCrossMapSyncParamReq","gcrossmap","gcrossmap",6051)
+// 初始化路由信息,或者从服务器发现etcd中获取
+func init() {
+	addRule("CSLoginReq", "game,auth", "game", 1002)
+	addRule("CSReconnectReq", "game", "game", 1004)
+	addRule("CSCreateRoleReq", "game", "game", 1007)
+	addRule("CSNameReq", "game", "game", 1009)
+	addRule("CSGetServerTimeReq", "game", "game", 1016)
+	addRule("CSAddAttrPointReq", "game", "game", 1020)
+	addRule("CSResetAttrPointReq", "game", "game", 1022)
+	addRule("CSActiveHeadReq", "game", "game", 1025)
+	addRule("CSHeadInfoReq", "game", "game", 1027)
+	addRule("CSSetHeadIdReq", "game", "game", 1029)
+	addRule("CSRenameReq", "game", "game", 1031)
+	addRule("CSChangeHeadFrameReq", "game", "game", 1033)
+	addRule("CSHeadFrameInfoReq", "game", "game", 1035)
+	addRule("CSUseHeadFrameItemReq", "game", "game", 1038)
+	addRule("CSHeroLevelUpReq", "game", "game", 1040)
+	addRule("CSHeroAdvanceReq", "game", "game", 1042)
+	addRule("CSHeroBattleReq", "game", "game", 1044)
+	addRule("CSHeroChipDecomposeReq", "game", "game", 1050)
+	addRule("CSHeroStrengthReq", "game", "game", 1052)
+	addRule("CSHeroChangeJobReq", "game", "game", 1054)
+	addRule("CSHeroFighPowerReq", "game", "game", 1057)
+	addRule("CSHeroResetSkillPointReq", "game", "game", 1059)
+	addRule("CSHeroActiveReq", "game", "game", 1061)
+	addRule("CSEquipForgeReq", "game", "game", 1063)
+	addRule("CSEquipUpReq", "game", "game", 1066)
+	addRule("CSEquipDownReq", "game", "game", 1069)
+	addRule("CSEquipLevelUpAllReq", "game", "game", 1070)
+	addRule("CSEquipSlotLevelUpReq", "game", "game", 1072)
+	addRule("CSCardMountReq", "game", "game", 1074)
+	addRule("CSCardDownReq", "game", "game", 1076)
+	addRule("CSCardComposeReq", "game", "game", 1078)
+	addRule("CSCardDecomposeReq", "game", "game", 1080)
+	addRule("CSUseItemReq", "game", "game", 1085)
+	addRule("CSDelItemReq", "game", "game", 1087)
+	addRule("CSChipComposeReq", "game", "game", 1089)
+	addRule("CSCardUpGradeReq", "game", "game", 1092)
+	addRule("CSCardEquipAllReq", "game", "game", 1094)
+	addRule("CSCardEquipDownReq", "game", "game", 1096)
+	addRule("CSCardUpGradeAllReq", "game", "game", 1098)
+	addRule("CSCardCollectInfoReq", "game", "game", 1100)
+	addRule("CSCardCollectRewardReq", "game", "game", 1102)
+	addRule("CSCardCollectionRankReq", "game,rank", "game", 1105)
+	addRule("CSSkillSlotLevelUpReq", "game", "game", 1109)
+	addRule("CSReplaceSkillReq", "game", "game", 1111)
+	addRule("CSActiveSkillReq", "game", "game", 1113)
+	addRule("CSSwapSkillReq", "game", "game", 1115)
+	addRule("CSSetSkillListReq", "game", "game", 1117)
+	addRule("CSSkillLevelUpReq", "game", "game", 1119)
+	addRule("CSResetSkillLevelReq", "game", "game", 1121)
+	addRule("CSFashionUpReq", "game", "game", 1125)
+	addRule("CSFashionDownReq", "game", "game", 1127)
+	addRule("CSFashionComposeReq", "game", "game", 1129)
+	addRule("CSFashionPaperDecomposeReq", "game", "game", 1131)
+	addRule("CSGetOtherPlayerDetailInfoReq", "game,social", "game", 1143)
+	addRule("CSGetOtherPlayerBriefInfoReq", "game", "game", 1145)
+	addRule("CSPlayerChallengeSummonReq", "game,battleboss", "game", 1150)
+	addRule("CSPlayerChallengeHpReq", "game,battleboss", "game", 1153)
+	addRule("CSPlayerLeaveChallengeReq", "game,battleboss", "game", 1155)
+	addRule("CSPlayerWorldBossListReq", "game,battleboss", "game", 1158)
+	addRule("CSChatMessageReq", "game,social,guild", "game", 1162)
+	addRule("CSChatPlayerStateReq", "game,social", "game", 1165)
+	addRule("CSChatOfflineMsgReq", "game,db", "game", 1167)
+	addRule("CSPlayerIncomeReq", "game", "game", 1171)
+	addRule("CSPlayerBossRewardReq", "game", "game", 1173)
+	addRule("CSPlayerBattleRecordDetailSaveReq", "battlerecord", "battlerecord", 1176)
+	addRule("CSPlayerBattleRecordDetailReq", "battlerecord", "battlerecord", 1178)
+	addRule("CSPlayerBattleRecordReq", "game,rank", "game", 1180)
+	addRule("CSGetMapRankReq", "game", "game", 1183)
+	addRule("CSQuickBattleIncomeReq", "game", "game", 1187)
+	addRule("CSBattleBossFightReq", "game", "game", 1189)
+	addRule("CSEvilRefreshReq", "game", "game", 1191)
+	addRule("CSEvilChallengeReq", "game", "game", 1194)
+	addRule("CSGetTaskRewardReq", "game", "game", 1196)
+	addRule("CSGetTaskScoreRewardReq", "game", "game", 1199)
+	addRule("CSArenaReq", "game", "game", 1203)
+	addRule("CSArenaMatchReq", "game", "game", 1204)
+	addRule("CSArenaResultReq", "game", "game", 1206)
+	addRule("CSArenaBuyCountReq", "game", "game", 1208)
+	addRule("CSArenaRankListReq", "game", "game", 1210)
+	addRule("CSArenaActivityReq", "game", "game", 1212)
+	addRule("CSMailListReq", "game", "game", 1216)
+	addRule("CSMailReadReq", "game", "game", 1218)
+	addRule("CSMailRewardReq", "game", "game", 1220)
+	addRule("CSMailDelReadReq", "game", "game", 1222)
+	addRule("CSCompetitionReq", "game", "game", 1225)
+	addRule("CSCompetitionScoreReq", "game", "game", 1228)
+	addRule("CSShopBuyItemReq", "game", "game", 1230)
+	addRule("CSShopInfoReq", "game", "game", 1232)
+	addRule("CSShopRefreshReq", "game", "game", 1234)
+	addRule("CSFriendReq", "game", "game", 1236)
+	addRule("CSFriendAddReq", "game", "game", 1238)
+	addRule("CSFriendDelReq", "game", "game", 1241)
+	addRule("CSFriendBlackReq", "game", "game", 1244)
+	addRule("CSFriendRecommendReq", "game", "game", 1246)
+	addRule("CSFriendSearchReq", "game", "game", 1249)
+	addRule("CSRoleGuideNtf", "game", "game", 1252)
+	addRule("CSRoleStoryReq", "game", "game", 1254)
+	addRule("CSNewMapCartoonReq", "game", "game", 1256)
+	addRule("CSCompulsoryGuidanceReq", "game", "game", 1258)
+	addRule("CSSignUpInfoReq", "game", "game", 1260)
+	addRule("CSSignUpReq", "game", "game", 1262)
+	addRule("CSClimbingTowerInfoReq", "game", "game", 1264)
+	addRule("CSFriendPassTowerInfoReq", "game", "game", 1266)
+	addRule("CSClimbingTowerBeginReq", "game", "game", 1269)
+	addRule("CSClimbingTowerEndReq", "game", "game", 1271)
+	addRule("CSClimbingTowerRankReq", "game", "game", 1273)
+	addRule("CSOnlineRushInfoReq", "game", "game", 1275)
+	addRule("CSTowerActivityReq", "game", "game", 1277)
+	addRule("CSBuildGuildReq", "game,guild", "game", 1281)
+	addRule("CSDisbandGuildReq", "game,guild", "game", 1283)
+	addRule("CSApplyGuildReq", "game,guild", "game", 1285)
+	addRule("CSQuitGuildReq", "game,guild", "game", 1287)
+	addRule("CSKickGuildMemberReq", "game,guild", "game", 1289)
+	addRule("CSChangeMemberTitleReq", "game,guild", "game", 1292)
+	addRule("CSGuildRenameReq", "game,guild", "game", 1295)
+	addRule("CSGuildReNoticeReq", "game,guild", "game", 1297)
+	addRule("CSSetGuildInfoReq", "game,guild", "game", 1299)
+	addRule("CSGuildLogInfoReq", "game,guild", "game", 1301)
+	addRule("CSGuildApplyDataReq", "game,guild", "game", 1303)
+	addRule("CSApplyInfoHandleReq", "game,guild", "game", 1305)
+	addRule("CSGuildInfoReq", "game,guild", "game", 1308)
+	addRule("CSGetSelfGuildInfoReq", "game,guild", "game", 1310)
+	addRule("CSGuildMemberInfoReq", "game,guild", "game", 1312)
+	addRule("CSRecommendGuildInfoReq", "game,guild", "game", 1314)
+	addRule("CSOnlinePlayerGuildReq", "game,guild", "game", 1316)
+	addRule("CSSearchGuildReq", "game,guild", "game", 1318)
+	addRule("CSGuildBossInfoReq", "game,guild", "game", 1321)
+	addRule("CSGuildBossLogReq", "game,guild", "game", 1323)
+	addRule("CSGuildBossChallengeReq", "game,guild", "game", 1325)
+	addRule("CSGuildBossSummonReq", "game,guild", "game", 1327)
+	addRule("CSGuildBossExtraRewardReq", "game,guild", "game", 1329)
+	addRule("CSPetLevelUpReq", "game", "game", 1334)
+	addRule("CSPetAdvanceReq", "game", "game", 1336)
+	addRule("CSPetSkillLevelUpReq", "game", "game", 1338)
+	addRule("CSPetDecomposeReq", "game", "game", 1340)
+	addRule("CSPetBondListReq", "game", "game", 1342)
+	addRule("CSPetBondAssistListReq", "game", "game", 1345)
+	addRule("CSPetBondActiveReq", "game", "game", 1347)
+	addRule("CSPetAssistReq", "game", "game", 1349)
+	addRule("CSPetBattleReq", "game", "game", 1351)
+	addRule("CSPetManualRewardReq", "game", "game", 1353)
+	addRule("CSPetAdvAchievementReq", "game", "game", 1355)
+	addRule("CSExpeditionChallengePreReq", "game", "game", 1358)
+	addRule("CSExpeditionChallengeReq", "game", "game", 1360)
+	addRule("CSExpeditionSelectBuffReq", "game", "game", 1362)
+	addRule("CSExpeditionRewardReq", "game", "game", 1364)
+	addRule("CSExpeditionBattleHeroReq", "game", "game", 1366)
+	addRule("CSExpeditionCallForHelpReq", "game", "game", 1368)
+	addRule("CSExpeditionHelpReq", "game", "game", 1371)
+	addRule("CSActivitiesRewardReq", "game", "game", 1376)
+	addRule("CSActivitiesScoreRewardReq", "game", "game", 1378)
+	addRule("CSActivitiesFirstChargeRewardReq", "game", "game", 1381)
+	addRule("CSInvitationNumberReq", "game", "game", 1386)
+	addRule("CSInvitationNumberUserInfoReq", "game", "game", 1388)
+	addRule("CSInvitationBeToMemberReq", "game", "game", 1390)
+	addRule("CSInvitationClickReq", "game", "game", 1392)
+	addRule("CSInvitationClickReplayReq", "game", "game", 1394)
+	addRule("CSInvitationDelMemberReq", "game", "game", 1396)
+	addRule("CSInvitationTaskRewardReq", "game", "game", 1398)
+	addRule("CSPayInfoGetReq", "game", "game", 1400)
+	addRule("CSPayInfoOrderOKListGetReq", "game", "game", 1403)
+	addRule("CSDaoChang100PlayerInfoReq", "game,rank", "game", 1406)
+	addRule("CSDaoChang100Req", "game", "game", 1408)
+	addRule("CSDaoChang100LogReq", "game", "game", 1410)
+	addRule("CSDaoChang100ChallengeReq", "game", "game", 1412)
+	addRule("CSDaoChang100ChallengeResultReq", "game", "game", 1414)
+	addRule("CSDaoChang100TimeRewardReq", "game", "game", 1415)
+	addRule("CSDaoChang100BuyChallengeCountReq", "game", "game", 1417)
+	addRule("CSGiftRewardReq", "game,social,gmweb", "game", 1419)
+	addRule("CSGMCommandReq", "game", "game", 1421)
+	addRule("CSDrawCardReq", "game", "game", 1424)
+	addRule("CSRuneShopInfoReq", "game", "game", 1426)
+	addRule("CSAntiCheatReq", "game", "game", 1433)
+	addRule("CSQuestionRewardReq", "game", "game", 1435)
+	addRule("CSClientParamNtf", "game", "game", 1437)
+	addRule("CSMapActivityReq", "game", "game", 1438)
+	addRule("CSHeroReplaceJobReq", "game", "game", 1442)
+	addRule("CSDaoChang100SetTipsReq", "game", "game", 1444)
+	addRule("CSOnlineGetKeepSakeReq", "game", "game", 1446)
+	addRule("CSKeepSakeRankReq", "game,rank", "game", 1448)
+	addRule("CSKeepSakeLevelUpReq", "game", "game", 1450)
+	addRule("CSTowerLevelMinFightPowerReq", "game", "game", 1453)
+	addRule("CSActivitiesCollectionServerDataReq", "game", "game", 1455)
+	addRule("CSGuildBattleInfoReq", "game,guild", "game", 1457)
+	addRule("CSGuildBattleSettingReq", "game,guild", "game", 1460)
+	addRule("CSGuildBattleBuyChallengeReq", "game,guild", "game", 1462)
+	addRule("CSGuildBattleRebornReq", "game,guild", "game", 1464)
+	addRule("CSGuildBattleRankListReq", "game,guild", "game", 1466)
+	addRule("CSGuildBattlePosIdxListReq", "game,guild", "game", 1468)
+	addRule("CSGuildBattleLogReq", "game,guild", "game", 1470)
+	addRule("CSGuildBattleChallengeReq", "game", "game", 1472)
+	addRule("CSGuildBattleChallengeResultReq", "game,guild", "game", 1474)
+	addRule("CSGuildBattleChallengePingReq", "game,guild", "game", 1475)
+	addRule("CSGuildBattlePKDataReq", "game,guild", "game", 1477)
+	addRule("CSGuildBattleBuyBuffReq", "game,guild", "game", 1483)
+	addRule("CSGuildBattleCPRankReq", "game", "game", 1487)
+	addRule("CSGuildBattleCountPartReq", "game", "game", 1489)
+	addRule("CSGuildBattleMvpInfoReq", "game", "game", 1491)
+	addRule("CSGuildBattleMvpDetailReq", "game", "game", 1492)
+	addRule("CSExpeditionScoreRankListReq", "game", "game", 1495)
+	addRule("CSDaoChang100WheelReq", "game", "game", 1497)
+	addRule("CSDaoChang100WheelRefreshReq", "game", "game", 1499)
+	addRule("CSDaoChang100WheelOpenRewardReq", "game", "game", 1501)
+	addRule("CSDaoChang100WheelRewardReq", "game", "game", 1503)
+	addRule("CSDaoChang100WheelCloseRewardReq", "game", "game", 1505)
+	addRule("CSFashionUpLvlReq", "game", "game", 1507)
+	addRule("CSFashionResetAttrReq", "game", "game", 1510)
+	addRule("CSExploreInfoReq", "game", "game", 1513)
+	addRule("CSExploreExtraRewardReq", "game", "game", 1515)
+	addRule("CSExploreRewardReq", "game", "game", 1517)
+	addRule("CSDaoChang100WheelLogReq", "game,db", "game", 1519)
+	addRule("CSAccOnlineRewardReq", "game,db", "game", 1523)
+	addRule("CSOnlineTimeRewardReq", "game", "game", 1525)
+	addRule("CSRedBagExchangeReq", "game", "game", 1528)
+	addRule("CSPetActivityReq", "game", "game", 1530)
+	addRule("CSPetActivityRankReq", "game,rank", "game", 1532)
+	addRule("CSAddQualityPointReq", "game", "game", 1536)
+	addRule("CSExpeditionPassRewardReq", "game", "game", 1538)
+	addRule("CSActivitiesLikabilityRewardReq", "game", "game", 1540)
+	addRule("CSActorAttrGetReq", "game", "game", 1542)
+	addRule("CSPetEquipLevelUpReq", "game", "game", 1546)
+	addRule("CSPetEquipUpReq", "game", "game", 1548)
+	addRule("CSPetEquipDownReq", "game", "game", 1550)
+	addRule("CSCompetitionStarInfoReq", "game", "game", 1552)
+	addRule("CSCompetitionStarCloseRewardReq", "game", "game", 1556)
+	addRule("CSCompetitionStarDivineReq", "game", "game", 1559)
+	addRule("CSConverSkillExpReq", "game", "game", 1561)
+	addRule("CSCrossYuanHangTrialRefreshTrialTypeReq", "game", "game", 1564)
+	addRule("CSCrossYuanHangTrialReq", "game", "game", 1566)
+	addRule("CSCrossYuanHangTrialRewardReq", "game", "game", 1568)
+	addRule("CSCrossYuanHangTrialChallengeReq", "game", "game", 1570)
+	addRule("CSCrossYuanHangTrialChallengeResultReq", "game", "game", 1572)
+	addRule("CSCrossYuanHangTrialRankListReq", "game", "game", 1574)
+	addRule("CSCrossYuanHangTrialViewListReq", "game", "game", 1576)
+	addRule("CSCrossYuanHangTrialViewListOutReq", "game", "game", 1578)
+	addRule("CSActivitiesExchangeReq", "game", "game", 1580)
+	addRule("SCActivitiesExchangeAck", "game", "game", 1581)
+	addRule("CSCrossYuanHangTrialInfoReq", "game", "game", 1589)
+	addRule("CSCrossYuanHangTrialLogReq", "game", "game", 1591)
+	addRule("CSRushActivityReq", "game", "game", 1593)
+	addRule("CSRushActivityRewardReq", "game", "game", 1595)
+	addRule("CSRushSkillActivityRankReq", "game,rank", "game", 1597)
+	addRule("CSActivityWheelRefreshReq", "game", "game", 1599)
+	addRule("CSActivityWheelOpenRewardReq", "game", "game", 1601)
+	addRule("CSActivityWheelRewardReq", "game", "game", 1603)
+	addRule("CSActivityWheelCloseRewardReq", "game", "game", 1605)
+	addRule("CSSkillEquipUpReq", "game", "game", 1608)
+	addRule("CSSkillEquipDownReq", "game", "game", 1611)
+	addRule("CSSkillEquipLevelUpReq", "game", "game", 1613)
+	addRule("CSSkillEquipSlotLevelUpReq", "game", "game", 1615)
+	addRule("CSSkillEquipDecomposeReq", "game", "game", 1617)
+	addRule("CSCrossTopTowerFightListReq", "game", "game", 1620)
+	addRule("CSCrossTopTowerChallengeResultReq", "game", "game", 1622)
+	addRule("CSCrossTopTowerForceWinReq", "game", "game", 1624)
+	addRule("CSCrossTopTowerForceWinRankListReq", "game", "game", 1626)
+	addRule("CSCrossTopTowerChallengeReq", "game", "game", 1628)
+	addRule("CSHeadOperateReq", "game", "game", 1631)
+	addRule("CSHeadDataReq", "game", "game", 1633)
+	addRule("CSGCrossGetServerStateReq", "game", "game", 1635)
+	addRule("CSGCrossPlayerEnterMapReq", "game", "game", 1637)
+	addRule("CSGCrossPlayerLeaveMapReq", "game", "game", 1639)
+	addRule("CSGCrossPlayerMapSyncPosReq", "game", "game", 1640)
+	addRule("CSGCrossPlayerShowInfoReq", "game", "game", 1648)
+	addRule("CSSkillEquipRemadeReq", "game", "game", 1650)
+	addRule("CSSkillEquipPoolReq", "game", "game", 1652)
+	addRule("CSGuildDemonInfoReq", "game,guild", "game", 1654)
+	addRule("CSGuildDemonFightReq", "game,guild", "game", 1656)
+	addRule("CSGuildDemonGuildRankReq", "game,guild", "game", 1658)
+	addRule("CSGuildDemonMVPRankReq", "game,guild", "game", 1660)
+	addRule("CSGuildDemonBuyFightCountReq", "game", "game", 1662)
+	addRule("CSActivitySummonReq", "game", "game", 1664)
+	addRule("CSActivitySignInReq", "game", "game", 1666)
+	addRule("CSSkillEquipShiftReq", "game", "game", 1668)
+	addRule("CSCrossTopTowerChallengeViewInfoReq", "game", "game", 1670)
+	addRule("CSGCrossPlayerMapSyncParamReq", "game", "game", 1672)
+	addRule("CSCompetitionOnVoteReq", "game", "game", 1674)
+	addRule("CSCompetitionSelfFansInfoReq", "game", "game", 1676)
+	addRule("CSCompetitionVoteRankReq", "game", "game", 1678)
+	addRule("CSCompetitionFansRewardRankReq", "game", "game", 1680)
+	addRule("CSCompetitionFansGetRewardReq", "game", "game", 1682)
+	addRule("CSCompetitionFansDayRewardReq", "game", "game", 1684)
+	addRule("CSCompetitionGetPlayerVoteRankReq", "game", "game", 1686)
+	addRule("CSPetDetailInfoReq", "game", "game", 1688)
+	addRule("CSWishBoxUseReq", "game", "game", 1690)
+	addRule("CSWishUnlockSlotReq", "game", "game", 1692)
+	addRule("CSWishSlotReq", "game", "game", 1696)
+	addRule("CSActivitiesWordNoticeSetReq", "game", "game", 1698)
+	addRule("CSPetQiyueSlotUnlockReq", "game", "game", 1701)
+	addRule("CSPetQiyueSlotInReq", "game", "game", 1703)
+	addRule("CSPetQiyueSlotOutReq", "game", "game", 1705)
+	addRule("CSPetQiyueBattlePetAttrReq", "game", "game", 1707)
+	addRule("CSCardLevelExchangeReq", "game", "game", 1709)
+	addRule("CSCombineServerInfoReq", "game", "game", 1712)
+	addRule("CSCreditRechargeShopItemBuyReq", "game", "game", 1714)
+	addRule("CSRuneSpecialPrivilegeRewardReq", "game", "game", 1717)
+	addRule("CSClimbingTowerDayRewardReq", "game", "game", 1723)
+	addRule("CSBoliShopLevelUpReq", "game", "game", 1725)
+	addRule("CSBoliShopRewardReq", "game", "game", 1727)
+	addRule("CSBoliShopBuyReq", "game", "game", 1729)
+	addRule("CSBTShopInfoReq", "game", "game", 1736)
+	addRule("CSBoliShopInfoReq", "game", "game", 1738)
+	addRule("CSBTRoCoinShopItemBuyReq", "game", "game", 1740)
+	addRule("CSActivitySmashEggsReq", "game", "game", 1742)
+	addRule("CSActivitySmashEggsMsgReq", "game", "game", 1744)
+	addRule("CSBTFirstRechargeRewardReq", "game", "game", 1747)
+	addRule("CSBTRecharge100RewardReq", "game", "game", 1750)
+	addRule("CSMapLevelTypeChangeReq", "game", "game", 1752)
+	//addRule("SCMapLevelTypeChangeAck", "game", "game", 1753)
+	addRule("SSCrossYuanHangTrialViewListReq", "crossserver", "crossserver", 6002)
+	addRule("SSCrossYuanHangTrialReq", "crossserver", "crossserver", 6004)
+	addRule("SSCrossYuanHangTrialChallengeReq", "crossserver", "crossserver", 6006)
+	addRule("SSCrossYuanHangTrialChallengeResultReq", "crossserver", "crossserver", 6008)
+	addRule("SSCrossYuanHangTrialUpdateRankScoreNtf", "crossserver", "crossserver", 6011)
+	addRule("SSCrossYuanHangTrialRankListReq", "crossserver", "crossserver", 6012)
+	addRule("SSCrossYuanHangTrialInfoReq", "crossserver", "crossserver", 6016)
+	addRule("SSCrossYuanHangTrialSelfReq", "crossserver", "crossserver", 6026)
+	addRule("SSCrossRankUpdateNtf", "crossrank", "crossrank", 6028)
+	addRule("SSCrossRankFightInfoUpdateNtf", "crossrank", "crossrank", 6029)
+	addRule("SSCrossTopTowerMatchFightReq", "crossrank", "crossrank", 6030)
+	addRule("SSCrossTopTowerForceWinRankUpdateNtf", "crossrank", "crossrank", 6032)
+	addRule("SSCrossTopTowerForceWinRankListReq", "crossrank", "crossrank", 6033)
+	addRule("SSGCrossMapEnterReq", "gcrossmap", "gcrossmap", 6035)
+	addRule("SSGCrossMapLeaveReq", "gcrossmap", "gcrossmap", 6037)
+	addRule("SSGCrossMapSyncPosReq", "gcrossmap", "gcrossmap", 6040)
+	addRule("SSGCrossMapOtherUnitShowInfoReq", "gcrossmap", "gcrossmap", 6045)
+	addRule("SSGCrossMapUnitShowUpdateNtf", "gcrossmap", "gcrossmap", 6047)
+	addRule("SSGCrossChatMessageReq", "gcrossmap", "gcrossmap", 6048)
+	addRule("SSGCrossMapSyncParamReq", "gcrossmap", "gcrossmap", 6051)
 
- 	//req和ack消息映射处理
+	//req和ack消息映射处理
 	ReqAckKVList[1000] = ReqAckKVInfo{1000, 1001, "CSPingReq|SCPingAck"}
 	ReqAckKVList[1002] = ReqAckKVInfo{1002, 1003, "CSLoginReq|SCLoginAck"}
 	ReqAckKVList[1004] = ReqAckKVInfo{1004, 1005, "CSReconnectReq|SCReconnectAck"}
@@ -635,4 +638,5 @@ func init(){
 	ReqAckKVList[1744] = ReqAckKVInfo{1744, 1745, "CSActivitySmashEggsMsgReq|SCActivitySmashEggsMsgAck"}
 	ReqAckKVList[1747] = ReqAckKVInfo{1747, 1748, "CSBTFirstRechargeRewardReq|SCBTFirstRechargeRewardAck"}
 	ReqAckKVList[1750] = ReqAckKVInfo{1750, 1751, "CSBTRecharge100RewardReq|SCBTRecharge100RewardAck"}
-}
+	ReqAckKVList[1752] = ReqAckKVInfo{1752, 1753, "CSMapLevelTypeChangeReq|SCMapLevelTypeChangeAck"}
+}

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/benchmark/main.go

@@ -25,7 +25,7 @@ func client() {
 	node := socket.NewServerNode("tcpConnector", "client", "127.0.0.1:21001", queue)
 	rv := rocommon.NewNetSyncRecv(node)
 
-	socket.SetProcessorRPC(node, "tcp.demo", rv.EventCB())
+	socket.SetProcessorRPC(node, "tcpa.demo", rv.EventCB())
 	node.(rocommon.TCPConnector).SetReconnectTime(5 * time.Second)
 	node.Start()
 

+ 45 - 45
RO_Server_Trunk-branch_0.1.39/roserver/db/model/orm_helper.go

@@ -147,7 +147,7 @@ func DelUserConnInfo(connInfo *serverproto.UserConnectInfo, openId, platform str
 	}
 }
 
-//赛季数据保存
+// 赛季数据保存
 func ServerCompetitionGet(ssAckMsg *serverproto.SSGetServerCompetitionAck) {
 	retList, err := service.GetRedis().HGetAll(model.ServerCompetitionPrefix).Result()
 	if err != nil {
@@ -195,12 +195,12 @@ func ServerCompetitionSave(ntfMsg *serverproto.SSServerCompetitionInfoSaveNtf) {
 	}
 }
 
-//获取角色信息列表
+// 获取角色信息列表
 func GetRoleListFromRedis(openId string, zone int32, msg interface{}) error {
 	return model.GetMessageFromRedis(AccountPrefix, strconv.Itoa(int(zone))+"_"+openId, msg)
 }
 
-//获取是否关闭注册
+// 获取是否关闭注册
 func IsServerCloseRegister() bool {
 	closeState, err := service.GetRedis().HGet(model.ServerPrefix, "registerclose").Result()
 	if err == nil && closeState == "1" {
@@ -233,7 +233,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleHero err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ := rpc.EncodeMessage(ack)
+	//msgData, _, _ := rpcc.EncodeMessage(ack)
 	//oldLen := len(msgData)
 	//util.InfoF("msgDatalen1=%v basehero", oldLen)
 	//装备数据
@@ -243,7 +243,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleEquip err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen := len(msgData)
 	//util.InfoF("msgDatalen1=%v equip", newLen-oldLen)
 	//oldLen = newLen
@@ -252,7 +252,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	ack.Role.RoleSkillEquip = &serverproto.RoleSkillEquip{}
 	GetRoleSkillEquipDataFromRedis(uid, ack.Role.RoleSkillEquip)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v skillequip", newLen-oldLen)
 	//oldLen = newLen
@@ -266,7 +266,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	if err == service.NIL {
 		ack.Role.RoleBag = nil
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v bag", newLen-oldLen)
 	//oldLen = newLen
@@ -277,7 +277,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleChip err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v chip", newLen-oldLen)
 	//oldLen = newLen
@@ -288,7 +288,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleMap err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v map", newLen-oldLen)
 	//oldLen = newLen
@@ -299,7 +299,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleCard err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v card", newLen-oldLen)
 	//oldLen = newLen
@@ -310,7 +310,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleFashion err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v fashion", newLen-oldLen)
 	//oldLen = newLen
@@ -322,13 +322,13 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		return err
 	}
 	ack.Role.RoleBattle.MapChallengeNumList = ack.Role.RoleBattle.MapChallengeNumList[:0]
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//util.InfoF("msgDatalen1=%v", len(msgData))
 	//邮件数据(邮件数据预先加载先于需要加载发送邮件的操作)
 	ack.Role.RoleMail = &serverproto.RoleMail{}
 	GetRoleMailDataFromRedis(uid, ack.Role.RoleMail, RoleRegisterTime)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v battle", newLen-oldLen)
 	//oldLen = newLen
@@ -337,7 +337,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	ack.Role.RoleTask = &serverproto.RoleTask{}
 	GetRoleTaskFromRedis(uid, ack.Role.RoleTask)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v task", newLen-oldLen)
 	//oldLen = newLen
@@ -363,7 +363,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleCompetition err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v chat read comp", newLen-oldLen)
 	//oldLen = newLen
@@ -374,7 +374,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleShop err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v shop", newLen-oldLen)
 	//oldLen = newLen
@@ -382,7 +382,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	ack.Role.RoleActivity = &serverproto.RoleActivity{}
 	GetRoleActivityDataFromRedis(uid, ack.Role.RoleActivity)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v activity", newLen-oldLen)
 	//oldLen = newLen
@@ -408,7 +408,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleDraw err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v tower guild draw", newLen-oldLen)
 	//oldLen = newLen
@@ -419,7 +419,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleRune err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v rune", newLen-oldLen)
 	//oldLen = newLen
@@ -434,7 +434,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleStatistic err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v daochang stat", newLen-oldLen)
 	//oldLen = newLen
@@ -446,7 +446,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleKeepSake err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v sake", newLen-oldLen)
 	//oldLen = newLen
@@ -463,7 +463,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	//	ack.Role.RoleCross.Yuanhangtrial.LogList = ack.Role.RoleCross.Yuanhangtrial.LogList[tmpIdx:]
 	//}
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v cross", newLen-oldLen)
 	//oldLen = newLen
@@ -475,7 +475,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleRush err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v rush", newLen-oldLen)
 	//oldLen = newLen
@@ -494,7 +494,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleWish err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v head", newLen-oldLen)
 	//oldLen = newLen
@@ -506,8 +506,8 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	return nil
 }
 
-//其他系统数据加载
-//获取Role其他系统信息,不直接走SSGetRoleAck,避免后续数据包过大
+// 其他系统数据加载
+// 获取Role其他系统信息,不直接走SSGetRoleAck,避免后续数据包过大
 func GetRoleOtherInfoFromRedis(uid uint64, ev rocommon.ProcEvent) {
 	//获取竞技场数据
 	loadNtfMsg := &serverproto.SSLoadArenaNtf{
@@ -680,7 +680,7 @@ func SetRoleHeroDataToRedis(uid uint64, data *serverproto.RoleHero) error {
 	return nil
 }
 
-//卢恩商店
+// 卢恩商店
 func GetRoleRuneDataFromRedis(uid uint64, data *serverproto.RoleRune) error {
 	if uid <= 0 {
 		return errors.New("uid invalid")
@@ -808,7 +808,7 @@ func AddChatOfflineMsg(fromId *serverproto.ChatPlayerBriefInfo, target uint64, m
 	}
 }
 
-//获取离线私聊消息人员列表
+// 获取离线私聊消息人员列表
 func GetChatOfflinePlayerList(uid uint64, chatData *serverproto.RoleChat) error {
 	if uid <= 0 {
 		return errors.New("uid invalid")
@@ -831,7 +831,7 @@ func GetChatOfflinePlayerList(uid uint64, chatData *serverproto.RoleChat) error
 	return nil
 }
 
-//获取离线私聊消息
+// 获取离线私聊消息
 func GetChatOfflineMsgFromRedis(selfId, targetId uint64, ackMsg *serverproto.SCChatOfflineMsgAck) error {
 	if selfId <= 0 || targetId <= 0 {
 		return errors.New("uid invalid")
@@ -864,7 +864,7 @@ func GetChatOfflineMsgFromRedis(selfId, targetId uint64, ackMsg *serverproto.SCC
 	return nil
 }
 
-//设置玩家简介信息
+// 设置玩家简介信息
 const NameSearchListLimitNum = 20
 
 func UpdatePlayerBriefInfo(uid uint64, briefInfo *serverproto.CommonPlayerBriefInfo, bCreate bool, activeCode, openId, subPlatform string) {
@@ -951,7 +951,7 @@ func GetPlayerBriefInfoWithoutCache(uid uint64) *serverproto.CommonPlayerBriefIn
 	return info
 }
 
-//获取默认名字Uid列表,值获得前10个
+// 获取默认名字Uid列表,值获得前10个
 func GetNameSearchList(searchName string, exceptUid uint64, zone int32, msg *serverproto.SSGetUidByRoleNameAck) {
 	//默认名字查找
 	if searchName == "" {
@@ -1127,7 +1127,7 @@ func GetRoleMailDataFromRedis(uid uint64, roleMail *serverproto.RoleMail, RoleRe
 	return bRet
 }
 
-//邮件数据变更保存
+// 邮件数据变更保存
 func SetMailDataChangToRedis(uid uint64, mailStateList []*serverproto.MailContent, delMailList []int32,
 	addMailList []*serverproto.MailContent, maxMailId int32, curGlobalMailId int32) {
 	uidStr := strconv.FormatUint(uid, 10)
@@ -1248,7 +1248,7 @@ func SetMailDataChangToRedis(uid uint64, mailStateList []*serverproto.MailConten
 
 }
 
-//添加邮件(离线方式添加到db中,在线添加在SSMailSaveNtf中)
+// 添加邮件(离线方式添加到db中,在线添加在SSMailSaveNtf中)
 func AddMailToRedis(uid uint64, mail *serverproto.MailContent) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RoleMailDataPrefix + uidStr
@@ -1514,7 +1514,7 @@ func SetActiveCode(activeCode string, uid uint64) bool {
 	return true
 }
 
-//task
+// task
 const TASK_REWARD_STATE_REWARD_DB = 2
 
 func SetRoleTaskToRedis(uid uint64, roleTask *serverproto.RoleTask) {
@@ -1598,7 +1598,7 @@ func GetRoleTaskFromRedis(uid uint64, roleTask *serverproto.RoleTask) bool {
 	return true
 }
 
-////pet
+// //pet
 func GetRolePetDataFromRedis(uid uint64, ev rocommon.ProcEvent) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RolePetDataPrefix + uidStr
@@ -1675,7 +1675,7 @@ func GetRolePetDataFromRedis(uid uint64, ev rocommon.ProcEvent) bool {
 	return true
 }
 
-////skill equip
+// //skill equip
 func GetRoleSkillEquipDataFromRedis(uid uint64, roleSkillEquip *serverproto.RoleSkillEquip) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RoleSkillEquipDataPrefix + uidStr
@@ -1931,7 +1931,7 @@ func getRolePetAssistDataFromRedis(uid uint64, roleAssistList map[uint32]*server
 	}
 }
 
-//获取其他援助玩家的宠物信息(羁绊信息,已经设置在玩家的羁绊列表中,检查合法性)
+// 获取其他援助玩家的宠物信息(羁绊信息,已经设置在玩家的羁绊列表中,检查合法性)
 func RolePetQueryAssistInfo(uid uint64, msg *serverproto.SSPetQueryAssistInfoReq, ackMsg *serverproto.SSPetQueryAssistInfoAck) {
 	tmpList := set.New(set.NonThreadSafe)
 	for idx := 0; idx < len(msg.UidList); idx++ {
@@ -1980,7 +1980,7 @@ func RolePetQueryAssistInfo(uid uint64, msg *serverproto.SSPetQueryAssistInfoReq
 	}
 }
 
-//获取激活羁绊所需的宠物列表(援助列表)
+// 获取激活羁绊所需的宠物列表(援助列表)
 type AssistCacheDetailInfo struct {
 	quality int32
 	nature  int32
@@ -2111,7 +2111,7 @@ func getAssistCache(uid uint64) *RolePetAssistCacheInfo {
 	return cacheInfo
 }
 
-//获取公会成员列表
+// 获取公会成员列表
 func getGuildMemberLis(guildId uint64, guildMemberList *[]uint64) {
 	if guildId <= 0 {
 		return
@@ -2337,8 +2337,8 @@ func PetAdvAchievementSet(uid uint64, petCfgId int32, advLevel int32) {
 	}
 }
 
-////expedition
-//救助发起求助的玩家 FromUid发起救助操作的玩家  BeHelpedUid发起求助的放玩家
+// //expedition
+// 救助发起求助的玩家 FromUid发起救助操作的玩家  BeHelpedUid发起求助的放玩家
 func ExpeditionHelp(fromUid, beHelpedUid uint64) serverproto.ErrorCode {
 	//uidStr := strconv.FormatUint(beHelpedUid, 10)
 	//战斗数据
@@ -2417,7 +2417,7 @@ func ExpeditionHelp(fromUid, beHelpedUid uint64) serverproto.ErrorCode {
 	return serverproto.ErrorCode_ERROR_OK
 }
 
-////pay支付
+// //pay支付
 func SetPayOrderInfoToRedis(uid uint64, payOrderInfo *serverproto.PayOrderSaveInfo) serverproto.ErrorCode {
 	uidStr := strconv.FormatUint(uid, 10)
 
@@ -2518,7 +2518,7 @@ func GetPayOrderOkListFromRedis(uid uint64, ackMsg *serverproto.SSPayInfoOrderOk
 	}
 }
 
-////百人道场
+// //百人道场
 func SetRoleDaoChang100ToRedis(uid uint64, info *serverproto.RoleDaoChang100) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := model.RoleDaoChang100Prefix + uidStr
@@ -2619,7 +2619,7 @@ func SetRoleDaoChang100WheelLogToRedis(uid uint64, msg *serverproto.SSDaoChang10
 	}
 }
 
-//远航被挑战日志保存
+// 远航被挑战日志保存
 func SetRoleCrossYuanHangLogToRedis(msg *serverproto.SSCrossYuanHangTrialLogNtf) {
 	uid := msg.NtfUid
 	roleCross := &serverproto.RoleCross{}
@@ -2638,7 +2638,7 @@ func SetRoleCrossYuanHangLogToRedis(msg *serverproto.SSCrossYuanHangTrialLogNtf)
 	}
 }
 
-//bt
+// bt
 // bt服务版本数据保存
 func SetBTDataToRedis(uid uint64, msg *serverproto.SSBTDataSaveNtf) {
 	uidStr := strconv.FormatUint(uid, 10)

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/game/model/role_battle.go

@@ -974,7 +974,7 @@ func (this *RoleBattle) BossRewardPre() (serverproto.ErrorCode, int32, []*server
 	}
 
 	//todo...
-	//统计挑战次数
+	//统计挑战次数z
 	//数据量太大暂时屏蔽
 	//mapLevel := this.GetLevelId()
 	//bFind := false

+ 169 - 153
RO_Server_Trunk-branch_0.1.39/roserver/game/msg/role_msg.go

@@ -843,7 +843,7 @@ func init() {
 
 		role.(model2.RoleLogicOuter).CardLevelExchange(msg.SourceCardId, msg.TargetCardId)
 	})
-	
+
 	//////技能相关
 	//替换栏位中的技能
 	serverproto.Handle_GAME_CSReplaceSkillReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
@@ -1090,6 +1090,22 @@ func init() {
 		role.(model2.BattleLogicOuter).BattleBossReq()
 	})
 
+	//测试关卡难度选择
+	serverproto.Handle_GAME_CSMapLevelTypeChangeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
+		msg := ev.Msg().(*serverproto.CSMapLevelTypeChangeReq)
+		role := model2.RoleMag.GetRoleOrKick(cliId, ev)
+		if role == nil {
+			return
+		}
+		util.DebugF("uid=%v cliId=%v receive CSMapLevelTypeChangeReq msg=%v", role.GetUUid(), cliId, msg)
+		util.InfoF("uid=%v cliId=%v receive CSMapLevelTypeChangeReq msg=%v", role.GetUUid(), cliId, msg)
+
+		ackMsg := &serverproto.SCMapLevelTypeChangeAck{
+			Type: 999 + msg.Type,
+		}
+		role.ReplayGate(ackMsg, true)
+	})
+
 	//来自db的地图挑战排名更新(自身调整更新排名)
 	serverproto.Handle_GAME_SSMapLevelChangeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
 		msg := ev.Msg().(*serverproto.SSMapLevelChangeAck)
@@ -1205,23 +1221,23 @@ func init() {
 
 	//推图领奖
 	/*
-	serverproto.Handle_GAME_CSMapActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
-		msg := ev.Msg().(*serverproto.CSMapActivityRewardReq)
-		role := model2.RoleMag.GetRole(cliId)
-		if role == nil {
-			return
-		}
-		util.DebugF("uid=%v receive CSMapActivityRewardReq msg=%v", role.GetUUid(), msg)
+		serverproto.Handle_GAME_CSMapActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
+			msg := ev.Msg().(*serverproto.CSMapActivityRewardReq)
+			role := model2.RoleMag.GetRole(cliId)
+			if role == nil {
+				return
+			}
+			util.DebugF("uid=%v receive CSMapActivityRewardReq msg=%v", role.GetUUid(), msg)
 
-		//如果是排行奖励,转发Rank
-		reqMsg := &serverproto.SSGetRushRewardReq{
-			Uid:        role.GetUUid(),
-			RushType:   model.Rush_Type_Map,
-			RewardType: msg.RewardType,
-		}
-		model2.SendRankService(reqMsg)
-	})
-	 */
+			//如果是排行奖励,转发Rank
+			reqMsg := &serverproto.SSGetRushRewardReq{
+				Uid:        role.GetUUid(),
+				RushType:   model.Rush_Type_Map,
+				RewardType: msg.RewardType,
+			}
+			model2.SendRankService(reqMsg)
+		})
+	*/
 
 	//////任务相关处理
 	serverproto.Handle_GAME_CSGetTaskRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
@@ -1441,23 +1457,23 @@ func init() {
 	})
 	//上线请求爬塔冲榜信息
 	/*
-	serverproto.Handle_GAME_CSArenaActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
-		msg := ev.Msg().(*serverproto.CSArenaActivityRewardReq)
-		util.DebugF("receive CSArenaActivityRewardReq msg:%v", msg)
-		role := model2.RoleMag.GetRoleOrKick(cliId, ev)
-		if role == nil {
-			return
-		}
+		serverproto.Handle_GAME_CSArenaActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
+			msg := ev.Msg().(*serverproto.CSArenaActivityRewardReq)
+			util.DebugF("receive CSArenaActivityRewardReq msg:%v", msg)
+			role := model2.RoleMag.GetRoleOrKick(cliId, ev)
+			if role == nil {
+				return
+			}
 
-		//如果是排行奖励,转发Rank
-		reqMsg := &serverproto.SSGetRushRewardReq{
-			Uid:        role.GetUUid(),
-			RushType:   model.Rush_Type_Arena,
-			RewardType: msg.RewardType,
-		}
-		model2.SendRankService(reqMsg)
-	})
-	 */
+			//如果是排行奖励,转发Rank
+			reqMsg := &serverproto.SSGetRushRewardReq{
+				Uid:        role.GetUUid(),
+				RushType:   model.Rush_Type_Arena,
+				RewardType: msg.RewardType,
+			}
+			model2.SendRankService(reqMsg)
+		})
+	*/
 
 	//////mail
 	//获取邮件
@@ -2233,23 +2249,23 @@ func init() {
 	})
 	//上线请求爬塔冲榜信息
 	/*
-	serverproto.Handle_GAME_CSTowerActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
-		msg := ev.Msg().(*serverproto.CSTowerActivityRewardReq)
-		util.DebugF("receive CSTowerActivityRewardReq msg:%v", msg)
-		role := model2.RoleMag.GetRoleOrKick(cliId, ev)
-		if role == nil {
-			return
-		}
+		serverproto.Handle_GAME_CSTowerActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
+			msg := ev.Msg().(*serverproto.CSTowerActivityRewardReq)
+			util.DebugF("receive CSTowerActivityRewardReq msg:%v", msg)
+			role := model2.RoleMag.GetRoleOrKick(cliId, ev)
+			if role == nil {
+				return
+			}
 
-		//如果是排行奖励,转发Rank
-		reqMsg := &serverproto.SSGetRushRewardReq{
-			Uid:        role.GetUUid(),
-			RushType:   model.Rush_Type_Tower,
-			RewardType: msg.RewardType,
-		}
-		model2.SendRankService(reqMsg)
-	})
-	 */
+			//如果是排行奖励,转发Rank
+			reqMsg := &serverproto.SSGetRushRewardReq{
+				Uid:        role.GetUUid(),
+				RushType:   model.Rush_Type_Tower,
+				RewardType: msg.RewardType,
+			}
+			model2.SendRankService(reqMsg)
+		})
+	*/
 
 	//--------------------------   rank 返回 --------------------------
 	//爬塔冲榜信息返回
@@ -2440,35 +2456,35 @@ func init() {
 		}
 		//没上榜等异常情况。
 		/*
-		if msg.RushType == model.Rush_Type_Tower {
-			ackMsg := &serverproto.SCTowerActivityRewardAck{
-				Error: msg.Error,
-			}
-			role.ReplayGate(ackMsg, true)
-		} else if msg.RushType == model.Rush_Type_Arena {
-			ackMsg := &serverproto.SCArenaActivityRewardAck{
-				Error: msg.Error,
-			}
-			role.ReplayGate(ackMsg, true)
-		} else if msg.RushType == model.Rush_Type_Map {
-			ackMsg := &serverproto.SCMapActivityRewardAck{
-				Error: msg.Error,
-			}
-			role.ReplayGate(ackMsg, true)
-		} else if msg.RushType == model.Rush_Type_Pet {
-			ackMsg := &serverproto.SCPetActivityRewardAck{
-				Error: msg.Error,
-			}
-			role.ReplayGate(ackMsg, true)
-		} else {
-			//todo 需要修改
-			ackMsg := &serverproto.SCRushActivityRewardAck{
-				Error:    msg.Error,
-				RushType: msg.RushType,
+			if msg.RushType == model.Rush_Type_Tower {
+				ackMsg := &serverproto.SCTowerActivityRewardAck{
+					Error: msg.Error,
+				}
+				role.ReplayGate(ackMsg, true)
+			} else if msg.RushType == model.Rush_Type_Arena {
+				ackMsg := &serverproto.SCArenaActivityRewardAck{
+					Error: msg.Error,
+				}
+				role.ReplayGate(ackMsg, true)
+			} else if msg.RushType == model.Rush_Type_Map {
+				ackMsg := &serverproto.SCMapActivityRewardAck{
+					Error: msg.Error,
+				}
+				role.ReplayGate(ackMsg, true)
+			} else if msg.RushType == model.Rush_Type_Pet {
+				ackMsg := &serverproto.SCPetActivityRewardAck{
+					Error: msg.Error,
+				}
+				role.ReplayGate(ackMsg, true)
+			} else {
+				//todo 需要修改
+				ackMsg := &serverproto.SCRushActivityRewardAck{
+					Error:    msg.Error,
+					RushType: msg.RushType,
+				}
+				role.ReplayGate(ackMsg, true)
 			}
-			role.ReplayGate(ackMsg, true)
-		}
-		 */
+		*/
 		ackMsg := &serverproto.SCRushActivityRewardAck{
 			Error:    msg.Error,
 			RushType: msg.RushType,
@@ -2557,73 +2573,73 @@ func init() {
 	})
 	//爬塔冲榜信息返回
 	/*
-	serverproto.Handle_GAME_SSGetRushRankAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
-		msg := ev.Msg().(*serverproto.SSGetRushRankAck)
-		util.DebugF("receive SSGetRushRankAck msg:%v", msg)
-		newCliId := &model.ClientID{
-			SessID: msg.Uid,
-		}
-		role := model2.RoleMag.GetRole(*newCliId)
-		if role == nil {
-			return
-		}
-		if len(msg.RankReward) <= 0 {
-			return
-		}
-		for _, data := range msg.RankReward {
-			//没有奖励,返回
-			if len(data.RewardList) <= 0 {
-				continue
+		serverproto.Handle_GAME_SSGetRushRankAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
+			msg := ev.Msg().(*serverproto.SSGetRushRankAck)
+			util.DebugF("receive SSGetRushRankAck msg:%v", msg)
+			newCliId := &model.ClientID{
+				SessID: msg.Uid,
 			}
-			bRet := serverproto.ErrorCode_ERROR_OK
-			if msg.RushType == model.Rush_Type_Tower {
-				bRet = role.(*model2.Role).GetRoleTower().CheckRankReward(msg.FinishRound)
-			} else if msg.RushType == model.Rush_Type_Arena {
-				bRet = role.(*model2.Role).GetRoleArena().CheckRankReward(msg.FinishRound)
-			} else if msg.RushType == model.Rush_Type_Map {
-				bRet = role.(*model2.Role).GetRoleBattle().CheckRankReward(msg.FinishRound)
-			} else if msg.RushType == model.Rush_Type_Pet {
-				bRet = role.(*model2.Role).GetRolePet().CheckRankReward(msg.FinishRound)
-			} else {
-				bRet = role.(*model2.Role).GetRoleRush().CheckRushRankReward(msg.RushType, msg.FinishRound)
+			role := model2.RoleMag.GetRole(*newCliId)
+			if role == nil {
+				return
 			}
-			if bRet != serverproto.ErrorCode_ERROR_OK {
-				continue
+			if len(msg.RankReward) <= 0 {
+				return
+			}
+			for _, data := range msg.RankReward {
+				//没有奖励,返回
+				if len(data.RewardList) <= 0 {
+					continue
+				}
+				bRet := serverproto.ErrorCode_ERROR_OK
+				if msg.RushType == model.Rush_Type_Tower {
+					bRet = role.(*model2.Role).GetRoleTower().CheckRankReward(msg.FinishRound)
+				} else if msg.RushType == model.Rush_Type_Arena {
+					bRet = role.(*model2.Role).GetRoleArena().CheckRankReward(msg.FinishRound)
+				} else if msg.RushType == model.Rush_Type_Map {
+					bRet = role.(*model2.Role).GetRoleBattle().CheckRankReward(msg.FinishRound)
+				} else if msg.RushType == model.Rush_Type_Pet {
+					bRet = role.(*model2.Role).GetRolePet().CheckRankReward(msg.FinishRound)
+				} else {
+					bRet = role.(*model2.Role).GetRoleRush().CheckRushRankReward(msg.RushType, msg.FinishRound)
+				}
+				if bRet != serverproto.ErrorCode_ERROR_OK {
+					continue
+				}
+
+				mailCfgId := model.GlobalMailIdRushTower
+				mailType := int32(serverproto.MailType_MailType_RushTower)
+				if msg.RushType == model.Rush_Type_Arena {
+					mailCfgId = model.GlobalMailIdRushArena
+					mailType = int32(serverproto.MailType_MailType_RushArena)
+				} else if msg.RushType == model.Rush_Type_Map {
+					mailCfgId = model.GlobalMailIdRushMap
+					mailType = int32(serverproto.MailType_MailType_RushMap)
+				} else if msg.RushType == model.Rush_Type_Pet {
+					mailCfgId = model.GlobalMailRushPetRankReward
+					mailType = int32(serverproto.MailType_MailType_RushPet)
+				} else if msg.RushType == model.Rush_Type_Skill {
+					mailCfgId = model.GlobalMailRushSkillRankReward
+					mailType = int32(serverproto.MailType_MailType_RushSkill)
+				}
+
+				role.(model2.RoleLogicOuter).AddMail1(mailCfgId, mailType,
+					data.RewardList, data.MailParamList, "", "")
 			}
 
-			mailCfgId := model.GlobalMailIdRushTower
-			mailType := int32(serverproto.MailType_MailType_RushTower)
-			if msg.RushType == model.Rush_Type_Arena {
-				mailCfgId = model.GlobalMailIdRushArena
-				mailType = int32(serverproto.MailType_MailType_RushArena)
+			if msg.RushType == model.Rush_Type_Tower {
+				role.(*model2.Role).GetRoleTower().SetRankReward(msg.FinishRound)
+			} else if msg.RushType == model.Rush_Type_Arena {
+				role.(*model2.Role).GetRoleArena().SetRankReward(msg.FinishRound)
 			} else if msg.RushType == model.Rush_Type_Map {
-				mailCfgId = model.GlobalMailIdRushMap
-				mailType = int32(serverproto.MailType_MailType_RushMap)
+				role.(*model2.Role).GetRoleBattle().SetRankReward(msg.FinishRound)
 			} else if msg.RushType == model.Rush_Type_Pet {
-				mailCfgId = model.GlobalMailRushPetRankReward
-				mailType = int32(serverproto.MailType_MailType_RushPet)
-			} else if msg.RushType == model.Rush_Type_Skill {
-				mailCfgId = model.GlobalMailRushSkillRankReward
-				mailType = int32(serverproto.MailType_MailType_RushSkill)
+				role.(*model2.Role).GetRolePet().SetRankReward(msg.FinishRound)
+			} else {
+				role.(*model2.Role).GetRoleRush().SetRushRankReward(msg.RushType, msg.FinishRound)
 			}
-
-			role.(model2.RoleLogicOuter).AddMail1(mailCfgId, mailType,
-				data.RewardList, data.MailParamList, "", "")
-		}
-
-		if msg.RushType == model.Rush_Type_Tower {
-			role.(*model2.Role).GetRoleTower().SetRankReward(msg.FinishRound)
-		} else if msg.RushType == model.Rush_Type_Arena {
-			role.(*model2.Role).GetRoleArena().SetRankReward(msg.FinishRound)
-		} else if msg.RushType == model.Rush_Type_Map {
-			role.(*model2.Role).GetRoleBattle().SetRankReward(msg.FinishRound)
-		} else if msg.RushType == model.Rush_Type_Pet {
-			role.(*model2.Role).GetRolePet().SetRankReward(msg.FinishRound)
-		} else {
-			role.(*model2.Role).GetRoleRush().SetRushRankReward(msg.RushType, msg.FinishRound)
-		}
-	})
-	 */
+		})
+	*/
 
 	//技能冲榜
 	serverproto.Handle_GAME_CSRushActivityReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
@@ -2723,23 +2739,23 @@ func init() {
 		role.ReplayGate(msg, true)
 	})
 	/*
-	serverproto.Handle_GAME_CSPetActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
-		msg := ev.Msg().(*serverproto.CSPetActivityRewardReq)
-		role := model2.RoleMag.GetRoleOrKick(cliId, ev)
-		if role == nil {
-			return
-		}
-		util.DebugF("uid=%v receive CSPetActivityRewardReq ms=%v", role.GetUUid(), msg)
+		serverproto.Handle_GAME_CSPetActivityRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
+			msg := ev.Msg().(*serverproto.CSPetActivityRewardReq)
+			role := model2.RoleMag.GetRoleOrKick(cliId, ev)
+			if role == nil {
+				return
+			}
+			util.DebugF("uid=%v receive CSPetActivityRewardReq ms=%v", role.GetUUid(), msg)
 
-		//如果是排行奖励,转发Rank
-		reqMsg := &serverproto.SSGetRushRewardReq{
-			Uid:        role.GetUUid(),
-			RushType:   model.Rush_Type_Pet,
-			RewardType: msg.RewardType,
-		}
-		model2.SendRankService(reqMsg)
-	})daas
-	 */
+			//如果是排行奖励,转发Rank
+			reqMsg := &serverproto.SSGetRushRewardReq{
+				Uid:        role.GetUUid(),
+				RushType:   model.Rush_Type_Pet,
+				RewardType: msg.RewardType,
+			}
+			model2.SendRankService(reqMsg)
+		})daas
+	*/
 
 	//宠物培养(升级)
 	serverproto.Handle_GAME_CSPetLevelUpReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/gate/model/proc_rpc.go

@@ -102,7 +102,7 @@ func FrontendPackageProc(msgId int, seqId uint32, flagId uint16, msgData []byte,
 			return nil, err
 		}
 	case 2: //aes加密的数据
-		//msgData, err = rpc.AESCtrDecrypt(msgData, *s.GetAES(), *s.GetAES()...)
+		//msgData, err = rpcc.AESCtrDecrypt(msgData, *s.GetAES(), *s.GetAES()...)
 		msgData, err = rpc.AESCtrDecrypt(msgData, *s.GetAES(), *s.GetAES()...)
 		if err != nil {
 			return nil, err

+ 86 - 4
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/login.pb.go

@@ -35642,6 +35642,84 @@ func (m *SCBTRecharge100RewardAck) GetRewardItemList() []*KeyValueType {
 	return nil
 }
 
+type CSMapLevelTypeChangeReq struct {
+	Type                 int32    `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *CSMapLevelTypeChangeReq) Reset()         { *m = CSMapLevelTypeChangeReq{} }
+func (m *CSMapLevelTypeChangeReq) String() string { return proto.CompactTextString(m) }
+func (*CSMapLevelTypeChangeReq) ProtoMessage()    {}
+func (*CSMapLevelTypeChangeReq) Descriptor() ([]byte, []int) {
+	return fileDescriptor_67c21677aa7f4e4f, []int{715}
+}
+
+func (m *CSMapLevelTypeChangeReq) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_CSMapLevelTypeChangeReq.Unmarshal(m, b)
+}
+func (m *CSMapLevelTypeChangeReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_CSMapLevelTypeChangeReq.Marshal(b, m, deterministic)
+}
+func (m *CSMapLevelTypeChangeReq) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_CSMapLevelTypeChangeReq.Merge(m, src)
+}
+func (m *CSMapLevelTypeChangeReq) XXX_Size() int {
+	return xxx_messageInfo_CSMapLevelTypeChangeReq.Size(m)
+}
+func (m *CSMapLevelTypeChangeReq) XXX_DiscardUnknown() {
+	xxx_messageInfo_CSMapLevelTypeChangeReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CSMapLevelTypeChangeReq proto.InternalMessageInfo
+
+func (m *CSMapLevelTypeChangeReq) GetType() int32 {
+	if m != nil {
+		return m.Type
+	}
+	return 0
+}
+
+type SCMapLevelTypeChangeAck struct {
+	Type                 int32    `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SCMapLevelTypeChangeAck) Reset()         { *m = SCMapLevelTypeChangeAck{} }
+func (m *SCMapLevelTypeChangeAck) String() string { return proto.CompactTextString(m) }
+func (*SCMapLevelTypeChangeAck) ProtoMessage()    {}
+func (*SCMapLevelTypeChangeAck) Descriptor() ([]byte, []int) {
+	return fileDescriptor_67c21677aa7f4e4f, []int{716}
+}
+
+func (m *SCMapLevelTypeChangeAck) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SCMapLevelTypeChangeAck.Unmarshal(m, b)
+}
+func (m *SCMapLevelTypeChangeAck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SCMapLevelTypeChangeAck.Marshal(b, m, deterministic)
+}
+func (m *SCMapLevelTypeChangeAck) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SCMapLevelTypeChangeAck.Merge(m, src)
+}
+func (m *SCMapLevelTypeChangeAck) XXX_Size() int {
+	return xxx_messageInfo_SCMapLevelTypeChangeAck.Size(m)
+}
+func (m *SCMapLevelTypeChangeAck) XXX_DiscardUnknown() {
+	xxx_messageInfo_SCMapLevelTypeChangeAck.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SCMapLevelTypeChangeAck proto.InternalMessageInfo
+
+func (m *SCMapLevelTypeChangeAck) GetType() int32 {
+	if m != nil {
+		return m.Type
+	}
+	return 0
+}
+
 func init() {
 	proto.RegisterType((*ServerInfo)(nil), "serverproto.ServerInfo")
 	proto.RegisterType((*CSPingReq)(nil), "serverproto.CSPingReq")
@@ -36358,6 +36436,8 @@ func init() {
 	proto.RegisterType((*SCBTRecharge100Ntf)(nil), "serverproto.SCBTRecharge100Ntf")
 	proto.RegisterType((*CSBTRecharge100RewardReq)(nil), "serverproto.CSBTRecharge100RewardReq")
 	proto.RegisterType((*SCBTRecharge100RewardAck)(nil), "serverproto.SCBTRecharge100RewardAck")
+	proto.RegisterType((*CSMapLevelTypeChangeReq)(nil), "serverproto.CSMapLevelTypeChangeReq")
+	proto.RegisterType((*SCMapLevelTypeChangeAck)(nil), "serverproto.SCMapLevelTypeChangeAck")
 }
 
 func init() {
@@ -36365,7 +36445,7 @@ func init() {
 }
 
 var fileDescriptor_67c21677aa7f4e4f = []byte{
-	// 18713 bytes of a gzipped FileDescriptorProto
+	// 18744 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x5d, 0x8c, 0x24, 0x47,
 	0x92, 0x20, 0x06, 0x23, 0x33, 0xeb, 0x27, 0xd3, 0xaa, 0xb2, 0xaa, 0x3a, 0xfb, 0xaf, 0x9a, 0xcd,
 	0x66, 0x77, 0x07, 0x87, 0x1c, 0x92, 0x33, 0xfc, 0x6b, 0x92, 0xcd, 0x26, 0x39, 0x9c, 0x9e, 0xae,
@@ -37533,7 +37613,9 @@ var fileDescriptor_67c21677aa7f4e4f = []byte{
 	0x60, 0xaf, 0x05, 0x49, 0x8a, 0xce, 0xd8, 0x55, 0x2d, 0x9d, 0xd8, 0xfa, 0x2e, 0x9c, 0xd3, 0x8b,
 	0xc6, 0x37, 0xb6, 0x8e, 0xa4, 0xfc, 0x9d, 0xd1, 0x72, 0x5b, 0xf2, 0x7a, 0xd6, 0x51, 0xe3, 0x06,
 	0xac, 0x67, 0xd4, 0xe2, 0x9e, 0x60, 0x22, 0xcf, 0x4d, 0xd4, 0xe3, 0x7e, 0x78, 0x4e, 0x0e, 0xb4,
-	0x74, 0x2e, 0x2a, 0x8c, 0xb1, 0x1c, 0x2f, 0xe9, 0xbc, 0x67, 0xcb, 0xe3, 0x8d, 0xb5, 0x1f, 0xac,
-	0xbc, 0xf1, 0xe6, 0x47, 0x5a, 0xf1, 0xee, 0x02, 0xfd, 0x7b, 0xe7, 0xff, 0x09, 0x00, 0x00, 0xff,
-	0xff, 0x4c, 0x32, 0x60, 0xcf, 0xa8, 0x27, 0x01, 0x00,
+	0x74, 0x2e, 0x2a, 0x8c, 0xb1, 0x1c, 0x2f, 0xe9, 0xbc, 0x67, 0xec, 0x34, 0xf8, 0x3a, 0x9c, 0x6f,
+	0xb6, 0xb7, 0x6d, 0x9e, 0xbf, 0xb1, 0x44, 0x33, 0x8e, 0xce, 0xad, 0xfc, 0x76, 0x4b, 0x89, 0xdf,
+	0x2e, 0x16, 0x6f, 0x37, 0x27, 0x8b, 0x23, 0x91, 0x19, 0xc5, 0x37, 0xd6, 0x7e, 0xb0, 0xf2, 0xc6,
+	0x9b, 0x1f, 0x69, 0xc4, 0x74, 0x17, 0xe8, 0xdf, 0x3b, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff,
+	0x3d, 0xb4, 0x2a, 0x5f, 0x06, 0x28, 0x01, 0x00,
 }

+ 10 - 0
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/login.proto

@@ -3737,4 +3737,14 @@ message CSBTRecharge100RewardReq {  //project game   //RouteRule game
 message SCBTRecharge100RewardAck {
     int32 error                                = 1; //错误码
     repeated KeyValueType reward_item_list     = 2; //奖励物品
+}
+
+message CSMapLevelTypeChangeReq
+{
+    int32 type = 1;//切換地圖模式
+}
+
+message SCMapLevelTypeChangeAck
+{
+   int32 type = 1;
 }

+ 151 - 144
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/messagedef.pb.go

@@ -753,6 +753,8 @@ const (
 	ProtoMsgId_SC_BT_RECHARGE100_NTF                           ProtoMsgId = 1749
 	ProtoMsgId_CS_BT_RECHARGE100_REWARD_REQ                    ProtoMsgId = 1750
 	ProtoMsgId_SC_BT_RECHARGE100_REWARD_ACK                    ProtoMsgId = 1751
+	ProtoMsgId_CS_MAP_LEVEL_TYPE_CHANGE_REQ                    ProtoMsgId = 1752
+	ProtoMsgId_SC_MAP_LEVEL_TYPE_CHANGE_ACK                    ProtoMsgId = 1753
 	ProtoMsgId_SS_WEB_GM_CHAT_MSG_NTF                          ProtoMsgId = 3000
 	ProtoMsgId_SS_WEB_GM_ADD_MAIL_NTF                          ProtoMsgId = 3001
 	ProtoMsgId_SS_WEB_GM_BAN_NTF                               ProtoMsgId = 3002
@@ -1779,6 +1781,8 @@ var ProtoMsgId_name = map[int32]string{
 	1749: "SC_BT_RECHARGE100_NTF",
 	1750: "CS_BT_RECHARGE100_REWARD_REQ",
 	1751: "SC_BT_RECHARGE100_REWARD_ACK",
+	1752: "CS_MAP_LEVEL_TYPE_CHANGE_REQ",
+	1753: "SC_MAP_LEVEL_TYPE_CHANGE_ACK",
 	3000: "SS_WEB_GM_CHAT_MSG_NTF",
 	3001: "SS_WEB_GM_ADD_MAIL_NTF",
 	3002: "SS_WEB_GM_BAN_NTF",
@@ -2805,6 +2809,8 @@ var ProtoMsgId_value = map[string]int32{
 	"SC_BT_RECHARGE100_NTF":                           1749,
 	"CS_BT_RECHARGE100_REWARD_REQ":                    1750,
 	"SC_BT_RECHARGE100_REWARD_ACK":                    1751,
+	"CS_MAP_LEVEL_TYPE_CHANGE_REQ":                    1752,
+	"SC_MAP_LEVEL_TYPE_CHANGE_ACK":                    1753,
 	"SS_WEB_GM_CHAT_MSG_NTF":                          3000,
 	"SS_WEB_GM_ADD_MAIL_NTF":                          3001,
 	"SS_WEB_GM_BAN_NTF":                               3002,
@@ -3117,7 +3123,7 @@ func init() {
 }
 
 var fileDescriptor_80cd42c70b4e6668 = []byte{
-	// 8796 bytes of a gzipped FileDescriptorProto
+	// 8812 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x7d, 0x57, 0x94, 0x23, 0xc7,
 	0xd5, 0x9e, 0xfd, 0xdb, 0xd6, 0x0e, 0x1a, 0x80, 0x34, 0x84, 0x48, 0xcd, 0x50, 0x12, 0x95, 0xa5,
 	0x59, 0xcb, 0xd2, 0x2e, 0x65, 0xf9, 0xcd, 0x4f, 0x0d, 0xa0, 0x67, 0xa6, 0xbd, 0x00, 0x1a, 0xd3,
@@ -3126,8 +3132,8 @@ var fileDescriptor_80cd42c70b4e6668 = []byte{
 	0x46, 0x91, 0x14, 0xc5, 0x9c, 0xf4, 0x9f, 0xfb, 0xd5, 0xbd, 0xd5, 0x55, 0xdd, 0xd5, 0x3d, 0xd0,
 	0xd3, 0xee, 0xf4, 0xf7, 0x55, 0xbe, 0x75, 0xab, 0xee, 0xad, 0x5b, 0x05, 0x6f, 0xfa, 0xff, 0xef,
 	0xb4, 0xeb, 0xae, 0xff, 0xe7, 0xb7, 0x3b, 0xfd, 0x66, 0xa7, 0xff, 0xb7, 0xe1, 0x77, 0xbb, 0xec,
-	0xfc, 0xfb, 0x9d, 0x5b, 0xf5, 0x5d, 0x77, 0xda, 0xe5, 0x0f, 0x3b, 0xed, 0x82, 0x3f, 0x7e, 0x7e,
-	0xf2, 0x9e, 0xff, 0xe6, 0x79, 0xf8, 0x6f, 0x7f, 0xd7, 0xdf, 0x86, 0xbf, 0x69, 0x35, 0xbd, 0x5a,
+	0xfc, 0xfb, 0x9d, 0x5b, 0xf5, 0x5d, 0x77, 0xda, 0xe5, 0x0f, 0x3b, 0xed, 0x82, 0x3f, 0x7e, 0xfe,
+	0xea, 0x9e, 0xff, 0xe6, 0x79, 0xf8, 0x6f, 0x7f, 0xd7, 0xdf, 0x86, 0xbf, 0x69, 0x35, 0xbd, 0x5a,
 	0x3f, 0x59, 0x18, 0xb7, 0x83, 0x85, 0x70, 0x30, 0xfd, 0x1f, 0x5a, 0xb3, 0xde, 0xb6, 0x49, 0x10,
 	0x2f, 0x87, 0x9d, 0x60, 0x1c, 0x76, 0x83, 0x41, 0x1a, 0xce, 0xaf, 0x8e, 0xfd, 0xce, 0xa6, 0xe9,
 	0xff, 0xd8, 0xda, 0xce, 0xdb, 0x66, 0xc1, 0x4f, 0x83, 0x71, 0x1a, 0xfb, 0x83, 0xa4, 0x1f, 0xa6,
@@ -3527,145 +3533,146 @@ var fileDescriptor_80cd42c70b4e6668 = []byte{
 	0xbc, 0x3c, 0xd0, 0xb4, 0x83, 0xc5, 0x0b, 0x24, 0xdc, 0x47, 0x10, 0xed, 0xd5, 0x4e, 0x39, 0x54,
 	0x5b, 0x4f, 0x20, 0x1a, 0x9d, 0x87, 0x8c, 0x66, 0xe7, 0x60, 0x43, 0x34, 0x1e, 0x36, 0x9a, 0xed,
 	0x66, 0x51, 0x51, 0x8f, 0xe8, 0xee, 0xcd, 0xf0, 0x5f, 0xed, 0xb8, 0x23, 0xca, 0x79, 0x54, 0x34,
-	0x75, 0x0e, 0x33, 0x0a, 0x79, 0x4c, 0x14, 0x8f, 0x9b, 0x02, 0xd3, 0x5e, 0x2d, 0x9c, 0x89, 0xc4,
-	0x0b, 0xaa, 0x67, 0x75, 0x12, 0x75, 0x6c, 0x79, 0xc5, 0x8c, 0x0d, 0xfa, 0xdd, 0xae, 0x7a, 0xcb,
-	0x80, 0xc0, 0x2b, 0x67, 0x10, 0x36, 0xa8, 0xc1, 0xb6, 0xaf, 0x4e, 0xa3, 0xaf, 0x9a, 0x81, 0xf4,
-	0x25, 0x8e, 0x08, 0xc4, 0xab, 0x05, 0xe2, 0xb9, 0x6d, 0x28, 0xc0, 0x6b, 0x66, 0xd0, 0xd2, 0x0c,
-	0xe2, 0x57, 0x74, 0x08, 0xbb, 0x76, 0x06, 0xa2, 0x99, 0x14, 0x5f, 0x03, 0xba, 0xce, 0x89, 0x50,
-	0x9a, 0xeb, 0x67, 0x30, 0x47, 0xc4, 0x2e, 0x28, 0xe0, 0x37, 0xcc, 0xc0, 0xb2, 0x10, 0x9c, 0x2b,
-	0x69, 0x32, 0x6e, 0x74, 0x32, 0xd2, 0x48, 0xdd, 0x5c, 0x27, 0xc6, 0x4d, 0x33, 0x98, 0xa5, 0x25,
-	0x96, 0xf4, 0xcd, 0x39, 0x34, 0xb3, 0x8d, 0x11, 0x69, 0x94, 0x43, 0xfd, 0x28, 0xcc, 0x5e, 0x3e,
-	0x9e, 0xbe, 0x55, 0xca, 0x76, 0xd9, 0xd5, 0x6a, 0x8e, 0xcf, 0xe0, 0xed, 0x62, 0xe3, 0x35, 0xe3,
-	0xdb, 0xad, 0x2f, 0x78, 0x66, 0x42, 0xfa, 0xc0, 0xb4, 0x5d, 0x8d, 0x85, 0xeb, 0xce, 0x19, 0xd8,
-	0x68, 0xb9, 0xfa, 0xdb, 0x61, 0x3c, 0x77, 0xe5, 0x38, 0xae, 0x57, 0xa7, 0xee, 0x9e, 0xc1, 0xdc,
-	0x4b, 0x4a, 0x9f, 0xb7, 0xba, 0x67, 0x06, 0xd3, 0x2a, 0xa9, 0x7c, 0x96, 0xea, 0xde, 0x19, 0x44,
-	0x9f, 0x27, 0xb6, 0x94, 0xdd, 0xa7, 0x47, 0x01, 0x8f, 0xac, 0x65, 0xfb, 0x44, 0xed, 0x3a, 0xb9,
-	0xbf, 0x92, 0x01, 0x87, 0x9d, 0xf4, 0x83, 0xfd, 0xdc, 0x86, 0x9e, 0x26, 0x0f, 0x56, 0xe0, 0x70,
-	0xd5, 0xcd, 0x60, 0x5f, 0xe5, 0xc4, 0x17, 0xc3, 0xec, 0x6d, 0x83, 0x87, 0x27, 0xe0, 0x61, 0x56,
-	0xcf, 0x60, 0xee, 0xdb, 0x3c, 0xde, 0x49, 0x66, 0x4f, 0x77, 0x3c, 0xba, 0x26, 0x0b, 0x81, 0x42,
-	0x32, 0x0b, 0x73, 0x2f, 0x60, 0x3c, 0xee, 0xf8, 0x8e, 0x40, 0xa0, 0xdc, 0x77, 0xfd, 0xd2, 0x85,
-	0xe3, 0x3b, 0x02, 0x7f, 0x64, 0x86, 0x59, 0xef, 0x56, 0xe0, 0xad, 0x0b, 0x41, 0x78, 0x16, 0x67,
-	0xfe, 0xa8, 0x67, 0x9c, 0x08, 0x5c, 0x69, 0x33, 0x50, 0x48, 0x32, 0xa7, 0xc8, 0x6e, 0xee, 0x76,
-	0x33, 0x65, 0x0b, 0xa7, 0x9a, 0x3d, 0x71, 0xf9, 0xe1, 0x2a, 0xe5, 0xae, 0xc7, 0x95, 0x21, 0x1b,
-	0x2f, 0x14, 0xfe, 0x42, 0x05, 0x8e, 0x4b, 0x43, 0xd2, 0xad, 0xd6, 0x7d, 0x60, 0xa6, 0xe9, 0x75,
-	0xed, 0xa5, 0x35, 0x59, 0xb8, 0x36, 0x34, 0x83, 0x95, 0x20, 0x29, 0xb9, 0x29, 0xfa, 0x8a, 0xc0,
-	0x12, 0x14, 0x6c, 0x5f, 0x2c, 0x7e, 0xb5, 0x1c, 0x86, 0x8f, 0x4d, 0x94, 0xaf, 0xeb, 0xda, 0xd6,
-	0x6b, 0x65, 0x20, 0xde, 0x00, 0x94, 0xe9, 0x56, 0x75, 0xb3, 0xe6, 0x8d, 0xb5, 0x48, 0x88, 0xe2,
-	0x11, 0x89, 0x2e, 0x23, 0x75, 0x55, 0x10, 0xf6, 0x5b, 0x13, 0xf0, 0x10, 0xd1, 0x23, 0xe3, 0xef,
-	0xbe, 0x00, 0x43, 0x9d, 0xf6, 0xb7, 0x19, 0x1c, 0xe7, 0x59, 0x14, 0x81, 0x59, 0x49, 0xfb, 0x49,
-	0x2a, 0xd7, 0x83, 0x26, 0x25, 0xe3, 0x9a, 0x90, 0x5e, 0x7d, 0xe4, 0x82, 0x8a, 0x7e, 0xb2, 0xec,
-	0x3d, 0x37, 0x84, 0x0b, 0x42, 0xd2, 0xb4, 0x35, 0xae, 0xbf, 0xbc, 0x3f, 0x01, 0x0f, 0x2e, 0x3f,
-	0xbd, 0xd0, 0xd9, 0x3c, 0xbc, 0xbb, 0x21, 0x79, 0xd8, 0xf7, 0x59, 0x22, 0xf6, 0x4f, 0x68, 0x87,
-	0xf8, 0x87, 0x13, 0xf0, 0x10, 0xf8, 0x23, 0x8b, 0x8c, 0xf3, 0x16, 0xcb, 0xc7, 0xa5, 0x28, 0xde,
-	0xdf, 0x10, 0xc5, 0x5f, 0x71, 0x8b, 0xe5, 0xd3, 0x35, 0x38, 0x78, 0x85, 0x63, 0x06, 0x5b, 0xff,
-	0x49, 0x6e, 0xb1, 0x7c, 0x3e, 0x19, 0x15, 0x97, 0x88, 0x26, 0xa3, 0xe2, 0x2a, 0x91, 0x4c, 0xe5,
-	0xca, 0xbb, 0x31, 0x5f, 0xad, 0xc9, 0x82, 0x6f, 0x50, 0xe4, 0x77, 0x25, 0x68, 0x2f, 0xf4, 0xc5,
-	0x06, 0xeb, 0xfb, 0xe1, 0x20, 0xf5, 0xf9, 0x27, 0x31, 0x76, 0x9b, 0x45, 0x40, 0xfb, 0xa4, 0xf1,
-	0xef, 0xbb, 0x4f, 0x4e, 0xc7, 0x6b, 0x21, 0x93, 0xd3, 0xa9, 0x32, 0x7b, 0xce, 0x22, 0x74, 0x32,
-	0xd7, 0x2a, 0xc3, 0x0d, 0x6b, 0x9c, 0x66, 0xec, 0x35, 0xcb, 0x83, 0x59, 0x11, 0xbd, 0xbd, 0xf7,
-	0x1a, 0x1c, 0x3c, 0x34, 0x32, 0x6b, 0xed, 0x9b, 0x1c, 0x81, 0xbd, 0xfb, 0x56, 0x32, 0x70, 0x07,
-	0x69, 0x96, 0x95, 0x53, 0x55, 0x60, 0xef, 0xfe, 0x6b, 0x91, 0x70, 0xe3, 0x68, 0xd6, 0x5a, 0x71,
-	0x5c, 0x81, 0xbd, 0x07, 0x54, 0x53, 0x70, 0x0b, 0xc9, 0x59, 0x54, 0x2e, 0xf6, 0xf7, 0xa0, 0xb5,
-	0x48, 0xb8, 0x9f, 0x34, 0xcb, 0x53, 0x77, 0x8d, 0xc0, 0xde, 0x43, 0x26, 0xe0, 0xe1, 0xc9, 0x92,
-	0x59, 0xf8, 0x0f, 0x2d, 0x9e, 0xbd, 0x95, 0x20, 0x3a, 0x1e, 0xa1, 0x9c, 0x85, 0xc5, 0x9b, 0xb8,
-	0x02, 0xb2, 0x8d, 0x45, 0xeb, 0xf0, 0x59, 0xde, 0xcc, 0xe5, 0xc2, 0xd2, 0x75, 0xb4, 0xe0, 0x11,
-	0x22, 0x53, 0x16, 0xc1, 0xb8, 0xf7, 0x62, 0x3a, 0x0e, 0x27, 0xe4, 0xc2, 0x77, 0xe8, 0x96, 0x2d,
-	0xeb, 0x8c, 0xfa, 0x68, 0x69, 0xad, 0xc5, 0x61, 0xcb, 0x84, 0x77, 0xfa, 0x6a, 0x81, 0xdc, 0x32,
-	0xcb, 0x2b, 0x43, 0x39, 0x33, 0xdb, 0x6a, 0x1d, 0xe3, 0x94, 0x00, 0x2b, 0x2a, 0xfe, 0xb8, 0x6a,
-	0x0a, 0x5c, 0x86, 0x55, 0x3d, 0x07, 0xaf, 0xe1, 0xac, 0xb5, 0xa9, 0xc8, 0xea, 0xa4, 0x0e, 0x08,
-	0x23, 0xb5, 0xa6, 0x9d, 0x38, 0x6b, 0x1b, 0x5d, 0x26, 0x79, 0xfa, 0xa4, 0x59, 0xde, 0x33, 0xe4,
-	0x2c, 0xa8, 0x91, 0xf2, 0xa7, 0x9f, 0xec, 0xec, 0x9f, 0x84, 0x36, 0x6e, 0x38, 0x35, 0x31, 0xc2,
-	0xa0, 0x26, 0x62, 0xc2, 0xfb, 0x38, 0xcb, 0x0b, 0x16, 0xd7, 0x07, 0x27, 0x94, 0x6a, 0x4c, 0xa6,
-	0xb7, 0xce, 0x5a, 0x1b, 0xa0, 0xfc, 0x39, 0xd2, 0xa9, 0xe5, 0x30, 0x5e, 0xa4, 0x9c, 0x65, 0x25,
-	0x6e, 0xc2, 0x45, 0xe1, 0xa0, 0x86, 0x9d, 0x3e, 0x6b, 0xed, 0xea, 0x14, 0xd5, 0xc0, 0xcf, 0xb0,
-	0xb3, 0xca, 0xba, 0x96, 0x85, 0xa7, 0x17, 0xf8, 0x5d, 0xde, 0x33, 0x9c, 0x39, 0x0b, 0x67, 0x76,
-	0x91, 0x8a, 0xa7, 0x8a, 0x8c, 0x1d, 0xd2, 0x59, 0x65, 0xc2, 0xa6, 0x4a, 0xef, 0xfa, 0x7d, 0x79,
-	0xae, 0xf6, 0x6c, 0x19, 0x79, 0xd7, 0x29, 0x05, 0x55, 0xef, 0x9c, 0x59, 0x87, 0x65, 0xe0, 0x38,
-	0xa5, 0x38, 0x77, 0x02, 0x1e, 0x7c, 0x92, 0x22, 0x8d, 0xe5, 0xa7, 0x14, 0xe7, 0x57, 0x53, 0xe0,
-	0x97, 0x94, 0x06, 0xae, 0x79, 0x4a, 0x71, 0xc1, 0x44, 0x4c, 0x5c, 0xd0, 0x92, 0xde, 0x5d, 0xeb,
-	0x94, 0xe2, 0xa2, 0x49, 0x88, 0xb8, 0xb4, 0x25, 0x3a, 0xc4, 0x7a, 0xfa, 0xb0, 0xdb, 0x1d, 0x87,
-	0xdd, 0xa8, 0x07, 0x9f, 0xbd, 0x9a, 0xc8, 0x78, 0x9b, 0x45, 0x66, 0xbd, 0x33, 0x53, 0xf5, 0x0e,
-	0xbd, 0xae, 0xc1, 0x25, 0x93, 0x92, 0x71, 0xed, 0x6b, 0x16, 0x67, 0x15, 0x13, 0x9e, 0x6c, 0x5c,
-	0x36, 0x31, 0x1b, 0xcf, 0xbc, 0xe4, 0x66, 0xbc, 0xfe, 0x21, 0x01, 0xf8, 0x60, 0x64, 0x1c, 0xfd,
-	0x8e, 0x5a, 0xda, 0xd0, 0x3d, 0x51, 0x2f, 0xc8, 0xd6, 0x8a, 0xfd, 0xe6, 0x2a, 0x29, 0x54, 0xc4,
-	0xfe, 0x73, 0xbc, 0xc1, 0x85, 0x7d, 0xa8, 0x7f, 0xeb, 0x04, 0x47, 0x6c, 0x6e, 0x08, 0x87, 0x6b,
-	0x73, 0xbc, 0x43, 0x94, 0x8c, 0x35, 0x05, 0x0f, 0x2e, 0xcf, 0xb1, 0xc1, 0xae, 0x8b, 0xc3, 0x2a,
-	0x58, 0xf8, 0x8a, 0x65, 0x6f, 0x8e, 0x9b, 0xa8, 0xbf, 0xce, 0x87, 0x83, 0x90, 0x4d, 0xba, 0x43,
-	0xe6, 0x58, 0xc3, 0x64, 0xa5, 0xeb, 0x9d, 0xf9, 0xa1, 0x82, 0xe1, 0x7a, 0x27, 0x36, 0x36, 0x1a,
-	0x3b, 0x4c, 0x32, 0x35, 0xe2, 0x9a, 0x35, 0x78, 0xb8, 0x34, 0xab, 0xed, 0x2f, 0xe4, 0xa0, 0x23,
-	0x24, 0x4f, 0xf5, 0xb3, 0x2c, 0x16, 0x76, 0xa4, 0x24, 0xeb, 0xfb, 0x79, 0xe8, 0x28, 0x9d, 0x0c,
-	0x3f, 0x4b, 0x61, 0x61, 0x47, 0xcf, 0xb1, 0xa6, 0xb3, 0x1e, 0x7d, 0xd7, 0xf0, 0x16, 0xe9, 0x48,
-	0xf3, 0xde, 0x59, 0xf6, 0x60, 0xb2, 0x24, 0xb6, 0xbc, 0x54, 0x1a, 0x3e, 0x56, 0xca, 0xc5, 0x1d,
-	0x7f, 0x3b, 0xe9, 0x71, 0x73, 0xac, 0x79, 0xd0, 0x75, 0xb8, 0xc4, 0x6c, 0x13, 0x8e, 0x17, 0x82,
-	0xeb, 0x6d, 0x6a, 0x2c, 0x4a, 0x55, 0x04, 0x04, 0xe8, 0xce, 0xf1, 0x6e, 0x4d, 0x8d, 0x4e, 0xf6,
-	0xd2, 0xba, 0x2e, 0xe3, 0x24, 0xc9, 0x42, 0x0f, 0x6e, 0xee, 0xe1, 0xf6, 0x93, 0xab, 0x08, 0x78,
-	0x13, 0x59, 0x46, 0x52, 0xbd, 0x04, 0x6b, 0x37, 0xe1, 0x4f, 0x32, 0x24, 0xfa, 0x41, 0x4a, 0x0d,
-	0x6d, 0x95, 0xae, 0x81, 0xc7, 0xd8, 0x4e, 0x76, 0xaa, 0xe4, 0x29, 0x8e, 0x7d, 0x13, 0x3c, 0x4d,
-	0xcb, 0xa3, 0x5a, 0x4f, 0x2c, 0xf0, 0x74, 0x69, 0x71, 0x42, 0x26, 0x65, 0x92, 0x86, 0xb8, 0x4a,
-	0x62, 0x32, 0xce, 0x98, 0xe3, 0xe5, 0x48, 0xbb, 0x2e, 0x6c, 0xfc, 0x4c, 0xa9, 0x32, 0x8e, 0x23,
-	0x2d, 0xe8, 0x2c, 0x2d, 0xec, 0xa3, 0x41, 0x5e, 0x10, 0xce, 0x9e, 0x63, 0x27, 0x0c, 0x7e, 0xd4,
-	0x2d, 0x7b, 0x4b, 0xf8, 0x9c, 0x39, 0x44, 0x20, 0x15, 0x9f, 0x07, 0x3e, 0xd7, 0x05, 0x60, 0x81,
-	0x10, 0x95, 0x90, 0x3d, 0x95, 0x9f, 0xff, 0xc9, 0xbc, 0xf3, 0xab, 0x29, 0x58, 0x20, 0xf4, 0xfc,
-	0x47, 0xf6, 0xb9, 0x0d, 0xe5, 0x05, 0xd2, 0x4d, 0x7d, 0x7f, 0xb3, 0x7d, 0x5f, 0x58, 0x18, 0x17,
-	0x4a, 0x7a, 0x9a, 0x4c, 0xea, 0x88, 0xc2, 0x70, 0x3f, 0x5e, 0x54, 0x8a, 0x42, 0xed, 0xdb, 0x22,
-	0x61, 0xef, 0x8e, 0x2f, 0x2e, 0x03, 0x11, 0x7c, 0x2b, 0xd3, 0xc9, 0x00, 0xcd, 0xb3, 0xa8, 0x72,
-	0x18, 0xe7, 0x4f, 0x0e, 0x98, 0x37, 0xd4, 0x08, 0xb1, 0x2d, 0x87, 0x11, 0x5a, 0x3b, 0xc7, 0x9b,
-	0x58, 0x25, 0x74, 0xb8, 0x35, 0x92, 0x7f, 0x5d, 0xf3, 0x4a, 0xe9, 0x78, 0xc5, 0x71, 0xdd, 0xb6,
-	0xbe, 0xaa, 0x9a, 0x82, 0x6b, 0xbf, 0x42, 0x31, 0x5e, 0xfa, 0xe4, 0x9f, 0xb0, 0x90, 0x55, 0xe8,
-	0x9a, 0x6a, 0x0a, 0xae, 0xfb, 0x9a, 0x42, 0xc0, 0x2e, 0xbe, 0xdc, 0xcb, 0xa2, 0xd7, 0x55, 0x53,
-	0x70, 0xf1, 0x57, 0x24, 0xc1, 0xdc, 0xbc, 0x59, 0xaf, 0x6d, 0xde, 0x50, 0xc9, 0xc0, 0xa5, 0x5f,
-	0x99, 0x32, 0x1a, 0xd2, 0x36, 0xf2, 0x4d, 0xd6, 0xe2, 0x31, 0x42, 0x6c, 0x6f, 0xf6, 0x66, 0x73,
-	0x19, 0x88, 0x77, 0x9b, 0xe7, 0xd8, 0xe6, 0xc9, 0x45, 0x24, 0x1b, 0x63, 0x4e, 0x23, 0x72, 0x9b,
-	0xee, 0xee, 0x20, 0x91, 0x4c, 0x72, 0x94, 0x3b, 0xe7, 0x10, 0xa0, 0xc7, 0x53, 0x53, 0xbb, 0xa7,
-	0xef, 0x92, 0xcf, 0x7d, 0xeb, 0xc1, 0xfc, 0xbb, 0x45, 0xb4, 0xad, 0x7d, 0x9c, 0x4c, 0xf3, 0x7b,
-	0xe6, 0x0c, 0x8f, 0xf5, 0x28, 0xec, 0x8e, 0xdb, 0xab, 0xbc, 0xaa, 0x8a, 0x2f, 0xff, 0xde, 0x4a,
-	0x06, 0x42, 0x5a, 0x45, 0x03, 0x75, 0xdb, 0xa6, 0x8b, 0x97, 0xf7, 0x64, 0x4b, 0xd3, 0xf7, 0x57,
-	0xe0, 0xf0, 0x89, 0x17, 0x71, 0xda, 0x76, 0x00, 0xa7, 0x16, 0x3c, 0x28, 0x2d, 0x10, 0xd0, 0x52,
-	0x54, 0x0f, 0x09, 0x8a, 0xde, 0x30, 0x29, 0xf8, 0x19, 0x1b, 0xd9, 0x02, 0xa8, 0x3d, 0x08, 0xdf,
-	0x94, 0x7b, 0xc4, 0x5a, 0xe5, 0xe3, 0x20, 0x19, 0xf7, 0x57, 0x93, 0x25, 0xd5, 0x8d, 0x8f, 0xce,
-	0xd9, 0x27, 0x08, 0xca, 0x5d, 0x6b, 0x18, 0x7e, 0x8f, 0xc9, 0xbc, 0xca, 0xff, 0xb0, 0x8e, 0xc1,
-	0x79, 0x5c, 0x8a, 0x45, 0xa5, 0xe4, 0xa7, 0x19, 0x9f, 0xd0, 0x93, 0x20, 0x48, 0xc7, 0x4b, 0xa3,
-	0x20, 0x5e, 0x95, 0xa7, 0xdb, 0xb4, 0x70, 0x3e, 0x59, 0x4d, 0x81, 0x1b, 0x5c, 0x2a, 0x8f, 0x77,
-	0xf3, 0xb2, 0xe7, 0xdf, 0xe0, 0x08, 0x97, 0xc1, 0x2a, 0x7d, 0xac, 0xee, 0x99, 0x4a, 0x06, 0x1c,
-	0xe3, 0xba, 0x03, 0x4a, 0x1e, 0x75, 0x7b, 0xae, 0x8a, 0x80, 0xa7, 0xa0, 0xe7, 0xe4, 0x8c, 0xc5,
-	0x41, 0x48, 0xb8, 0x33, 0x5e, 0x90, 0x51, 0x37, 0xbc, 0x05, 0xdd, 0x76, 0xe6, 0x56, 0x7e, 0xb1,
-	0x02, 0x47, 0x3c, 0xaa, 0x34, 0x04, 0x5d, 0x6c, 0x3a, 0x71, 0x65, 0xec, 0x5f, 0x96, 0xe9, 0x68,
-	0xbe, 0x51, 0x25, 0xd3, 0xe2, 0x95, 0xb9, 0xa2, 0xfb, 0x77, 0x21, 0xb0, 0x9e, 0xa1, 0x7a, 0xb5,
-	0x9a, 0x02, 0xc7, 0xf8, 0x1c, 0x5b, 0x0e, 0x6b, 0x3d, 0x45, 0xf5, 0xda, 0x24, 0x44, 0x38, 0xcc,
-	0xe7, 0x26, 0x74, 0x23, 0x23, 0x06, 0x55, 0x56, 0x00, 0xfb, 0xbd, 0x10, 0x69, 0xe3, 0x9b, 0xd9,
-	0xfa, 0x9e, 0x2c, 0xaa, 0x98, 0x37, 0x6d, 0x9e, 0xbc, 0x25, 0x58, 0xf6, 0x16, 0x87, 0x9e, 0x52,
-	0x6f, 0x4b, 0xc3, 0x79, 0x35, 0xc9, 0x3d, 0x05, 0x02, 0xd7, 0xb8, 0x56, 0x91, 0xa4, 0x05, 0xda,
-	0xfe, 0x20, 0xdb, 0x8b, 0xbf, 0x33, 0xe7, 0xf2, 0x08, 0x1b, 0xd7, 0x59, 0xf9, 0xa1, 0xf3, 0x77,
-	0xf5, 0x66, 0x8e, 0x6a, 0x37, 0x94, 0xc5, 0xde, 0x98, 0x45, 0xef, 0xb9, 0xf5, 0x30, 0x5c, 0xe1,
-	0x32, 0xeb, 0xb3, 0xcf, 0xc6, 0x72, 0xfe, 0x7e, 0x29, 0x0a, 0xb7, 0xb7, 0xa9, 0xd1, 0xc0, 0x60,
-	0x03, 0x44, 0x2b, 0xf2, 0x0f, 0x2a, 0x19, 0x88, 0x78, 0x15, 0xe9, 0xd4, 0x0c, 0x3b, 0x18, 0xe1,
-	0xa3, 0x0a, 0x1c, 0x51, 0xaf, 0x32, 0x72, 0x36, 0x2e, 0x91, 0x08, 0x9f, 0x94, 0xc3, 0x88, 0x7a,
-	0x15, 0xc9, 0x56, 0x41, 0x8d, 0x99, 0x42, 0xc4, 0x23, 0x59, 0xd6, 0x3e, 0x3c, 0xeb, 0x01, 0x3d,
-	0xbc, 0x9f, 0x8b, 0x02, 0x33, 0xee, 0xb4, 0xe4, 0xbb, 0xfe, 0x0b, 0x11, 0x01, 0xeb, 0xd6, 0x80,
-	0x95, 0xcd, 0x97, 0x96, 0xe2, 0x35, 0x79, 0x94, 0xc1, 0x57, 0x99, 0xb1, 0xe4, 0xe7, 0x55, 0xf6,
-	0x3f, 0x73, 0xf2, 0xe5, 0xa0, 0xec, 0xb6, 0x9e, 0x5b, 0x88, 0xcc, 0x8d, 0x66, 0x52, 0xde, 0xbb,
-	0xaf, 0xe7, 0xce, 0xd5, 0xa1, 0x72, 0x76, 0xe2, 0x3d, 0xd6, 0xe7, 0x87, 0x2f, 0xbf, 0xf1, 0xda,
-	0xb3, 0x92, 0x81, 0x57, 0xad, 0xd7, 0xf3, 0xc1, 0x61, 0x3b, 0xcd, 0xf5, 0xef, 0xde, 0xeb, 0xd9,
-	0x01, 0x51, 0x16, 0x98, 0xa1, 0x99, 0xfb, 0xac, 0x17, 0xab, 0x7e, 0x82, 0x9b, 0x69, 0xef, 0x6f,
-	0x98, 0x90, 0x0c, 0x11, 0xde, 0x20, 0x1e, 0x95, 0xd2, 0x9b, 0x8a, 0x1f, 0x54, 0x53, 0x20, 0xc4,
-	0xd5, 0x45, 0xda, 0xfe, 0xf6, 0x8f, 0x26, 0x25, 0x43, 0xbc, 0x37, 0xe0, 0x86, 0xe0, 0xbf, 0x74,
-	0xab, 0xf0, 0x93, 0x7f, 0x31, 0x0d, 0x26, 0xc2, 0x06, 0x71, 0x52, 0x95, 0x77, 0x1a, 0xe6, 0xc4,
-	0x86, 0xd6, 0xaf, 0xbd, 0x0d, 0xa5, 0x3c, 0xd9, 0x54, 0x93, 0x0c, 0x64, 0x2a, 0xf2, 0xf3, 0xea,
-	0x16, 0xdb, 0x66, 0xc0, 0x17, 0x93, 0x92, 0x11, 0x29, 0xbe, 0x81, 0xf7, 0x82, 0xe5, 0x97, 0xe3,
-	0xa8, 0x02, 0xff, 0xac, 0x6e, 0x9d, 0x56, 0x36, 0xbb, 0x6d, 0x14, 0x97, 0xd8, 0x5a, 0x97, 0xf7,
-	0x76, 0xdf, 0x58, 0x99, 0x23, 0xdc, 0x7b, 0x70, 0xc4, 0x4c, 0xc0, 0x83, 0x57, 0x66, 0xa3, 0xb8,
-	0x0b, 0x62, 0xfe, 0xad, 0x2d, 0xeb, 0x1c, 0xe7, 0x40, 0x5d, 0xb1, 0x0c, 0x56, 0xc6, 0x03, 0x6a,
-	0x64, 0x30, 0x0f, 0xda, 0x28, 0x2e, 0xb8, 0x5c, 0x10, 0xb8, 0xb2, 0x23, 0x33, 0x3f, 0xee, 0xc1,
-	0x93, 0x10, 0x11, 0xf7, 0xbc, 0xb1, 0xf5, 0x2b, 0xef, 0x17, 0xc9, 0x9a, 0x57, 0x7b, 0x8c, 0x4a,
-	0x1c, 0xba, 0x11, 0x91, 0xe8, 0x93, 0xdf, 0x06, 0x3a, 0xec, 0x5f, 0x49, 0x80, 0xb7, 0xd9, 0xa5,
-	0xbf, 0x24, 0x1e, 0x9d, 0x16, 0x65, 0x15, 0xeb, 0x02, 0x6f, 0x50, 0x39, 0x8c, 0x17, 0xda, 0x5d,
-	0xb0, 0x8a, 0x82, 0x81, 0x53, 0xa8, 0x1c, 0xc6, 0x3b, 0xed, 0xe5, 0x30, 0x5e, 0x6b, 0xdb, 0x28,
-	0x2a, 0xd1, 0x80, 0xad, 0xab, 0x31, 0xc7, 0x54, 0x32, 0x10, 0xdd, 0x5c, 0xc9, 0xa0, 0x52, 0x8e,
-	0x2b, 0x6f, 0x21, 0xc1, 0x27, 0x6c, 0x64, 0x67, 0xa5, 0x09, 0x2b, 0x87, 0xc0, 0x68, 0x10, 0xa6,
-	0xb9, 0x8b, 0x31, 0x27, 0x4e, 0xcc, 0x46, 0x28, 0xb4, 0x08, 0xa3, 0xc9, 0xce, 0x78, 0x86, 0x1c,
-	0x9c, 0x9c, 0x6f, 0x46, 0xe1, 0x47, 0xe1, 0x4e, 0xa9, 0x64, 0xe0, 0xa8, 0xa2, 0x92, 0x41, 0xa5,
-	0x6c, 0xdd, 0x28, 0x87, 0x4c, 0x85, 0xce, 0xd2, 0xf7, 0x17, 0x4e, 0x5d, 0x83, 0x83, 0x30, 0xe9,
-	0x8d, 0xed, 0xe9, 0xff, 0xfd, 0xf5, 0x0d, 0x1b, 0xff, 0xe7, 0xae, 0x3b, 0xed, 0xf2, 0x87, 0x9d,
-	0x76, 0xf9, 0xdd, 0x2e, 0x3b, 0xff, 0x7e, 0xe7, 0xff, 0xfb, 0x35, 0xfc, 0xf3, 0xeb, 0x7f, 0x0f,
-	0x00, 0x00, 0xff, 0xff, 0x9b, 0x9d, 0x20, 0x72, 0xdc, 0x81, 0x00, 0x00,
+	0x75, 0x0e, 0x33, 0x0a, 0x79, 0x4c, 0x14, 0x8f, 0x9b, 0x02, 0xd3, 0x5e, 0x72, 0xa1, 0xdd, 0x99,
+	0x92, 0x22, 0xb8, 0xe6, 0x0d, 0xfd, 0xf6, 0x84, 0xe4, 0xe2, 0xa6, 0xc0, 0xa4, 0x57, 0xcb, 0x6f,
+	0x22, 0x51, 0x87, 0xea, 0x71, 0x9e, 0x44, 0x1d, 0x7e, 0x5e, 0x31, 0x63, 0x83, 0x7e, 0xb7, 0xab,
+	0x5e, 0x44, 0x20, 0xf0, 0xca, 0x19, 0x04, 0x1f, 0x6a, 0xb0, 0xed, 0xab, 0x33, 0xed, 0xab, 0x66,
+	0x20, 0xc3, 0x89, 0x23, 0x8e, 0xf1, 0x6a, 0x81, 0x58, 0x43, 0x18, 0x6a, 0xf4, 0x9a, 0x19, 0xf4,
+	0x57, 0x06, 0xf1, 0x5b, 0x3c, 0x84, 0x5d, 0x3b, 0x03, 0x01, 0x4f, 0x8a, 0x6f, 0x0a, 0x5d, 0xe7,
+	0x44, 0x28, 0xcd, 0xf5, 0x33, 0x98, 0x69, 0x62, 0x5d, 0x14, 0xf0, 0x1b, 0x66, 0x60, 0x9f, 0x08,
+	0xce, 0x95, 0x34, 0x19, 0x37, 0x3a, 0x19, 0x69, 0xa4, 0xee, 0xbf, 0x13, 0xe3, 0xa6, 0x19, 0xcc,
+	0xf5, 0x12, 0x7b, 0xfc, 0xe6, 0x1c, 0x9a, 0x59, 0xd8, 0x88, 0x57, 0xca, 0xa1, 0x7e, 0x14, 0x66,
+	0xef, 0x27, 0x4f, 0xdf, 0x2a, 0x65, 0xbb, 0xac, 0x73, 0xa5, 0x29, 0x66, 0xf0, 0x02, 0xb2, 0xf1,
+	0x26, 0xf2, 0xed, 0xd6, 0x17, 0x3c, 0x56, 0x21, 0x7d, 0x60, 0x5a, 0xc0, 0x86, 0x78, 0xdc, 0x39,
+	0x03, 0x4b, 0x2f, 0x57, 0x7f, 0x3b, 0x18, 0xe8, 0xae, 0x1c, 0xc7, 0xf5, 0x76, 0xd5, 0xdd, 0x33,
+	0x98, 0xc1, 0x49, 0xe9, 0x23, 0x59, 0xf7, 0xcc, 0x60, 0x72, 0x26, 0x95, 0x8f, 0x5b, 0xdd, 0x3b,
+	0x83, 0x18, 0xf6, 0xc4, 0x96, 0xb2, 0xfb, 0xf4, 0x28, 0xe0, 0xa9, 0xb6, 0x6c, 0xb7, 0xa9, 0x1d,
+	0x30, 0xf7, 0x57, 0x32, 0xe0, 0xf6, 0x93, 0x7e, 0xb0, 0x1f, 0xed, 0xd0, 0x93, 0xed, 0xc1, 0x0a,
+	0x1c, 0x0e, 0xbf, 0x19, 0xec, 0xce, 0x9c, 0xf8, 0x62, 0x98, 0xbd, 0x90, 0xf0, 0xf0, 0x04, 0x3c,
+	0xe8, 0x86, 0x19, 0x68, 0x10, 0x9b, 0xc7, 0xfb, 0xd1, 0xec, 0x01, 0x90, 0x47, 0xd7, 0x64, 0x21,
+	0xdc, 0x48, 0x66, 0x61, 0xee, 0x1d, 0x8d, 0xc7, 0x1d, 0xdf, 0x11, 0x4e, 0x94, 0xfb, 0xae, 0xdf,
+	0xcb, 0x70, 0x7c, 0x47, 0xf8, 0x90, 0xcc, 0x30, 0xeb, 0xf5, 0x0b, 0xbc, 0x98, 0x21, 0x08, 0xcf,
+	0xe2, 0xcc, 0xab, 0xf5, 0x8c, 0x13, 0x81, 0x43, 0x6e, 0x06, 0x0a, 0x49, 0xe6, 0x14, 0x59, 0xdf,
+	0xdd, 0x6e, 0xa6, 0xb2, 0xe1, 0x9a, 0xb3, 0x27, 0x2e, 0x3f, 0x7f, 0xa5, 0x9c, 0xfe, 0xb8, 0x78,
+	0x64, 0xe3, 0x85, 0xc2, 0x5f, 0xa8, 0xc0, 0x71, 0xf5, 0x48, 0xba, 0xd5, 0xba, 0x55, 0xcc, 0x34,
+	0xbd, 0x3a, 0xbe, 0xb4, 0x26, 0x0b, 0x97, 0x8f, 0x66, 0xb0, 0x9e, 0x24, 0x25, 0xf7, 0x4d, 0x5f,
+	0x11, 0x58, 0x42, 0x8b, 0xed, 0xeb, 0xc9, 0xaf, 0x96, 0xc3, 0xf0, 0xd4, 0x89, 0xf2, 0x75, 0x5d,
+	0xfe, 0x7a, 0xad, 0x0c, 0xc4, 0x4b, 0x82, 0x32, 0xdd, 0xaa, 0xee, 0xe7, 0xbc, 0xb1, 0x16, 0x09,
+	0xb1, 0x40, 0x22, 0xd1, 0x65, 0xa4, 0xae, 0x0a, 0xe5, 0x7e, 0x6b, 0x02, 0x1e, 0xe2, 0x82, 0x64,
+	0xfc, 0xdd, 0xd7, 0x68, 0xa8, 0xd3, 0xfe, 0x36, 0x83, 0x43, 0x41, 0x8b, 0x22, 0x30, 0x2b, 0x69,
+	0x3f, 0x49, 0xe5, 0x92, 0xd1, 0xa4, 0x64, 0x5c, 0x36, 0xd2, 0xab, 0x8f, 0x5c, 0x73, 0xd1, 0x0f,
+	0x9f, 0xbd, 0xe7, 0x86, 0x70, 0xcd, 0x48, 0x9a, 0xb6, 0xc6, 0x25, 0x9a, 0xf7, 0x27, 0xe0, 0xc1,
+	0x71, 0xa8, 0x17, 0x3a, 0x9b, 0x87, 0xd7, 0x3b, 0x24, 0x0f, 0xfb, 0x56, 0x4c, 0xc4, 0x5e, 0x0e,
+	0xed, 0x56, 0xff, 0x70, 0x02, 0x1e, 0xc2, 0x87, 0x64, 0x91, 0x71, 0xde, 0x85, 0xf9, 0xb8, 0x14,
+	0xc5, 0x2b, 0x1e, 0xa2, 0xf8, 0x2b, 0xee, 0xc2, 0x7c, 0xba, 0x06, 0x07, 0x6f, 0x79, 0xcc, 0xc0,
+	0x80, 0x98, 0xe4, 0x2e, 0xcc, 0xe7, 0x93, 0x51, 0x71, 0x15, 0x69, 0x32, 0x2a, 0x2e, 0x24, 0xc9,
+	0x54, 0xae, 0xbc, 0x61, 0xf3, 0xd5, 0x9a, 0x2c, 0x78, 0x18, 0x45, 0x7e, 0x57, 0x82, 0xf6, 0x42,
+	0x5f, 0x2c, 0xb9, 0xbe, 0x1f, 0x0e, 0x52, 0x9f, 0x7f, 0x58, 0x63, 0xb7, 0x59, 0x84, 0xc5, 0x4f,
+	0x1a, 0x45, 0xbf, 0xfb, 0xe4, 0x74, 0xbc, 0x39, 0x32, 0x39, 0x9d, 0x2a, 0xb3, 0xe7, 0x2c, 0x02,
+	0x30, 0x73, 0xad, 0x32, 0x9c, 0xb9, 0xc6, 0x99, 0xc8, 0x5e, 0xb3, 0x3c, 0x98, 0x15, 0x31, 0xe0,
+	0x7b, 0xaf, 0xc1, 0xc1, 0x73, 0x25, 0xb3, 0xd6, 0xbe, 0xc9, 0x11, 0x1e, 0xbc, 0x6f, 0x25, 0x03,
+	0x37, 0x99, 0x66, 0x59, 0x39, 0x55, 0x85, 0x07, 0xef, 0xbf, 0x16, 0x09, 0xf7, 0x96, 0x66, 0xad,
+	0x15, 0xc7, 0x15, 0x1e, 0x7c, 0x40, 0x35, 0x05, 0x77, 0x99, 0x9c, 0x45, 0xe5, 0x22, 0x88, 0x0f,
+	0x5a, 0x8b, 0x84, 0x5b, 0x4e, 0xb3, 0x3c, 0x75, 0xd7, 0x08, 0x0f, 0x3e, 0x64, 0x02, 0x1e, 0x1e,
+	0x3e, 0x99, 0x85, 0x17, 0xd2, 0xe2, 0xd9, 0x5b, 0x09, 0xa2, 0xe3, 0x29, 0xcb, 0x59, 0xd8, 0xcd,
+	0x89, 0x2b, 0xac, 0xdb, 0x58, 0xb4, 0x0e, 0x9f, 0xe5, 0xcd, 0x5c, 0x2e, 0xb8, 0x5d, 0xc7, 0x1c,
+	0x1e, 0x21, 0x32, 0x65, 0x11, 0x8c, 0xdb, 0x33, 0xa6, 0xfb, 0x71, 0x42, 0x2e, 0x3c, 0x90, 0x6e,
+	0xd9, 0xb2, 0x4e, 0xba, 0x8f, 0x96, 0xd6, 0x5a, 0x1c, 0xb6, 0x4c, 0x78, 0xa7, 0xaf, 0x16, 0xc8,
+	0x2d, 0xb3, 0xbc, 0x32, 0x94, 0x33, 0xb3, 0xad, 0xd6, 0x31, 0x4e, 0x09, 0xb0, 0x62, 0xeb, 0x8f,
+	0xab, 0xa6, 0xc0, 0xf1, 0x58, 0xd5, 0x73, 0xf0, 0x3d, 0xce, 0x5a, 0x9b, 0x8a, 0xac, 0x4e, 0xea,
+	0x98, 0x31, 0x52, 0x6b, 0xda, 0x89, 0xb3, 0xb6, 0xd1, 0x65, 0x92, 0xa7, 0x4f, 0x9a, 0xe5, 0x3d,
+	0x43, 0xce, 0x82, 0x1a, 0x29, 0xaf, 0xfc, 0xc9, 0xce, 0xfe, 0x49, 0x68, 0xe3, 0x86, 0xb3, 0x17,
+	0x23, 0x98, 0x6a, 0x22, 0x26, 0x7c, 0x98, 0xb3, 0xbc, 0x60, 0x71, 0x7d, 0x70, 0xce, 0xa9, 0xc6,
+	0x64, 0x7a, 0xeb, 0xac, 0xb5, 0x01, 0xca, 0x9f, 0x46, 0x9d, 0x5a, 0x0e, 0xe3, 0x5d, 0xcb, 0x59,
+	0x56, 0xe2, 0x26, 0x5c, 0x14, 0x0e, 0x6a, 0xd8, 0xe9, 0xb3, 0xd6, 0xae, 0x4e, 0x51, 0x0d, 0xfc,
+	0x0c, 0x3b, 0xab, 0xac, 0x6b, 0x59, 0x78, 0x7a, 0x81, 0xdf, 0xe5, 0x3d, 0xc3, 0x99, 0xb3, 0x70,
+	0x89, 0x17, 0xa9, 0x78, 0xf0, 0xc8, 0xd8, 0x21, 0x9d, 0x55, 0x26, 0x6c, 0xaa, 0xf4, 0xae, 0xdf,
+	0x97, 0x47, 0x6f, 0xcf, 0x96, 0x91, 0x77, 0x9d, 0x75, 0x50, 0xf5, 0xce, 0x99, 0x75, 0x58, 0x06,
+	0x8e, 0xb3, 0x8e, 0x73, 0x27, 0xe0, 0xc1, 0xb3, 0x29, 0xd2, 0x58, 0x7e, 0xd6, 0x71, 0x7e, 0x35,
+	0x05, 0xde, 0x4d, 0x69, 0xe0, 0x9a, 0x67, 0x1d, 0x17, 0x4c, 0xc4, 0xc4, 0x35, 0x2f, 0xe9, 0xdd,
+	0xb5, 0xce, 0x3a, 0x2e, 0x9a, 0x84, 0x88, 0xab, 0x5f, 0xa2, 0x43, 0xac, 0x07, 0x14, 0xbb, 0xdd,
+	0x71, 0xd8, 0x8d, 0x7a, 0xf0, 0xfc, 0xab, 0x89, 0x8c, 0x17, 0x5e, 0x64, 0xd6, 0x3b, 0x33, 0x55,
+	0xaf, 0xd9, 0xeb, 0x1a, 0x5c, 0x32, 0x29, 0x19, 0x97, 0xc7, 0x66, 0x71, 0xe2, 0x31, 0xe1, 0xf9,
+	0xc8, 0x65, 0x13, 0xb3, 0xf1, 0x58, 0x4c, 0x6e, 0xc6, 0xeb, 0x9f, 0x23, 0x80, 0x0f, 0x46, 0xc6,
+	0xd1, 0xef, 0xa8, 0xa5, 0x0d, 0xdd, 0x13, 0xf5, 0x82, 0x6c, 0xad, 0xd8, 0x6f, 0xae, 0x92, 0x42,
+	0x45, 0xec, 0x3f, 0xc7, 0x1b, 0x5c, 0xd8, 0x87, 0xfa, 0x17, 0x53, 0x70, 0x50, 0xe7, 0x86, 0x70,
+	0x44, 0x37, 0xc7, 0x3b, 0x44, 0xc9, 0x58, 0x53, 0xf0, 0x6c, 0xf3, 0x1c, 0x1b, 0xec, 0xba, 0x38,
+	0xac, 0x82, 0x85, 0xaf, 0x58, 0xf6, 0xe6, 0xb8, 0x89, 0xfa, 0xeb, 0x7c, 0x38, 0x08, 0xd9, 0xa4,
+	0x3b, 0x64, 0x8e, 0x35, 0x4c, 0x56, 0xba, 0xde, 0x99, 0x1f, 0x2a, 0x18, 0x2e, 0x89, 0x62, 0x63,
+	0xa3, 0xb1, 0xc3, 0x24, 0x53, 0x23, 0x3a, 0x5a, 0x83, 0x87, 0x4b, 0xb3, 0xda, 0xfe, 0x42, 0x0e,
+	0x3a, 0x42, 0xf2, 0x54, 0x3f, 0xee, 0x62, 0x61, 0x47, 0x4a, 0xb2, 0xbe, 0x9f, 0x87, 0x8e, 0xd2,
+	0xc9, 0xf0, 0xe3, 0x16, 0x16, 0x76, 0xf4, 0x1c, 0x6b, 0x3a, 0xeb, 0xe9, 0x78, 0x0d, 0x6f, 0x91,
+	0x8e, 0x34, 0x6f, 0xaf, 0x65, 0xcf, 0x2e, 0x4b, 0x62, 0xcb, 0x4b, 0xa5, 0xe1, 0x63, 0xa5, 0x5c,
+	0xbc, 0x14, 0x60, 0x27, 0x3d, 0x6e, 0x8e, 0x35, 0x0f, 0xba, 0x0e, 0x57, 0xa1, 0x6d, 0xc2, 0xf1,
+	0x42, 0x70, 0xbd, 0x70, 0x8d, 0x45, 0xa9, 0x8a, 0x80, 0x30, 0xdf, 0x39, 0xde, 0xad, 0xa9, 0xd1,
+	0xc9, 0xde, 0x6b, 0xd7, 0x65, 0x9c, 0x24, 0x59, 0xe8, 0xc1, 0xcd, 0x3d, 0xff, 0x7e, 0x72, 0x15,
+	0x01, 0x2f, 0x2b, 0xcb, 0x48, 0xaa, 0xf7, 0x64, 0xed, 0x26, 0xfc, 0x49, 0x86, 0x44, 0x3f, 0x6b,
+	0xa9, 0xa1, 0xad, 0xd2, 0x35, 0xf0, 0x3b, 0xdb, 0xc9, 0x4e, 0x95, 0x3c, 0xe5, 0x78, 0xc0, 0x04,
+	0x4f, 0xd3, 0xf2, 0xa8, 0xd6, 0x13, 0x0b, 0x3c, 0x5d, 0x5a, 0x9c, 0x90, 0x49, 0x99, 0xa4, 0x21,
+	0x2e, 0xa4, 0x98, 0x8c, 0x33, 0xe6, 0x78, 0x39, 0xd2, 0xae, 0x0b, 0x1b, 0x3f, 0x53, 0xaa, 0x8c,
+	0x43, 0x4d, 0x0b, 0x3a, 0x4b, 0x0b, 0xfb, 0x68, 0x90, 0x17, 0x84, 0xb3, 0xe7, 0xd8, 0x09, 0x83,
+	0x9f, 0x86, 0xcb, 0x5e, 0x24, 0x3e, 0x67, 0x0e, 0x71, 0x4c, 0xc5, 0x47, 0x86, 0xcf, 0x75, 0x01,
+	0x58, 0x20, 0x44, 0x25, 0x64, 0x0f, 0xee, 0xe7, 0x7f, 0x78, 0xef, 0xfc, 0x6a, 0x0a, 0x16, 0x08,
+	0x3d, 0xff, 0x91, 0x7d, 0x6e, 0x43, 0x79, 0x81, 0x74, 0x53, 0xdf, 0xdf, 0x6c, 0xdf, 0x3a, 0x16,
+	0xc6, 0x85, 0x92, 0x3e, 0xf3, 0x3f, 0x1b, 0xee, 0xc7, 0x8b, 0x4a, 0x51, 0xa8, 0x7d, 0x5b, 0x24,
+	0xec, 0xdd, 0xf1, 0xc5, 0x65, 0x20, 0x42, 0x78, 0x65, 0x3a, 0x19, 0xa0, 0x79, 0xa2, 0x55, 0x0e,
+	0xe3, 0x14, 0xcb, 0x01, 0xf3, 0x86, 0x1a, 0x81, 0xba, 0xe5, 0x30, 0x02, 0x74, 0xe7, 0x78, 0x13,
+	0xab, 0x84, 0x0e, 0x77, 0x4f, 0xf2, 0x6f, 0x74, 0x5e, 0x29, 0x1d, 0xaf, 0x38, 0xae, 0x3b, 0xdb,
+	0x57, 0x55, 0x53, 0x70, 0x79, 0x58, 0x28, 0xc6, 0x7b, 0xa1, 0xfc, 0x43, 0x18, 0xb2, 0x0a, 0x5d,
+	0x53, 0x4d, 0xc1, 0xa5, 0x61, 0x53, 0x08, 0xd8, 0xc5, 0x97, 0x7b, 0x9f, 0xf4, 0xba, 0x6a, 0x0a,
+	0xae, 0x0f, 0x8b, 0x24, 0x98, 0x9b, 0x37, 0xeb, 0xcd, 0xce, 0x1b, 0x2a, 0x19, 0xb8, 0x3a, 0x2c,
+	0x53, 0x46, 0x43, 0xda, 0x46, 0xbe, 0xc9, 0x5a, 0x3c, 0x46, 0x88, 0x10, 0xce, 0x5e, 0x7e, 0x2e,
+	0x03, 0xf1, 0xfa, 0xf3, 0x1c, 0xdb, 0x3c, 0xb9, 0xb8, 0x66, 0x63, 0xcc, 0x69, 0x44, 0x6e, 0xd3,
+	0xdd, 0x1d, 0x24, 0x92, 0x49, 0x8e, 0x72, 0xe7, 0x1c, 0xc2, 0xfc, 0x78, 0x6a, 0x6a, 0xf7, 0xf4,
+	0x5d, 0xf2, 0xb9, 0x6f, 0x3d, 0xbb, 0x7f, 0xb7, 0x88, 0xb6, 0xb5, 0x8f, 0x93, 0x69, 0x7e, 0xcf,
+	0x9c, 0xe1, 0xb1, 0x1e, 0x85, 0xdd, 0x71, 0x7b, 0x95, 0x57, 0x55, 0xf1, 0xe5, 0xdf, 0x5b, 0xc9,
+	0x40, 0x60, 0xac, 0x68, 0xa0, 0x6e, 0xdb, 0x74, 0xf1, 0xf2, 0x9e, 0x6c, 0x69, 0xfa, 0xfe, 0x0a,
+	0x1c, 0x3e, 0xf1, 0x22, 0x4e, 0xdb, 0x0e, 0xe0, 0xd4, 0x82, 0x07, 0xa5, 0x05, 0x02, 0x5a, 0x8a,
+	0xea, 0x21, 0x41, 0xd1, 0x1b, 0x26, 0x05, 0x3f, 0x86, 0x23, 0x5b, 0x00, 0xb5, 0x07, 0xe1, 0xfb,
+	0x76, 0x8f, 0x58, 0xab, 0x7c, 0x1c, 0x24, 0xe3, 0xfe, 0x6a, 0xb2, 0xa4, 0xba, 0xf1, 0xd1, 0x39,
+	0xfb, 0x04, 0x41, 0xb9, 0x6b, 0x0d, 0xc3, 0xef, 0x31, 0x99, 0x57, 0xf9, 0x9f, 0xe7, 0x31, 0x38,
+	0x8f, 0x4b, 0xb1, 0xa8, 0x94, 0xfc, 0xc0, 0xe3, 0x13, 0x7a, 0x12, 0x04, 0xe9, 0x78, 0x69, 0x14,
+	0xc4, 0xab, 0xf2, 0x00, 0x9c, 0x16, 0xce, 0x27, 0xab, 0x29, 0x70, 0x83, 0x4b, 0xe5, 0xf1, 0xfa,
+	0x5e, 0xf6, 0x88, 0x1c, 0x1c, 0xe1, 0x32, 0x58, 0xa5, 0x4f, 0xde, 0x3d, 0x53, 0xc9, 0x80, 0x63,
+	0x5c, 0x77, 0x40, 0xc9, 0xd3, 0x70, 0xcf, 0x55, 0x11, 0xf0, 0xa0, 0xf4, 0x9c, 0x9c, 0xb1, 0x38,
+	0x08, 0x09, 0x77, 0xc6, 0x0b, 0x32, 0xea, 0x86, 0xb7, 0xa0, 0xdb, 0xce, 0xdc, 0xca, 0x2f, 0x56,
+	0xe0, 0x88, 0x6a, 0x95, 0x86, 0xa0, 0x8b, 0x4d, 0x27, 0xae, 0x8c, 0xfd, 0xcb, 0x32, 0x1d, 0xcd,
+	0x97, 0xae, 0x64, 0x5a, 0xbc, 0x32, 0x57, 0x74, 0xff, 0x2e, 0x04, 0xd6, 0x63, 0x56, 0xaf, 0x56,
+	0x53, 0xe0, 0x18, 0x9f, 0x63, 0xcb, 0x61, 0xad, 0x07, 0xad, 0x5e, 0x9b, 0x84, 0x08, 0x87, 0xf9,
+	0xdc, 0x84, 0x6e, 0x64, 0x44, 0xb2, 0xca, 0x0a, 0x60, 0xbf, 0x3a, 0x22, 0x6d, 0x7c, 0x33, 0x5b,
+	0xdf, 0x93, 0x45, 0x15, 0x39, 0xa7, 0xcd, 0x93, 0xb7, 0x04, 0xcb, 0x5e, 0xf4, 0xd0, 0x53, 0xea,
+	0x6d, 0x69, 0x38, 0xaf, 0x26, 0xb9, 0x07, 0x45, 0xe0, 0x1a, 0xd7, 0x2a, 0x92, 0xb4, 0x40, 0xdb,
+	0x1f, 0x64, 0x7b, 0xf1, 0x77, 0xe6, 0x5c, 0x1e, 0x61, 0xe3, 0x52, 0x2c, 0x3f, 0x97, 0xfe, 0xae,
+	0xde, 0xcc, 0x51, 0xed, 0x86, 0xb2, 0xd8, 0x1b, 0xb3, 0xe8, 0x3d, 0xb7, 0x1e, 0x86, 0x2b, 0x5c,
+	0x66, 0x7d, 0xf6, 0xd9, 0x58, 0xce, 0xdf, 0x2f, 0x45, 0xe1, 0xf6, 0x36, 0x35, 0x1a, 0x18, 0x6c,
+	0x80, 0x68, 0x45, 0xfe, 0x41, 0x25, 0x03, 0x71, 0xb3, 0x22, 0x9d, 0x9a, 0x61, 0x87, 0x34, 0x7c,
+	0x54, 0x81, 0x23, 0x76, 0x56, 0x46, 0xce, 0xc6, 0x25, 0x9e, 0xe1, 0x93, 0x72, 0x18, 0xb1, 0xb3,
+	0x22, 0xd9, 0x2a, 0x34, 0x32, 0x53, 0x88, 0x78, 0x6a, 0xcb, 0xda, 0x87, 0x67, 0x3d, 0xa0, 0x87,
+	0xf7, 0x73, 0x51, 0x60, 0xc6, 0xcd, 0x98, 0x7c, 0xd7, 0x7f, 0x21, 0x22, 0x60, 0xdd, 0x3d, 0xb0,
+	0xb2, 0xf9, 0xd2, 0x52, 0xbc, 0x26, 0x8f, 0x32, 0xf8, 0x2a, 0x33, 0x96, 0xfc, 0xbc, 0xca, 0xfe,
+	0x67, 0x4e, 0xbe, 0x1c, 0x94, 0xdd, 0xd6, 0x73, 0x0b, 0x91, 0xb9, 0xd1, 0x4c, 0xca, 0x7b, 0xf7,
+	0xf5, 0xdc, 0xb9, 0x3a, 0xe0, 0xce, 0x4e, 0xbc, 0xc7, 0xfa, 0xfc, 0xf0, 0xe5, 0x37, 0x5e, 0x7b,
+	0x56, 0x32, 0xf0, 0x36, 0xf6, 0x7a, 0x3e, 0x38, 0x6c, 0xa7, 0xb9, 0xfe, 0xdd, 0x7b, 0x3d, 0x3b,
+	0x20, 0xca, 0xc2, 0x3b, 0x34, 0x73, 0x9f, 0xf5, 0x62, 0xd5, 0x4f, 0x70, 0xbf, 0xed, 0xfd, 0x0d,
+	0x13, 0x92, 0x21, 0xc2, 0x1b, 0xc4, 0xa3, 0x52, 0x7a, 0xdf, 0xf1, 0x83, 0x6a, 0x0a, 0x84, 0xb8,
+	0xba, 0x48, 0xdb, 0xdf, 0xfe, 0xd1, 0xa4, 0x64, 0x88, 0xf7, 0x06, 0xdc, 0x33, 0xfc, 0x97, 0xee,
+	0x26, 0x7e, 0xf2, 0x2f, 0xa6, 0xc1, 0x44, 0xd8, 0x20, 0x4e, 0xaa, 0xf2, 0x4e, 0xc3, 0x9c, 0xd8,
+	0xd0, 0xfa, 0xb5, 0xb7, 0xa1, 0x94, 0x27, 0x9b, 0x6a, 0x92, 0x81, 0x4c, 0x45, 0x7e, 0x5e, 0xdd,
+	0x62, 0xdb, 0x0c, 0xf8, 0x62, 0x52, 0x32, 0xe2, 0xcd, 0x37, 0xf0, 0x5e, 0xb0, 0xfc, 0x8a, 0x1d,
+	0x55, 0xe0, 0x9f, 0xd5, 0xad, 0xd3, 0xca, 0x66, 0xb7, 0x8d, 0xe2, 0x12, 0x5b, 0xeb, 0x0a, 0xe0,
+	0xee, 0x1b, 0x2b, 0x73, 0x84, 0x7b, 0x0f, 0x8e, 0x98, 0x09, 0x78, 0xf0, 0xca, 0x6c, 0x14, 0x77,
+	0x41, 0xcc, 0xbf, 0xd8, 0x65, 0x9d, 0xe3, 0x1c, 0xa8, 0x2b, 0x96, 0xc1, 0xca, 0x78, 0x40, 0x8d,
+	0x0c, 0xe6, 0x41, 0x1b, 0xc5, 0x05, 0x97, 0x0b, 0x25, 0x57, 0x76, 0x64, 0xe6, 0xc7, 0x3d, 0x78,
+	0x12, 0x22, 0xa2, 0xa7, 0x37, 0xb6, 0x7e, 0xe5, 0xfd, 0x22, 0x59, 0xf3, 0x82, 0x90, 0x51, 0x89,
+	0x43, 0x37, 0x22, 0x9e, 0x7d, 0xf2, 0x3b, 0x45, 0x87, 0xfd, 0x2b, 0x09, 0xf0, 0xc2, 0xbb, 0xf4,
+	0x97, 0x44, 0xb5, 0xd3, 0xa2, 0xac, 0x62, 0x5d, 0xe0, 0x0d, 0x2a, 0x87, 0xf1, 0xce, 0xbb, 0x0b,
+	0x56, 0x51, 0x30, 0x70, 0x0a, 0x95, 0xc3, 0x78, 0xed, 0xbd, 0x1c, 0xc6, 0x9b, 0x6f, 0x1b, 0x45,
+	0x25, 0x1a, 0xb0, 0x75, 0xc1, 0xe6, 0x98, 0x4a, 0x06, 0x62, 0xa4, 0x2b, 0x19, 0x54, 0xca, 0x71,
+	0xe5, 0x2d, 0x24, 0xf8, 0x84, 0x8d, 0xec, 0xac, 0x34, 0x61, 0xe5, 0x10, 0x18, 0x0d, 0xc2, 0x34,
+	0x77, 0xbd, 0xe6, 0xc4, 0x89, 0xd9, 0x08, 0xa8, 0x16, 0x61, 0x34, 0xd9, 0x19, 0xcf, 0x90, 0x83,
+	0x93, 0xf3, 0xcd, 0x28, 0xfc, 0xb4, 0xdc, 0x29, 0x95, 0x0c, 0x1c, 0x55, 0x54, 0x32, 0xa8, 0x94,
+	0xad, 0x1b, 0xe5, 0x90, 0xa9, 0xd0, 0x59, 0xfa, 0x16, 0xc4, 0xa9, 0x6b, 0x70, 0x10, 0x6c, 0xbd,
+	0xb1, 0x3d, 0xfd, 0xbf, 0xbf, 0xbe, 0x61, 0xe3, 0xff, 0xdc, 0x75, 0xa7, 0x5d, 0xfe, 0xb0, 0xd3,
+	0x2e, 0xbf, 0xdb, 0x65, 0xe7, 0xdf, 0xef, 0xfc, 0x7f, 0xbf, 0x86, 0x7f, 0x7e, 0xfd, 0xef, 0x01,
+	0x00, 0x00, 0xff, 0xff, 0x10, 0xaa, 0x87, 0x35, 0x22, 0x82, 0x00, 0x00,
 }

+ 2 - 0
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/messagedef.proto

@@ -732,6 +732,8 @@ enum protoMsgId{
 	SC_BT_RECHARGE100_NTF            = 1749;		//	百元大礼包领取奖励 **SCBTRecharge100Ntf **login.proto ** [SCBTRecharge100Ntf]
 	CS_BT_RECHARGE100_REWARD_REQ     = 1750;		//	CSBTRecharge100RewardReq **CSBTRecharge100RewardReq **login.proto **game [CSBTRecharge100RewardReq]
 	SC_BT_RECHARGE100_REWARD_ACK     = 1751;		//	SCBTRecharge100RewardAck **SCBTRecharge100RewardAck **login.proto ** [SCBTRecharge100RewardAck]
+	CS_MAP_LEVEL_TYPE_CHANGE_REQ     = 1752;		//	CSMapLevelTypeChangeReq **CSMapLevelTypeChangeReq **login.proto ** [CSMapLevelTypeChangeReq]
+	SC_MAP_LEVEL_TYPE_CHANGE_ACK     = 1753;		//	SCMapLevelTypeChangeAck **SCMapLevelTypeChangeAck **login.proto ** [SCMapLevelTypeChangeAck]
 	SS_WEB_GM_CHAT_MSG_NTF           = 3000;		//	SSWebGMChatMsgNtf **SSWebGMChatMsgNtf **logic.proto **db,social,gmweb [SSWebGMChatMsgNtf]
 	SS_WEB_GM_ADD_MAIL_NTF           = 3001;		//	SSWebGMAddMailNtf **SSWebGMAddMailNtf **logic.proto **social,game,db [SSWebGMAddMailNtf]
 	SS_WEB_GM_BAN_NTF                = 3002;		//	SSWebGMBanNtf **SSWebGMBanNtf **logic.proto **social,game [SSWebGMBanNtf]

+ 2 - 0
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/messagedefclient.proto

@@ -709,5 +709,7 @@ enum protoMsgId{
 	SC_BT_RECHARGE100_NTF            = 1749;		//	百元大礼包领取奖励 **SCBTRecharge100Ntf **login.proto ** [SCBTRecharge100Ntf]
 	CS_BT_RECHARGE100_REWARD_REQ     = 1750;		//	CSBTRecharge100RewardReq **CSBTRecharge100RewardReq **login.proto **game [CSBTRecharge100RewardReq]
 	SC_BT_RECHARGE100_REWARD_ACK     = 1751;		//	SCBTRecharge100RewardAck **SCBTRecharge100RewardAck **login.proto ** [SCBTRecharge100RewardAck]
+	CS_MAP_LEVEL_TYPE_CHANGE_REQ     = 1752;		//	CSMapLevelTypeChangeReq **CSMapLevelTypeChangeReq **login.proto ** [CSMapLevelTypeChangeReq]
+	SC_MAP_LEVEL_TYPE_CHANGE_ACK     = 1753;		//	SCMapLevelTypeChangeAck **SCMapLevelTypeChangeAck **login.proto ** [SCMapLevelTypeChangeAck]
 
 }

Разница между файлами не показана из-за своего большого размера
+ 836 - 830
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/pbbind_gen.go


+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/proto_cmd.py

@@ -528,7 +528,7 @@ def saveOutFile(outDir, messageFile, messageFileClient, projectList, msgSection,
 	#生成每个消息的处理回调信息 todo...
 
 
-#main/////////////////////////////////////////////////////////////////////////////////////////
+#game/////////////////////////////////////////////////////////////////////////////////////////
 if __name__ == '__main__':
 	projects=['gate','game','db','auth','social','guild','aoi','rank','maprouter',"battlepve", "battleboss","battlerecord","gmweb",
 			  "crossrouter","crossserver","crossrank","gcrossrouter","gcrossmap"]

+ 2 - 2
RO_Server_Trunk-branch_0.1.39/roserver/test/model/cli_conn.go

@@ -10,7 +10,7 @@ import (
 )
 
 func init() {
-	socket.RegisterProcessRPC("tcp.demo",
+	socket.RegisterProcessRPC("tcpa.demo",
 		func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
 			b.SetTransmitter(new(socket.TCPMessageProcessor))
 
@@ -41,7 +41,7 @@ func CreateClientConn(f func(rocommon.Session)) {
 	var servicID string = ""
 	var addrStr string = "127.0.0.1:21001"
 	cli := socket.NewServerNode("tcpConnector", servicID, addrStr, nil)
-	socket.SetProcessorRPC(cli, "tcp.demo", func(ev rocommon.ProcEvent) {
+	socket.SetProcessorRPC(cli, "tcpa.demo", func(ev rocommon.ProcEvent) {
 		//todo...
 		switch m := ev.Msg().(type) {
 		case *rocommon.SessionConnectError:

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/test/model/game_benchmark.go

@@ -63,7 +63,7 @@ func Client(id int) {
 
 	rv := rocommon.NewNetSyncRecv(node)
 
-	socket.SetProcessorRPC(node, "tcp.demo", rv.EventCB())
+	socket.SetProcessorRPC(node, "tcpa.demo", rv.EventCB())
 	node.(rocommon.TCPConnector).SetReconnectTime(20 * time.Millisecond)
 	node.Start()
 

Разница между файлами не показана из-за своего большого размера
+ 3 - 3
RO_Server_Trunk-branch_0.1.39/roserver/test/model/test.go


+ 2 - 2
RO_Server_Trunk-branch_bt/rocommon/rpc/aesctrcrypt.go

@@ -13,7 +13,7 @@ import (
 	textStr := []byte("we are ro team")
 
 	aesPass := []byte("wenting123456789")
-	retStr, err := rpc.AESCtrEncrypt(textStr, aesPass)
+	retStr, err := rpcc.AESCtrEncrypt(textStr, aesPass)
 	if err != nil {
 		log.Printf("err:%v", err)
 		return
@@ -21,7 +21,7 @@ import (
 	retStr1 := base64.StdEncoding.EncodeToString(retStr)
 	log.Printf("en:%v", retStr1)
 
-	plainText,err := rpc.AESCtrDecrypt(retStr, aesPass)
+	plainText,err := rpcc.AESCtrDecrypt(retStr, aesPass)
 	if err != nil {
 		log.Printf("err:%v", err)
 		return

+ 1 - 1
RO_Server_Trunk-branch_bt/rocommon/socket/http/acceptor.go

@@ -51,7 +51,7 @@ func (this *httpAcceptor) Start() rocommon.ServerNode {
 	//ServeHTTP
 	this.sv = &http.Server{Addr: this.GetAddr(), Handler: this}
 
-	ln, err := net.Listen("tcp", this.GetAddr())
+	ln, err := net.Listen("tcpa", this.GetAddr())
 	if err != nil {
 		util.ErrorF("http.listen failed=%v", err)
 		return this

+ 23 - 23
RO_Server_Trunk-branch_bt/rocommon/socket/procrpc.go

@@ -45,7 +45,7 @@ func SetProcessorRPC(node rocommon.ServerNode, procName string, callback rocommo
 	}
 }
 
-//加入回调队列或者直接执行回调操作
+// 加入回调队列或者直接执行回调操作
 func QueueEventCall(cb rocommon.EventCallBack) rocommon.EventCallBack {
 	return func(e rocommon.ProcEvent) {
 		if cb != nil {
@@ -64,7 +64,7 @@ func QueueEventCall(cb rocommon.EventCallBack) rocommon.EventCallBack {
 	}
 }
 
-//在会话上执行事件回调,有队列则加入队列,没有就直接执行回调
+// 在会话上执行事件回调,有队列则加入队列,没有就直接执行回调
 func SessionQueueCall(s rocommon.Session, cb func()) {
 	if s == nil {
 		return
@@ -78,9 +78,9 @@ func SessionQueueCall(s rocommon.Session, cb func()) {
 	}
 }
 
-//注册和回掉函数相关操作
+// 注册和回掉函数相关操作
 func init() {
-	RegisterProcessRPC("tcp.pb",
+	RegisterProcessRPC("tcpa.pb",
 		func(b rocommon.ProcessorRPCBundle, usercb rocommon.EventCallBack, arg ...interface{}) {
 			b.SetTransmitter(new(TCPMessageProcessor))
 			b.SetHooker(new(TCPEventHook))
@@ -88,13 +88,13 @@ func init() {
 		})
 }
 
-/////////////////////////////////////////////
-//NetProcessorRPC
+// ///////////////////////////////////////////
+// NetProcessorRPC
 func (this *NetProcessorRPC) GetRPC() *NetProcessorRPC {
 	return this
 }
 
-//收到消息后调用该函数入队列操作
+// 收到消息后调用该函数入队列操作
 func (this *NetProcessorRPC) ProcEvent(e rocommon.ProcEvent) {
 	//todo... hooker callback
 	if this.Hooker != nil {
@@ -136,8 +136,8 @@ func (self *NetProcessorRPC) SetCallback(ecb rocommon.EventCallBack) {
 	self.Callback = ecb
 }
 
-/////////////////////////////////////////////
-//EventHook interface def.go
+// ///////////////////////////////////////////
+// EventHook interface def.go
 type TCPEventHook struct {
 }
 
@@ -147,7 +147,7 @@ func (this *TCPEventHook) InEvent(e rocommon.ProcEvent) rocommon.ProcEvent {
 	//例如远程过程调用的方式
 	inEvent, handled, err := RPCResolveInEvent(e)
 	if err != nil {
-		util.InfoF("rpc ResolveInEvent err:%v", err)
+		util.InfoF("rpcc ResolveInEvent err:%v", err)
 		return nil
 	}
 	if !handled {
@@ -157,12 +157,12 @@ func (this *TCPEventHook) InEvent(e rocommon.ProcEvent) rocommon.ProcEvent {
 	return inEvent
 }
 
-//获得发送事件
+// 获得发送事件
 func (this *TCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEvent {
 	//todo...
 	handled, err := RPCResloveOutEvent(out)
 	if err != nil {
-		util.InfoF("rpc RPCResolveOutEvent err:%v", err)
+		util.InfoF("rpcc RPCResolveOutEvent err:%v", err)
 		return nil
 	}
 
@@ -172,7 +172,7 @@ func (this *TCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEvent {
 	return out
 }
 
-//multiHook 例如game server有多个处理操作
+// multiHook 例如game server有多个处理操作
 type MultiTCPEventHook []rocommon.EventHook
 
 func (this MultiTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent {
@@ -185,7 +185,7 @@ func (this MultiTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent
 	return in
 }
 
-//获得发送事件
+// 获得发送事件
 func (this MultiTCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEvent {
 	for _, ev := range this {
 		out = ev.OutEvent(out)
@@ -200,8 +200,8 @@ func NewMultiTCPEventHook(args ...rocommon.EventHook) rocommon.EventHook {
 	return MultiTCPEventHook(args)
 }
 
-//根据收到的消息类型进行过滤处理,例如如果是RecvMsgEvent事件,那么说明经过了protobuf解析,直接返回
-//例如远程过程调用的方式 / RPC消息解析
+// 根据收到的消息类型进行过滤处理,例如如果是RecvMsgEvent事件,那么说明经过了protobuf解析,直接返回
+// 例如远程过程调用的方式 / RPC消息解析
 func RPCResolveInEvent(inEvent rocommon.ProcEvent) (rocommon.ProcEvent, bool, error) {
 	//是接收处理消息
 	if _, ok := inEvent.(*rocommon.RecvMsgEvent); ok {
@@ -217,12 +217,12 @@ func RPCResloveOutEvent(outEvent rocommon.ProcEvent) (bool, error) {
 	return true, nil
 }
 
-/////////////////////////////////////////////
-//MessageProcessor interface def.go
+// ///////////////////////////////////////////
+// MessageProcessor interface def.go
 type TCPMessageProcessor struct {
 }
 
-//recv
+// recv
 func (this *TCPMessageProcessor) OnRecvMsg(s rocommon.Session) (msg interface{}, msgSeqId uint32, err error) {
 	//todo...
 	reader, ok := s.Raw().(io.Reader)
@@ -238,7 +238,7 @@ func (this *TCPMessageProcessor) OnRecvMsg(s rocommon.Session) (msg interface{},
 	return
 }
 
-//send
+// send
 var tmpClient = []byte("client")
 
 func (this *TCPMessageProcessor) OnSendMsg(s rocommon.Session, msg interface{}) (err error) {
@@ -262,8 +262,8 @@ func (this *TCPMessageProcessor) OnSendMsg(s rocommon.Session, msg interface{})
 	return
 }
 
-/////////////////////////////////////////////
-//MessageProcessor interface def.go
+// ///////////////////////////////////////////
+// MessageProcessor interface def.go
 type WSMessageProcessor struct {
 }
 
@@ -274,7 +274,7 @@ const (
 	msgFlaglen = 2 //暂定标记,加解密 1表示RSA,2表示AES
 )
 
-//recv
+// recv
 func (this *WSMessageProcessor) OnRecvMsg(s rocommon.Session) (msg interface{}, msgSeqId uint32, err error) {
 	conn, ok := s.Raw().(*websocket.Conn)
 	if !ok || conn == nil {

+ 4 - 4
RO_Server_Trunk-branch_bt/rocommon/socket/tcp/acceptor.go

@@ -10,7 +10,7 @@ import (
 	"time"
 )
 
-//监听器实现(启动时可能会有多个连接器)
+// 监听器实现(启动时可能会有多个连接器)
 type tcpAcceptor struct {
 	socket.NetRuntimeTag      //运行状态
 	socket.NetTCPSocketOption //socket相关设置
@@ -22,7 +22,7 @@ type tcpAcceptor struct {
 	listener net.Listener
 }
 
-////interface ServerNode
+// //interface ServerNode
 func (this *tcpAcceptor) Start() rocommon.ServerNode {
 	//正在停止先等待
 	this.StopWg.Wait()
@@ -34,8 +34,8 @@ func (this *tcpAcceptor) Start() rocommon.ServerNode {
 	//https://github.com/gogf/greuse/blob/master/greuse.go
 	var listenCfg = net.ListenConfig{Control: Control}
 
-	ln, err := listenCfg.Listen(context.Background(), "tcp", this.GetAddr())
-	//ln, err := net.Listen("tcp", this.GetAddr())
+	ln, err := listenCfg.Listen(context.Background(), "tcpa", this.GetAddr())
+	//ln, err := net.Listen("tcpa", this.GetAddr())
 	if err != nil {
 		util.PanicF("tcpAcceptor listen failure=%v", err)
 	}

+ 3 - 3
RO_Server_Trunk-branch_bt/rocommon/socket/tcp/connector.go

@@ -11,7 +11,7 @@ import (
 	"time"
 )
 
-//连接器实现(启动时可能会有多个连接器)
+// 连接器实现(启动时可能会有多个连接器)
 type tcpConnector struct {
 	socket.NetRuntimeTag      //运行状态
 	socket.NetTCPSocketOption //socket相关设置
@@ -41,7 +41,7 @@ func (c *tcpConnector) connect(addr string) {
 				util.DebugF("[tcpConnector] connect begin=%v sid=%v[%v]", addr, preDesc.ID, c.connNum-1)
 			}
 		}
-		conn, err := net.Dial("tcp", addr)
+		conn, err := net.Dial("tcpa", addr)
 		if err != nil {
 			//log.Println("dail err:", err)
 			if c.reconnectTime == 0 || c.GetCloseFlag() {
@@ -100,7 +100,7 @@ func (c *tcpConnector) connect(addr string) {
 	util.InfoF("connector stop...")
 }
 
-//interface ServerNode
+// interface ServerNode
 func (c *tcpConnector) Start() rocommon.ServerNode {
 	c.StopWg.Wait()
 	if c.GetRuneState() {

+ 3 - 3
RO_Server_Trunk-branch_bt/rocommon/socket/websocket/acceptor.go

@@ -11,7 +11,7 @@ import (
 	"rocommon/util"
 )
 
-//监听器实现(启动时可能会有多个连接器)
+// 监听器实现(启动时可能会有多个连接器)
 type tcpWebSocketAcceptor struct {
 	socket.NetRuntimeTag      //运行状态
 	socket.NetTCPSocketOption //socket相关设置
@@ -48,8 +48,8 @@ func (this *tcpWebSocketAcceptor) Start() rocommon.ServerNode {
 
 	//https://github.com/gogf/greuse/blob/master/greuse.go
 	var listenCfg = net.ListenConfig{Control: Control}
-	ln, err := listenCfg.Listen(context.Background(), "tcp", this.GetAddr())
-	//ln, err := net.Listen("tcp", this.GetAddr())
+	ln, err := listenCfg.Listen(context.Background(), "tcpa", this.GetAddr())
+	//ln, err := net.Listen("tcpa", this.GetAddr())
 	if err != nil {
 		util.PanicF("webSocketAcceptor listen failure=%v", err)
 	}

+ 16 - 16
RO_Server_Trunk-branch_bt/roserver/baseserver/hook_event.go

@@ -12,14 +12,14 @@ import (
 	"strconv"
 )
 
-///////////////////////////////////////////ServerTCPEventHook
-//game.backend
-//服务器之间的消息处理派发
+// /////////////////////////////////////////ServerTCPEventHook
+// game.backend
+// 服务器之间的消息处理派发
 type ServerTCPEventHook struct {
 	recvPingNum int32
 }
 
-//def.go EventHook interface
+// def.go EventHook interface
 func (this *ServerTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent {
 	switch msg := in.Msg().(type) {
 	case *serverproto.ServiceIdentifyACK: //来自其他服务器的连接确认信息
@@ -84,13 +84,13 @@ func (this *ServerTCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEv
 	return out
 }
 
-///////////////////////////////////////////BackendTCPEventHook
+// /////////////////////////////////////////BackendTCPEventHook
 type BackendTCPEventHook struct {
 	selectRouterIdx int
 }
 
-//def.go EventHook interface
-//后端服务器接收到来自gate/db/auth的消息
+// def.go EventHook interface
+// 后端服务器接收到来自gate/db/auth的消息
 func (this *BackendTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent {
 	switch inMsg := in.Msg().(type) {
 	case *serverproto.GateTransmitAck:
@@ -206,7 +206,7 @@ func (this *BackendTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEve
 	return in
 }
 
-//后端服务器发送到gate/db的消息
+// 后端服务器发送到gate/db的消息
 func (this *BackendTCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEvent {
 	//todo...
 	switch out.Msg().(type) {
@@ -216,9 +216,9 @@ func (this *BackendTCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcE
 	return out
 }
 
-///////////////////////////////////////////BackendTCPEventHook
-//跨服router节点处理
-//收到social节点的消息,或者收到跨服功能节点的消息
+// /////////////////////////////////////////BackendTCPEventHook
+// 跨服router节点处理
+// 收到social节点的消息,或者收到跨服功能节点的消息
 type BackendTCPEventForCrossRouterHook struct {
 	selectRouterIdx int
 }
@@ -300,8 +300,8 @@ func (this *BackendTCPEventForCrossRouterHook) OutEvent(out rocommon.ProcEvent)
 	return out
 }
 
-///////////////////////////////////////////DBTCPEventHook
-//处理game和db之间的消息
+// /////////////////////////////////////////DBTCPEventHook
+// 处理game和db之间的消息
 type ServiceTCPEventHook struct {
 	kvTimeMsgNumList []serverproto.KeyValueType
 	CurTime          uint64
@@ -335,7 +335,7 @@ func (this *ServiceTCPEventHook) kvTimeMsgLog(msgId int32) {
 	}
 }
 
-//db接收来自其他服务器的消息
+// db接收来自其他服务器的消息
 func (this *ServiceTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent {
 	switch inMsg := in.Msg().(type) {
 	case *serverproto.ServiceTransmitAck:
@@ -360,7 +360,7 @@ func (this *ServiceTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEve
 	return in
 }
 
-//db发送到其他服务器的消息
+// db发送到其他服务器的消息
 func (this *ServiceTCPEventHook) OutEvent(out rocommon.ProcEvent) rocommon.ProcEvent {
 	//todo...
 	switch out.Msg().(type) {
@@ -379,7 +379,7 @@ type AuthTCPEventHook struct{
 func (this *AuthTCPEventHook) InEvent(in rocommon.ProcEvent) rocommon.ProcEvent {
 	switch inMsg := in.Msg().(type) {
 	case *serverproto.ServiceTransmitAck:
-		gateMsg, _, err := rpc.DecodeMessage(int(inMsg.MsgId), inMsg.MsgData)
+		gateMsg, _, err := rpcc.DecodeMessage(int(inMsg.MsgId), inMsg.MsgData)
 		if err != nil {
 			util.WarnF("[AuthTCPEventHook::InEvent] msg decode err:%v msgId:%v", err.Error(), inMsg.MsgId)
 			return nil

+ 8 - 8
RO_Server_Trunk-branch_bt/roserver/baseserver/model/client_user.go

@@ -49,7 +49,7 @@ var clientConnected = func(m *StateMachineCore, data interface{}) int32 {
 	return CLIENT_STATE_CONNECTED
 }
 
-//主线程中不要对结构中的数据做修改,否则会有多线程冲突(或者加锁进行操作)
+// 主线程中不要对结构中的数据做修改,否则会有多线程冲突(或者加锁进行操作)
 type ClientUser struct {
 	StateMachineCore
 	serviceNode   sync.RWMutex
@@ -149,7 +149,7 @@ func (this *ClientUser) Ping() {
 	this.LastPingTime = util.GetCurrentTimeNow()
 }
 
-//gate把接收到的数据直接发送到后端服务器节点
+// gate把接收到的数据直接发送到后端服务器节点
 func (this *ClientUser) ClientDirect2Backend(serviceId string, msgId int, seqId uint32, msgData []byte, serviceType string) error {
 	//获得后端服务器节点,并发送
 	service := GetServiceNode(serviceId)
@@ -172,7 +172,7 @@ func (this *ClientUser) ClientDirect2Backend(serviceId string, msgId int, seqId
 
 	//if msgId == 1173 {
 	//	this.kvTimeLock.Lock()
-	//	tmpMsg1, _, _ := rpc.DecodeMessage(msgId, msgData)
+	//	tmpMsg1, _, _ := rpcc.DecodeMessage(msgId, msgData)
 	//	recordTime := tmpMsg1.(*serverproto.CSPlayerBossRewardReq).RecordTimeStamp
 	//	nowTime := util.GetTimeMilliseconds()
 	//	util.DebugF("ClientKVTime=%v nowtime=%v", recordTime, nowTime)
@@ -353,7 +353,7 @@ func (this *ClientUser) ClientDirect2BackendByServiceName(serviceName string, ms
 	return nil
 }
 
-//gate发送消息到后端指定服务器节点,例如serviceName为game,就是发送到game服务器
+// gate发送消息到后端指定服务器节点,例如serviceName为game,就是发送到game服务器
 func (this *ClientUser) Client2Backend(serviceName string, msg interface{}) error {
 	serviceId := this.GetServiceBackend(serviceName)
 	//获得后端服务器节点,并发送
@@ -392,7 +392,7 @@ func (this *ClientUser) Broadcast2Backend(msg interface{}) {
 
 }
 
-//绑定用户需要发送到后台服务器的节点信息
+// 绑定用户需要发送到后台服务器的节点信息
 func (this *ClientUser) SetServiceBackend(serviceName string, serviceID string) {
 	this.serviceNode.Lock()
 	defer this.serviceNode.Unlock()
@@ -407,7 +407,7 @@ func (this *ClientUser) SetServiceBackend(serviceName string, serviceID string)
 	}
 }
 
-//根据服务器类型获取后端服务器节点信息
+// 根据服务器类型获取后端服务器节点信息
 func (this *ClientUser) GetServiceBackend(serviceName string) string {
 	this.serviceNode.RLock()
 	defer this.serviceNode.RUnlock()
@@ -418,7 +418,7 @@ func (this *ClientUser) GetServiceBackend(serviceName string) string {
 	return ""
 }
 
-///ClientUserManager
+// /ClientUserManager
 type ClientUserManager struct {
 	StateMachineCore
 	//reconnectClientList sync.Map //[openId, cli]
@@ -434,7 +434,7 @@ func NewClientUserManager() *ClientUserManager {
 	return mag
 }
 
-///game节点挂了,踢掉这个game上的玩家
+// /game节点挂了,踢掉这个game上的玩家
 func (this *ClientUserManager) OnLogicDisJoin(serviceId string) {
 	//todo...
 	//for _,cli :=range this.clientUserList {

+ 1 - 1
RO_Server_Trunk-branch_bt/roserver/benchmark/main.go

@@ -25,7 +25,7 @@ func client() {
 	node := socket.NewServerNode("tcpConnector", "client", "127.0.0.1:21001", queue)
 	rv := rocommon.NewNetSyncRecv(node)
 
-	socket.SetProcessorRPC(node, "tcp.demo", rv.EventCB())
+	socket.SetProcessorRPC(node, "tcpa.demo", rv.EventCB())
 	node.(rocommon.TCPConnector).SetReconnectTime(5 * time.Second)
 	node.Start()
 

+ 45 - 45
RO_Server_Trunk-branch_bt/roserver/db/model/orm_helper.go

@@ -147,7 +147,7 @@ func DelUserConnInfo(connInfo *serverproto.UserConnectInfo, openId, platform str
 	}
 }
 
-//赛季数据保存
+// 赛季数据保存
 func ServerCompetitionGet(ssAckMsg *serverproto.SSGetServerCompetitionAck) {
 	retList, err := service.GetRedis().HGetAll(model.ServerCompetitionPrefix).Result()
 	if err != nil {
@@ -195,12 +195,12 @@ func ServerCompetitionSave(ntfMsg *serverproto.SSServerCompetitionInfoSaveNtf) {
 	}
 }
 
-//获取角色信息列表
+// 获取角色信息列表
 func GetRoleListFromRedis(openId string, zone int32, msg interface{}) error {
 	return model.GetMessageFromRedis(AccountPrefix, strconv.Itoa(int(zone))+"_"+openId, msg)
 }
 
-//获取是否关闭注册
+// 获取是否关闭注册
 func IsServerCloseRegister() bool {
 	closeState, err := service.GetRedis().HGet(model.ServerPrefix, "registerclose").Result()
 	if err == nil && closeState == "1" {
@@ -233,7 +233,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleHero err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ := rpc.EncodeMessage(ack)
+	//msgData, _, _ := rpcc.EncodeMessage(ack)
 	//oldLen := len(msgData)
 	//util.InfoF("msgDatalen1=%v basehero", oldLen)
 	//装备数据
@@ -243,7 +243,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleEquip err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen := len(msgData)
 	//util.InfoF("msgDatalen1=%v equip", newLen-oldLen)
 	//oldLen = newLen
@@ -252,7 +252,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	ack.Role.RoleSkillEquip = &serverproto.RoleSkillEquip{}
 	GetRoleSkillEquipDataFromRedis(uid, ack.Role.RoleSkillEquip)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v skillequip", newLen-oldLen)
 	//oldLen = newLen
@@ -266,7 +266,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	if err == service.NIL {
 		ack.Role.RoleBag = nil
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v bag", newLen-oldLen)
 	//oldLen = newLen
@@ -277,7 +277,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleChip err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v chip", newLen-oldLen)
 	//oldLen = newLen
@@ -288,7 +288,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleMap err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v map", newLen-oldLen)
 	//oldLen = newLen
@@ -299,7 +299,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleCard err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v card", newLen-oldLen)
 	//oldLen = newLen
@@ -310,7 +310,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleFashion err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v fashion", newLen-oldLen)
 	//oldLen = newLen
@@ -322,13 +322,13 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		return err
 	}
 	ack.Role.RoleBattle.MapChallengeNumList = ack.Role.RoleBattle.MapChallengeNumList[:0]
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//util.InfoF("msgDatalen1=%v", len(msgData))
 	//邮件数据(邮件数据预先加载先于需要加载发送邮件的操作)
 	ack.Role.RoleMail = &serverproto.RoleMail{}
 	GetRoleMailDataFromRedis(uid, ack.Role.RoleMail, RoleRegisterTime)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v battle", newLen-oldLen)
 	//oldLen = newLen
@@ -337,7 +337,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	ack.Role.RoleTask = &serverproto.RoleTask{}
 	GetRoleTaskFromRedis(uid, ack.Role.RoleTask)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v task", newLen-oldLen)
 	//oldLen = newLen
@@ -363,7 +363,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleCompetition err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v chat read comp", newLen-oldLen)
 	//oldLen = newLen
@@ -374,7 +374,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleShop err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v shop", newLen-oldLen)
 	//oldLen = newLen
@@ -382,7 +382,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	ack.Role.RoleActivity = &serverproto.RoleActivity{}
 	GetRoleActivityDataFromRedis(uid, ack.Role.RoleActivity)
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v activity", newLen-oldLen)
 	//oldLen = newLen
@@ -408,7 +408,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleDraw err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v tower guild draw", newLen-oldLen)
 	//oldLen = newLen
@@ -419,7 +419,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleRune err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v rune", newLen-oldLen)
 	//oldLen = newLen
@@ -434,7 +434,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleStatistic err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v daochang stat", newLen-oldLen)
 	//oldLen = newLen
@@ -446,7 +446,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("GetRoleFromRedis RoleKeepSake err=%v uid=%v", err, uid)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v sake", newLen-oldLen)
 	//oldLen = newLen
@@ -463,7 +463,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	//	ack.Role.RoleCross.Yuanhangtrial.LogList = ack.Role.RoleCross.Yuanhangtrial.LogList[tmpIdx:]
 	//}
 
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v cross", newLen-oldLen)
 	//oldLen = newLen
@@ -475,7 +475,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleRush err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v rush", newLen-oldLen)
 	//oldLen = newLen
@@ -494,7 +494,7 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 		util.InfoF("[GetRoleFromRedis] RoleWish err:%v", err)
 		return err
 	}
-	//msgData, _, _ = rpc.EncodeMessage(ack)
+	//msgData, _, _ = rpcc.EncodeMessage(ack)
 	//newLen = len(msgData)
 	//util.InfoF("msgDatalen1=%v head", newLen-oldLen)
 	//oldLen = newLen
@@ -506,8 +506,8 @@ func GetRoleFromRedis(uid uint64, ack *serverproto.SSGetRoleAck, RoleRegisterTim
 	return nil
 }
 
-//其他系统数据加载
-//获取Role其他系统信息,不直接走SSGetRoleAck,避免后续数据包过大
+// 其他系统数据加载
+// 获取Role其他系统信息,不直接走SSGetRoleAck,避免后续数据包过大
 func GetRoleOtherInfoFromRedis(uid uint64, ev rocommon.ProcEvent) {
 	//获取竞技场数据
 	loadNtfMsg := &serverproto.SSLoadArenaNtf{
@@ -680,7 +680,7 @@ func SetRoleHeroDataToRedis(uid uint64, data *serverproto.RoleHero) error {
 	return nil
 }
 
-//卢恩商店
+// 卢恩商店
 func GetRoleRuneDataFromRedis(uid uint64, data *serverproto.RoleRune) error {
 	if uid <= 0 {
 		return errors.New("uid invalid")
@@ -808,7 +808,7 @@ func AddChatOfflineMsg(fromId *serverproto.ChatPlayerBriefInfo, target uint64, m
 	}
 }
 
-//获取离线私聊消息人员列表
+// 获取离线私聊消息人员列表
 func GetChatOfflinePlayerList(uid uint64, chatData *serverproto.RoleChat) error {
 	if uid <= 0 {
 		return errors.New("uid invalid")
@@ -831,7 +831,7 @@ func GetChatOfflinePlayerList(uid uint64, chatData *serverproto.RoleChat) error
 	return nil
 }
 
-//获取离线私聊消息
+// 获取离线私聊消息
 func GetChatOfflineMsgFromRedis(selfId, targetId uint64, ackMsg *serverproto.SCChatOfflineMsgAck) error {
 	if selfId <= 0 || targetId <= 0 {
 		return errors.New("uid invalid")
@@ -864,7 +864,7 @@ func GetChatOfflineMsgFromRedis(selfId, targetId uint64, ackMsg *serverproto.SCC
 	return nil
 }
 
-//设置玩家简介信息
+// 设置玩家简介信息
 const NameSearchListLimitNum = 20
 
 func UpdatePlayerBriefInfo(uid uint64, briefInfo *serverproto.CommonPlayerBriefInfo, bCreate bool, activeCode, openId, subPlatform string) {
@@ -951,7 +951,7 @@ func GetPlayerBriefInfoWithoutCache(uid uint64) *serverproto.CommonPlayerBriefIn
 	return info
 }
 
-//获取默认名字Uid列表,值获得前10个
+// 获取默认名字Uid列表,值获得前10个
 func GetNameSearchList(searchName string, exceptUid uint64, zone int32, msg *serverproto.SSGetUidByRoleNameAck) {
 	//默认名字查找
 	if searchName == "" {
@@ -1127,7 +1127,7 @@ func GetRoleMailDataFromRedis(uid uint64, roleMail *serverproto.RoleMail, RoleRe
 	return bRet
 }
 
-//邮件数据变更保存
+// 邮件数据变更保存
 func SetMailDataChangToRedis(uid uint64, mailStateList []*serverproto.MailContent, delMailList []int32,
 	addMailList []*serverproto.MailContent, maxMailId int32, curGlobalMailId int32) {
 	uidStr := strconv.FormatUint(uid, 10)
@@ -1248,7 +1248,7 @@ func SetMailDataChangToRedis(uid uint64, mailStateList []*serverproto.MailConten
 
 }
 
-//添加邮件(离线方式添加到db中,在线添加在SSMailSaveNtf中)
+// 添加邮件(离线方式添加到db中,在线添加在SSMailSaveNtf中)
 func AddMailToRedis(uid uint64, mail *serverproto.MailContent) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RoleMailDataPrefix + uidStr
@@ -1514,7 +1514,7 @@ func SetActiveCode(activeCode string, uid uint64) bool {
 	return true
 }
 
-//task
+// task
 const TASK_REWARD_STATE_REWARD_DB = 2
 
 func SetRoleTaskToRedis(uid uint64, roleTask *serverproto.RoleTask) {
@@ -1598,7 +1598,7 @@ func GetRoleTaskFromRedis(uid uint64, roleTask *serverproto.RoleTask) bool {
 	return true
 }
 
-////pet
+// //pet
 func GetRolePetDataFromRedis(uid uint64, ev rocommon.ProcEvent) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RolePetDataPrefix + uidStr
@@ -1675,7 +1675,7 @@ func GetRolePetDataFromRedis(uid uint64, ev rocommon.ProcEvent) bool {
 	return true
 }
 
-////skill equip
+// //skill equip
 func GetRoleSkillEquipDataFromRedis(uid uint64, roleSkillEquip *serverproto.RoleSkillEquip) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RoleSkillEquipDataPrefix + uidStr
@@ -1931,7 +1931,7 @@ func getRolePetAssistDataFromRedis(uid uint64, roleAssistList map[uint32]*server
 	}
 }
 
-//获取其他援助玩家的宠物信息(羁绊信息,已经设置在玩家的羁绊列表中,检查合法性)
+// 获取其他援助玩家的宠物信息(羁绊信息,已经设置在玩家的羁绊列表中,检查合法性)
 func RolePetQueryAssistInfo(uid uint64, msg *serverproto.SSPetQueryAssistInfoReq, ackMsg *serverproto.SSPetQueryAssistInfoAck) {
 	tmpList := set.New(set.NonThreadSafe)
 	for idx := 0; idx < len(msg.UidList); idx++ {
@@ -1980,7 +1980,7 @@ func RolePetQueryAssistInfo(uid uint64, msg *serverproto.SSPetQueryAssistInfoReq
 	}
 }
 
-//获取激活羁绊所需的宠物列表(援助列表)
+// 获取激活羁绊所需的宠物列表(援助列表)
 type AssistCacheDetailInfo struct {
 	quality int32
 	nature  int32
@@ -2111,7 +2111,7 @@ func getAssistCache(uid uint64) *RolePetAssistCacheInfo {
 	return cacheInfo
 }
 
-//获取公会成员列表
+// 获取公会成员列表
 func getGuildMemberLis(guildId uint64, guildMemberList *[]uint64) {
 	if guildId <= 0 {
 		return
@@ -2337,8 +2337,8 @@ func PetAdvAchievementSet(uid uint64, petCfgId int32, advLevel int32) {
 	}
 }
 
-////expedition
-//救助发起求助的玩家 FromUid发起救助操作的玩家  BeHelpedUid发起求助的放玩家
+// //expedition
+// 救助发起求助的玩家 FromUid发起救助操作的玩家  BeHelpedUid发起求助的放玩家
 func ExpeditionHelp(fromUid, beHelpedUid uint64) serverproto.ErrorCode {
 	//uidStr := strconv.FormatUint(beHelpedUid, 10)
 	//战斗数据
@@ -2417,7 +2417,7 @@ func ExpeditionHelp(fromUid, beHelpedUid uint64) serverproto.ErrorCode {
 	return serverproto.ErrorCode_ERROR_OK
 }
 
-////pay支付
+// //pay支付
 func SetPayOrderInfoToRedis(uid uint64, payOrderInfo *serverproto.PayOrderSaveInfo) serverproto.ErrorCode {
 	uidStr := strconv.FormatUint(uid, 10)
 
@@ -2518,7 +2518,7 @@ func GetPayOrderOkListFromRedis(uid uint64, ackMsg *serverproto.SSPayInfoOrderOk
 	}
 }
 
-////百人道场
+// //百人道场
 func SetRoleDaoChang100ToRedis(uid uint64, info *serverproto.RoleDaoChang100) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := model.RoleDaoChang100Prefix + uidStr
@@ -2619,7 +2619,7 @@ func SetRoleDaoChang100WheelLogToRedis(uid uint64, msg *serverproto.SSDaoChang10
 	}
 }
 
-//远航被挑战日志保存
+// 远航被挑战日志保存
 func SetRoleCrossYuanHangLogToRedis(msg *serverproto.SSCrossYuanHangTrialLogNtf) {
 	uid := msg.NtfUid
 	roleCross := &serverproto.RoleCross{}
@@ -2638,7 +2638,7 @@ func SetRoleCrossYuanHangLogToRedis(msg *serverproto.SSCrossYuanHangTrialLogNtf)
 	}
 }
 
-//bt
+// bt
 // bt服务版本数据保存
 func SetBTDataToRedis(uid uint64, msg *serverproto.SSBTDataSaveNtf) {
 	uidStr := strconv.FormatUint(uid, 10)

+ 8 - 8
RO_Server_Trunk-branch_bt/roserver/game/model/role_send.go

@@ -133,7 +133,7 @@ func ReplayGateList(msg interface{}, clientIdList []uint64, serviceID string, tr
 	return len(data)
 }
 
-//发送给db服务器
+// 发送给db服务器
 func (this *Role) SendDb(msg interface{}) bool {
 	data, meta, err := rpc.EncodeMessage(msg)
 	if err != nil {
@@ -191,7 +191,7 @@ func (this *Role) SendAllSocial(msg interface{}) {
 	}
 }
 
-//发送给social服务器
+// 发送给social服务器
 func (this *Role) SendSocial(msg interface{}) bool {
 	//todo...
 	// 暂时做成单点,后续做扩展
@@ -233,7 +233,7 @@ func (this *Role) SendSocial(msg interface{}) bool {
 	return true
 }
 
-//发送给social服务器
+// 发送给social服务器
 func (this *Role) SendSocialWithSID(msg interface{}, targetNodeSID string) bool {
 	//todo...
 	// 暂时做成单点,后续做扩展
@@ -282,7 +282,7 @@ func (this *Role) SendSocialWithSID(msg interface{}, targetNodeSID string) bool
 //	this.aoiNode = tmpServiceNode
 //
 //	//return this.sendService(msg, this.aoiNode)
-//	data, meta, err := rpc.EncodeMessage(msg)
+//	data, meta, err := rpcc.EncodeMessage(msg)
 //	if err != nil {
 //		util.ErrorF("sendService EncodeMessage err=%v,msg=%v", err, msg)
 //		return false
@@ -317,7 +317,7 @@ func (this *Role) SendSocialWithSID(msg interface{}, targetNodeSID string) bool
 
 //发送给其他非master aoi节点
 //func (this *Role) SendGhostAoi(msg interface{}) bool {
-//	data, meta, err := rpc.EncodeMessage(msg)
+//	data, meta, err := rpcc.EncodeMessage(msg)
 //	if err != nil {
 //		util.ErrorF("sendService EncodeMessage err=%v,msg=%v", err, msg)
 //		return false
@@ -341,7 +341,7 @@ func (this *Role) SendSocialWithSID(msg interface{}, targetNodeSID string) bool
 //	return true
 //}
 
-//battle boss
+// battle boss
 func (this *Role) SendBattleBoss(msg interface{}) bool {
 	if this.bossNode == "" {
 		this.bossNode = model.SelectServiceNode(model.SERVICE_NODE_TYPE_BOSS_STR, 0)
@@ -354,7 +354,7 @@ func (this *Role) SendBattleBoss(msg interface{}) bool {
 	return this.sendService(msg, this.bossNode)
 }
 
-//rank
+// rank
 func (this *Role) SendRank(msg interface{}) bool {
 	if this.RankNode() == "" {
 		this.rankNode = model.SelectServiceNode(model.SERVICE_NODE_TYPE_RANK_STR, 0)
@@ -367,7 +367,7 @@ func (this *Role) SendRank(msg interface{}) bool {
 	return this.sendService(msg, this.rankNode)
 }
 
-//guild
+// guild
 func (this *Role) SendGuild(msg interface{}) bool {
 	if this.GuildNode() == "" {
 		this.guildNode = model.SelectServiceNode(model.SERVICE_NODE_TYPE_GUILD_STR, 0)

+ 7 - 7
RO_Server_Trunk-branch_bt/roserver/gate/model/proc_rpc.go

@@ -16,13 +16,13 @@ import (
 	"strings"
 )
 
-//消息解析操作
-//MessageProcessor def.go
-//TCPMessageProcessor procrpc.go 基础实现方法
+// 消息解析操作
+// MessageProcessor def.go
+// TCPMessageProcessor procrpc.go 基础实现方法
 type DirectTCPMessageProcessor struct {
 }
 
-//recv直接原始数据传递到后端 / 返回消息给client
+// recv直接原始数据传递到后端 / 返回消息给client
 func (this *DirectTCPMessageProcessor) OnRecvMsg(s rocommon.Session) (msg interface{}, seqId uint32, err error) {
 	reader, ok := s.Raw().(io.Reader)
 	if !ok || reader == nil {
@@ -53,7 +53,7 @@ func (this *DirectTCPMessageProcessor) OnRecvMsg(s rocommon.Session) (msg interf
 	return
 }
 
-//send 直接发往客户端的消息
+// send 直接发往客户端的消息
 func (this *DirectTCPMessageProcessor) OnSendMsg(s rocommon.Session, msg interface{}) (err error) {
 	writer, ok := s.Raw().(io.Writer)
 	if !ok || writer == nil {
@@ -84,7 +84,7 @@ var (
 	CSPlayerGMReqMsgId = rocommon.MessageInfoByName("CSGMCommandReq").ID
 )
 
-//尝试直接发送到其他后端服务器或者解析后直接回复client
+// 尝试直接发送到其他后端服务器或者解析后直接回复client
 func FrontendPackageProc(msgId int, seqId uint32, flagId uint16, msgData []byte, s rocommon.Session) (msg interface{}, err error) {
 	switch flagId {
 	case 1: //rsa加密的数据
@@ -93,7 +93,7 @@ func FrontendPackageProc(msgId int, seqId uint32, flagId uint16, msgData []byte,
 			return nil, err
 		}
 	case 2: //aes加密的数据
-		//msgData, err = rpc.AESCtrDecrypt(msgData, *s.GetAES(), *s.GetAES()...)
+		//msgData, err = rpcc.AESCtrDecrypt(msgData, *s.GetAES(), *s.GetAES()...)
 		msgData, err = rpc.AESCtrDecrypt(msgData, *s.GetAES(), *s.GetAES()...)
 		if err != nil {
 			return nil, err

+ 1 - 1
RO_Server_Trunk-branch_bt/roserver/serverproto/proto_cmd.py

@@ -527,7 +527,7 @@ def saveOutFile(outDir, messageFile, messageFileClient, projectList, msgSection,
 	#生成每个消息的处理回调信息 todo...
 
 
-#main/////////////////////////////////////////////////////////////////////////////////////////
+#game/////////////////////////////////////////////////////////////////////////////////////////
 if __name__ == '__main__':
 	projects=['gate','game','db','auth','social','guild','aoi','rank','maprouter',"battlepve", "battleboss","battlerecord","gmweb",
 			  "crossrouter","crossserver","crossrank","gcrossrouter","gcrossmap"]

+ 2 - 2
RO_Server_Trunk-branch_bt/roserver/test/model/cli_conn.go

@@ -10,7 +10,7 @@ import (
 )
 
 func init() {
-	socket.RegisterProcessRPC("tcp.demo",
+	socket.RegisterProcessRPC("tcpa.demo",
 		func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
 			b.SetTransmitter(new(socket.TCPMessageProcessor))
 
@@ -41,7 +41,7 @@ func CreateClientConn(f func(rocommon.Session)) {
 	var servicID string = ""
 	var addrStr string = "127.0.0.1:21001"
 	cli := socket.NewServerNode("tcpConnector", servicID, addrStr, nil)
-	socket.SetProcessorRPC(cli, "tcp.demo", func(ev rocommon.ProcEvent) {
+	socket.SetProcessorRPC(cli, "tcpa.demo", func(ev rocommon.ProcEvent) {
 		//todo...
 		switch m := ev.Msg().(type) {
 		case *rocommon.SessionConnectError:

+ 1 - 1
RO_Server_Trunk-branch_bt/roserver/test/model/game_benchmark.go

@@ -63,7 +63,7 @@ func Client(id int) {
 
 	rv := rocommon.NewNetSyncRecv(node)
 
-	socket.SetProcessorRPC(node, "tcp.demo", rv.EventCB())
+	socket.SetProcessorRPC(node, "tcpa.demo", rv.EventCB())
 	node.(rocommon.TCPConnector).SetReconnectTime(20 * time.Millisecond)
 	node.Start()
 

Разница между файлами не показана из-за своего большого размера
+ 3 - 3
RO_Server_Trunk-branch_bt/roserver/test/model/test.go


Некоторые файлы не были показаны из-за большого количества измененных файлов