diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat
index 3372f58..5b4f370 100644
--- a/data/DB_PropExchange.dat
+++ b/data/DB_PropExchange.dat
@@ -1,5 +1,5 @@
 
-6Նֆ׆ӆԆ"����=
+6׆ӆԆՆֆ"����=
 .؆نچۆ"����=
-WՆ؆نچӆԆֆ׆ۆ"	�����
-]܆Ն׆چۆنӆԆֆ؆"���
\ No newline at end of file
+WՆֆۆӆ׆؆نچԆ"	�����
+]؆ن܆ӆԆՆֆ׆چۆ"���
\ No newline at end of file
diff --git a/data/DB_Task.dat b/data/DB_Task.dat
index 9d81619..5c2c40e 100644
Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ
diff --git a/protocol/activity/actbonus.pb.go b/protocol/activity/actbonus.pb.go
index 4b1735c..f9e1e9d 100644
--- a/protocol/activity/actbonus.pb.go
+++ b/protocol/activity/actbonus.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -129,7 +129,7 @@ func (VipBonusPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_actbonus_proto_rawDescGZIP(), []int{1}
 }
 
-// 显示信息
+//显示信息
 type VipBonusInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -201,7 +201,7 @@ func (x *VipBonusInfo) GetMonthCoin() int32 {
 	return 0
 }
 
-// 领取信息
+//领取信息
 type VipBonusGetInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/activity/actcard.pb.go b/protocol/activity/actcard.pb.go
index e67f77f..dd3c953 100644
--- a/protocol/activity/actcard.pb.go
+++ b/protocol/activity/actcard.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_ActCard int32
 
 const (
diff --git a/protocol/activity/actfpay.pb.go b/protocol/activity/actfpay.pb.go
index 3b53f13..f64f26b 100644
--- a/protocol/activity/actfpay.pb.go
+++ b/protocol/activity/actfpay.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_ActFPay int32
 
 const (
@@ -156,7 +156,7 @@ func (FPayPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_actfpay_proto_rawDescGZIP(), []int{1}
 }
 
-// 赢取比例
+//赢取比例
 type ActFPayWinConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -212,7 +212,7 @@ func (x *ActFPayWinConfig) GetWinRate() int32 {
 	return 0
 }
 
-// 显示信息
+//显示信息
 type FPayInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -316,7 +316,7 @@ func (x *FPayInfo) GetWinConfig() []*ActFPayWinConfig {
 	return nil
 }
 
-// 领取信息
+//领取信息
 type FPayGetInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -690,7 +690,7 @@ func (x *SCFPaySign) GetOpRetCode() OpResultCode_ActFPay {
 	return OpResultCode_ActFPay_OPRC_Sucess_ActFPay
 }
 
-// 报名
+//报名
 type CSFPaySign struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/activity/actgold.pb.go b/protocol/activity/actgold.pb.go
index 13ec9ce..ac28eb6 100644
--- a/protocol/activity/actgold.pb.go
+++ b/protocol/activity/actgold.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_ActGold int32
 
 const (
@@ -77,7 +77,7 @@ func (OpResultCode_ActGold) EnumDescriptor() ([]byte, []int) {
 	return file_actgold_proto_rawDescGZIP(), []int{0}
 }
 
-// 财神任务
+//财神任务
 type GoldPacketID int32
 
 const (
@@ -152,7 +152,7 @@ func (GoldPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_actgold_proto_rawDescGZIP(), []int{1}
 }
 
-// PACKET_CS_GOLDTASK_DATA
+//PACKET_CS_GOLDTASK_DATA
 type CSGoldTaskData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -191,7 +191,7 @@ func (*CSGoldTaskData) Descriptor() ([]byte, []int) {
 	return file_actgold_proto_rawDescGZIP(), []int{0}
 }
 
-// 奖励信息
+//奖励信息
 type GoldTaskData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -263,7 +263,7 @@ func (x *GoldTaskData) GetStatus() int32 {
 	return 0
 }
 
-// PACKET_SC_GOLDTASK_DATA
+//PACKET_SC_GOLDTASK_DATA
 type SCGoldTaskData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -319,7 +319,7 @@ func (x *SCGoldTaskData) GetConfig() string {
 	return ""
 }
 
-// PACKET_CS_GOLDTASK_GET
+//PACKET_CS_GOLDTASK_GET
 type CSGoldTaskGet struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -367,7 +367,7 @@ func (x *CSGoldTaskGet) GetTaskId() int32 {
 	return 0
 }
 
-// PACKET_SC_GOLDTASK_GET
+//PACKET_SC_GOLDTASK_GET
 type SCGoldTaskGet struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -439,8 +439,8 @@ func (x *SCGoldTaskGet) GetOpRetCode() OpResultCode_ActGold {
 	return OpResultCode_ActGold_OPRC_Sucess_ActGold
 }
 
-// 任务进度改变
-// PACKET_SC_GOLDTASK_CHG
+//任务进度改变
+//PACKET_SC_GOLDTASK_CHG
 type SCGoldTaskChg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -488,8 +488,8 @@ func (x *SCGoldTaskChg) GetTasks() []*GoldTaskData {
 	return nil
 }
 
-// 删除任务
-// PACKET_SC_GOLDTASK_DEL
+//删除任务
+//PACKET_SC_GOLDTASK_DEL
 type SCGoldTaskDel struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -537,9 +537,9 @@ func (x *SCGoldTaskDel) GetTaskIds() []int32 {
 	return nil
 }
 
-// 财神降临
-// ----------------------------------------------------------------
-// PACKET_CS_GOLDCOME_DATA
+//财神降临
+//----------------------------------------------------------------
+//PACKET_CS_GOLDCOME_DATA
 type CSGoldComeData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -587,7 +587,7 @@ func (x *CSGoldComeData) GetNeedCfg() bool {
 	return false
 }
 
-// 奖励信息
+//奖励信息
 type GoldComeData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -651,7 +651,7 @@ func (x *GoldComeData) GetGameTimes() int64 {
 	return 0
 }
 
-// PACKET_SC_GOLDCOME_DATA
+//PACKET_SC_GOLDCOME_DATA
 type SCGoldComeData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -707,7 +707,7 @@ func (x *SCGoldComeData) GetConfig() string {
 	return ""
 }
 
-// PACKET_CS_GOLDCOME_RANK
+//PACKET_CS_GOLDCOME_RANK
 type CSGoldComeRank struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -755,7 +755,7 @@ func (x *CSGoldComeRank) GetTaskId() int32 {
 	return 0
 }
 
-// 奖励信息
+//奖励信息
 type GoldComePlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -914,7 +914,7 @@ func (x *GoldComeDailyTaskRank) GetActState() int32 {
 	return 0
 }
 
-// PACKET_SC_GOLDCOME_RANK
+//PACKET_SC_GOLDCOME_RANK
 type SCGoldComeRank struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/activity/actluckyturntable.pb.go b/protocol/activity/actluckyturntable.pb.go
index dada3ac..80bc982 100644
--- a/protocol/activity/actluckyturntable.pb.go
+++ b/protocol/activity/actluckyturntable.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_ActLuckTurn int32
 
 const (
diff --git a/protocol/activity/actsign.pb.go b/protocol/activity/actsign.pb.go
index fb23bbc..c54391c 100644
--- a/protocol/activity/actsign.pb.go
+++ b/protocol/activity/actsign.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_ActSign int32
 
 const (
@@ -138,7 +138,7 @@ func (ActSignPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_actsign_proto_rawDescGZIP(), []int{1}
 }
 
-// PACKET_CSSign
+//PACKET_CSSign
 type CSSign struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -194,7 +194,7 @@ func (x *CSSign) GetSignType() int32 {
 	return 0
 }
 
-// PACKET_SCSign
+//PACKET_SCSign
 type SCSign struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -258,7 +258,7 @@ func (x *SCSign) GetOpRetCode() OpResultCode_ActSign {
 	return OpResultCode_ActSign_OPRC_Activity_Sign_Sucess
 }
 
-// PACKET_CSSignData
+//PACKET_CSSignData
 type CSSignData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -297,7 +297,7 @@ func (*CSSignData) Descriptor() ([]byte, []int) {
 	return file_actsign_proto_rawDescGZIP(), []int{2}
 }
 
-// PACKET_SCSignData
+//PACKET_SCSignData
 type SCSignData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/avengers/avengers.pb.go b/protocol/avengers/avengers.pb.go
index ba48eb6..eda783b 100644
--- a/protocol/avengers/avengers.pb.go
+++ b/protocol/avengers/avengers.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_avengers_proto_rawDescGZIP(), []int{0}
 }
 
-// 复仇者联盟
+//复仇者联盟
 type AvengersPacketID int32
 
 const (
@@ -241,7 +241,7 @@ func (x *AvengersPlayerData) GetParams() []string {
 	return nil
 }
 
-// 小游戏信息
+//小游戏信息
 type AvengersBonusGameInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -313,7 +313,7 @@ func (x *AvengersBonusGameInfo) GetDataMultiplier() int64 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCAvengersRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -497,7 +497,7 @@ func (x *SCAvengersRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSAvengersOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -553,7 +553,7 @@ func (x *CSAvengersOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCAvengersOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -625,7 +625,7 @@ func (x *SCAvengersOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type AvengersLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -848,7 +848,7 @@ func (x *GameBilledData) GetResponseStatus() int64 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCAvengersGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1152,7 +1152,7 @@ func (x *SCAvengersBurstHistory) GetBurstLog() []*AvengersBurstHistoryInfo {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCAvengersRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/baccarat/baccarat.pb.go b/protocol/baccarat/baccarat.pb.go
index 880bb21..697f0ea 100644
--- a/protocol/baccarat/baccarat.pb.go
+++ b/protocol/baccarat/baccarat.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 百家乐
+//百家乐
 type BaccaratPacketID int32
 
 const (
@@ -318,7 +318,7 @@ func (x *BaccaratPlayerData) GetNiceId() int32 {
 	return 0
 }
 
-// 筹码数据
+//筹码数据
 type BaccaratChips struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -653,7 +653,7 @@ func (x *SCBaccaratRoomInfo) GetLoopNum() int32 {
 	return 0
 }
 
-// 座位位置
+//座位位置
 type SCBaccaratSeats struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -717,7 +717,7 @@ func (x *SCBaccaratSeats) GetBankerId() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSBaccaratOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -773,7 +773,7 @@ func (x *CSBaccaratOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCBaccaratOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -845,7 +845,7 @@ func (x *SCBaccaratOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 房间状态
+//房间状态
 type SCBaccaratRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -909,7 +909,7 @@ func (x *SCBaccaratRoomState) GetParams() []int32 {
 	return nil
 }
 
-// 玩家列表
+//玩家列表
 type SCBaccaratPlayerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -965,6 +965,7 @@ func (x *SCBaccaratPlayerList) GetOLNum() int32 {
 	return 0
 }
 
+//
 type BaccaratBill struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1028,7 +1029,7 @@ func (x *BaccaratBill) GetGainCoin() int64 {
 	return 0
 }
 
-// 大赢家
+//大赢家
 type BaccaratBigWinner struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1140,7 +1141,7 @@ func (x *BaccaratBigWinner) GetCity() string {
 	return ""
 }
 
-// 结算
+//结算
 type SCBaccaratBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1314,7 +1315,7 @@ func (x *SCBaccaratSendBet) GetTotalChips() []int64 {
 	return nil
 }
 
-// 上庄列表
+//上庄列表
 type SCBaccaratBankerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/bag/bag.pb.go b/protocol/bag/bag.pb.go
index ca23452..42b924d 100644
--- a/protocol/bag/bag.pb.go
+++ b/protocol/bag/bag.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -145,7 +145,7 @@ func (SPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_bag_proto_rawDescGZIP(), []int{1}
 }
 
-// 物品信息 后续精简
+//物品信息 后续精简
 type ItemInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -223,7 +223,7 @@ func (x *ItemInfo) GetObtainTime() int64 {
 	return 0
 }
 
-// PACKET_ALL_BAG_INFO
+//PACKET_ALL_BAG_INFO
 type CSBagInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -279,7 +279,7 @@ func (x *CSBagInfo) GetTp() int32 {
 	return 0
 }
 
-// PACKET_ALL_BAG_INFO
+//PACKET_ALL_BAG_INFO
 type SCBagInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -343,7 +343,7 @@ func (x *SCBagInfo) GetBagNumMax() int32 {
 	return 0
 }
 
-// PACKET_ALL_BAG_USE
+//PACKET_ALL_BAG_USE
 type CSUpBagInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -431,7 +431,7 @@ func (x *CSUpBagInfo) GetShowId() int64 {
 	return 0
 }
 
-// PACKET_ALL_BAG_USE
+//PACKET_ALL_BAG_USE
 type SCUpBagInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -521,7 +521,7 @@ func (x *SCUpBagInfo) GetInfos() []*ItemInfo {
 	return nil
 }
 
-// PACKET_SC_SYNCBAGDATA
+//PACKET_SC_SYNCBAGDATA
 type SCSyncBagData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/caishen/caishen.pb.go b/protocol/caishen/caishen.pb.go
index 4baa1b9..684b997 100644
--- a/protocol/caishen/caishen.pb.go
+++ b/protocol/caishen/caishen.pb.go
@@ -20,8 +20,8 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 财神
-// 操作结果
+//财神
+//操作结果
 type OpResultCode int32
 
 const (
@@ -71,7 +71,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_caishen_proto_rawDescGZIP(), []int{0}
 }
 
-// 财神
+//财神
 type CaiShenPacketID int32
 
 const (
@@ -242,7 +242,7 @@ func (x *CaiShenPlayerData) GetParams() []string {
 	return nil
 }
 
-// 小游戏信息
+//小游戏信息
 type CaiShenBonusGameInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -314,7 +314,7 @@ func (x *CaiShenBonusGameInfo) GetDataMultiplier() int64 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCCaiShenRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -498,7 +498,7 @@ func (x *SCCaiShenRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSCaiShenOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -554,7 +554,7 @@ func (x *CSCaiShenOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCCaiShenOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -626,7 +626,7 @@ func (x *SCCaiShenOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type CaiShenLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -849,7 +849,7 @@ func (x *GameBilledData) GetResponseStatus() int64 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCCaiShenGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1153,7 +1153,7 @@ func (x *SCCaiShenBurstHistory) GetBurstLog() []*CaiShenBurstHistoryInfo {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCCaiShenRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/candy/candy.pb.go b/protocol/candy/candy.pb.go
index 41991d5..e60611d 100644
--- a/protocol/candy/candy.pb.go
+++ b/protocol/candy/candy.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 糖果
+//糖果
 type CandyPacketID int32
 
 const (
@@ -85,7 +85,7 @@ func (CandyPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_candy_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -238,7 +238,7 @@ func (x *CandyPlayerData) GetParams() []string {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCCandyRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -398,7 +398,7 @@ func (x *SCCandyRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSCandyOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -454,7 +454,7 @@ func (x *CSCandyOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCCandyOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -526,7 +526,7 @@ func (x *SCCandyOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type CandyLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -717,7 +717,7 @@ func (x *GameBilledData) GetIsJackpot() bool {
 	return false
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCCandyGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -773,7 +773,7 @@ func (x *SCCandyGameBilled) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCCandyRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/caothap/caothap.pb.go b/protocol/caothap/caothap.pb.go
index 9ae7ea9..bf64001 100644
--- a/protocol/caothap/caothap.pb.go
+++ b/protocol/caothap/caothap.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// CaoThap
+//CaoThap
 type CaoThapPacketID int32
 
 const (
@@ -85,7 +85,7 @@ func (CaoThapPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_caothap_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -238,7 +238,7 @@ func (x *CaoThapPlayerData) GetParams() []string {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCCaoThapRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -382,7 +382,7 @@ func (x *SCCaoThapRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSCaoThapOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -438,7 +438,7 @@ func (x *CSCaoThapOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCCaoThapOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -685,7 +685,7 @@ func (x *GameBilledData) GetAcesCount() int32 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCCaoThapGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -733,7 +733,7 @@ func (x *SCCaoThapGameBilled) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCCaoThapRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/chat/chat.pb.go b/protocol/chat/chat.pb.go
index 947ff12..61d9e44 100644
--- a/protocol/chat/chat.pb.go
+++ b/protocol/chat/chat.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -82,7 +82,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_chat_proto_rawDescGZIP(), []int{0}
 }
 
-// 聊天消息id
+//聊天消息id
 type ChatPacketID int32
 
 const (
@@ -147,7 +147,7 @@ func (ChatPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_chat_proto_rawDescGZIP(), []int{1}
 }
 
-// PACKET_CSChatMsg
+//PACKET_CSChatMsg
 type CSChatMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -219,7 +219,7 @@ func (x *CSChatMsg) GetContent() string {
 	return ""
 }
 
-// PACKET_SCChatMsg
+//PACKET_SCChatMsg
 type SCChatMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -323,7 +323,7 @@ func (x *SCChatMsg) GetHeadUrl() string {
 	return ""
 }
 
-// PACKET_CSGetChatLog
+//PACKET_CSGetChatLog
 type CSGetChatLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -490,7 +490,7 @@ func (x *ChatLog) GetToHeadUrl() string {
 	return ""
 }
 
-// PACKET_SCGetChatLog
+//PACKET_SCGetChatLog
 type SCGetChatLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -546,7 +546,7 @@ func (x *SCGetChatLog) GetChatLogs() []*ChatLog {
 	return nil
 }
 
-// PACKET_CSReadChatMsg
+//PACKET_CSReadChatMsg
 type CSReadChatMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -594,7 +594,7 @@ func (x *CSReadChatMsg) GetSnid() int32 {
 	return 0
 }
 
-// PACKET_CSShieldMsg
+//PACKET_CSShieldMsg
 type CSShieldMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -666,7 +666,7 @@ func (x *CSShieldMsg) GetShield() bool {
 	return false
 }
 
-// PACKET_SCShieldMsg
+//PACKET_SCShieldMsg
 type SCShieldMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/chesstitians/chesstitians.pb.go b/protocol/chesstitians/chesstitians.pb.go
index cf657ab..7b41663 100644
--- a/protocol/chesstitians/chesstitians.pb.go
+++ b/protocol/chesstitians/chesstitians.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,7 +67,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_chesstitians_proto_rawDescGZIP(), []int{0}
 }
 
-// tienlen
+//tienlen
 type ChesstitiansPacketID int32
 
 const (
@@ -162,7 +162,7 @@ func (ChesstitiansPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_chesstitians_proto_rawDescGZIP(), []int{1}
 }
 
-// 玩家信息
+//玩家信息
 type ChesstitiansPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -529,7 +529,7 @@ func (x *LastDelCard) GetCards() []int32 {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCChesstitiansRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -890,7 +890,7 @@ func (x *SCChesstitiansRoomInfo) GetSceneType() int32 {
 	return 0
 }
 
-// 房间状态更新
+//房间状态更新
 type SCChesstitiansRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -946,7 +946,7 @@ func (x *SCChesstitiansRoomState) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSChesstitiansPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1129,7 +1129,7 @@ func (x *SCChesstitiansPlayerOp) GetTotalTime() []int32 {
 	return nil
 }
 
-// 玩家进入
+//玩家进入
 type SCChesstitiansPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1177,7 +1177,7 @@ func (x *SCChesstitiansPlayerEnter) GetData() *ChesstitiansPlayerData {
 	return nil
 }
 
-// 玩家离开
+//玩家离开
 type SCChesstitiansPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1225,7 +1225,7 @@ func (x *SCChesstitiansPlayerLeave) GetPos() int32 {
 	return 0
 }
 
-// 结算结果
+//结算结果
 type ChesstitiansPlayerGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1400,7 +1400,7 @@ func (x *SCChesstitiansGameBilled) GetDatas() []*ChesstitiansPlayerGameBilled {
 	return nil
 }
 
-// 小结算结果（炸的分）
+//小结算结果（炸的分）
 type SCChesstitiansSmallGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1488,7 +1488,7 @@ func (x *SCChesstitiansSmallGameBilled) GetLoseCoin() int64 {
 	return 0
 }
 
-// 发牌
+//发牌
 type SCChesstitiansCard struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1600,7 +1600,7 @@ func (x *SCChesstitiansCard) GetCheckmate() []bool {
 	return nil
 }
 
-// 测试数据
+//测试数据
 type SCChesstitiansCardTest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1798,7 +1798,7 @@ func (x *SCChesstitiansUpdateMasterSnid) GetMasterSnid() int32 {
 	return 0
 }
 
-// PACKET_SCChesstitiansUpdateAudienceNum
+//PACKET_SCChesstitiansUpdateAudienceNum
 type SCChesstitiansUpdateAudienceNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2021,7 +2021,7 @@ func (x *SCChesstitiansAIData) GetPlayerPosition() int32 {
 	return 0
 }
 
-// PACKET_SCChesstitiansFirstOpPos
+//PACKET_SCChesstitiansFirstOpPos
 type SCChesstitiansFirstOpPos struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2069,7 +2069,7 @@ func (x *SCChesstitiansFirstOpPos) GetPos() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSChesstitiansPlayerDevOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/crash/crash.pb.go b/protocol/crash/crash.pb.go
index a7d448d..5b83021 100644
--- a/protocol/crash/crash.pb.go
+++ b/protocol/crash/crash.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -79,7 +79,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_crash_proto_rawDescGZIP(), []int{0}
 }
 
-// 碰撞游戏
+//碰撞游戏
 type CrashPacketID int32
 
 const (
@@ -153,7 +153,7 @@ func (CrashPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_crash_proto_rawDescGZIP(), []int{1}
 }
 
-// 时间 PACKET_SC_CRASH_SENDTime
+//时间 PACKET_SC_CRASH_SENDTime
 type CrashTime struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -360,7 +360,7 @@ func (x *CrashPlayerData) GetNiceId() int32 {
 	return 0
 }
 
-// 筹码数据 PACKET_SC_CRASH_Parachute
+//筹码数据 PACKET_SC_CRASH_Parachute
 type CrashChips struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -471,7 +471,7 @@ func (x *CrashZoneChips) GetData() []*CrashChips {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCCrashRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -727,7 +727,7 @@ func (x *SCCrashRoomInfo) GetParachutePlayerCoin() int64 {
 	return 0
 }
 
-// 座位位置
+//座位位置
 type SCCrashSeats struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -783,7 +783,7 @@ func (x *SCCrashSeats) GetPlayerNum() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSCrashOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -839,7 +839,7 @@ func (x *CSCrashOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCCrashOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -911,7 +911,7 @@ func (x *SCCrashOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 房间状态
+//房间状态
 type SCCrashRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -975,7 +975,7 @@ func (x *SCCrashRoomState) GetParams() []int32 {
 	return nil
 }
 
-// 玩家列表
+//玩家列表
 type SCCrashPlayerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1031,6 +1031,7 @@ func (x *SCCrashPlayerList) GetOLNum() int32 {
 	return 0
 }
 
+//
 type CrashBill struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1094,7 +1095,7 @@ func (x *CrashBill) GetGainCoin() int64 {
 	return 0
 }
 
-// 大赢家
+//大赢家
 type CrashBigWinner struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1206,7 +1207,7 @@ func (x *CrashBigWinner) GetCity() string {
 	return ""
 }
 
-// 结算
+//结算
 type SCCrashBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1270,7 +1271,7 @@ func (x *SCCrashBilled) GetLoopNum() int32 {
 	return 0
 }
 
-// 批量下注消息
+//批量下注消息
 type SCCrashSendBet struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/dezhoupoker/dezhoupoker.pb.go b/protocol/dezhoupoker/dezhoupoker.pb.go
index 0149c24..d7ba528 100644
--- a/protocol/dezhoupoker/dezhoupoker.pb.go
+++ b/protocol/dezhoupoker/dezhoupoker.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,7 +67,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_dezhoupoker_proto_rawDescGZIP(), []int{0}
 }
 
-// 德州扑克
+//德州扑克
 type DZPKPacketID int32
 
 const (
@@ -168,7 +168,7 @@ func (DZPKPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_dezhoupoker_proto_rawDescGZIP(), []int{1}
 }
 
-// 玩家信息
+//玩家信息
 type DezhouPokerPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -352,8 +352,8 @@ func (x *DezhouPokerPlayerData) GetNiceId() int32 {
 	return 0
 }
 
-// 房间信息
-// PACKET_SC_DEZHOUPOKER_ROOMINFO
+//房间信息
+//PACKET_SC_DEZHOUPOKER_ROOMINFO
 type SCDezhouPokerRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -577,8 +577,8 @@ func (x *SCDezhouPokerRoomInfo) GetTotalOfGames() int32 {
 	return 0
 }
 
-// 房间状态更新
-// PACKET_SC_DEZHOUPOKER_ROOMSTATE
+//房间状态更新
+//PACKET_SC_DEZHOUPOKER_ROOMSTATE
 type SCDezhouPokerRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -713,7 +713,7 @@ func (x *SCDezhouPokerBankerAndBlindPos) GetSmallBlind() int64 {
 	return 0
 }
 
-// PACKET_SC_DEZHOUPOKER_POTS = 5350
+//PACKET_SC_DEZHOUPOKER_POTS = 5350
 type SCDezhouPokerPots struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -761,8 +761,8 @@ func (x *SCDezhouPokerPots) GetPots() []int64 {
 	return nil
 }
 
-// 玩家操作
-// PACKET_SC_DEZHOUPOKER_OP
+//玩家操作
+//PACKET_SC_DEZHOUPOKER_OP
 type CSDezhouPokerPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -890,7 +890,7 @@ func (x *SCDezhouPokerPlayerOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 带入金币 PACKET_SC_DEZHOUPOKER_AUTOBUYIN
+//带入金币 PACKET_SC_DEZHOUPOKER_AUTOBUYIN
 type SCDezhouPokerBuyIn struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -946,7 +946,7 @@ func (x *SCDezhouPokerBuyIn) GetToGameCoin() int64 {
 	return 0
 }
 
-// 金币变化 PACKET_SC_DEZHOUPOKER_GAMECOIN
+//金币变化 PACKET_SC_DEZHOUPOKER_GAMECOIN
 type SCDezhouPokerPlayerGameCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1018,8 +1018,8 @@ func (x *SCDezhouPokerPlayerGameCoin) GetChangeCoin() int64 {
 	return 0
 }
 
-// 玩家站起。游戏中站起默认为弃牌
-// 玩家站起
+//玩家站起。游戏中站起默认为弃牌
+//玩家站起
 type SCDezhouPokerPlayerStandUp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1075,8 +1075,8 @@ func (x *SCDezhouPokerPlayerStandUp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 玩家坐下。要排定钱是否足够。自动带入最小带入
-// 玩家坐下
+//玩家坐下。要排定钱是否足够。自动带入最小带入
+//玩家坐下
 type SCDezhouPokerPlayerSit struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1179,8 +1179,8 @@ func (x *DezhouPokerCards) GetCards() []int32 {
 	return nil
 }
 
-// 下一个玩家的操作提示
-// PACKET_SC_DEZHOUPOKER_NEXTOPERNOTIFY
+//下一个玩家的操作提示
+//PACKET_SC_DEZHOUPOKER_NEXTOPERNOTIFY
 type SCDezhouPokerOperNotify struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1373,8 +1373,8 @@ func (x *SCDezhouPokerOperNotify) GetRestPlayerCnt() int32 {
 	return 0
 }
 
-// 发牌
-// PACKET_SC_DEZHOUPOKER_CARD
+//发牌
+//PACKET_SC_DEZHOUPOKER_CARD
 type SCDezhouPokerCard struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1493,8 +1493,8 @@ func (x *DezhouPokerCardsWP) GetWinningProbability() int32 {
 	return 0
 }
 
-// 手牌胜率
-// PACKET_CSC_DEZHOUPOKER_WPUPDATE
+//手牌胜率
+//PACKET_CSC_DEZHOUPOKER_WPUPDATE
 type CSCDezhouPokerWPUpdate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1542,8 +1542,8 @@ func (x *CSCDezhouPokerWPUpdate) GetDatas() []*DezhouPokerCardsWP {
 	return nil
 }
 
-// 玩家进入
-// PACKET_SC_DEZHOUPOKER_PlayerEnter
+//玩家进入
+//PACKET_SC_DEZHOUPOKER_PlayerEnter
 type SCDezhouPokerPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1591,8 +1591,8 @@ func (x *SCDezhouPokerPlayerEnter) GetData() *DezhouPokerPlayerData {
 	return nil
 }
 
-// 玩家离开
-// PACKET_SC_DEZHOUPOKER_PLAYERLEAVE
+//玩家离开
+//PACKET_SC_DEZHOUPOKER_PLAYERLEAVE
 type SCDezhouPokerPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1640,7 +1640,7 @@ func (x *SCDezhouPokerPlayerLeave) GetPos() int32 {
 	return 0
 }
 
-// 亮牌
+//亮牌
 type PlayerPoker struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1696,7 +1696,7 @@ func (x *PlayerPoker) GetCards() []int32 {
 	return nil
 }
 
-// PACKET_SC_DEZHOUPOKER_SHOWPOKER
+//PACKET_SC_DEZHOUPOKER_SHOWPOKER
 type SCDezhouPokerShowPoker struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1744,7 +1744,7 @@ func (x *SCDezhouPokerShowPoker) GetPlayerPoker() []*PlayerPoker {
 	return nil
 }
 
-// 结算结果
+//结算结果
 type DezhouPokerPlayerGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1840,7 +1840,7 @@ func (x *DezhouPokerPlayerGameBilled) GetIsWin() int32 {
 	return 0
 }
 
-// PACKET_SC_DEZHOUPOKER_GAMEBILLED
+//PACKET_SC_DEZHOUPOKER_GAMEBILLED
 type SCDezhouPokerGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1888,7 +1888,7 @@ func (x *SCDezhouPokerGameBilled) GetDatas() []*DezhouPokerPlayerGameBilled {
 	return nil
 }
 
-// PACKET_SC_DEZHOUPOKER_GAMEBILLED_MIDDLE
+//PACKET_SC_DEZHOUPOKER_GAMEBILLED_MIDDLE
 type SCDezhouPokerGameBilledMiddle struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1968,7 +1968,7 @@ func (x *SCDezhouPokerGameBilledMiddle) GetIsWin() int32 {
 	return 0
 }
 
-// 每个池的结算结果
+//每个池的结算结果
 type DezhouPokerPlayerGameBilledPotItem struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2016,7 +2016,7 @@ func (x *DezhouPokerPlayerGameBilledPotItem) GetPlayerDatas() []*DezhouPokerPlay
 	return nil
 }
 
-// 发给客户端的根据池展现方式
+//发给客户端的根据池展现方式
 type SCDezhouPokerGameBilledByPots struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/dragonvstiger/dragonvstiger.pb.go b/protocol/dragonvstiger/dragonvstiger.pb.go
index f18b813..0a9725c 100644
--- a/protocol/dragonvstiger/dragonvstiger.pb.go
+++ b/protocol/dragonvstiger/dragonvstiger.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -88,7 +88,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_dragonvstiger_proto_rawDescGZIP(), []int{0}
 }
 
-// 龙虎斗
+//龙虎斗
 type DragonVsTigerPacketID int32
 
 const (
@@ -310,7 +310,7 @@ func (x *DragonVsTigerPlayerData) GetNiceId() int32 {
 	return 0
 }
 
-// 筹码数据
+//筹码数据
 type DragonVsTigerChips struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -421,7 +421,7 @@ func (x *DragonVsTigerZoneChips) GetDetail() []*DragonVsTigerChips {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCDragonVsTigerRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -637,7 +637,7 @@ func (x *SCDragonVsTigerRoomInfo) GetLoopNum() int32 {
 	return 0
 }
 
-// 座位位置
+//座位位置
 type SCDragonVsTigerSeats struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -701,7 +701,7 @@ func (x *SCDragonVsTigerSeats) GetBankerId() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSDragonVsTiggerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -757,7 +757,7 @@ func (x *CSDragonVsTiggerOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCDragonVsTiggerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -829,7 +829,7 @@ func (x *SCDragonVsTiggerOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 房间状态
+//房间状态
 type SCDragonVsTigerRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -893,7 +893,7 @@ func (x *SCDragonVsTigerRoomState) GetParams() []int32 {
 	return nil
 }
 
-// 玩家列表
+//玩家列表
 type SCDragonVsTigerPlayerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -949,6 +949,7 @@ func (x *SCDragonVsTigerPlayerList) GetOLNum() int32 {
 	return 0
 }
 
+//
 type DragonVsTigerBill struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1012,7 +1013,7 @@ func (x *DragonVsTigerBill) GetGainCoin() int64 {
 	return 0
 }
 
-// 大赢家
+//大赢家
 type DragonVsTigerBigWinner struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1124,7 +1125,7 @@ func (x *DragonVsTigerBigWinner) GetCity() string {
 	return ""
 }
 
-// 结算
+//结算
 type SCDragonVsTigerBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1298,7 +1299,7 @@ func (x *SCDragonVsTigerSendBet) GetTotalChips() []int64 {
 	return nil
 }
 
-// 上庄列表
+//上庄列表
 type SCDragonVsTiggerUpList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/easterisland/easterisland.pb.go b/protocol/easterisland/easterisland.pb.go
index ff12a1b..c1bc6b5 100644
--- a/protocol/easterisland/easterisland.pb.go
+++ b/protocol/easterisland/easterisland.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_easterisland_proto_rawDescGZIP(), []int{0}
 }
 
-// 复活岛
+//复活岛
 type EasterIslandPacketID int32
 
 const (
@@ -238,7 +238,7 @@ func (x *EasterIslandPlayerData) GetParams() []string {
 	return nil
 }
 
-// 小游戏信息
+//小游戏信息
 type EasterIslandBonusGameInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -310,7 +310,7 @@ func (x *EasterIslandBonusGameInfo) GetDataMultiplier() int64 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCEasterIslandRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -502,7 +502,7 @@ func (x *SCEasterIslandRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSEasterIslandOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -558,7 +558,7 @@ func (x *CSEasterIslandOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCEasterIslandOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -630,7 +630,7 @@ func (x *SCEasterIslandOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type EasterIslandLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -853,7 +853,7 @@ func (x *GameBilledData) GetResponseStatus() int64 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCEasterIslandGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1157,7 +1157,7 @@ func (x *SCEasterIslandBurstHistory) GetBurstLog() []*EasterIslandBurstHistoryIn
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCEasterIslandRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/fishing/fishing.pb.go b/protocol/fishing/fishing.pb.go
index 4380eaf..f512ffa 100644
--- a/protocol/fishing/fishing.pb.go
+++ b/protocol/fishing/fishing.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_fishing_proto_rawDescGZIP(), []int{0}
 }
 
-// 捕鱼
+//捕鱼
 type FIPacketID int32
 
 const (
@@ -570,7 +570,7 @@ func (x *FishingPlayerData) GetFishExp() int64 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCFishingRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -778,7 +778,7 @@ func (x *SCFishingRoomInfo) GetChangeSceneId() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSFishingOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -913,7 +913,7 @@ func (x *SCFishingOp) GetSnId() int32 {
 	return 0
 }
 
-// FISHING_SC_FIRE
+//FISHING_SC_FIRE
 type SCFire struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1017,7 +1017,7 @@ func (x *SCFire) GetMultiple() int32 {
 	return 0
 }
 
-// FISHING_SC_FIREHIT
+//FISHING_SC_FIREHIT
 type SCFireHit struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1153,7 +1153,7 @@ func (x *SCFireHit) GetAddExp() int32 {
 	return 0
 }
 
-// FISHING_SC_TREASURECHESTEVENT
+//FISHING_SC_TREASURECHESTEVENT
 type SCTreasureChestEvent struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1217,7 +1217,7 @@ func (x *SCTreasureChestEvent) GetCurrentPlayerCoin() int64 {
 	return 0
 }
 
-// FISHING_SC_FIREMISS
+//FISHING_SC_FIREMISS
 type SCFireMiss struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1273,7 +1273,7 @@ func (x *SCFireMiss) GetRate() int32 {
 	return 0
 }
 
-// FISHING_SC_FIREPOWER
+//FISHING_SC_FIREPOWER
 type SCFirePower struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1345,7 +1345,7 @@ func (x *SCFirePower) GetTargetPower() int32 {
 	return 0
 }
 
-// FISHING_SC_SELVIP
+//FISHING_SC_SELVIP
 type SCSelVip struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1401,7 +1401,7 @@ func (x *SCSelVip) GetVip() int32 {
 	return 0
 }
 
-// 房间状态
+//房间状态
 type SCFishingRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1465,7 +1465,7 @@ func (x *SCFishingRoomState) GetParams() []int32 {
 	return nil
 }
 
-// 座位数据
+//座位数据
 type SCFishingSeats struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1513,7 +1513,7 @@ func (x *SCFishingSeats) GetData() []*FishingPlayerData {
 	return nil
 }
 
-// 进入房间
+//进入房间
 type SCfishingEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1561,7 +1561,7 @@ func (x *SCfishingEnter) GetData() *FishingPlayerData {
 	return nil
 }
 
-// 退出房间
+//退出房间
 type SCfishingLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1609,7 +1609,7 @@ func (x *SCfishingLeave) GetSnId() int32 {
 	return 0
 }
 
-// fishid定义：policyid*1000000 + DB_Policyx.Id*100 + 单行的自增长id
+//fishid定义：policyid*1000000 + DB_Policyx.Id*100 + 单行的自增长id
 type SCSyncRefreshFish struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1799,7 +1799,7 @@ func (x *SCNewSyncRefreshFish) GetRandomSeed() int32 {
 	return 0
 }
 
-// FISHING_SC_FISHERENTER
+//FISHING_SC_FISHERENTER
 type FishInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1895,7 +1895,7 @@ func (x *FishInfo) GetLiveTick() int32 {
 	return 0
 }
 
-// FISHING_CS_LOADCOMPLETE
+//FISHING_CS_LOADCOMPLETE
 type CSLoadComplete struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1998,7 +1998,7 @@ func (x *SCFishesEnter) GetTimeTick() int32 {
 	return 0
 }
 
-// 屏幕中的鱼 FISHING_CS_FISHVIEW
+//屏幕中的鱼 FISHING_CS_FISHVIEW
 type CSFishView struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2301,7 +2301,7 @@ func (x *SCJackpotFish) GetFishIds() []int32 {
 	return nil
 }
 
-// FISHING_CS_LOOKLOCKFISH
+//  FISHING_CS_LOOKLOCKFISH
 type CSLookLockFish struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2340,7 +2340,7 @@ func (*CSLookLockFish) Descriptor() ([]byte, []int) {
 	return file_fishing_proto_rawDescGZIP(), []int{25}
 }
 
-// FISHING_SC_LOOKLOCKFISH
+//  FISHING_SC_LOOKLOCKFISH
 type SCLookLockFish struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2452,7 +2452,7 @@ func (x *SCSendReadyPrana) GetPercent() int32 {
 	return 0
 }
 
-// FISHING_CS_REALYPRANA  = 5027; // 放置能量炮炮台
+//  FISHING_CS_REALYPRANA  = 5027; // 放置能量炮炮台
 type CSReadyPrana struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2516,7 +2516,7 @@ func (x *CSReadyPrana) GetY() int32 {
 	return 0
 }
 
-// FISHING_SC_REALYPRANA  = 5028; // 放置能量炮炮台
+//    FISHING_SC_REALYPRANA  = 5028; // 放置能量炮炮台
 type SCReadyPrana struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2588,7 +2588,7 @@ func (x *SCReadyPrana) GetY() int32 {
 	return 0
 }
 
-// FISHING_CS_FIREPRANA = 5029;   // 发射能量炮
+//    FISHING_CS_FIREPRANA = 5029;   // 发射能量炮
 type CSFirePrana struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2660,7 +2660,7 @@ func (x *CSFirePrana) GetY() int32 {
 	return 0
 }
 
-// FISHING_SC_FIREPRANA = 5030;   // 发射能量炮
+//    FISHING_SC_FIREPRANA = 5030;   // 发射能量炮
 type SCFirePrana struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2908,7 +2908,7 @@ func (x *SCRetPranaCoin) GetCoin() int64 {
 	return 0
 }
 
-// FISHING_SC_REBINDAGENT
+//FISHING_SC_REBINDAGENT
 type SCReBindAgent struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3019,7 +3019,7 @@ func (x *SCRobotBehavior) GetRobotId() int32 {
 	return 0
 }
 
-// FISHING_SC_SCSYNCFISHCOIN
+//FISHING_SC_SCSYNCFISHCOIN
 type SCSyncFishCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3075,7 +3075,7 @@ func (x *SCSyncFishCoin) GetCoin() int64 {
 	return 0
 }
 
-// FISHING_SC_SYNCFISHHP
+//FISHING_SC_SYNCFISHHP
 type FishHpInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3178,8 +3178,8 @@ func (x *SCSyncFishHp) GetHpInfo() []*FishHpInfo {
 	return nil
 }
 
-// 通知客户端出鱼
-// FISHING_SC_NOTIFYAPPEARFISH
+//通知客户端出鱼
+//FISHING_SC_NOTIFYAPPEARFISH
 type SCNotifyAppearFish struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3235,8 +3235,8 @@ func (x *SCNotifyAppearFish) GetFishs() []*FishInfo {
 	return nil
 }
 
-// 通知切换场景
-// FISHING_SC_NOTIFYCHANGESCENE
+//通知切换场景
+//FISHING_SC_NOTIFYCHANGESCENE
 type SCNotifyChangeScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3284,9 +3284,9 @@ func (x *SCNotifyChangeScene) GetSceneId() int32 {
 	return 0
 }
 
-// 技能相关消息
-// 房间技能list
-// FISHING_CS_SKILLLISTREQ
+//技能相关消息
+//房间技能list
+//FISHING_CS_SKILLLISTREQ
 type CSSkillListReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3325,7 +3325,7 @@ func (*CSSkillListReq) Descriptor() ([]byte, []int) {
 	return file_fishing_proto_rawDescGZIP(), []int{42}
 }
 
-// FISHING_SC_SKILLLISTRESP
+//FISHING_SC_SKILLLISTRESP
 type SCSkillListResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3540,8 +3540,8 @@ func (x *SkillInfo) GetLimit() int32 {
 	return 0
 }
 
-// 使用技能
-// FISHING_CS_SKILLUSEREQ
+//使用技能
+//FISHING_CS_SKILLUSEREQ
 type CSFishSkillUseReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3589,8 +3589,8 @@ func (x *CSFishSkillUseReq) GetSkillId() int32 {
 	return 0
 }
 
-// 使用技能返回消息
-// FISHING_SC_SKILLUSERESP
+//使用技能返回消息
+//FISHING_SC_SKILLUSERESP
 type SCFishSkillUseResp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3709,8 +3709,8 @@ func (x *SCFishSkillUseEnd) GetSnId() int32 {
 	return 0
 }
 
-// 广播消息
-// FISHING_SC_SKILLUSEBEGIN
+//广播消息
+//FISHING_SC_SKILLUSEBEGIN
 type SCFishSkillUseBegin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3790,8 +3790,8 @@ func (x *SCFishSkillUseBegin) GetPos() int32 {
 	return 0
 }
 
-// 帧同步
-// FISHING_CS_SYNCTIMEPOINT
+//帧同步
+//FISHING_CS_SYNCTIMEPOINT
 type CSSyncTimePoint struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3830,7 +3830,7 @@ func (*CSSyncTimePoint) Descriptor() ([]byte, []int) {
 	return file_fishing_proto_rawDescGZIP(), []int{49}
 }
 
-// FISHING_SC_SYNCTIMEPOINT
+//FISHING_SC_SYNCTIMEPOINT
 type SCSyncTimePoint struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/fortunegod/fortunegod.pb.go b/protocol/fortunegod/fortunegod.pb.go
index 5b1212c..26df498 100644
--- a/protocol/fortunegod/fortunegod.pb.go
+++ b/protocol/fortunegod/fortunegod.pb.go
@@ -20,8 +20,8 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 财神到协议
-// 操作结果
+//财神到协议
+//操作结果
 type OpResultCode int32
 
 const (
@@ -68,7 +68,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_fortunegod_proto_rawDescGZIP(), []int{0}
 }
 
-// 财神到
+//财神到
 type FortuneGodPacketID int32
 
 const (
@@ -222,7 +222,7 @@ func (x *FortuneGodPlayerData) GetVIP() int32 {
 	return 0
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type FortuneGodLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -310,7 +310,7 @@ func (x *FortuneGodLinesInfo) GetPosLen() int32 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SC_FORTUNEGOD_GAMEBALANCE struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -406,7 +406,7 @@ func (x *SC_FORTUNEGOD_GAMEBALANCE) GetAllFreeWinScore() int32 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SC_FORTUNEGOD_ROOMINFO struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -550,7 +550,7 @@ func (x *SC_FORTUNEGOD_ROOMINFO) GetGameFreeId() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CS_FORTUNEGOD_PLAYEROP struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -606,7 +606,7 @@ func (x *CS_FORTUNEGOD_PLAYEROP) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SC_FORTUNEGOD_PLAYEROP struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -678,7 +678,7 @@ func (x *SC_FORTUNEGOD_PLAYEROP) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 房间状态
+//房间状态
 type SC_FORTUNEGOD_ROOMSTATE struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/fortunezhishen/fortunezhishen.pb.go b/protocol/fortunezhishen/fortunezhishen.pb.go
index 5563e71..37ce32e 100644
--- a/protocol/fortunezhishen/fortunezhishen.pb.go
+++ b/protocol/fortunezhishen/fortunezhishen.pb.go
@@ -20,8 +20,8 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// FortuneZhiShen
-// 财运之神
+//FortuneZhiShen
+//财运之神
 type FortuneZSPacketID int32
 
 const (
@@ -210,8 +210,8 @@ func (x *FortuneZhiShenPlayerData) GetVIP() int32 {
 	return 0
 }
 
-// 房间信息
-// PACKET_SC_FORTUNEZHISHEN_ROOMINFO
+//房间信息
+//PACKET_SC_FORTUNEZHISHEN_ROOMINFO
 type SCFortuneZhiShenRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -435,8 +435,8 @@ func (x *SCFortuneZhiShenRoomInfo) GetGameFreeId() int32 {
 	return 0
 }
 
-// 玩家操作
-// PACKET_CS_FORTUNEZHISHEN_PLAYEROP
+//玩家操作
+//PACKET_CS_FORTUNEZHISHEN_PLAYEROP
 type CSFortuneZhiShenOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -492,8 +492,8 @@ func (x *CSFortuneZhiShenOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
-// PACKET_SC_FORTUNEZHISHEN_PLAYEROP
+//玩家操作返回
+//PACKET_SC_FORTUNEZHISHEN_PLAYEROP
 type SCFortuneZhiShenOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -557,8 +557,8 @@ func (x *SCFortuneZhiShenOp) GetParams() []int64 {
 	return nil
 }
 
-// 房间状态
-// PACKET_SC_FORTUNEZHISHEN_ROOMSTATE
+//房间状态
+//PACKET_SC_FORTUNEZHISHEN_ROOMSTATE
 type SCFortuneZhiShenRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -622,7 +622,7 @@ func (x *SCFortuneZhiShenRoomState) GetParams() []int32 {
 	return nil
 }
 
-// PACKET_SC_FORTUNEZHISHEN_PRIZE
+//PACKET_SC_FORTUNEZHISHEN_PRIZE
 type SCFortuneZhiShenPrize struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -749,7 +749,7 @@ func (x *FortuneZhiShenWinLine) GetWinScore() int64 {
 	return 0
 }
 
-// PACKET_SC_FORTUNEZHISHEN_BILLED
+//PACKET_SC_FORTUNEZHISHEN_BILLED
 type SCFortuneZhiShenBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/friend/friend.pb.go b/protocol/friend/friend.pb.go
index aa66907..09c653e 100644
--- a/protocol/friend/friend.pb.go
+++ b/protocol/friend/friend.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -130,7 +130,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_friend_proto_rawDescGZIP(), []int{0}
 }
 
-// 好友数据消息id
+//好友数据消息id
 type FriendPacketID int32
 
 const (
@@ -216,8 +216,8 @@ func (FriendPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_friend_proto_rawDescGZIP(), []int{1}
 }
 
-// 获取好友列表
-// PACKET_CSFriendList
+//获取好友列表
+//PACKET_CSFriendList
 type CSFriendList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -392,7 +392,7 @@ func (x *FriendInfo) GetRoleId() int32 {
 	return 0
 }
 
-// PACKET_SCFriendList
+//PACKET_SCFriendList
 type SCFriendList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -456,8 +456,8 @@ func (x *SCFriendList) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 好友操作
-// PACKET_CSFriendOp
+//好友操作
+//PACKET_CSFriendOp
 type CSFriendOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -513,7 +513,7 @@ func (x *CSFriendOp) GetSnId() int32 {
 	return 0
 }
 
-// PACKET_SCFriendOp
+//PACKET_SCFriendOp
 type SCFriendOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -585,7 +585,7 @@ func (x *SCFriendOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// PACKET_CSQueryPlayerGameLog
+//PACKET_CSQueryPlayerGameLog
 type CSQueryPlayerGameLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -736,7 +736,7 @@ func (x *PlayerGameLog) GetMatchType() int32 {
 	return 0
 }
 
-// PACKET_SCQueryPlayerGameLog
+//PACKET_SCQueryPlayerGameLog
 type SCQueryPlayerGameLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -808,7 +808,7 @@ func (x *SCQueryPlayerGameLog) GetGameLogs() []*PlayerGameLog {
 	return nil
 }
 
-// PACKET_CSInviteFriend
+//PACKET_CSInviteFriend
 type CSInviteFriend struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -864,7 +864,7 @@ func (x *CSInviteFriend) GetPos() int32 {
 	return 0
 }
 
-// PACKET_SCInviteFriend
+//PACKET_SCInviteFriend
 type SCInviteFriend struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -976,7 +976,7 @@ func (x *SCInviteFriend) GetRoleId() int32 {
 	return 0
 }
 
-// PACKET_CSInviteFriendOp
+//PACKET_CSInviteFriendOp
 type CSInviteFriendOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1040,7 +1040,7 @@ func (x *CSInviteFriendOp) GetPos() int32 {
 	return 0
 }
 
-// PACKET_SCInviteFriendOp
+//PACKET_SCInviteFriendOp
 type SCInviteFriendOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1183,7 +1183,7 @@ func (x *FriendApply) GetCreateTs() int64 {
 	return 0
 }
 
-// PACKET_SCFriendApplyData
+//PACKET_SCFriendApplyData
 type SCFriendApplyData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1286,7 +1286,7 @@ func (x *FriendUnread) GetUnreadNum() int32 {
 	return 0
 }
 
-// PACKET_SCFriendUnreadData
+//PACKET_SCFriendUnreadData
 type SCFriendUnreadData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1334,7 +1334,7 @@ func (x *SCFriendUnreadData) GetFriendUnreads() []*FriendUnread {
 	return nil
 }
 
-// PACKET_CSFuzzyQueryPlayer //根据id或者昵称查询玩家
+//PACKET_CSFuzzyQueryPlayer //根据id或者昵称查询玩家
 type CSFuzzyQueryPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1469,7 +1469,7 @@ func (x *PlayerInfo) GetRoleId() int32 {
 	return 0
 }
 
-// PACKET_SCFuzzyQueryPlayer
+//PACKET_SCFuzzyQueryPlayer
 type SCFuzzyQueryPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/fruits/fruits.pb.go b/protocol/fruits/fruits.pb.go
index ba6504b..059d4a2 100644
--- a/protocol/fruits/fruits.pb.go
+++ b/protocol/fruits/fruits.pb.go
@@ -20,8 +20,8 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// fruits
-// 水果拉霸
+//fruits
+//水果拉霸
 type FruitsPID int32
 
 const (
@@ -276,8 +276,8 @@ func (x *FruitsWinLine) GetLineId() int32 {
 	return 0
 }
 
-// 房间信息
-// PACKET_FRUITS_SCFruitsRoomInfo
+//房间信息
+//PACKET_FRUITS_SCFruitsRoomInfo
 type SCFruitsRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -518,8 +518,8 @@ func (x *SCFruitsRoomInfo) GetWinLines() []*FruitsWinLine {
 	return nil
 }
 
-// 玩家操作
-// PACKET_FRUITS_CSFruitsOp
+//玩家操作
+//PACKET_FRUITS_CSFruitsOp
 type CSFruitsOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -575,8 +575,8 @@ func (x *CSFruitsOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
-// PACKET_FRUITS_SCFruitsOp
+//玩家操作返回
+//PACKET_FRUITS_SCFruitsOp
 type SCFruitsOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -640,8 +640,8 @@ func (x *SCFruitsOp) GetParams() []int64 {
 	return nil
 }
 
-// 房间状态
-// PACKET_FRUITS_SCFruitsRoomState
+//房间状态
+//PACKET_FRUITS_SCFruitsRoomState
 type SCFruitsRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -705,7 +705,7 @@ func (x *SCFruitsRoomState) GetParams() []int32 {
 	return nil
 }
 
-// PACKET_FRUITS_SCFruitsPrize
+//PACKET_FRUITS_SCFruitsPrize
 type SCFruitsPrize struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -753,7 +753,7 @@ func (x *SCFruitsPrize) GetPrizePool() int64 {
 	return 0
 }
 
-// PACKET_FRUITS_SCFruitsBilled
+//PACKET_FRUITS_SCFruitsBilled
 type SCFruitsBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -905,7 +905,7 @@ func (x *SCFruitsBilled) GetWinLineCoin() int64 {
 	return 0
 }
 
-// PACKET_FRUITS_SCFruitsMaryBilled
+//PACKET_FRUITS_SCFruitsMaryBilled
 type SCFruitsMaryBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/gamehall/coinscene.pb.go b/protocol/gamehall/coinscene.pb.go
index 8076217..61b9700 100644
--- a/protocol/gamehall/coinscene.pb.go
+++ b/protocol/gamehall/coinscene.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -118,7 +118,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_coinscene_proto_rawDescGZIP(), []int{0}
 }
 
-// 自由场协议编号 2320-2339
+//自由场协议编号 2320-2339
 type CoinSceneGamePacketID int32
 
 const (
@@ -183,8 +183,8 @@ func (CoinSceneGamePacketID) EnumDescriptor() ([]byte, []int) {
 	return file_coinscene_proto_rawDescGZIP(), []int{1}
 }
 
-// PACKET_CS_COINSCENE_GETPLAYERNUM
-// 获取场次人数
+//PACKET_CS_COINSCENE_GETPLAYERNUM
+//获取场次人数
 type CSCoinSceneGetPlayerNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -240,7 +240,7 @@ func (x *CSCoinSceneGetPlayerNum) GetGameModel() int32 {
 	return 0
 }
 
-// PACKET_SC_COINSCENE_GETPLAYERNUM
+//PACKET_SC_COINSCENE_GETPLAYERNUM
 type SCCoinSceneGetPlayerNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -288,8 +288,8 @@ func (x *SCCoinSceneGetPlayerNum) GetNums() []int32 {
 	return nil
 }
 
-// PACKET_CS_COINSCENE_OP
-// 玩家进入房间
+//PACKET_CS_COINSCENE_OP
+//玩家进入房间
 type CSCoinSceneOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -361,7 +361,7 @@ func (x *CSCoinSceneOp) GetPlatform() string {
 	return ""
 }
 
-// PACKET_SC_COINSCENE_OP
+//PACKET_SC_COINSCENE_OP
 type SCCoinSceneOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -433,8 +433,8 @@ func (x *SCCoinSceneOp) GetOpParams() []int32 {
 	return nil
 }
 
-// PACKET_CS_COINSCENE_LISTROOM
-// 查看房间列表
+//PACKET_CS_COINSCENE_LISTROOM
+//查看房间列表
 type CSCoinSceneListRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -482,7 +482,7 @@ func (x *CSCoinSceneListRoom) GetId() int32 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type CoinSceneInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -538,8 +538,8 @@ func (x *CoinSceneInfo) GetPlayerNum() int32 {
 	return 0
 }
 
-// PACKET_SC_COINSCENE_LISTROOM
-// 查看房间列表
+//PACKET_SC_COINSCENE_LISTROOM
+//查看房间列表
 type SCCoinSceneListRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -643,7 +643,7 @@ func (x *SCCoinSceneListRoom) GetDatas() []*CoinSceneInfo {
 	return nil
 }
 
-// PACKET_SC_COINSCENE_QUEUESTATE
+//PACKET_SC_COINSCENE_QUEUESTATE
 type SCCoinSceneQueueState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/gamehall/game.pb.go b/protocol/gamehall/game.pb.go
index 91c1443..99c3eab 100644
--- a/protocol/gamehall/game.pb.go
+++ b/protocol/gamehall/game.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_Game int32
 
 const (
@@ -179,7 +179,7 @@ func (OpResultCode_Game) EnumDescriptor() ([]byte, []int) {
 	return file_game_proto_rawDescGZIP(), []int{0}
 }
 
-// 消息id 2200-2319
+//消息id 2200-2319
 type GameHallPacketID int32
 
 const (
@@ -523,8 +523,8 @@ func (GameHallPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_game_proto_rawDescGZIP(), []int{1}
 }
 
-// 进入游戏大厅
-// PACKET_CS_ENTERHALL
+//进入游戏大厅
+//PACKET_CS_ENTERHALL
 type CSEnterHall struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -572,7 +572,7 @@ func (x *CSEnterHall) GetHallId() int32 {
 	return 0
 }
 
-// PACKET_SC_ENTERHALL
+//PACKET_SC_ENTERHALL
 type SCEnterHall struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -628,8 +628,8 @@ func (x *SCEnterHall) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// 离开游戏大厅
-// PACKET_CS_LEAVEHALL
+//离开游戏大厅
+//PACKET_CS_LEAVEHALL
 type CSLeaveHall struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -668,7 +668,7 @@ func (*CSLeaveHall) Descriptor() ([]byte, []int) {
 	return file_game_proto_rawDescGZIP(), []int{2}
 }
 
-// PACKET_SC_LEAVEHALL
+//PACKET_SC_LEAVEHALL
 type SCLeaveHall struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -716,7 +716,7 @@ func (x *SCLeaveHall) GetHallId() int32 {
 	return 0
 }
 
-// 房间内玩家信息
+//房间内玩家信息
 type RoomPlayerInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -820,7 +820,7 @@ func (x *RoomPlayerInfo) GetVIP() int32 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type RoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -884,7 +884,7 @@ func (x *RoomInfo) GetPlayers() []*RoomPlayerInfo {
 	return nil
 }
 
-// PACKET_CS_HALLROOMLIST
+//PACKET_CS_HALLROOMLIST
 type CSHallRoomList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -932,7 +932,7 @@ func (x *CSHallRoomList) GetHallId() int32 {
 	return 0
 }
 
-// 大厅人数
+//大厅人数
 type HallInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -988,7 +988,7 @@ func (x *HallInfo) GetPlayerNum() int32 {
 	return 0
 }
 
-// PACKET_SC_HALLPLAYERNUM
+//PACKET_SC_HALLPLAYERNUM
 type HallPlayerNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1036,7 +1036,7 @@ func (x *HallPlayerNum) GetHallData() []*HallInfo {
 	return nil
 }
 
-// PACKET_SC_HALLROOMLIST
+//PACKET_SC_HALLROOMLIST
 type SCHallRoomList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1132,7 +1132,7 @@ func (x *SCHallRoomList) GetHallData() []*HallInfo {
 	return nil
 }
 
-// PACKET_SC_ROOMPLAYERENTER
+//PACKET_SC_ROOMPLAYERENTER
 type SCRoomPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1188,7 +1188,7 @@ func (x *SCRoomPlayerEnter) GetPlayer() *RoomPlayerInfo {
 	return nil
 }
 
-// PACKET_SC_ROOMPLAYERLEAVE
+//PACKET_SC_ROOMPLAYERLEAVE
 type SCRoomPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1244,7 +1244,7 @@ func (x *SCRoomPlayerLeave) GetPos() int32 {
 	return 0
 }
 
-// PACKET_SC_ROOMSTATECHANG
+//PACKET_SC_ROOMSTATECHANG
 type SCRoomStateChange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1308,7 +1308,7 @@ func (x *SCRoomStateChange) GetState() int32 {
 	return 0
 }
 
-// PACKET_CS_CREATEROOM
+//PACKET_CS_CREATEROOM
 type CSCreateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1400,7 +1400,7 @@ func (x *CSCreateRoom) GetId() int32 {
 	return 0
 }
 
-// PACKET_SC_CREATEROOM
+//PACKET_SC_CREATEROOM
 type SCCreateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1488,7 +1488,7 @@ func (x *SCCreateRoom) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// PACKET_CS_DESTROYROOM
+//PACKET_CS_DESTROYROOM
 type CSDestroyRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1527,7 +1527,7 @@ func (*CSDestroyRoom) Descriptor() ([]byte, []int) {
 	return file_game_proto_rawDescGZIP(), []int{15}
 }
 
-// PACKET_SC_DESTROYROOM
+//PACKET_SC_DESTROYROOM
 type SCDestroyRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1591,9 +1591,9 @@ func (x *SCDestroyRoom) GetIsForce() int32 {
 	return 0
 }
 
-// PACKET_CS_ENTERROOM
-// PACKET_CS_AUDIENCE_ENTERROOM
-// 玩家请求进入游戏
+//PACKET_CS_ENTERROOM
+//PACKET_CS_AUDIENCE_ENTERROOM
+//玩家请求进入游戏
 type CSEnterRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1649,7 +1649,7 @@ func (x *CSEnterRoom) GetGameId() int32 {
 	return 0
 }
 
-// PACKET_SC_ENTERROOM
+//PACKET_SC_ENTERROOM
 type SCEnterRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1745,9 +1745,9 @@ func (x *SCEnterRoom) GetClubId() int32 {
 	return 0
 }
 
-// PACKET_CS_LEAVEROOM
-// PACKET_CS_AUDIENCE_LEAVEROOM
-// 玩家离开房间,返回大厅
+//PACKET_CS_LEAVEROOM
+//PACKET_CS_AUDIENCE_LEAVEROOM
+//玩家离开房间,返回大厅
 type CSLeaveRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1795,7 +1795,7 @@ func (x *CSLeaveRoom) GetMode() int32 {
 	return 0
 }
 
-// PACKET_SC_LEAVEROOM
+//PACKET_SC_LEAVEROOM
 type SCLeaveRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1867,7 +1867,7 @@ func (x *SCLeaveRoom) GetMode() int32 {
 	return 0
 }
 
-// PACKET_CS_RETURNROOM
+//PACKET_CS_RETURNROOM
 type CSReturnRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1939,7 +1939,7 @@ func (x *CSReturnRoom) GetRoomId() int32 {
 	return 0
 }
 
-// PACKET_SC_RETURNROOM
+//PACKET_SC_RETURNROOM
 type SCReturnRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2075,8 +2075,8 @@ func (x *SCReturnRoom) GetClubId() int32 {
 	return 0
 }
 
-// 获取游戏记录
-// PACKET_CS_GETGAMEREC
+//获取游戏记录
+//PACKET_CS_GETGAMEREC
 type CSGetGameRec struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2362,7 +2362,7 @@ func (x *GameRec) GetGameTime() int32 {
 	return 0
 }
 
-// PACKET_SC_GETGAMEREC
+//PACKET_SC_GETGAMEREC
 type SCGetGameRec struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2426,7 +2426,7 @@ func (x *SCGetGameRec) GetGameId() int32 {
 	return 0
 }
 
-// PACKET_CS_SHARESUC
+//PACKET_CS_SHARESUC
 type CSShareSuc struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2474,7 +2474,7 @@ func (x *CSShareSuc) GetShareType() int32 {
 	return 0
 }
 
-// PACKET_SC_SHARESUC
+//PACKET_SC_SHARESUC
 type SCShareSuc struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2522,7 +2522,7 @@ func (x *SCShareSuc) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// PACKET_CS_FORCESTART
+//PACKET_CS_FORCESTART
 type CSForceStart struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2561,7 +2561,7 @@ func (*CSForceStart) Descriptor() ([]byte, []int) {
 	return file_game_proto_rawDescGZIP(), []int{29}
 }
 
-// PACKET_SC_FORCESTART
+//PACKET_SC_FORCESTART
 type SCForceStart struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2609,7 +2609,7 @@ func (x *SCForceStart) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// PACKET_CS_INVITEROBOT
+//PACKET_CS_INVITEROBOT
 type CSInviteRobot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2665,8 +2665,8 @@ func (x *CSInviteRobot) GetIsAgent() bool {
 	return false
 }
 
-// 玩家设置标记
-// PACKET_CS_PLAYER_SWITCHFLAG
+//玩家设置标记
+//PACKET_CS_PLAYER_SWITCHFLAG
 type CSPlayerSwithFlag struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2722,8 +2722,8 @@ func (x *CSPlayerSwithFlag) GetMark() int32 {
 	return 0
 }
 
-// 玩家商城购买
-// PACKET_CS_SHOPBUY
+//玩家商城购买
+//PACKET_CS_SHOPBUY
 type CSShopBuy struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2779,7 +2779,7 @@ func (x *CSShopBuy) GetCount() int32 {
 	return 0
 }
 
-// PACKET_SC_SHOPBUY
+//PACKET_SC_SHOPBUY
 type SCShopBuy struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2867,8 +2867,8 @@ func (x *SCShopBuy) GetGainNum() int32 {
 	return 0
 }
 
-// CS_JOINGAME
-// 请求的通知
+//CS_JOINGAME
+//请求的通知
 type CSJoinGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2940,8 +2940,8 @@ func (x *CSJoinGame) GetAgree() bool {
 	return false
 }
 
-// SC_TJOINGAME
-// 请求的通知
+//SC_TJOINGAME
+//请求的通知
 type SCJoinGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3013,7 +3013,7 @@ func (x *SCJoinGame) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// PACKET_CS_ENTERDGGAME
+//PACKET_CS_ENTERDGGAME
 type CSEnterDgGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3172,7 +3172,7 @@ func (x *SCEnterDgGame) GetList() []string {
 	return nil
 }
 
-// PACKET_CS_LEAVEDGGAME
+//PACKET_CS_LEAVEDGGAME
 type CSLeaveDgGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3258,7 +3258,7 @@ func (x *SCLeaveDgGame) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// 第三方个人账户信息统计
+//第三方个人账户信息统计
 type CSThridAccountStatistic struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3432,7 +3432,7 @@ func (x *SCThridAccountStatistic) GetAccounts() []*ThridAccount {
 	return nil
 }
 
-// 第三方个人账户余额转入转出
+//第三方个人账户余额转入转出
 type CSThridAccountTransfer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4105,8 +4105,8 @@ func (x *SCThridGameBalanceUpdateState) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// 创建私人房间
-// PACKET_CS_CREATEPRIVATEROOM
+//创建私人房间
+//PACKET_CS_CREATEPRIVATEROOM
 type CSCreatePrivateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4162,8 +4162,8 @@ func (x *CSCreatePrivateRoom) GetParams() []int32 {
 	return nil
 }
 
-// 创建私人房间
-// PACKET_SC_CREATEPRIVATEROOM
+//创建私人房间
+//PACKET_SC_CREATEPRIVATEROOM
 type SCCreatePrivateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4236,7 +4236,7 @@ func (x *SCCreatePrivateRoom) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// 个人创建的房间信息
+//个人创建的房间信息
 type PrivateRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4332,8 +4332,8 @@ func (x *PrivateRoomInfo) GetCreateTs() int32 {
 	return 0
 }
 
-// 获取代开的房间列表
-// PACKET_CS_GETPRIVATEROOMLIST
+//获取代开的房间列表
+//PACKET_CS_GETPRIVATEROOMLIST
 type CSGetPrivateRoomList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4372,7 +4372,7 @@ func (*CSGetPrivateRoomList) Descriptor() ([]byte, []int) {
 	return file_game_proto_rawDescGZIP(), []int{60}
 }
 
-// PACKET_SC_GETPRIVATEROOMLIST
+//PACKET_SC_GETPRIVATEROOMLIST
 type SCGetPrivateRoomList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4420,8 +4420,8 @@ func (x *SCGetPrivateRoomList) GetDatas() []*PrivateRoomInfo {
 	return nil
 }
 
-// 获取代开的房间历史记录
-// PACKET_CS_GETPRIVATEROOMHISTORY
+//获取代开的房间历史记录
+//PACKET_CS_GETPRIVATEROOMHISTORY
 type CSGetPrivateRoomHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4469,7 +4469,7 @@ func (x *CSGetPrivateRoomHistory) GetQueryTime() int32 {
 	return 0
 }
 
-// 已开房间历史记录
+//已开房间历史记录
 type PrivateRoomHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4549,7 +4549,7 @@ func (x *PrivateRoomHistory) GetCreateFee() int32 {
 	return 0
 }
 
-// PACKET_SC_GETPRIVATEROOMHISTORY
+//PACKET_SC_GETPRIVATEROOMHISTORY
 type SCGetPrivateRoomHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4605,7 +4605,7 @@ func (x *SCGetPrivateRoomHistory) GetDatas() []*PrivateRoomHistory {
 	return nil
 }
 
-// PACKET_CS_DESTROYPRIVATEROOM
+//PACKET_CS_DESTROYPRIVATEROOM
 type CSDestroyPrivateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4653,7 +4653,7 @@ func (x *CSDestroyPrivateRoom) GetRoomId() int32 {
 	return 0
 }
 
-// PACKET_SC_DESTROYPRIVATEROOM
+//PACKET_SC_DESTROYPRIVATEROOM
 type SCDestroyPrivateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4717,7 +4717,7 @@ func (x *SCDestroyPrivateRoom) GetState() int32 {
 	return 0
 }
 
-// PACKET_CS_QUERYROOMINFO
+//PACKET_CS_QUERYROOMINFO
 type CSQueryRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4781,7 +4781,7 @@ func (x *CSQueryRoomInfo) GetId() []int32 {
 	return nil
 }
 
-// 个人创建的房间信息
+//个人创建的房间信息
 type QRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4901,7 +4901,7 @@ func (x *QRoomInfo) GetParams() []int32 {
 	return nil
 }
 
-// PACKET_SC_QUERYROOMINFO
+//PACKET_SC_QUERYROOMINFO
 type SCQueryRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4973,8 +4973,8 @@ func (x *SCQueryRoomInfo) GetOpRetCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// 注册观察者，用于推送游戏的状态信息
-// PACKET_CS_GAMEOBSERVE
+//注册观察者，用于推送游戏的状态信息
+//PACKET_CS_GAMEOBSERVE
 type CSGameObserve struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5030,7 +5030,7 @@ func (x *CSGameObserve) GetStartOrEnd() bool {
 	return false
 }
 
-// PACKET_SC_GAMESUBLIST
+//PACKET_SC_GAMESUBLIST
 type GameSubRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5149,7 +5149,7 @@ func (x *SCGameSubList) GetList() []*GameSubRecord {
 	return nil
 }
 
-// 游戏中的状态
+//游戏中的状态
 type GameState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5260,7 +5260,7 @@ func (x *SCGameState) GetList() []*GameState {
 	return nil
 }
 
-// 奖金池数据
+//奖金池数据
 type LotteryData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5316,7 +5316,7 @@ func (x *LotteryData) GetValue() int64 {
 	return 0
 }
 
-// 奖金池同步 PACKET_SC_LOTTERYSYNC
+//奖金池同步 PACKET_SC_LOTTERYSYNC
 type SCLotterySync struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5364,7 +5364,7 @@ func (x *SCLotterySync) GetDatas() []*LotteryData {
 	return nil
 }
 
-// PACKET_CS_LOTTERYLOG = 2288;
+//PACKET_CS_LOTTERYLOG = 2288;
 type CSLotteryLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5412,7 +5412,7 @@ func (x *CSLotteryLog) GetGameFreeId() int32 {
 	return 0
 }
 
-// 奖池中奖记录
+//奖池中奖记录
 type LotteryLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5492,7 +5492,7 @@ func (x *LotteryLog) GetCoin() int32 {
 	return 0
 }
 
-// PACKET_SC_LOTTERYLOG = 2289;
+//PACKET_SC_LOTTERYLOG = 2289;
 type SCLotteryLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5548,7 +5548,7 @@ func (x *SCLotteryLog) GetLogs() []*LotteryLog {
 	return nil
 }
 
-// PACKET_SC_LOTTERYBILL = 2290
+//PACKET_SC_LOTTERYBILL = 2290
 type SCLotteryBill struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5795,7 +5795,7 @@ func (x *GameConfig1) GetSceneAdd() int32 {
 	return 0
 }
 
-// PACKET_CS_GETGAMECONFIG = 2231
+//PACKET_CS_GETGAMECONFIG = 2231
 type CSGetGameConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5914,7 +5914,7 @@ func (x *ChessRankInfo) GetName() string {
 	return ""
 }
 
-// PACKET_SC_GETGAMECONFIG = 2232
+//PACKET_SC_GETGAMECONFIG = 2232
 type SCGetGameConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5978,7 +5978,7 @@ func (x *SCGetGameConfig) GetChessRanks() []*ChessRankInfo {
 	return nil
 }
 
-// PACKET_SC_CHANGEGAMESTATUS == 2233
+//PACKET_SC_CHANGEGAMESTATUS == 2233
 type SCChangeGameStatus struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6026,7 +6026,7 @@ func (x *SCChangeGameStatus) GetGameCfg() []*GameConfig1 {
 	return nil
 }
 
-// PACKET_SC_CHANGEENTRYSWITCH
+//PACKET_SC_CHANGEENTRYSWITCH
 type SCChangeEntrySwitch struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6074,7 +6074,7 @@ func (x *SCChangeEntrySwitch) GetGameCfg() []int32 {
 	return nil
 }
 
-// PACKET_CS_ENTERGAME
+//PACKET_CS_ENTERGAME
 type CSEnterGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6154,7 +6154,7 @@ func (x *CSEnterGame) GetResVer() int32 {
 	return 0
 }
 
-// PACKET_SC_ENTERGAME
+//PACKET_SC_ENTERGAME
 type SCEnterGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6250,7 +6250,7 @@ func (x *SCEnterGame) GetLatestResVer() int32 {
 	return 0
 }
 
-// PACKET_CS_QUITGAME
+//PACKET_CS_QUITGAME
 type CSQuitGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6306,7 +6306,7 @@ func (x *CSQuitGame) GetIsAudience() bool {
 	return false
 }
 
-// PACKET_SC_QUITGAME
+//PACKET_SC_QUITGAME
 type SCQuitGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6370,7 +6370,7 @@ func (x *SCQuitGame) GetReason() int32 {
 	return 0
 }
 
-// PACKET_CS_UPLOADLOC
+//PACKET_CS_UPLOADLOC
 type CSUploadLoc struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6434,7 +6434,7 @@ func (x *CSUploadLoc) GetCity() string {
 	return ""
 }
 
-// PACKET_SC_UPLOADLOC
+//PACKET_SC_UPLOADLOC
 type SCUploadLoc struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6506,7 +6506,7 @@ func (x *SCUploadLoc) GetCity() string {
 	return ""
 }
 
-// PACKET_CS_AUDIENCESIT
+//PACKET_CS_AUDIENCESIT
 type CSAudienceSit struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6554,7 +6554,7 @@ func (x *CSAudienceSit) GetRoomId() int32 {
 	return 0
 }
 
-// PACKET_SC_AUDIENCESIT
+//PACKET_SC_AUDIENCESIT
 type SCAudienceSit struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6610,7 +6610,7 @@ func (x *SCAudienceSit) GetOpCode() OpResultCode_Game {
 	return OpResultCode_Game_OPRC_Sucess_Game
 }
 
-// PACKET_CS_COMNOTICE
+//PACKET_CS_COMNOTICE
 type CSRecordAndNotice struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6912,7 +6912,7 @@ func (x *PlayerRecord) GetMatchType() int32 {
 	return 0
 }
 
-// PACKET_SC_COMNOTICE
+//PACKET_SC_COMNOTICE
 type SCRecordAndNotice struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/gamehall/hallpacket.pb.go b/protocol/gamehall/hallpacket.pb.go
index 0d1c4fb..edce110 100644
--- a/protocol/gamehall/hallpacket.pb.go
+++ b/protocol/gamehall/hallpacket.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_Hall int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode_Hall) EnumDescriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{0}
 }
 
-// //大厅协议 2340-2379
+////大厅协议 2340-2379
 type HallPacketID int32
 
 const (
@@ -194,7 +194,7 @@ func (HallPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{1}
 }
 
-// //////////////////////////////////////
+////////////////////////////////////////
 type HallOperaCode int32
 
 const (
@@ -323,7 +323,7 @@ func (ShowRedCode) EnumDescriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{3}
 }
 
-// ////////////////////////////////////rebatetask
+//////////////////////////////////////rebatetask
 type RebateInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -379,7 +379,7 @@ func (x *RebateInfo) GetValidBetTotal() int64 {
 	return 0
 }
 
-// PACKET_CS_REBATE_LIST
+//PACKET_CS_REBATE_LIST
 type CSRebateList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -418,7 +418,7 @@ func (*CSRebateList) Descriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{1}
 }
 
-// PACKET_SC_REBATE_LIST
+//PACKET_SC_REBATE_LIST
 type SCRebateList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -474,8 +474,8 @@ func (x *SCRebateList) GetRebateTotalCoin() int64 {
 	return 0
 }
 
-// 领取奖励
-// PACKET_CS_REBATE_RECEIVE
+//领取奖励
+//PACKET_CS_REBATE_RECEIVE
 type CSReceiveRebate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -514,7 +514,7 @@ func (*CSReceiveRebate) Descriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{3}
 }
 
-// PACKET_SC_REBATE_RECEIVE
+//PACKET_SC_REBATE_RECEIVE
 type SCReceiveRebate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -570,9 +570,9 @@ func (x *SCReceiveRebate) GetCoin() int64 {
 	return 0
 }
 
-// ///////////////////////////////
-// 红点是否显示
-// PACKET_SC_HALL_REDCTRL
+/////////////////////////////////
+//红点是否显示
+//PACKET_SC_HALL_REDCTRL
 type SCRedCtrl struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -628,8 +628,8 @@ func (x *SCRedCtrl) GetIsFShow() bool {
 	return false
 }
 
-// 是否开启返利
-// PACKET_CS_GETISCANREBATE
+//是否开启返利
+//PACKET_CS_GETISCANREBATE
 type CSGetIsCanRebate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -668,7 +668,7 @@ func (*CSGetIsCanRebate) Descriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{6}
 }
 
-// PACKET_SC_GETISCANREBATE
+//PACKET_SC_GETISCANREBATE
 type SCGetIsCanRebate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -740,8 +740,8 @@ func (x *SCGetIsCanRebate) GetWX() string {
 	return ""
 }
 
-// ////2019.11.22 新个人中心
-// ///////////////////////////////个人信息//////////////////////////////////////////////////////////////
+//////2019.11.22 新个人中心
+/////////////////////////////////个人信息//////////////////////////////////////////////////////////////
 type HallGameType struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -797,8 +797,8 @@ func (x *HallGameType) GetGameMode() int32 {
 	return 0
 }
 
-// 请求相关统计
-// PACKET_CS_NEWPLAYERINFO
+//请求相关统计
+//PACKET_CS_NEWPLAYERINFO
 type CSNewPlayerInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -837,8 +837,8 @@ func (*CSNewPlayerInfo) Descriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{9}
 }
 
-// 相关统计
-// PACKET_SC_NEWPLAYERINFO
+//相关统计
+//PACKET_SC_NEWPLAYERINFO
 type SCNewPlayerInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1007,8 +1007,8 @@ func (x *SCNewPlayerInfo) GetClassType() []int32 {
 	return nil
 }
 
-// 更新返利统计信息
-// PACKET_SC_REBATETOTALINFO
+//更新返利统计信息
+//PACKET_SC_REBATETOTALINFO
 type SCRebateTotalInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1080,8 +1080,8 @@ func (x *SCRebateTotalInfo) GetCodeType() int32 {
 	return 0
 }
 
-// 请求洗码列表
-// PACKET_CS_CODETYPERECORD
+//请求洗码列表
+//PACKET_CS_CODETYPERECORD
 type CSCodeTypeRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1129,7 +1129,7 @@ func (x *CSCodeTypeRecord) GetShowTypeId() HallOperaCode {
 	return HallOperaCode_HallOperaZero
 }
 
-// /洗码列表
+///洗码列表
 type CodeTypeRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1217,7 +1217,7 @@ func (x *CodeTypeRecord) GetMaxCoin() int32 {
 	return 0
 }
 
-// PACKET_SC_CODETYPERECORD
+//PACKET_SC_CODETYPERECORD
 type SCCodeTypeRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1273,8 +1273,8 @@ func (x *SCCodeTypeRecord) GetCodeTypeRecord() []*CodeTypeRecord {
 	return nil
 }
 
-// 请求投注记录
-// PACKET_CS_BETCOINRECORD
+//请求投注记录
+//PACKET_CS_BETCOINRECORD
 type CSBetCoinRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1338,17 +1338,15 @@ func (x *CSBetCoinRecord) GetPageNo() int32 {
 	return 0
 }
 
-// 请求捕鱼投注记录
-// PACKET_CS_FISHBETCOINRECORD
-//
-//	message CSFishBetCoinRecord {
-//	   HallOperaCode ShowTypeId = 1;
-//	   int64 TimeIndex = 2; //0.全部 1.今天 2.昨天 3.一个月内
-//	   repeated HallGameType GameType = 3; //游戏类型
-//	   int32 PageNo = 4; //当前页
-//	}
-//
-// /投注记录
+//请求捕鱼投注记录
+//PACKET_CS_FISHBETCOINRECORD
+//message CSFishBetCoinRecord {
+//    HallOperaCode ShowTypeId = 1;
+//    int64 TimeIndex = 2; //0.全部 1.今天 2.昨天 3.一个月内
+//    repeated HallGameType GameType = 3; //游戏类型
+//    int32 PageNo = 4; //当前页
+//}
+///投注记录
 type BetCoinRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1428,7 +1426,7 @@ func (x *BetCoinRecord) GetReceivedCoin() int64 {
 	return 0
 }
 
-// PACKET_SC_BETCOINRECORD
+//PACKET_SC_BETCOINRECORD
 type SCBetCoinRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1500,8 +1498,8 @@ func (x *SCBetCoinRecord) GetPageNum() int32 {
 	return 0
 }
 
-// 请求账户明细
-// PACKET_CS_COINDETAILED
+//请求账户明细
+//PACKET_CS_COINDETAILED
 type CSCoinDetailed struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1566,7 +1564,7 @@ func (x *CSCoinDetailed) GetPageNo() int32 {
 	return 0
 }
 
-// /账户明细
+///账户明细
 type CoinDetailed struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1646,7 +1644,7 @@ func (x *CoinDetailed) GetCoin() int64 {
 	return 0
 }
 
-// PACKET_SC_COINDETAILEDTOTAL
+//PACKET_SC_COINDETAILEDTOTAL
 type SCCoinDetailedTotal struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1718,8 +1716,8 @@ func (x *SCCoinDetailedTotal) GetPageNum() int32 {
 	return 0
 }
 
-// 明细统计
-// PACKET_SC_COINTOTAL
+//明细统计
+//PACKET_SC_COINTOTAL
 type SCCoinTotal struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1807,8 +1805,8 @@ func (x *SCCoinTotal) GetTransactionType() []int32 {
 	return nil
 }
 
-// 请求个人报表
-// PACKET_CS_REPORTFORM
+//请求个人报表
+//PACKET_CS_REPORTFORM
 type CSReportForm struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1864,8 +1862,8 @@ func (x *CSReportForm) GetTimeIndex() int64 {
 	return 0
 }
 
-// /个人报表
-// PACKET_SC_REPORTFORM
+///个人报表
+//PACKET_SC_REPORTFORM
 type SCReportForm struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1937,8 +1935,8 @@ func (x *SCReportForm) GetFlowCoin() int64 {
 	return 0
 }
 
-// 历史洗码记录
-// PACKET_CS_HISTORYRECORD
+//历史洗码记录
+//PACKET_CS_HISTORYRECORD
 type CSHistoryRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2057,7 +2055,7 @@ func (x *HistoryRecord) GetReceiveType() int32 {
 	return 0
 }
 
-// PACKET_SC_HISTORYRECORD
+//PACKET_SC_HISTORYRECORD
 type SCHistoryRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2129,8 +2127,8 @@ func (x *SCHistoryRecord) GetPageNum() int32 {
 	return 0
 }
 
-// 领取洗码金额
-// PACKET_CS_RECEIVECODECOIN
+//领取洗码金额
+//PACKET_CS_RECEIVECODECOIN
 type CSReceiveCodeCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2169,7 +2167,7 @@ func (*CSReceiveCodeCoin) Descriptor() ([]byte, []int) {
 	return file_hallpacket_proto_rawDescGZIP(), []int{27}
 }
 
-// PACKET_SC_RECEIVECODECOIN
+//PACKET_SC_RECEIVECODECOIN
 type SCReceiveCodeCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2225,7 +2223,7 @@ func (x *SCReceiveCodeCoin) GetCoin() int64 {
 	return 0
 }
 
-// PACKET_CS_GETRANKINFO
+//PACKET_CS_GETRANKINFO
 type CSGetRankInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2281,7 +2279,7 @@ func (x *CSGetRankInfo) GetGameFreeId() int32 {
 	return 0
 }
 
-// PACKET_SC_GETRANKINFO
+//PACKET_SC_GETRANKINFO
 type RankInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/gamehall/hundredscene.pb.go b/protocol/gamehall/hundredscene.pb.go
index 1a19cb0..8fc4bdd 100644
--- a/protocol/gamehall/hundredscene.pb.go
+++ b/protocol/gamehall/hundredscene.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode_Hundred int32
 
 const (
@@ -91,7 +91,7 @@ func (OpResultCode_Hundred) EnumDescriptor() ([]byte, []int) {
 	return file_hundredscene_proto_rawDescGZIP(), []int{0}
 }
 
-// 百人场操作消息id  2380-2399
+//百人场操作消息id  2380-2399
 type HundredScenePacketID int32
 
 const (
@@ -165,7 +165,7 @@ func (HundredScenePacketID) EnumDescriptor() ([]byte, []int) {
 	return file_hundredscene_proto_rawDescGZIP(), []int{1}
 }
 
-// 玩家进入房间
+//玩家进入房间
 type CSHundredSceneOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -348,7 +348,7 @@ func (x *SCHundredSceneOp) GetLatestResVer() int32 {
 	return 0
 }
 
-// 获取场次人数
+//获取场次人数
 type CSHundredSceneGetPlayerNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -404,7 +404,7 @@ func (x *CSHundredSceneGetPlayerNum) GetGameModel() int32 {
 	return 0
 }
 
-// PACKET_SC_HUNDREDSCENE_GETPLAYERNUM
+//PACKET_SC_HUNDREDSCENE_GETPLAYERNUM
 type SCHundredSceneGetPlayerNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -452,7 +452,7 @@ func (x *SCHundredSceneGetPlayerNum) GetNums() []int32 {
 	return nil
 }
 
-// PACKET_CS_GAMEJACKPOT
+//PACKET_CS_GAMEJACKPOT
 type CSHundredSceneGetGameJackpot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -546,7 +546,7 @@ func (x *GameJackpotFundInfo) GetJackPotFund() int64 {
 	return 0
 }
 
-// PACKET_SC_GAMEJACKPOT
+//PACKET_SC_GAMEJACKPOT
 type SCHundredSceneGetGameJackpot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -594,7 +594,7 @@ func (x *SCHundredSceneGetGameJackpot) GetGameJackpotFund() []*GameJackpotFundIn
 	return nil
 }
 
-// 奖池 PACKET_BD_GAMEJACKPOT
+//奖池 PACKET_BD_GAMEJACKPOT
 type BroadcastGameJackpot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -650,8 +650,8 @@ func (x *BroadcastGameJackpot) GetGameFreeId() int32 {
 	return 0
 }
 
-// 获取历史记录及爆奖记录
-// PACKET_CS_GAMEHISTORYINFO
+//获取历史记录及爆奖记录
+//PACKET_CS_GAMEHISTORYINFO
 type CSHundredSceneGetHistoryInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/hundredyxx/hundredyxx.pb.go b/protocol/hundredyxx/hundredyxx.pb.go
index ff984d1..7ddef01 100644
--- a/protocol/hundredyxx/hundredyxx.pb.go
+++ b/protocol/hundredyxx/hundredyxx.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 鱼虾蟹
+//鱼虾蟹
 type HundredYXXPacketID int32
 
 const (
@@ -100,7 +100,7 @@ func (HundredYXXPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_hundredyxx_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -327,8 +327,8 @@ func (x *HundredYXXPlayerData) GetNiceId() int32 {
 	return 0
 }
 
-// 玩家下注|座位上的玩家下注
-// PACKET_SC_HYXX_BET
+//玩家下注|座位上的玩家下注
+//PACKET_SC_HYXX_BET
 type SCHundredYXXBet struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -416,8 +416,8 @@ func (x *SCHundredYXXBet) GetCoin() int64 {
 	return 0
 }
 
-// 同步筹码，暂定1秒1次
-// PACKET_SC_HYXX_SYNCCHIP
+//同步筹码，暂定1秒1次
+//PACKET_SC_HYXX_SYNCCHIP
 type SCHundredYXXSyncChip struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -465,8 +465,7 @@ func (x *SCHundredYXXSyncChip) GetChipTotal() []int64 {
 	return nil
 }
 
-// 牌型信息
-//
+//牌型信息
 //	CardsKind_Normal             = 0    //单子
 //	CardsKind_Double             = 1    //对子
 //	CardsKind_ThreeSort          = 2    //顺子
@@ -560,7 +559,7 @@ func (x *HundredYXXCardsInfo) GetCards() []int32 {
 	return nil
 }
 
-// 房间信息 PACKET_SC_HYXX_ROOMINFO
+//房间信息 PACKET_SC_HYXX_ROOMINFO
 type SCHundredYXXRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -800,7 +799,7 @@ func (x *SCHundredYXXRoomInfo) GetMyPreChipData() []int64 {
 	return nil
 }
 
-// 座位位置 PACKET_SC_HYXX_SEATS
+//座位位置 PACKET_SC_HYXX_SEATS
 type SCHundredYXXSeats struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -864,7 +863,7 @@ func (x *SCHundredYXXSeats) GetData() []*HundredYXXPlayerData {
 	return nil
 }
 
-// 上庄列表 PACKET_SC_HYXX_UPLIST
+//上庄列表 PACKET_SC_HYXX_UPLIST
 type SCHundredYXXUpList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -928,7 +927,7 @@ func (x *SCHundredYXXUpList) GetData() []*HundredYXXPlayerData {
 	return nil
 }
 
-// 走势图 PACKET_SC_HYXX_TREND
+//走势图 PACKET_SC_HYXX_TREND
 type SCHundredYXXTrend struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -976,8 +975,7 @@ func (x *SCHundredYXXTrend) GetData() []int32 {
 	return nil
 }
 
-// 玩家操作 PACKET_CS_HYXX_PLAYEROP
-//
+//玩家操作 PACKET_CS_HYXX_PLAYEROP
 //	HundredYXXPlayerOpBet           = 0 //下注
 //	HundredYXXPlayerOpUpBanker      = 1 //上庄
 //	HundredYXXPlayerOpDwonBanker    = 2 //下庄
@@ -1040,7 +1038,7 @@ func (x *CSHundredYXXOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回 PACKET_SC_HYXX_PLAYEROP
+//玩家操作返回 PACKET_SC_HYXX_PLAYEROP
 type SCHundredYXXOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1112,7 +1110,7 @@ func (x *SCHundredYXXOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 房间状态 PACKET_SC_HYXX_ROOMSTATE
+//房间状态 PACKET_SC_HYXX_ROOMSTATE
 type SCHundredYXXRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1176,7 +1174,7 @@ func (x *SCHundredYXXRoomState) GetParams() []int64 {
 	return nil
 }
 
-// 玩家列表 PACKET_SC_HYXX_PLAYERLIST
+//玩家列表 PACKET_SC_HYXX_PLAYERLIST
 type SCHundredYXXPlayerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1232,7 +1230,7 @@ func (x *SCHundredYXXPlayerList) GetData() []*HundredYXXPlayerData {
 	return nil
 }
 
-// 发牌每个位置的牌信息 PACKET_SC_HYXX_OPENDICE
+//发牌每个位置的牌信息 PACKET_SC_HYXX_OPENDICE
 type SCHundredYXXOpenDice struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1280,7 +1278,7 @@ func (x *SCHundredYXXOpenDice) GetDicePoints() []int32 {
 	return nil
 }
 
-// 玩家区域内的输赢
+//玩家区域内的输赢
 type HundredYXXWinLost struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1344,7 +1342,7 @@ func (x *HundredYXXWinLost) GetWinCoin() int64 {
 	return 0
 }
 
-// 下注区域输赢情况
+//下注区域输赢情况
 type HundredYXXBetField struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1408,7 +1406,7 @@ func (x *HundredYXXBetField) GetPalyerData() []*HundredYXXWinLost {
 	return nil
 }
 
-// 大赢家
+//大赢家
 type HundredYXXBigWinner struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1591,7 +1589,7 @@ func (x *HundredYXXPlayerFinalWinLost) GetCoin() int64 {
 	return 0
 }
 
-// 结算 PACKET_SC_HYXX_GAMEBILLED
+//结算 PACKET_SC_HYXX_GAMEBILLED
 type SCHundredYXXGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/iceage/iceage.pb.go b/protocol/iceage/iceage.pb.go
index 6b912e1..32a0c33 100644
--- a/protocol/iceage/iceage.pb.go
+++ b/protocol/iceage/iceage.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_iceage_proto_rawDescGZIP(), []int{0}
 }
 
-// 冰河世纪
+//冰河世纪
 type IceAgePacketID int32
 
 const (
@@ -238,7 +238,7 @@ func (x *IceAgePlayerData) GetParams() []string {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCIceAgeRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -406,7 +406,7 @@ func (x *SCIceAgeRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSIceAgeOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -462,7 +462,7 @@ func (x *CSIceAgeOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCIceAgeOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -534,7 +534,7 @@ func (x *SCIceAgeOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type IceAgeLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -646,7 +646,7 @@ func (x *IceAgeLinesInfo) GetRoleID() int32 {
 	return 0
 }
 
-// 图标数据
+//图标数据
 type IceAgeCards struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -829,7 +829,7 @@ func (x *GameBilledData) GetResponseStatus() int64 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCIceAgeGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1133,7 +1133,7 @@ func (x *SCIceAgeBurstHistoryInfo) GetBurstLog() []*IceAgeBurstHistoryInfo {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCIceAgeRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/islandsurvival/islandsurvival.pb.go b/protocol/islandsurvival/islandsurvival.pb.go
index 314d414..a3590b5 100644
--- a/protocol/islandsurvival/islandsurvival.pb.go
+++ b/protocol/islandsurvival/islandsurvival.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,7 +67,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_islandsurvival_proto_rawDescGZIP(), []int{0}
 }
 
-// 绝地求生 4800-4899
+//绝地求生 4800-4899
 type IslandSurvivalPacketID int32
 
 const (
@@ -290,7 +290,7 @@ func (x *IslandSurvivalPlayerData) GetDeadline() int32 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCIslandSurvivalRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -482,9 +482,9 @@ func (x *SCIslandSurvivalRoomInfo) GetGameFreeId() int32 {
 	return 0
 }
 
-// 玩家操作
-// IslandSurvivalPlayerOpStart 0 游戏
-// IslandSurvivalPlayerOpSmallGame 1 选择吃鸡
+//玩家操作
+//IslandSurvivalPlayerOpStart 0 游戏
+//IslandSurvivalPlayerOpSmallGame 1 选择吃鸡
 type CSIslandSurvivalOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -540,7 +540,7 @@ func (x *CSIslandSurvivalOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCIslandSurvivalOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -612,7 +612,7 @@ func (x *SCIslandSurvivalOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type IslandSurvivalLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -676,7 +676,7 @@ func (x *IslandSurvivalLinesInfo) GetWinItem() int32 {
 	return 0
 }
 
-// 发送给客户端的数据
+//发送给客户端的数据
 type SCIslandSurvivalGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/login/gate.pb.go b/protocol/login/gate.pb.go
index 13186db..5f0afa0 100644
--- a/protocol/login/gate.pb.go
+++ b/protocol/login/gate.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// gate消息id
+//gate消息id
 type GatePacketID int32
 
 const (
@@ -88,7 +88,7 @@ func (GatePacketID) EnumDescriptor() ([]byte, []int) {
 	return file_gate_proto_rawDescGZIP(), []int{0}
 }
 
-// PACKET_CS_PING
+//PACKET_CS_PING
 type CSPing struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -136,7 +136,7 @@ func (x *CSPing) GetTimeStamp() int64 {
 	return 0
 }
 
-// PACKET_SC_PONG
+//PACKET_SC_PONG
 type SCPong struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -184,7 +184,7 @@ func (x *SCPong) GetTimeStamp() int64 {
 	return 0
 }
 
-// PACKET_CS_BINDBUNDLE
+//PACKET_CS_BINDBUNDLE
 type CSBindBundle struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -232,7 +232,7 @@ func (x *CSBindBundle) GetBundleKey() string {
 	return ""
 }
 
-// PACKET_SC_BINDBUNDLE
+//PACKET_SC_BINDBUNDLE
 type SCBindBundle struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -296,7 +296,7 @@ func (x *SCBindBundle) GetSrvId() int32 {
 	return 0
 }
 
-// PACKET_CS_LOGICACK
+//PACKET_CS_LOGICACK
 type CSLogicAck struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -344,7 +344,7 @@ func (x *CSLogicAck) GetLogicNo() uint32 {
 	return 0
 }
 
-// PACKET_CS_AUTH
+//PACKET_CS_AUTH
 type SSPacketAuth struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -400,7 +400,7 @@ func (x *SSPacketAuth) GetTimestamp() int64 {
 	return 0
 }
 
-// PACKET_SC_AUTH
+//PACKET_SC_AUTH
 type SSPacketAuthAck struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/login/login.pb.go b/protocol/login/login.pb.go
index 5f819c5..55914b2 100644
--- a/protocol/login/login.pb.go
+++ b/protocol/login/login.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -118,7 +118,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_login_proto_rawDescGZIP(), []int{0}
 }
 
-// 登陆模块消息id
+//登陆模块消息id
 type LoginPacketID int32
 
 const (
@@ -295,7 +295,7 @@ func (SSDisconnectTypeCode) EnumDescriptor() ([]byte, []int) {
 	return file_login_proto_rawDescGZIP(), []int{2}
 }
 
-// PACKET_CS_LOGIN
+//PACKET_CS_LOGIN
 type CSLogin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -519,7 +519,7 @@ func (x *CSLogin) GetCode() string {
 	return ""
 }
 
-// 游戏版本号
+//游戏版本号
 type GameVer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -599,7 +599,7 @@ func (x *GameVer) GetLatestResVer() int32 {
 	return 0
 }
 
-// 游戏配置
+//游戏配置
 type GameConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -980,7 +980,7 @@ func (x *LoginThrGameConfig) GetLimitCoin() int64 {
 	return 0
 }
 
-// PACKET_SC_GAMECONFIG
+//PACKET_SC_GAMECONFIG
 type SCGameConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1028,7 +1028,7 @@ func (x *SCGameConfig) GetGameCfg() []*GameConfig {
 	return nil
 }
 
-// PACKET_SC_LOGIN
+//PACKET_SC_LOGIN
 type SCLogin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1204,7 +1204,7 @@ func (x *SCLogin) GetClientParam() string {
 	return ""
 }
 
-// 公告参数
+//公告参数
 type Bulletion struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1284,8 +1284,8 @@ func (x *Bulletion) GetSort() int32 {
 	return 0
 }
 
-// 公告列表
-// PACKET_SC_BULLETIONINFO
+//公告列表
+//PACKET_SC_BULLETIONINFO
 type SCBulletionInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1341,8 +1341,8 @@ func (x *SCBulletionInfo) GetBulletionList() []*Bulletion {
 	return nil
 }
 
-// 请求公告
-// PACKET_CS_BULLETIONINFO
+//请求公告
+//PACKET_CS_BULLETIONINFO
 type CSBulletionInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1390,7 +1390,7 @@ func (x *CSBulletionInfo) GetPlatformTag() string {
 	return ""
 }
 
-// 招商信息
+//招商信息
 type Customer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1478,8 +1478,8 @@ func (x *Customer) GetQqAccount() string {
 	return ""
 }
 
-// 招商列表
-// PACKET_SC_CUSTOMERINFOLIST
+//招商列表
+//PACKET_SC_CUSTOMERINFOLIST
 type SCCustomerInfoList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1527,8 +1527,8 @@ func (x *SCCustomerInfoList) GetCustomerList() []*Customer {
 	return nil
 }
 
-// 请求招商列表
-// PACKET_CS_CUSTOMERINFOLIST
+//请求招商列表
+//PACKET_CS_CUSTOMERINFOLIST
 type CSCustomerInfoList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1567,7 +1567,7 @@ func (*CSCustomerInfoList) Descriptor() ([]byte, []int) {
 	return file_login_proto_rawDescGZIP(), []int{13}
 }
 
-// PACKET_CS_LOGOUT
+//PACKET_CS_LOGOUT
 type CSLogout struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1781,7 +1781,7 @@ func (x *SCCustomService) GetCustomType() int32 {
 	return 0
 }
 
-// PACKET_SS_DICONNECT
+//PACKET_SS_DICONNECT
 type SSDisconnect struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1837,7 +1837,7 @@ func (x *SSDisconnect) GetType() int32 {
 	return 0
 }
 
-// PACKET_CS_PLATFORMCFG
+//PACKET_CS_PLATFORMCFG
 type CSPlatFormConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2059,7 +2059,7 @@ func (x *ClubCfg) GetGiveCoinRate() []int64 {
 	return nil
 }
 
-// PACKET_CS_PLATFORMCFG
+//PACKET_CS_PLATFORMCFG
 type SCPlatFormConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2486,7 +2486,7 @@ func (x *SCRegisterVerifyType) GetVerifyType() int32 {
 	return 0
 }
 
-// 后台的参数变化同步到前端,为啥没用roominfo，因为添加了选场，选场的时候还没有进room
+//后台的参数变化同步到前端,为啥没用roominfo，因为添加了选场，选场的时候还没有进room
 type SCSyncGameFree struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2534,7 +2534,7 @@ func (x *SCSyncGameFree) GetData() []*GameConfig {
 	return nil
 }
 
-// PACKET_SC_ACTSWITCHCFG
+//PACKET_SC_ACTSWITCHCFG
 type SCActSwitchCfg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2582,7 +2582,7 @@ func (x *SCActSwitchCfg) GetActSwitchCfg() []int32 {
 	return nil
 }
 
-// PACKET_CS_GETTHRGAMECFG 请求三方游戏配置
+//PACKET_CS_GETTHRGAMECFG 请求三方游戏配置
 type CSGetThrGameCfg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2638,7 +2638,7 @@ func (x *CSGetThrGameCfg) GetChannel() string {
 	return ""
 }
 
-// PACKET_SC_GETTHRGAMECFG
+//PACKET_SC_GETTHRGAMECFG
 type SCGetThrGameCfg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2686,7 +2686,7 @@ func (x *SCGetThrGameCfg) GetThrGameCfg() []*LoginThrGameConfig {
 	return nil
 }
 
-// 失效的机器人账号
+//失效的机器人账号
 type CSAccountInvalid struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/luckydice/luckydice.pb.go b/protocol/luckydice/luckydice.pb.go
index 8f88233..ed7689e 100644
--- a/protocol/luckydice/luckydice.pb.go
+++ b/protocol/luckydice/luckydice.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 幸运骰子
+//幸运骰子
 type LuckyDicePacketID int32
 
 const (
@@ -91,7 +91,7 @@ func (LuckyDicePacketID) EnumDescriptor() ([]byte, []int) {
 	return file_luckydice_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -323,7 +323,7 @@ func (x *LuckyDiceRoundSimpleInfo) GetRoundId() int32 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCLuckyDiceRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -483,7 +483,7 @@ func (x *SCLuckyDiceRoomInfo) GetGameFreeId() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSLuckyDiceOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -539,7 +539,7 @@ func (x *CSLuckyDiceOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCLuckyDiceOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -611,7 +611,7 @@ func (x *SCLuckyDiceOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 投注变化
+//投注变化
 type SCLuckyDiceBetChange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -667,7 +667,7 @@ func (x *SCLuckyDiceBetChange) GetTotalPlayer() []int32 {
 	return nil
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCLuckyDiceGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1226,7 +1226,7 @@ func (x *SCLuckyDiceWinRank) GetWinRank() []*LuckyDiceWinRankInfo {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCLuckyDiceRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/message/message.pb.go b/protocol/message/message.pb.go
index 6937420..f32b3a8 100644
--- a/protocol/message/message.pb.go
+++ b/protocol/message/message.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,7 +67,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_message_proto_rawDescGZIP(), []int{0}
 }
 
-// 聊天消息id
+//聊天消息id
 type MSGPacketID int32
 
 const (
@@ -196,7 +196,7 @@ func (x *NoticeParam) GetStrParam() string {
 	return ""
 }
 
-// PACKET_SC_NOTICE
+//PACKET_SC_NOTICE
 type SCNotice struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -459,7 +459,7 @@ func (x *MessageData) GetSrcName() string {
 	return ""
 }
 
-// PACKET_SC_MESSAGELIST
+//PACKET_SC_MESSAGELIST
 type SCMessageList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -507,7 +507,7 @@ func (x *SCMessageList) GetMsgs() []*MessageData {
 	return nil
 }
 
-// PACKET_SC_MESSAGEADD
+//PACKET_SC_MESSAGEADD
 type SCMessageAdd struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -555,7 +555,7 @@ func (x *SCMessageAdd) GetMsg() *MessageData {
 	return nil
 }
 
-// PACKET_CS_MESSAGEREAD
+//PACKET_CS_MESSAGEREAD
 type CSMessageRead struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -603,7 +603,7 @@ func (x *CSMessageRead) GetId() string {
 	return ""
 }
 
-// PACKET_SC_MESSAGEREAD
+//PACKET_SC_MESSAGEREAD
 type SCMessageRead struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -651,7 +651,7 @@ func (x *SCMessageRead) GetId() string {
 	return ""
 }
 
-// PACKET_CS_MESSAGEDEL
+//PACKET_CS_MESSAGEDEL
 type CSMessageDel struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -699,7 +699,7 @@ func (x *CSMessageDel) GetId() string {
 	return ""
 }
 
-// PACKET_SC_MESSAGEDEL
+//PACKET_SC_MESSAGEDEL
 type SCMessageDel struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -747,7 +747,7 @@ func (x *SCMessageDel) GetId() string {
 	return ""
 }
 
-// PACKET_CS_GETMESSAGEATTACH
+//PACKET_CS_GETMESSAGEATTACH
 type CSGetMessageAttach struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -795,7 +795,7 @@ func (x *CSGetMessageAttach) GetId() string {
 	return ""
 }
 
-// PACKET_SC_GETMESSAGEATTACH
+//PACKET_SC_GETMESSAGEATTACH
 type SCGetMessageAttach struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -938,7 +938,7 @@ func (x *ClubMessage) GetTs() int64 {
 	return 0
 }
 
-// PACKET_CS_CLUBMSG
+//PACKET_CS_CLUBMSG
 type CSClubMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1002,7 +1002,7 @@ func (x *CSClubMsg) GetContent() string {
 	return ""
 }
 
-// PACKET_SC_CLUBMSG
+//PACKET_SC_CLUBMSG
 type SCClubMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1074,7 +1074,7 @@ func (x *SCClubMsg) GetClubMsg() *ClubMessage {
 	return nil
 }
 
-// PACKET_CS_CLUBMSGSTATE
+//PACKET_CS_CLUBMSGSTATE
 type CSClubMsgState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1130,7 +1130,7 @@ func (x *CSClubMsgState) GetDisable() bool {
 	return false
 }
 
-// PACKET_SC_CLUBMSGSTATE
+//PACKET_SC_CLUBMSGSTATE
 type SCClubMsgState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1186,7 +1186,7 @@ func (x *SCClubMsgState) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// PACKET_CS_CLUBMSHISTORY
+//PACKET_CS_CLUBMSHISTORY
 type CSClubMsgHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1234,7 +1234,7 @@ func (x *CSClubMsgHistory) GetClubId() int32 {
 	return 0
 }
 
-// PACKET_SC_CLUBMSHISTORY
+//PACKET_SC_CLUBMSHISTORY
 type SCClubMsgHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1290,7 +1290,7 @@ func (x *SCClubMsgHistory) GetClubMsg() []*ClubMessage {
 	return nil
 }
 
-// PACKET_CS_MESSAGELIST
+//PACKET_CS_MESSAGELIST
 type CSMessageList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/pets/pets.pb.go b/protocol/pets/pets.pb.go
index c5992e3..66eb1c1 100644
--- a/protocol/pets/pets.pb.go
+++ b/protocol/pets/pets.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 人物和宠物
+//人物和宠物
 type PetsPacketID int32
 
 const (
@@ -97,7 +97,7 @@ func (PetsPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_pets_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -144,7 +144,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_pets_proto_rawDescGZIP(), []int{1}
 }
 
-// 人物信息
+//人物信息
 type RoleInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -321,7 +321,7 @@ func (x *RoleInfo) GetIsUnlock() bool {
 	return false
 }
 
-// PACKET_CS_ROLE_INFO
+//PACKET_CS_ROLE_INFO
 type CSRoleInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -360,7 +360,7 @@ func (*CSRoleInfo) Descriptor() ([]byte, []int) {
 	return file_pets_proto_rawDescGZIP(), []int{1}
 }
 
-// PACKET_SC_ROLE_INFO
+//PACKET_SC_ROLE_INFO
 type SCRoleInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -408,7 +408,7 @@ func (x *SCRoleInfo) GetInfos() []*RoleInfo {
 	return nil
 }
 
-// 宠物信息
+//宠物信息
 type PetInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -585,7 +585,7 @@ func (x *PetInfo) GetIsUnlock() bool {
 	return false
 }
 
-// PACKET_CS_PET_INFO
+//PACKET_CS_PET_INFO
 type CSPetInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -624,7 +624,7 @@ func (*CSPetInfo) Descriptor() ([]byte, []int) {
 	return file_pets_proto_rawDescGZIP(), []int{4}
 }
 
-// PACKET_SC_PET_INFO
+//PACKET_SC_PET_INFO
 type SCPetInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -672,7 +672,7 @@ func (x *SCPetInfo) GetInfos() []*PetInfo {
 	return nil
 }
 
-// PACKET_CS_PET_RISINGSTAR
+//PACKET_CS_PET_RISINGSTAR
 type CSRisingStar struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -728,7 +728,7 @@ func (x *CSRisingStar) GetRisingModId() int32 {
 	return 0
 }
 
-// PACKET_SC_ROLE_RISINGSTAR
+//PACKET_SC_ROLE_RISINGSTAR
 type SCRoleRisingStar struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -784,7 +784,7 @@ func (x *SCRoleRisingStar) GetRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// PACKET_SC_PET_RISINGSTAR
+//PACKET_SC_PET_RISINGSTAR
 type SCPetRisingStar struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -840,7 +840,7 @@ func (x *SCPetRisingStar) GetRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// PACKET_CS_ROLEPETUSEOP
+//PACKET_CS_ROLEPETUSEOP
 type CSRolePetUseOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -896,7 +896,7 @@ func (x *CSRolePetUseOp) GetUseModId() int32 {
 	return 0
 }
 
-// PACKET_CS_ROLEPETUSEOP
+//PACKET_CS_ROLEPETUSEOP
 type SCRolePetUseOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -960,7 +960,7 @@ func (x *SCRolePetUseOp) GetRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// PACKET_CS_ROLEPETUNLOCK
+//PACKET_CS_ROLEPETUNLOCK
 type CSRolePetUnlock struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1016,7 +1016,7 @@ func (x *CSRolePetUnlock) GetUseModId() int32 {
 	return 0
 }
 
-// PACKET_SC_ROLEPETUNLOCK
+//PACKET_SC_ROLEPETUNLOCK
 type SCRolePetUnlock struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go
index a7d9844..e7a41bf 100644
--- a/protocol/player/player.pb.go
+++ b/protocol/player/player.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -247,7 +247,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_player_proto_rawDescGZIP(), []int{0}
 }
 
-// 获取玩家数据消息id
+//获取玩家数据消息id
 type PlayerPacketID int32
 
 const (
@@ -1022,8 +1022,8 @@ func (x *SCSavePlayerInfo) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 获取玩家基本信息
-// PACKET_CS_PLAYERDATA
+//获取玩家基本信息
+//PACKET_CS_PLAYERDATA
 type CSPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1566,7 +1566,7 @@ func (x *PlayerData) GetAge() int32 {
 	return 0
 }
 
-// 断线重连小游戏中的数据 当前玩家在哪个房间 哪个游戏 对应的LogicId
+//断线重连小游戏中的数据 当前玩家在哪个房间 哪个游戏 对应的LogicId
 type MiniGameInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1630,7 +1630,7 @@ func (x *MiniGameInfo) GetLogicId() int32 {
 	return 0
 }
 
-// PACKET_SC_PLAYERDATA
+//PACKET_SC_PLAYERDATA
 type SCPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1726,7 +1726,7 @@ func (x *SCPlayerData) GetMiniGameArr() []*MiniGameInfo {
 	return nil
 }
 
-// PACKET_SC_PLAYERDATAUPDATE
+//PACKET_SC_PLAYERDATAUPDATE
 type SCPlayerDataUpdate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1878,8 +1878,8 @@ func (x *SCPlayerDataUpdate) GetInviteScore() int64 {
 	return 0
 }
 
-// 获取第三方玩家信息
-// PACKET_CS_THIRDPLAYERDATA
+//获取第三方玩家信息
+//PACKET_CS_THIRDPLAYERDATA
 type CSThirdPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1927,7 +1927,7 @@ func (x *CSThirdPlayerData) GetId() int32 {
 	return 0
 }
 
-// PACKET_SC_THIRDPLAYERDATA
+//PACKET_SC_THIRDPLAYERDATA
 type SCThirdPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1975,8 +1975,8 @@ func (x *SCThirdPlayerData) GetData() *PlayerData {
 	return nil
 }
 
-// 改昵称
-// PACKET_CS_CHANGENICK
+//改昵称
+//PACKET_CS_CHANGENICK
 type CSChangeNick struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2024,7 +2024,7 @@ func (x *CSChangeNick) GetNick() string {
 	return ""
 }
 
-// PACKET_SC_CHANGENICK
+//PACKET_SC_CHANGENICK
 type SCChangeNick struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2080,8 +2080,8 @@ func (x *SCChangeNick) GetNick() string {
 	return ""
 }
 
-// 改密码
-// PACKET_CS_CHANGEPASSWORD
+//改密码
+//PACKET_CS_CHANGEPASSWORD
 type CSChangePassword struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2153,7 +2153,7 @@ func (x *CSChangePassword) GetTimeStamp() int64 {
 	return 0
 }
 
-// PACKET_SC_CHANGEPASSWORD
+//PACKET_SC_CHANGEPASSWORD
 type SCChangePassword struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2209,8 +2209,8 @@ func (x *SCChangePassword) GetChangeType() int32 {
 	return 0
 }
 
-// 更换头像
-// PACKET_CS_CHANGEICON
+//更换头像
+//PACKET_CS_CHANGEICON
 type CSPlayerChangeIcon struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2258,7 +2258,7 @@ func (x *CSPlayerChangeIcon) GetIcon() int32 {
 	return 0
 }
 
-// PACKET_SC_CHANGEICON
+//PACKET_SC_CHANGEICON
 type SCPlayerChangeIcon struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2314,8 +2314,8 @@ func (x *SCPlayerChangeIcon) GetIcon() int32 {
 	return 0
 }
 
-// 更换头像框
-// PACKET_CS_HEADOUTLINE
+//更换头像框
+//PACKET_CS_HEADOUTLINE
 type CSPlayerChangeHeadOutLine struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2363,7 +2363,7 @@ func (x *CSPlayerChangeHeadOutLine) GetHeadOutLine() int32 {
 	return 0
 }
 
-// PACKET_SC_HEADOUTLINE
+//PACKET_SC_HEADOUTLINE
 type SCPlayerChangeHeadOutLine struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2419,8 +2419,8 @@ func (x *SCPlayerChangeHeadOutLine) GetHeadOutLine() int32 {
 	return 0
 }
 
-// 更换性别
-// PACKET_CS_CHANGESEX
+//更换性别
+//PACKET_CS_CHANGESEX
 type CSPlayerChangeSex struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2468,7 +2468,7 @@ func (x *CSPlayerChangeSex) GetSex() int32 {
 	return 0
 }
 
-// PACKET_SC_CHANGESEX
+//PACKET_SC_CHANGESEX
 type SCPlayerChangeSex struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2628,8 +2628,8 @@ func (x *SCHeadUrl) GetUrl() string {
 	return ""
 }
 
-// 获取验证码
-// PACKET_CS_VERIFICATIONCODE
+//获取验证码
+//PACKET_CS_VERIFICATIONCODE
 type CSPlayerVerificationCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2725,7 +2725,7 @@ func (x *CSPlayerVerificationCode) GetDeviceInfo() string {
 	return ""
 }
 
-// PACKET_SC_VERIFICATIONCODE
+//PACKET_SC_VERIFICATIONCODE
 type SCPlayerVerificationCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2781,8 +2781,8 @@ func (x *SCPlayerVerificationCode) GetVerificationCode() int32 {
 	return 0
 }
 
-// 注册帐号
-// PACKET_CS_REGISTER
+//注册帐号
+//PACKET_CS_REGISTER
 type CSRegister struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2974,7 +2974,7 @@ func (x *CSRegister) GetRegistType() int32 {
 	return 0
 }
 
-// PACKET_SC_REGISTER
+//PACKET_SC_REGISTER
 type SCRegister struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3038,8 +3038,8 @@ func (x *SCRegister) GetSrvTs() int64 {
 	return 0
 }
 
-// 账号升级，绑定手机，找回密码
-// PACKET_CS_UPGRADEACCOUNT
+//账号升级，绑定手机，找回密码
+//PACKET_CS_UPGRADEACCOUNT
 type CSUpgradeAccount struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3127,7 +3127,7 @@ func (x *CSUpgradeAccount) GetPlatformTag() string {
 	return ""
 }
 
-// PACKET_SC_UPGRADEACCOUNT
+//PACKET_SC_UPGRADEACCOUNT
 type SCUpgradeAccount struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3191,8 +3191,8 @@ func (x *SCUpgradeAccount) GetChangeType() int32 {
 	return 0
 }
 
-// 绑定支付宝账号
-// PACKET_CS_BINDALIPAY
+//绑定支付宝账号
+//PACKET_CS_BINDALIPAY
 type CSBindAlipay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3264,7 +3264,7 @@ func (x *CSBindAlipay) GetPassword() string {
 	return ""
 }
 
-// PACKET_SC_BINDALIPAY
+//PACKET_SC_BINDALIPAY
 type SCBindAlipay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3328,8 +3328,8 @@ func (x *SCBindAlipay) GetAlipayAccName() string {
 	return ""
 }
 
-// 绑定银行卡账号
-// PACKET_CS_BINDBANK
+//绑定银行卡账号
+//PACKET_CS_BINDBANK
 type CSBindBank struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3409,7 +3409,7 @@ func (x *CSBindBank) GetPassword() string {
 	return ""
 }
 
-// PACKET_SC_BINDBANK
+//PACKET_SC_BINDBANK
 type SCBindBank struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3481,8 +3481,8 @@ func (x *SCBindBank) GetBankAccName() string {
 	return ""
 }
 
-// PACKET_SC_PLAYERFLAG
-// 玩家状态标记同步
+//PACKET_SC_PLAYERFLAG
+//玩家状态标记同步
 type SCPlayerFlag struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3538,7 +3538,7 @@ func (x *SCPlayerFlag) GetFlag() int32 {
 	return 0
 }
 
-// PACKET_SC_PLAYERCOINCHANGE
+//PACKET_SC_PLAYERCOINCHANGE
 type SCPlayerCoinChange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3602,7 +3602,7 @@ func (x *SCPlayerCoinChange) GetRestCoin() int64 {
 	return 0
 }
 
-// PACKET_SC_PLAYERRECHARGEANSWER
+//PACKET_SC_PLAYERRECHARGEANSWER
 type SCPlayerRechargeAnswer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3674,7 +3674,7 @@ func (x *SCPlayerRechargeAnswer) GetSafeBoxCoin() int64 {
 	return 0
 }
 
-// 数据日志
+//数据日志
 type DataLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3754,7 +3754,7 @@ func (x *DataLog) GetRemark() string {
 	return ""
 }
 
-// PACKET_CS_GETDATALOG
+//PACKET_CS_GETDATALOG
 type CSGetDataLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3810,7 +3810,7 @@ func (x *CSGetDataLog) GetVer() int32 {
 	return 0
 }
 
-// PACKET_SC_GETDATALOG
+//PACKET_SC_GETDATALOG
 type SCGetDataLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3874,7 +3874,7 @@ func (x *SCGetDataLog) GetDatas() []*DataLog {
 	return nil
 }
 
-// 游戏金币日志
+//游戏金币日志
 type GameCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3954,7 +3954,7 @@ func (x *GameCoinLog) GetLeaveTs() int64 {
 	return 0
 }
 
-// PACKET_CS_GETGAMECOINLOG
+//PACKET_CS_GETGAMECOINLOG
 type CSGetGameCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4002,7 +4002,7 @@ func (x *CSGetGameCoinLog) GetTs() int64 {
 	return 0
 }
 
-// PACKET_SC_GETGAMECOINLOG
+//PACKET_SC_GETGAMECOINLOG
 type SCGetGameCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4058,8 +4058,8 @@ func (x *SCGetGameCoinLog) GetLogs() []*GameCoinLog {
 	return nil
 }
 
-// 保险箱存取款
-// PACKET_CS_PLAYEROPCOIN
+//保险箱存取款
+//PACKET_CS_PLAYEROPCOIN
 type CSPlayerOpCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4131,7 +4131,7 @@ func (x *CSPlayerOpCoin) GetTimeStamp() int64 {
 	return 0
 }
 
-// PACKET_SC_PLAYEROPCOIN
+//PACKET_SC_PLAYEROPCOIN
 type SCPlayerOpCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4203,7 +4203,7 @@ func (x *SCPlayerOpCoin) GetSafeBoxCoin() int64 {
 	return 0
 }
 
-// 保险箱金币日志
+//保险箱金币日志
 type SafeBoxCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4283,7 +4283,7 @@ func (x *SafeBoxCoinLog) GetTs() int64 {
 	return 0
 }
 
-// PACKET_CS_GETSAFEBOXCOINLOG
+//PACKET_CS_GETSAFEBOXCOINLOG
 type CSGetSafeBoxCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4331,7 +4331,7 @@ func (x *CSGetSafeBoxCoinLog) GetTs() int64 {
 	return 0
 }
 
-// PACKET_SC_GETSAFEBOXCOINLOG
+//PACKET_SC_GETSAFEBOXCOINLOG
 type SCGetSafeBoxCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4387,8 +4387,8 @@ func (x *SCGetSafeBoxCoinLog) GetLogs() []*SafeBoxCoinLog {
 	return nil
 }
 
-// 领取邀请码奖励
-// PACKET_CS_INVITECODE
+//领取邀请码奖励
+//PACKET_CS_INVITECODE
 type CSPlayerInviteCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4436,7 +4436,7 @@ func (x *CSPlayerInviteCode) GetCode() string {
 	return ""
 }
 
-// PACKET_SC_INVITECODE
+//PACKET_SC_INVITECODE
 type SCPlayerInviteCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4484,8 +4484,8 @@ func (x *SCPlayerInviteCode) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 玩家API透传
-// PACKET_CS_WEBAPI_PLAYERPASS
+//玩家API透传
+//PACKET_CS_WEBAPI_PLAYERPASS
 type CSWebAPIPlayerPass struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4549,7 +4549,7 @@ func (x *CSWebAPIPlayerPass) GetCBData() string {
 	return ""
 }
 
-// PACKET_SC_WEBAPI_PLAYERPASS
+//PACKET_SC_WEBAPI_PLAYERPASS
 type SCWebAPIPlayerPass struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4621,8 +4621,8 @@ func (x *SCWebAPIPlayerPass) GetResponse() string {
 	return ""
 }
 
-// 系统API透传
-// PACKET_CS_WEBAPI_SYSTEMPASS
+//系统API透传
+//PACKET_CS_WEBAPI_SYSTEMPASS
 type CSWebAPISystemPass struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4686,7 +4686,7 @@ func (x *CSWebAPISystemPass) GetCBData() string {
 	return ""
 }
 
-// PACKET_SC_WEBAPI_SYSTEMPASS
+//PACKET_SC_WEBAPI_SYSTEMPASS
 type SCWebAPISystemPass struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4758,8 +4758,8 @@ func (x *SCWebAPISystemPass) GetResponse() string {
 	return ""
 }
 
-// 绑定推广关系
-// PACKET_CS_SPREADBIND
+//绑定推广关系
+//PACKET_CS_SPREADBIND
 type CSSpreadBind struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4807,8 +4807,8 @@ func (x *CSSpreadBind) GetParentId() int32 {
 	return 0
 }
 
-// 绑定推广关系
-// PACKET_SC_SPREADBIND
+//绑定推广关系
+//PACKET_SC_SPREADBIND
 type SCSpreadBind struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4864,8 +4864,8 @@ func (x *SCSpreadBind) GetParentId() int32 {
 	return 0
 }
 
-// 绑定推广员
-// PACKET_CS_BINDPROMOTER
+//绑定推广员
+//PACKET_CS_BINDPROMOTER
 type CSBindPromoter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4913,8 +4913,8 @@ func (x *CSBindPromoter) GetPromoter() string {
 	return ""
 }
 
-// 绑定推广员
-// PACKET_SC_BINDPROMOTER
+//绑定推广员
+//PACKET_SC_BINDPROMOTER
 type SCBindPromoter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4970,8 +4970,8 @@ func (x *SCBindPromoter) GetPromoter() string {
 	return ""
 }
 
-// 通知是否显示推广员绑定信息
-// PACKET_SC_BINDPROMOTERSTATE
+//通知是否显示推广员绑定信息
+//PACKET_SC_BINDPROMOTERSTATE
 type SCBindPromoterState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5019,8 +5019,8 @@ func (x *SCBindPromoterState) GetBindState() int32 {
 	return 0
 }
 
-// 生成客服会话token
-// PACKET_CS_GENCUSTOMTOKEN
+//生成客服会话token
+//PACKET_CS_GENCUSTOMTOKEN
 type CSGenCustomerToken struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5059,8 +5059,8 @@ func (*CSGenCustomerToken) Descriptor() ([]byte, []int) {
 	return file_player_proto_rawDescGZIP(), []int{59}
 }
 
-// 生成客服会话token
-// PACKET_SC_GENCUSTOMTOKEN
+//生成客服会话token
+//PACKET_SC_GENCUSTOMTOKEN
 type SCGenCustomerToken struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5163,8 +5163,8 @@ func (x *CustomerMsg) GetData() string {
 	return ""
 }
 
-// 客服新消息提醒
-// PACKET_SC_CUSTOMNEWMSG
+//客服新消息提醒
+//PACKET_SC_CUSTOMNEWMSG
 type SCCustomerNewMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5212,7 +5212,7 @@ func (x *SCCustomerNewMsg) GetData() []*CustomerMsg {
 	return nil
 }
 
-// PACKET_CS_CUSTOMNEWMSGACK
+//PACKET_CS_CUSTOMNEWMSGACK
 type CSCustomerNewMsgAck struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5260,8 +5260,8 @@ func (x *CSCustomerNewMsgAck) GetMsgIds() []string {
 	return nil
 }
 
-// 获取图片验证码
-// PACKET_CS_GETIMAGEVERIFYCODE
+//获取图片验证码
+//PACKET_CS_GETIMAGEVERIFYCODE
 type CSGetImageVerifyCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5300,7 +5300,7 @@ func (*CSGetImageVerifyCode) Descriptor() ([]byte, []int) {
 	return file_player_proto_rawDescGZIP(), []int{64}
 }
 
-// PACKET_SC_GETIMAGEVERIFYCODE
+//PACKET_SC_GETIMAGEVERIFYCODE
 type SCGetImageVerifyCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5357,7 +5357,7 @@ func (x *SCGetImageVerifyCode) GetImageData() string {
 }
 
 // 验证图片验证码
-// PACKET_CS_ImageVerifyCode
+//PACKET_CS_ImageVerifyCode
 type CSImageVerifyCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5405,7 +5405,7 @@ func (x *CSImageVerifyCode) GetCode() string {
 	return ""
 }
 
-// PACKET_SC_ImageVerifyCode
+//PACKET_SC_ImageVerifyCode
 type SCImageVerifyCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5453,8 +5453,8 @@ func (x *SCImageVerifyCode) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 玩家托管
-// PACKET_SC_TRUSTEESHIPTIPS
+//玩家托管
+//PACKET_SC_TRUSTEESHIPTIPS
 type SCTrusteeshipTips struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5526,8 +5526,8 @@ func (x *SCTrusteeshipTips) GetOpParams() []int32 {
 	return nil
 }
 
-// 获取滑块验证码
-// PACKET_CS_GETSLIDERVERIFYCODE
+//获取滑块验证码
+//PACKET_CS_GETSLIDERVERIFYCODE
 type CSGetSliderVerifyCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5575,8 +5575,8 @@ func (x *CSGetSliderVerifyCode) GetTel() string {
 	return ""
 }
 
-// 获取滑块验证码
-// PACKET_SC_GETSLIDERVERIFYCODE
+//获取滑块验证码
+//PACKET_SC_GETSLIDERVERIFYCODE
 type SCGetSliderVerifyCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5632,8 +5632,8 @@ func (x *SCGetSliderVerifyCode) GetPos() int32 {
 	return 0
 }
 
-// 标注ios用户准备升级稳定版本
-// PACKET_CS_IOSINSTALLSTABLE
+//标注ios用户准备升级稳定版本
+//PACKET_CS_IOSINSTALLSTABLE
 type CSIosInstallStable struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5689,8 +5689,8 @@ func (x *CSIosInstallStable) GetTel() string {
 	return ""
 }
 
-// 标注ios用户准备升级稳定版本
-// PACKET_SC_IOSINSTALLSTABLE
+//标注ios用户准备升级稳定版本
+//PACKET_SC_IOSINSTALLSTABLE
 type SCIosInstallStable struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5793,7 +5793,7 @@ func (x *SrvMsgParam) GetStrParam() string {
 	return ""
 }
 
-// 服务端消息提示
+//服务端消息提示
 type SCSrvMsg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6103,7 +6103,7 @@ func (x *SCFishJackpotCoin) GetCoin() int64 {
 	return 0
 }
 
-// PACKET_SC_NICEIDREBIND
+//PACKET_SC_NICEIDREBIND
 type SCNiceIdRebind struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6159,8 +6159,8 @@ func (x *SCNiceIdRebind) GetNiceId() int32 {
 	return 0
 }
 
-// 请求客损功能是否打开
-// PACKET_CS_GetSpreadLWIsOpen
+//请求客损功能是否打开
+//PACKET_CS_GetSpreadLWIsOpen
 type CSGetSpreadLWIsOpen struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6199,8 +6199,8 @@ func (*CSGetSpreadLWIsOpen) Descriptor() ([]byte, []int) {
 	return file_player_proto_rawDescGZIP(), []int{81}
 }
 
-// 获取滑块验证码
-// PACKET_SC_GETSLIDERVERIFYCODE
+//获取滑块验证码
+//PACKET_SC_GETSLIDERVERIFYCODE
 type SCGetSpreadLWIsOpen struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6335,7 +6335,7 @@ func (x *PayActInfo) GetState() int32 {
 	return 0
 }
 
-// PACKET_SC_PayAct_State
+//PACKET_SC_PayAct_State
 type SCPayActState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6383,7 +6383,7 @@ func (x *SCPayActState) GetPayState() []*PayActInfo {
 	return nil
 }
 
-// PACKET_CS_QUERYPLAYER
+//PACKET_CS_QUERYPLAYER
 type CSQueryPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6494,7 +6494,7 @@ func (x *RoleOrPet) GetName() string {
 	return ""
 }
 
-// PACKET_SC_QUERYPLAYER
+//PACKET_SC_QUERYPLAYER
 type SCQueryPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6670,7 +6670,7 @@ func (x *SCQueryPlayer) GetGameID() []int32 {
 	return nil
 }
 
-// PACKET_CS_PMCMD
+//PACKET_CS_PMCMD
 type CSPMCmd struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6718,8 +6718,8 @@ func (x *CSPMCmd) GetCmd() string {
 	return ""
 }
 
-// PACKET_CS_ROBOTCHGDATA
-// 获取玩家基本信息
+//PACKET_CS_ROBOTCHGDATA
+//获取玩家基本信息
 type CSRobotChgData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6767,7 +6767,7 @@ func (x *CSRobotChgData) GetParams() []string {
 	return nil
 }
 
-// 物品信息 后续精简
+//物品信息 后续精简
 type ItemInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6975,8 +6975,8 @@ func (x *JybInfoAward) GetDiamond() int64 {
 	return 0
 }
 
-// PACKET_ALL_SETTING
-// 设置界面的相关操作
+//  PACKET_ALL_SETTING
+//  设置界面的相关操作
 type CSPlayerSetting struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7087,7 +7087,7 @@ func (x *SCPlayerSetting) GetGainItem() *JybInfoAward {
 	return nil
 }
 
-// PACKET_SCGAMEEXDROPITEMS
+//PACKET_SCGAMEEXDROPITEMS
 type SCGameExDropItems struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7135,8 +7135,8 @@ func (x *SCGameExDropItems) GetItems() map[int32]int32 {
 	return nil
 }
 
-// VIP充值 假充值 后续走三方回调
-// PACKET_CS_VIPBUY
+//VIP充值 假充值 后续走三方回调
+//PACKET_CS_VIPBUY
 type CSVIPBuy struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7184,8 +7184,8 @@ func (x *CSVIPBuy) GetMoney() int32 {
 	return 0
 }
 
-// VIP充值
-// PACKET_SC_VIPBUY
+//VIP充值
+//PACKET_SC_VIPBUY
 type SCVIPBuy struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7257,8 +7257,8 @@ func (x *SCVIPBuy) GetTolVipExp() int64 {
 	return 0
 }
 
-// VIP领取
-// PACKET_CS_DRAWVIPGIFT
+//VIP领取
+//PACKET_CS_DRAWVIPGIFT
 type CSVIPDraw struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7306,8 +7306,8 @@ func (x *CSVIPDraw) GetId() int32 {
 	return 0
 }
 
-// VIP领取
-// PACKET_SC_DRAWVIPGIFT
+//VIP领取
+//PACKET_SC_DRAWVIPGIFT
 type SCVIPDraw struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7371,8 +7371,8 @@ func (x *SCVIPDraw) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// VIP信息
-// PACKET_CS_VIPINFO
+//VIP信息
+//PACKET_CS_VIPINFO
 type CSVIPInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7586,8 +7586,8 @@ func (x *VIPcfg) GetBagStatus() []int32 {
 	return nil
 }
 
-// VIP信息
-// PACKET_SC_VIPINFO
+//VIP信息
+//PACKET_SC_VIPINFO
 type SCVIPInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7683,7 +7683,8 @@ func (x *SCVIPInfo) GetMoneyRatio() int32 {
 	return 0
 }
 
-// PACKET_SC_SWELFAREINFO
+//
+//PACKET_SC_SWELFAREINFO
 type SCEasyWelfaredInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7778,7 +7779,7 @@ func (x *CSVIPPrivilegeInfo) GetCode() int32 {
 	return 0
 }
 
-// PACKET_SC_VIPPrivilegeInfo
+//PACKET_SC_VIPPrivilegeInfo
 type SCVIPPrivilegeInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7905,8 +7906,8 @@ func (x *PayItem) GetItemNum() int64 {
 	return 0
 }
 
-// 支付掉落
-// PACKET_SC_PAYGOODSINFO
+//支付掉落
+//PACKET_SC_PAYGOODSINFO
 type SCPayGoodsInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7963,7 +7964,7 @@ func (x *SCPayGoodsInfo) GetItem() []*PayItem {
 }
 
 // 资源更新
-// PACKET_SC_RESOURCE
+//PACKET_SC_RESOURCE
 type SCResource struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8011,7 +8012,7 @@ func (x *SCResource) GetMsg() string {
 	return ""
 }
 
-// PACKET_CS_CLIENT_LOG
+//PACKET_CS_CLIENT_LOG
 type CSClientLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8059,7 +8060,7 @@ func (x *CSClientLog) GetData() string {
 	return ""
 }
 
-// PACKET_SC_CLIENT_LOG
+//PACKET_SC_CLIENT_LOG
 type SCClientLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8107,8 +8108,8 @@ func (x *SCClientLog) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 捕鱼解锁炮倍
-// PACKET_SC_PlayerUnPower
+//捕鱼解锁炮倍
+//PACKET_SC_PlayerUnPower
 type SCPlayerUnPower struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8156,8 +8157,8 @@ func (x *SCPlayerUnPower) GetUnMaxpower() int64 {
 	return 0
 }
 
-// 捕鱼解锁炮台
-// PACKET_SC_PlayerUnPowerList
+//捕鱼解锁炮台
+//PACKET_SC_PlayerUnPowerList
 type SCPlayerUnPowerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8205,8 +8206,8 @@ func (x *SCPlayerUnPowerList) GetUnPowerList() int32 {
 	return 0
 }
 
-// 玩家升级
-// PACKET_SC_PlayerUpLevel
+//玩家升级
+//PACKET_SC_PlayerUpLevel
 type SCPlayerUpLevel struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8744,8 +8745,8 @@ func (x *SCHttpPass) GetResponse() string {
 	return ""
 }
 
-// 抽手机 请求抽奖数据
-// PACKET_CS_PhoneLotteryInfo
+//抽手机 请求抽奖数据
+//PACKET_CS_PhoneLotteryInfo
 type CSPhoneLotteryInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8784,8 +8785,8 @@ func (*CSPhoneLotteryInfo) Descriptor() ([]byte, []int) {
 	return file_player_proto_rawDescGZIP(), []int{121}
 }
 
-// 抽手机 返回抽奖数据
-// PACKET_SC_PhoneLotteryInfo
+//抽手机 返回抽奖数据
+//PACKET_SC_PhoneLotteryInfo
 type SCPhoneLotteryInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8849,8 +8850,8 @@ func (x *SCPhoneLotteryInfo) GetItem() []*LotteryItem {
 	return nil
 }
 
-// 请求抽奖
-// PACKET_CS_PhoneLottery
+//请求抽奖
+//PACKET_CS_PhoneLottery
 type CSPhoneLottery struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8898,8 +8899,8 @@ func (x *CSPhoneLottery) GetLotteryType() int32 {
 	return 0
 }
 
-// 请求抽奖返回
-// PACKET_SC_PhoneLottery
+//请求抽奖返回
+//PACKET_SC_PhoneLottery
 type SCPhoneLottery struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -9026,8 +9027,8 @@ func (x *LotteryItem) GetItemNum() int64 {
 	return 0
 }
 
-// 通知抽奖剩余次数
-// PACKET_SC_PhoneLotteryCount
+//通知抽奖剩余次数
+//PACKET_SC_PhoneLotteryCount
 type SCPhoneLotteryCount struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/qpapi/qpapi.pb.go b/protocol/qpapi/qpapi.pb.go
index 6235473..87ab3d7 100644
--- a/protocol/qpapi/qpapi.pb.go
+++ b/protocol/qpapi/qpapi.pb.go
@@ -77,7 +77,7 @@ func (TagCode) EnumDescriptor() ([]byte, []int) {
 	return file_qpapi_proto_rawDescGZIP(), []int{0}
 }
 
-// [action] /api/Member/QPAPIRegisterOrLogin
+//[action] /api/Member/QPAPIRegisterOrLogin
 type ASLogin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -220,7 +220,7 @@ func (x *SALogin) GetSnid() int32 {
 	return 0
 }
 
-// 加币
+//加币
 // [action] /api/game/QPAPIAddSubCoinById
 type ASAddCoinById struct {
 	state         protoimpl.MessageState
@@ -428,7 +428,7 @@ func (x *PlayerCoinData) GetBank() int64 {
 	return 0
 }
 
-// 查用户金币  /api/Member/QPGetMemberGoldById
+//查用户金币  /api/Member/QPGetMemberGoldById
 type ASMemberGold struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -755,7 +755,7 @@ func (x *PlayerHistoryInfo) GetUserName() string {
 	return ""
 }
 
-// 获取用户注单记录游戏记录 /api/Member/QPGetGameHistory
+//获取用户注单记录游戏记录 /api/Member/QPGetGameHistory
 type SAPlayerHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/richblessed/richblessed.pb.go b/protocol/richblessed/richblessed.pb.go
index 8096dfc..dd3a491 100644
--- a/protocol/richblessed/richblessed.pb.go
+++ b/protocol/richblessed/richblessed.pb.go
@@ -20,8 +20,8 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// RichBlessed
-// 多财多福
+//RichBlessed
+//多财多福
 type RBPID int32
 
 const (
@@ -268,8 +268,8 @@ func (x *RichWinLine) GetWinScore() int64 {
 	return 0
 }
 
-// 房间信息
-// PACKET_RICHBLESSED_SCRBRoomInfo
+//房间信息
+//PACKET_RICHBLESSED_SCRBRoomInfo
 type SCRBRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -517,8 +517,8 @@ func (x *SCRBRoomInfo) GetWinFreeTimes() int32 {
 	return 0
 }
 
-// 玩家操作
-// PACKET_RICHBLESSED_CSRichBlessedOp
+//玩家操作
+//PACKET_RICHBLESSED_CSRichBlessedOp
 type CSRichBlessedOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -574,8 +574,8 @@ func (x *CSRichBlessedOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
-// PACKET_RICHBLESSED_SCRichBlessedOp
+//玩家操作返回
+//PACKET_RICHBLESSED_SCRichBlessedOp
 type SCRichBlessedOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -639,8 +639,8 @@ func (x *SCRichBlessedOp) GetParams() []int64 {
 	return nil
 }
 
-// 房间状态
-// PACKET_RICHBLESSED_SCRBRoomState
+//房间状态
+//PACKET_RICHBLESSED_SCRBRoomState
 type SCRBRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -704,7 +704,7 @@ func (x *SCRBRoomState) GetParams() []int32 {
 	return nil
 }
 
-// PACKET_RICHBLESSED_SCRBPrize
+//PACKET_RICHBLESSED_SCRBPrize
 type SCRBPrize struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -752,7 +752,7 @@ func (x *SCRBPrize) GetPrizePool() int64 {
 	return 0
 }
 
-// PACKET_RICHBLESSED_SCRBBilled
+//PACKET_RICHBLESSED_SCRBBilled
 type SCRBBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/rollpoint/rollpoint.pb.go b/protocol/rollpoint/rollpoint.pb.go
index 2bea81a..4f43ba0 100644
--- a/protocol/rollpoint/rollpoint.pb.go
+++ b/protocol/rollpoint/rollpoint.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,8 +67,8 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_rollpoint_proto_rawDescGZIP(), []int{0}
 }
 
-// 骰宝
-// 协议包ID
+//骰宝
+//协议包ID
 type RPPACKETID int32
 
 const (
@@ -329,7 +329,7 @@ func (x *RollPointCoinLog) GetCoins() []int32 {
 	return nil
 }
 
-// 玩家列表
+//玩家列表
 type SCRollPointPlayerList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -385,7 +385,7 @@ func (x *SCRollPointPlayerList) GetPlayerNum() int32 {
 	return 0
 }
 
-// RollPoint_SC_ROOMINFO
+//RollPoint_SC_ROOMINFO
 type SCRollPointRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -521,7 +521,7 @@ func (x *SCRollPointRoomInfo) GetParams() []int32 {
 	return nil
 }
 
-// RollPoint_SC_PLAYERNUM
+//RollPoint_SC_PLAYERNUM
 type SCRollPointPlayerNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -569,12 +569,12 @@ func (x *SCRollPointPlayerNum) GetPlayerNum() int32 {
 	return 0
 }
 
-// RollPoint_SC_ROOMSTATE
-// 0.RollPointSceneStateWait      params:bankertimes      等待  time.Second * 0
-// 1.RollPointSceneStateStart     params:                 开始  time.Second * 3
-// 2.RollPointSceneStateBet      params:                 押注  time.Second * 15
-// 3.RollPointSceneStateOpen      params:                 押注  time.Second * 3
-// 4.RollPointSceneStateBilled    params:winPos,runPos    结算  time.Second * 5
+//RollPoint_SC_ROOMSTATE
+//0.RollPointSceneStateWait      params:bankertimes      等待  time.Second * 0
+//1.RollPointSceneStateStart     params:                 开始  time.Second * 3
+//2.RollPointSceneStateBet      params:                 押注  time.Second * 15
+//3.RollPointSceneStateOpen      params:                 押注  time.Second * 3
+//4.RollPointSceneStateBilled    params:winPos,runPos    结算  time.Second * 5
 type SCRollPointRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -630,9 +630,9 @@ func (x *SCRollPointRoomState) GetParams() []int32 {
 	return nil
 }
 
-// ROLLPOINT_CS_OP
-// 0.RollPointPlayerOpPushCoin param:falg-coin 押注
-// 1.RollPointPlayerOpPlayerList param:玩家列表
+//ROLLPOINT_CS_OP
+//0.RollPointPlayerOpPushCoin param:falg-coin 押注
+//1.RollPointPlayerOpPlayerList param:玩家列表
 type CSRollPointOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -688,7 +688,7 @@ func (x *CSRollPointOp) GetParams() []int64 {
 	return nil
 }
 
-// ROLLPOINT_SC_OP
+//ROLLPOINT_SC_OP
 type SCRollPointOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -760,7 +760,7 @@ func (x *SCRollPointOp) GetSnId() int32 {
 	return 0
 }
 
-// RollPoint_SC_PUSHCOIN
+//RollPoint_SC_PUSHCOIN
 type SCRollPointPushCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -848,7 +848,7 @@ func (x *SCRollPointPushCoin) GetSnId() int32 {
 	return 0
 }
 
-// RollPoint_SC_COINLOG
+//RollPoint_SC_COINLOG
 type SCRollPointCoinLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -904,7 +904,7 @@ func (x *SCRollPointCoinLog) GetPos() []int32 {
 	return nil
 }
 
-// RollPoint_SC_BILL
+//RollPoint_SC_BILL
 type SCRollPointBill struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/rollteam/rollteam.pb.go b/protocol/rollteam/rollteam.pb.go
index 9931e77..1237463 100644
--- a/protocol/rollteam/rollteam.pb.go
+++ b/protocol/rollteam/rollteam.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,7 +67,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_rollteam_proto_rawDescGZIP(), []int{0}
 }
 
-// 世界杯
+//世界杯
 type RTPacketID int32
 
 const (
@@ -265,7 +265,7 @@ func (x *RollTeamPlayerData) GetVIP() int32 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCRollTeamRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -481,14 +481,14 @@ func (x *SCRollTeamRoomInfo) GetGameFreeId() int32 {
 	return 0
 }
 
-// 玩家操作
-// RollTeamPlayerOpStart 0 游戏
-// RollTeamPlayerOpJackList 1 查看礼物列表
-// RollTeamPlayerOpChangeRoom 2 切换房间
-// RollTeamPlayerOpPokerStart 3 开始翻倍
-// RollTeamPlayerOpPokerSel 4 扑克选择
-// RollTeamPlayerOpPokerOver 5 扑克结算
-// RollTeamPlayerOpSyncCoin 6 同步金币
+//玩家操作
+//RollTeamPlayerOpStart 0 游戏
+//RollTeamPlayerOpJackList 1 查看礼物列表
+//RollTeamPlayerOpChangeRoom 2 切换房间
+//RollTeamPlayerOpPokerStart 3 开始翻倍
+//RollTeamPlayerOpPokerSel 4 扑克选择
+//RollTeamPlayerOpPokerOver 5 扑克结算
+//RollTeamPlayerOpSyncCoin 6 同步金币
 type CSRollTeamOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -544,7 +544,7 @@ func (x *CSRollTeamOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCRollTeamOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -616,7 +616,7 @@ func (x *SCRollTeamOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type RollTeamLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -688,7 +688,7 @@ func (x *RollTeamLinesInfo) GetWinItem() int32 {
 	return 0
 }
 
-// 发送给客户端的数据
+//发送给客户端的数据
 type SCRollTeamGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -808,7 +808,7 @@ func (x *SCRollTeamGameBilled) GetPokerGame() bool {
 	return false
 }
 
-// 房间状态
+//房间状态
 type SCRollTeamRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -990,7 +990,7 @@ func (x *RollTeamJackpot) GetJackpotscore() int64 {
 	return 0
 }
 
-// 奖池记录
+//奖池记录
 type SCRollTeamJackpot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1038,7 +1038,7 @@ func (x *SCRollTeamJackpot) GetData() []*RollTeamJackpot {
 	return nil
 }
 
-// 座位数据
+//座位数据
 type SCRollTeamSeats struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/roulette/roulette.pb.go b/protocol/roulette/roulette.pb.go
index 064d3c3..1001ac4 100644
--- a/protocol/roulette/roulette.pb.go
+++ b/protocol/roulette/roulette.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 轮盘 Roulette
+//轮盘 Roulette
 type RouletteMmoPacketID int32
 
 const (
@@ -342,8 +342,8 @@ func (x *RoulettePlayerData) GetBetInfo() []*RouletteBetInfo {
 	return nil
 }
 
-// 房间信息
-// PACKET_SC_Roulette_RoomInfo
+//房间信息
+//PACKET_SC_Roulette_RoomInfo
 type SCRouletteRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -527,8 +527,8 @@ func (x *SCRouletteRoomInfo) GetMaxBetCoin() []int32 {
 	return nil
 }
 
-// 上座玩家信息更新
-// PACKET_SC_Roulette_TopPlayer
+//上座玩家信息更新
+//PACKET_SC_Roulette_TopPlayer
 type SCRouletteTopPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -576,8 +576,8 @@ func (x *SCRouletteTopPlayer) GetPlayers() []*RoulettePlayerData {
 	return nil
 }
 
-// 玩家操作
-// PACKET_CS_Roulette_PlayerOp
+//玩家操作
+//PACKET_CS_Roulette_PlayerOp
 type CSRoulettePlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -633,7 +633,7 @@ func (x *CSRoulettePlayerOp) GetOpParam() []int64 {
 	return nil
 }
 
-// PACKET_SC_Roulette_PlayerOp
+//PACKET_SC_Roulette_PlayerOp
 type SCRoulettePlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -705,8 +705,8 @@ func (x *SCRoulettePlayerOp) GetProceedBetCoin() []*RouletteBetInfo {
 	return nil
 }
 
-// 通知玩家 其他玩家的下注额(不包含自己和上座玩家)
-// PACKET_SC_Roulette_BetChange
+//通知玩家 其他玩家的下注额(不包含自己和上座玩家)
+//PACKET_SC_Roulette_BetChange
 type SCRouletteBetChange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -754,8 +754,8 @@ func (x *SCRouletteBetChange) GetBetInfo() []*RouletteBetInfo {
 	return nil
 }
 
-// 在线玩家列表
-// PACKET_SC_Roulette_PLayerOn
+//在线玩家列表
+//PACKET_SC_Roulette_PLayerOn
 type SCRoulettePlayerOn struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -803,8 +803,8 @@ func (x *SCRoulettePlayerOn) GetPlayers() []*RoulettePlayerData {
 	return nil
 }
 
-// 房间状态更新
-// PACKET_SC_Roulette_RoomState
+//房间状态更新
+//PACKET_SC_Roulette_RoomState
 type SCRouletteRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -940,7 +940,7 @@ func (x *RouletteBilled) GetBetInfo() []*RouletteBetInfo {
 	return nil
 }
 
-// PACKET_SC_Roulette_Billed
+//PACKET_SC_Roulette_Billed
 type SCRouletteBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/samloc/samloc.pb.go b/protocol/samloc/samloc.pb.go
index 11d4054..e054a0f 100644
--- a/protocol/samloc/samloc.pb.go
+++ b/protocol/samloc/samloc.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_samloc_proto_rawDescGZIP(), []int{0}
 }
 
-// samloc
+//samloc
 type SamLocPacketID int32
 
 const (
@@ -156,7 +156,7 @@ func (SamLocPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_samloc_proto_rawDescGZIP(), []int{1}
 }
 
-// 玩家信息
+//玩家信息
 type SamLocPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -443,7 +443,7 @@ func (x *LastDelCard) GetCards() []int32 {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCSamLocRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -676,7 +676,7 @@ func (x *SCSamLocRoomInfo) GetBaosamOps() int32 {
 	return 0
 }
 
-// 房间状态更新
+//房间状态更新
 type SCSamLocRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -732,7 +732,7 @@ func (x *SCSamLocRoomState) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSSamLocPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -867,7 +867,7 @@ func (x *SCSamLocPlayerOp) GetTrusteeship() int32 {
 	return 0
 }
 
-// 玩家进入
+//玩家进入
 type SCSamLocPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -915,7 +915,7 @@ func (x *SCSamLocPlayerEnter) GetData() *SamLocPlayerData {
 	return nil
 }
 
-// 玩家离开
+//玩家离开
 type SCSamLocPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -963,7 +963,7 @@ func (x *SCSamLocPlayerLeave) GetPos() int32 {
 	return 0
 }
 
-// 结算结果
+//结算结果
 type SamLocPlayerGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1090,7 +1090,7 @@ func (x *SCSamLocGameBilled) GetDatas() []*SamLocPlayerGameBilled {
 	return nil
 }
 
-// 小结算结果（炸的分）
+//小结算结果（炸的分）
 type SCSamLocSmallGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1178,7 +1178,7 @@ func (x *SCSamLocSmallGameBilled) GetLoseCoin() int64 {
 	return 0
 }
 
-// 发牌
+//发牌
 type SCSamLocCard struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1384,7 +1384,7 @@ func (x *SCSamLocUpdateMasterSnid) GetMasterSnid() int32 {
 	return 0
 }
 
-// PACKET_SCSamLocUpdateAudienceNum
+//PACKET_SCSamLocUpdateAudienceNum
 type SCSamLocUpdateAudienceNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1607,7 +1607,7 @@ func (x *SCSamLocAIData) GetPlayerPosition() int32 {
 	return 0
 }
 
-// PACKET_SCSamLocFirstOpPos
+//PACKET_SCSamLocFirstOpPos
 type SCSamLocFirstOpPos struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/server/server.pb.go b/protocol/server/server.pb.go
index 92ab767..5d36cf4 100644
--- a/protocol/server/server.pb.go
+++ b/protocol/server/server.pb.go
@@ -392,7 +392,7 @@ func (SGBindGroupTag_OpCode) EnumDescriptor() ([]byte, []int) {
 	return file_server_proto_rawDescGZIP(), []int{0, 0}
 }
 
-// PACKET_SG_BINDGROUPTAG
+//PACKET_SG_BINDGROUPTAG
 type SGBindGroupTag struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -456,7 +456,7 @@ func (x *SGBindGroupTag) GetTags() []string {
 	return nil
 }
 
-// PACKET_SS_CUSTOMTAG_MULTICAST
+//PACKET_SS_CUSTOMTAG_MULTICAST
 type SSCustomTagMulticast struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -567,7 +567,7 @@ func (x *OpResultParam) GetParamString() string {
 	return ""
 }
 
-// PACKET_GB_CUR_LOAD
+//PACKET_GB_CUR_LOAD
 type ServerLoad struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -631,7 +631,7 @@ func (x *ServerLoad) GetCurLoad() int32 {
 	return 0
 }
 
-// PACKET_GB_STATE_SWITCH
+//PACKET_GB_STATE_SWITCH
 type ServerStateSwitch struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -687,7 +687,7 @@ func (x *ServerStateSwitch) GetSrvId() int32 {
 	return 0
 }
 
-// PACKET_WG_SERVER_STATE
+//PACKET_WG_SERVER_STATE
 type ServerState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -735,7 +735,7 @@ func (x *ServerState) GetSrvState() int32 {
 	return 0
 }
 
-// PACKET_MS_SRVCTRL
+//PACKET_MS_SRVCTRL
 type ServerCtrl struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -791,7 +791,7 @@ func (x *ServerCtrl) GetParams() []*OpResultParam {
 	return nil
 }
 
-// PACKET_SC_NOTICE
+//PACKET_SC_NOTICE
 type ServerNotice struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -839,7 +839,7 @@ func (x *ServerNotice) GetText() string {
 	return ""
 }
 
-// PACKET_WG_CREATESCENE
+//PACKET_WG_CREATESCENE
 type WGCreateScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1063,7 +1063,7 @@ func (x *WGCreateScene) GetChessRank() []int32 {
 	return nil
 }
 
-// PACKET_WG_DESTROYSCENE
+//PACKET_WG_DESTROYSCENE
 type WGDestroyScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1119,7 +1119,7 @@ func (x *WGDestroyScene) GetIsCompleted() bool {
 	return false
 }
 
-// PACKET_GW_DESTROYSCENE
+//PACKET_GW_DESTROYSCENE
 type GWDestroyScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1175,7 +1175,7 @@ func (x *GWDestroyScene) GetIsCompleted() bool {
 	return false
 }
 
-// PACKET_WG_GRACE_DESTROYSCENE
+//PACKET_WG_GRACE_DESTROYSCENE
 type WGGraceDestroyScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1278,8 +1278,8 @@ func (x *RebateTask) GetRebateGameCfg() []string {
 	return nil
 }
 
-// PACKET_WG_PLAYERENTER
-// PACKET_WG_AUDIENCEENTER
+//PACKET_WG_PLAYERENTER
+//PACKET_WG_AUDIENCEENTER
 type WGPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1471,8 +1471,8 @@ func (x *WGPlayerEnter) GetRankScore() map[int32]int64 {
 	return nil
 }
 
-// 从观众席坐到座位
-// PACKET_WG_AUDIENCESIT
+//从观众席坐到座位
+//PACKET_WG_AUDIENCESIT
 type WGAudienceSit struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1544,7 +1544,7 @@ func (x *WGAudienceSit) GetPos() int32 {
 	return 0
 }
 
-// PACKET_WG_PLAYERRETURN
+//PACKET_WG_PLAYERRETURN
 type WGPlayerReturn struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1616,8 +1616,8 @@ func (x *WGPlayerReturn) GetEnterTs() int64 {
 	return 0
 }
 
-// PACKET_GW_PLAYERLEAVE
-// PACKET_GW_AUDIENCELEAVE
+//PACKET_GW_PLAYERLEAVE
+//PACKET_GW_AUDIENCELEAVE
 type GWPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1809,7 +1809,7 @@ func (x *GWPlayerLeave) GetRankScore() map[int32]int64 {
 	return nil
 }
 
-// PACKET_WG_PLAYERDROPLINE
+//PACKET_WG_PLAYERDROPLINE
 type WGPlayerDropLine struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1865,7 +1865,7 @@ func (x *WGPlayerDropLine) GetSceneId() int32 {
 	return 0
 }
 
-// PACKET_WG_PLAYERREHOLD
+//PACKET_WG_PLAYERREHOLD
 type WGPlayerRehold struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1937,7 +1937,7 @@ func (x *WGPlayerRehold) GetGateSid() int64 {
 	return 0
 }
 
-// PACKET_GW_BILLEDROOMCARD
+//PACKET_GW_BILLEDROOMCARD
 type GWBilledRoomCard struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1993,7 +1993,7 @@ func (x *GWBilledRoomCard) GetSnId() []int32 {
 	return nil
 }
 
-// PACKET_GG_PLAYERSESSIONBIND
+//PACKET_GG_PLAYERSESSIONBIND
 type GGPlayerSessionBind struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2081,7 +2081,7 @@ func (x *GGPlayerSessionBind) GetPlatform() string {
 	return ""
 }
 
-// PACKET_GG_PLAYERSESSIONUNBIND
+//PACKET_GG_PLAYERSESSIONUNBIND
 type GGPlayerSessionUnBind struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2311,7 +2311,7 @@ func (x *ReplayPlayerData) GetCoin() int64 {
 	return 0
 }
 
-// 录像回放相关
+//录像回放相关
 type ReplayRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2621,7 +2621,7 @@ func (x *GRReplaySequene) GetDatasVer() int32 {
 	return 0
 }
 
-// PACKET_WR_LoginRec
+//PACKET_WR_LoginRec
 type WRLoginRec struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2717,7 +2717,7 @@ func (x *WRLoginRec) GetLogId() string {
 	return ""
 }
 
-// PACKET_WR_GameDetail
+//PACKET_WR_GameDetail
 type WRGameDetail struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2765,7 +2765,7 @@ func (x *WRGameDetail) GetGameDetail() []byte {
 	return nil
 }
 
-// PACKET_WR_PlayerData
+//PACKET_WR_PlayerData
 type WRPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2821,7 +2821,7 @@ func (x *WRPlayerData) GetPlayerData() []byte {
 	return nil
 }
 
-// PACKET_WT_PlayerPay
+//PACKET_WT_PlayerPay
 type WTPlayerPay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2964,7 +2964,7 @@ func (x *PlayerGameRec) GetOtherParams() []int32 {
 	return nil
 }
 
-// PACKET_GW_GAMEREC
+//PACKET_GW_GAMEREC
 type GWGameRec struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3044,7 +3044,7 @@ func (x *GWGameRec) GetReplayCode() string {
 	return ""
 }
 
-// PACKET_GW_SCENESTART
+//PACKET_GW_SCENESTART
 type GWSceneStart struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3171,15 +3171,13 @@ func (x *PlayerCtx) GetCoin() int64 {
 	return 0
 }
 
-// 该协议废弃掉,统一由
-// PACKET_GW_SCENEEND
-//
-//	message GWSceneEnd {
-//		int32 GameFreeId = 1;
-//		repeated PlayerCtx Players = 2;
-//	}
-//
-// PACKET_GW_SCFISHRECORD
+//该协议废弃掉,统一由
+//PACKET_GW_SCENEEND
+//message GWSceneEnd {
+//	int32 GameFreeId = 1;
+//	repeated PlayerCtx Players = 2;
+//}
+//PACKET_GW_SCFISHRECORD
 type FishRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3298,8 +3296,8 @@ func (x *GWFishRecord) GetFishRecords() []*FishRecord {
 	return nil
 }
 
-// 场景状态
-// PACKET_GW_SCENESTATE
+//场景状态
+//PACKET_GW_SCENESTATE
 type GWSceneState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3363,7 +3361,7 @@ func (x *GWSceneState) GetFishing() int32 {
 	return 0
 }
 
-// PACKET_WR_INVITEROBOT
+//PACKET_WR_INVITEROBOT
 type WRInviteRobot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3451,7 +3449,7 @@ func (x *WRInviteRobot) GetNeedAwait() bool {
 	return false
 }
 
-// PACKET_WR_INVITECREATEROOM
+//PACKET_WR_INVITECREATEROOM
 type WRInviteCreateRoom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3507,7 +3505,7 @@ func (x *WRInviteCreateRoom) GetMatchId() int32 {
 	return 0
 }
 
-// PACKET_WG_AGENTKICKOUTPLAYER
+//PACKET_WG_AGENTKICKOUTPLAYER
 type WGAgentKickOutPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3579,7 +3577,7 @@ func (x *WGAgentKickOutPlayer) GetAgentSid() int64 {
 	return 0
 }
 
-// PACKET_WD_DATANALYSIS
+//PACKET_WD_DATANALYSIS
 type WDDataAnalysis struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3887,8 +3885,8 @@ func (x *GNPlayerParam) GetPlayerdata() []*RobotData {
 	return nil
 }
 
-// PACKET_GW_REBUILDSCENE
-// 重建场景关系
+//PACKET_GW_REBUILDSCENE
+//重建场景关系
 type GWRebuildScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3944,7 +3942,7 @@ func (x *GWRebuildScene) GetPlayerIds() []int32 {
 	return nil
 }
 
-// PACKET_WG_REBIND_SNID 1122
+//PACKET_WG_REBIND_SNID 1122
 type WGRebindPlayerSnId struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4000,7 +3998,7 @@ func (x *WGRebindPlayerSnId) GetNewSnId() int32 {
 	return 0
 }
 
-// PACKET_GW_PLAYERSTATE
+//PACKET_GW_PLAYERSTATE
 type GWPlayerFlag struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4064,8 +4062,8 @@ func (x *GWPlayerFlag) GetFlag() int32 {
 	return 0
 }
 
-// 玩家操作返回
-// PACKET_WG_RECHARGE
+//玩家操作返回
+//PACKET_WG_RECHARGE
 type WGHundredOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4129,7 +4127,7 @@ func (x *WGHundredOp) GetParams() []int64 {
 	return nil
 }
 
-// 系统广播
+//系统广播
 type GWNewNotice struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4652,8 +4650,8 @@ func (x *GWAutoRelieveWBLevel) GetSnId() int32 {
 	return 0
 }
 
-// PACKET_GW_SCENEPLAYERLOG
-// 通知world房间里都是谁跟谁打牌的，配桌用的数据
+//PACKET_GW_SCENEPLAYERLOG
+//通知world房间里都是谁跟谁打牌的，配桌用的数据
 type GWScenePlayerLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4725,7 +4723,7 @@ func (x *GWScenePlayerLog) GetIsGameing() []bool {
 	return nil
 }
 
-// PACKET_GW_PLAYERFORCELEAVE
+//PACKET_GW_PLAYERFORCELEAVE
 type GWPlayerForceLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -4797,7 +4795,7 @@ func (x *GWPlayerForceLeave) GetEnterTs() int64 {
 	return 0
 }
 
-// PACKET_GW_PLAYERDATA
+//PACKET_GW_PLAYERDATA
 type PlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5004,7 +5002,7 @@ func (x *GWPlayerData) GetSceneId() int32 {
 	return 0
 }
 
-// PACKET_GW_PLAYERWINSOCORE
+//PACKET_GW_PLAYERWINSOCORE
 type PlayerWinScore struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5336,7 +5334,7 @@ func (x *WGSyncPlayerSafeBoxCoin) GetSafeBoxCoin() int64 {
 	return 0
 }
 
-// PACKET_WG_CLUB_MESSAGE
+//PACKET_WG_CLUB_MESSAGE
 type WGClubMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5408,7 +5406,7 @@ func (x *WGClubMessage) GetDBGameFree() *DB_GameFree {
 	return nil
 }
 
-// datasrv=>worldsrv用户在三方平台的流水信息
+//datasrv=>worldsrv用户在三方平台的流水信息
 type DWThirdRebateMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5615,7 +5613,7 @@ func (x *DWThirdRoundMessage) GetPlatform() int32 {
 	return 0
 }
 
-// worldsrv=>datasrv确认信息
+//worldsrv=>datasrv确认信息
 type WDACKThirdRebateMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5671,7 +5669,7 @@ func (x *WDACKThirdRebateMessage) GetResult() int32 {
 	return 0
 }
 
-// PACKET_GW_GAMESTATELOG
+//PACKET_GW_GAMESTATELOG
 type GWGameStateLog struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5735,7 +5733,7 @@ func (x *GWGameStateLog) GetLogCnt() int32 {
 	return 0
 }
 
-// PACKET_GW_GAMESTATE
+//PACKET_GW_GAMESTATE
 type GWGameState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5815,7 +5813,7 @@ func (x *GWGameState) GetBankerListNum() int32 {
 	return 0
 }
 
-// PACKET_GW_JACKPOTLIST
+//PACKET_GW_JACKPOTLIST
 type GWGameJackList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5919,7 +5917,7 @@ func (x *GWGameJackList) GetName() string {
 	return ""
 }
 
-// PACKET_GW_JACKPOTCOIN
+//PACKET_GW_JACKPOTCOIN
 type GWGameJackCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5975,7 +5973,7 @@ func (x *GWGameJackCoin) GetCoin() []int64 {
 	return nil
 }
 
-// PACKET_GW_NICEIDREBIND
+//PACKET_GW_NICEIDREBIND
 type WGNiceIdRebind struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6094,7 +6092,7 @@ func (x *PLAYERWINCOININFO) GetWinCoin() int32 {
 	return 0
 }
 
-// PACKET_GW_PLAYERWINCOIN
+//PACKET_GW_PLAYERWINCOIN
 type GWPLAYERWINCOIN struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6142,7 +6140,7 @@ func (x *GWPLAYERWINCOIN) GetPlayer() []*PLAYERWINCOININFO {
 	return nil
 }
 
-// PACKET_GW_PLAYERAUTOMARKTAG
+//PACKET_GW_PLAYERAUTOMARKTAG
 type GWPlayerAutoMarkTag struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6198,7 +6196,7 @@ func (x *GWPlayerAutoMarkTag) GetTag() int32 {
 	return 0
 }
 
-// PACKET_WG_INVITEROBENTERCOINSCENEQUEUE
+//PACKET_WG_INVITEROBENTERCOINSCENEQUEUE
 type WGInviteRobEnterCoinSceneQueue struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6262,7 +6260,7 @@ func (x *WGInviteRobEnterCoinSceneQueue) GetRobNum() int32 {
 	return 0
 }
 
-// PACKET_WG_GAMEFORCESTART
+//PACKET_WG_GAMEFORCESTART
 type WGGameForceStart struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6444,7 +6442,7 @@ func (x *ProfitControlPlatformCfg) GetGameCfg() []*ProfitControlGameCfg {
 	return nil
 }
 
-// PACKET_WG_PROFITCONTROL_CORRECT
+//PACKET_WG_PROFITCONTROL_CORRECT
 type WGProfitControlCorrect struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6492,7 +6490,7 @@ func (x *WGProfitControlCorrect) GetCfg() []*ProfitControlPlatformCfg {
 	return nil
 }
 
-// PACKET_GW_CHANGESCENEEVENT
+//PACKET_GW_CHANGESCENEEVENT
 type GWChangeSceneEvent struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6760,7 +6758,7 @@ func (x *PlayerMatchCoin) GetCoin() int32 {
 	return 0
 }
 
-// PACKET_GW_PLAYERMATCHBILLED
+//PACKET_GW_PLAYERMATCHBILLED
 type GWPlayerMatchBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6832,7 +6830,7 @@ func (x *GWPlayerMatchBilled) GetWinPos() int32 {
 	return 0
 }
 
-// PACKET_GW_PLAYERMATCHGRADE
+//PACKET_GW_PLAYERMATCHGRADE
 type GWPlayerMatchGrade struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6920,8 +6918,8 @@ func (x *GWPlayerMatchGrade) GetPlayers() []*PlayerMatchCoin {
 	return nil
 }
 
-// 玩家退赛
-// PACKET_WG_PLAYERQUITMATCH
+//玩家退赛
+//PACKET_WG_PLAYERQUITMATCH
 type WGPlayerQuitMatch struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6985,8 +6983,8 @@ func (x *WGPlayerQuitMatch) GetMatchId() int32 {
 	return 0
 }
 
-// 比赛房间底分变化
-// PACKET_WG_SCENEMATCHBASECHANGE
+//比赛房间底分变化
+//PACKET_WG_SCENEMATCHBASECHANGE
 type WGSceneMatchBaseChange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7066,7 +7064,7 @@ func (x *WGSceneMatchBaseChange) GetNextTs() int32 {
 	return 0
 }
 
-// PACKET_SS_REDIRECTTOPLAYER
+//PACKET_SS_REDIRECTTOPLAYER
 type SSRedirectToPlayer struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7138,7 +7136,7 @@ func (x *SSRedirectToPlayer) GetData() []byte {
 	return nil
 }
 
-// PACKET_WG_INVITEMATCHROB
+//PACKET_WG_INVITEMATCHROB
 type WGInviteMatchRob struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7281,7 +7279,7 @@ func (x *GameInfo) GetGameType() int32 {
 	return 0
 }
 
-// PACKET_WG_GAMEJACKPOT
+//PACKET_WG_GAMEJACKPOT
 type WGGameJackpot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7457,7 +7455,7 @@ func (x *BigWinHistoryInfo) GetCards() []int32 {
 	return nil
 }
 
-// PACKET_WG_PLAYERENTER_MINIGAME
+//PACKET_WG_PLAYERENTER_MINIGAME
 type WGPlayerEnterMiniGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7577,7 +7575,7 @@ func (x *WGPlayerEnterMiniGame) GetSingleAdjust() []byte {
 	return nil
 }
 
-// PACKET_WG_PLAYERLEAVE_MINIGAME
+//PACKET_WG_PLAYERLEAVE_MINIGAME
 type WGPlayerLeaveMiniGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7649,7 +7647,7 @@ func (x *WGPlayerLeaveMiniGame) GetSceneId() int32 {
 	return 0
 }
 
-// PACKET_WG_PlayerLEAVE
+//PACKET_WG_PlayerLEAVE
 type WGPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7697,7 +7695,7 @@ func (x *WGPlayerLeave) GetSnId() int32 {
 	return 0
 }
 
-// PACKET_GW_PLAYERLEAVE_MINIGAME
+//PACKET_GW_PLAYERLEAVE_MINIGAME
 type GWPlayerLeaveMiniGame struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7777,7 +7775,7 @@ func (x *GWPlayerLeaveMiniGame) GetPlayerData() []byte {
 	return nil
 }
 
-// PACKET_GW_DESTROYMINISCENE
+//PACKET_GW_DESTROYMINISCENE
 type GWDestroyMiniScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7825,7 +7823,7 @@ func (x *GWDestroyMiniScene) GetSceneId() int32 {
 	return 0
 }
 
-// PACKET_GR_DESTROYSCENE
+//PACKET_GR_DESTROYSCENE
 type GRDestroyScene struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7873,7 +7871,7 @@ func (x *GRDestroyScene) GetSceneId() int32 {
 	return 0
 }
 
-// 失效的机器人账号
+//失效的机器人账号
 type RWAccountInvalid struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7921,7 +7919,7 @@ func (x *RWAccountInvalid) GetAcc() string {
 	return ""
 }
 
-// PACKET_WG_DTROOMINFO
+//PACKET_WG_DTROOMINFO
 type WGDTRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8135,7 +8133,7 @@ func (x *EResult) GetResult() int32 {
 	return 0
 }
 
-// PACKET_GW_DTROOMINFO
+//PACKET_GW_DTROOMINFO
 type GWDTRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8287,7 +8285,7 @@ func (x *GWDTRoomInfo) GetTDCoin() int32 {
 	return 0
 }
 
-// PACKET_WG_DTROOMRESULTS
+//PACKET_WG_DTROOMRESULTS
 type WGRoomResults struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8359,7 +8357,7 @@ func (x *WGRoomResults) GetDataKey() string {
 	return ""
 }
 
-// PACKET_GW_DTROOMRESULTS
+//PACKET_GW_DTROOMRESULTS
 type GWRoomResults struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8423,7 +8421,7 @@ func (x *GWRoomResults) GetMsg() string {
 	return ""
 }
 
-// PACKET_GW_ADDSINGLEADJUST
+//PACKET_GW_ADDSINGLEADJUST
 type GWAddSingleAdjust struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8487,7 +8485,7 @@ func (x *GWAddSingleAdjust) GetGameFreeId() int32 {
 	return 0
 }
 
-// PACKET_WG_SINGLEADJUST
+//PACKET_WG_SINGLEADJUST
 type WGSingleAdjust struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8551,7 +8549,7 @@ func (x *WGSingleAdjust) GetPlayerSingleAdjust() []byte {
 	return nil
 }
 
-// PACKET_WG_WBCtrlCfg
+//PACKET_WG_WBCtrlCfg
 type WbCtrlCfg struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/server/transmit.pb.go b/protocol/server/transmit.pb.go
index 254175f..52f52aa 100644
--- a/protocol/server/transmit.pb.go
+++ b/protocol/server/transmit.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 任务消息id
+//任务消息id
 type TransmitPacketID int32
 
 const (
@@ -67,7 +67,7 @@ func (TransmitPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_transmit_proto_rawDescGZIP(), []int{0}
 }
 
-// PACKET_SS_PACKET_TRANSMIT
+//PACKET_SS_PACKET_TRANSMIT
 type SSTransmit struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/shop/shop.pb.go b/protocol/shop/shop.pb.go
index 1f60429..37a4436 100644
--- a/protocol/shop/shop.pb.go
+++ b/protocol/shop/shop.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -199,7 +199,7 @@ func (SPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_shop_proto_rawDescGZIP(), []int{1}
 }
 
-// 商品信息
+//商品信息
 type ShopInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -491,7 +491,7 @@ func (x *ShopInfo) GetAmountFinal() int64 {
 	return 0
 }
 
-// PACKET_CS_SHOP_INFO
+//PACKET_CS_SHOP_INFO
 type CSShopInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -539,7 +539,7 @@ func (x *CSShopInfo) GetNowLocation() int32 {
 	return 0
 }
 
-// PACKET_SC_SHOP_INFO
+//PACKET_SC_SHOP_INFO
 type SCShopInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -587,7 +587,7 @@ func (x *SCShopInfo) GetInfos() []*ShopInfo {
 	return nil
 }
 
-// PACKET_CS_SHOP_ADLOOKED
+//PACKET_CS_SHOP_ADLOOKED
 type CSAdLooked struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -651,7 +651,7 @@ func (x *CSAdLooked) GetPosition() int32 {
 	return 0
 }
 
-// PACKET_SC_SHOP_ADLOOKED
+//PACKET_SC_SHOP_ADLOOKED
 type SCAdLooked struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -707,7 +707,7 @@ func (x *SCAdLooked) GetShopInfo() *ShopInfo {
 	return nil
 }
 
-// PACKET_CS_SHOP_VCPAYSHOP
+//PACKET_CS_SHOP_VCPAYSHOP
 type CSVCPayShop struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -779,7 +779,7 @@ func (x *CSVCPayShop) GetPosition() int32 {
 	return 0
 }
 
-// PACKET_SC_SHOP_VCPAYSHOP
+//PACKET_SC_SHOP_VCPAYSHOP
 type SCVCPayShop struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -906,8 +906,8 @@ func (x *SCNotifyGiveCoinInfo) GetGiveTag() int32 {
 	return 0
 }
 
-// 商城兑换记录
-// PACKET_CS_SHOP_EXCHANGERECORD
+//商城兑换记录
+//PACKET_CS_SHOP_EXCHANGERECORD
 type CSShopExchangeRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1066,7 +1066,7 @@ func (x *ShopExchangeRecord) GetGoodsId() int32 {
 	return 0
 }
 
-// PACKET_SC_SHOP_EXCHANGERECORD
+//PACKET_SC_SHOP_EXCHANGERECORD
 type SCShopExchangeRecord struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1138,8 +1138,8 @@ func (x *SCShopExchangeRecord) GetInfos() []*ShopExchangeRecord {
 	return nil
 }
 
-// 商城兑换
-// PACKET_CS_SHOP_EXCHANGERECORD
+//商城兑换
+//PACKET_CS_SHOP_EXCHANGERECORD
 type CSShopExchange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1290,7 +1290,7 @@ func (x *SCShopExchange) GetOrderId() string {
 	return ""
 }
 
-// PACKET_CS_SHOP_EXCHANGELIST
+//PACKET_CS_SHOP_EXCHANGELIST
 type CSShopExchangeList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1574,7 +1574,7 @@ func (x *SCShopExchangeList) GetInfos() []*ShopExchangeInfo {
 	return nil
 }
 
-// PACKET_CSPAYINFO
+//PACKET_CSPAYINFO
 type CSPayInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1662,7 +1662,7 @@ func (x *CSPayInfo) GetExchangeNum() int32 {
 	return 0
 }
 
-// PACKET_SCPAYINFO
+//PACKET_SCPAYINFO
 type SCPayInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1718,7 +1718,7 @@ func (x *SCPayInfo) GetUrl() string {
 	return ""
 }
 
-// PACKET_CSGETPAYINFOLIST
+//PACKET_CSGETPAYINFOLIST
 type CSGetPayInfoList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1916,7 +1916,7 @@ func (x *PayInfoList) GetTs() int64 {
 	return 0
 }
 
-// PACKET_SCGETPAYINFOLIST
+//PACKET_SCGETPAYINFOLIST
 type SCGetPayInfoList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1964,8 +1964,8 @@ func (x *SCGetPayInfoList) GetInfo() []*PayInfoList {
 	return nil
 }
 
-// 玩家添加地址
-// PACKET_CSPLAYERADDR
+//玩家添加地址
+//PACKET_CSPLAYERADDR
 type CSPlayerAddr struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2029,7 +2029,7 @@ func (x *CSPlayerAddr) GetId() int32 {
 	return 0
 }
 
-// PACKET_SCPLAYEADDRS
+//PACKET_SCPLAYEADDRS
 type SCGetPlayerAddrs struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2132,8 +2132,8 @@ func (x *AddrData) GetAddr() string {
 	return ""
 }
 
-// VIP商城刷新物品
-// PACKET_CS_UPDATE_VIP_SHOP
+//VIP商城刷新物品
+//PACKET_CS_UPDATE_VIP_SHOP
 type CSUpdateVipShop struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2172,8 +2172,8 @@ func (*CSUpdateVipShop) Descriptor() ([]byte, []int) {
 	return file_shop_proto_rawDescGZIP(), []int{26}
 }
 
-// VIP商城刷新物品返回
-// PACKET_SC_UPDATE_VIP_SHOP
+//VIP商城刷新物品返回
+//PACKET_SC_UPDATE_VIP_SHOP
 type SCUpdateVipShop struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/smallrocket/smallrocket.pb.go b/protocol/smallrocket/smallrocket.pb.go
index 69519b1..4020ef5 100644
--- a/protocol/smallrocket/smallrocket.pb.go
+++ b/protocol/smallrocket/smallrocket.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 小火箭
+//小火箭
 type SmallRocketPacketID int32
 
 const (
@@ -94,7 +94,7 @@ func (SmallRocketPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_smallrocket_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -362,7 +362,7 @@ func (x *SmallRocketPlayerData) GetParams() []string {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCSmallRocketRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -530,7 +530,7 @@ func (x *SCSmallRocketRoomInfo) GetBaseScore() int32 {
 	return 0
 }
 
-// 玩家操作
+//玩家操作
 type CSSmallRocketOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -586,7 +586,7 @@ func (x *CSSmallRocketOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCSmallRocketOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -666,7 +666,7 @@ func (x *SCSmallRocketOp) GetBetDataArr() []*BetDataInfo {
 	return nil
 }
 
-// 房间人数变化
+//房间人数变化
 type SCSmallRocketBetPlayerChange struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -714,7 +714,7 @@ func (x *SCSmallRocketBetPlayerChange) GetTotalBetPlayerCnt() int32 {
 	return 0
 }
 
-// 历史倍数记录
+//历史倍数记录
 type SCSmallRoundBoomMuHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -762,7 +762,7 @@ func (x *SCSmallRoundBoomMuHistory) GetRoundBoomMuHistory() []float32 {
 	return nil
 }
 
-// 玩家获取收益跳伞
+//玩家获取收益跳伞
 type SCSmallRocketPlayerTakeGain struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -818,7 +818,7 @@ func (x *SCSmallRocketPlayerTakeGain) GetLeaveTime() float32 {
 	return 0
 }
 
-// 发送给客户端的数据 单局结算
+//发送给客户端的数据 单局结算
 type SCSmallRocketRoundGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -898,7 +898,7 @@ func (x *SCSmallRocketRoundGameBilled) GetRoundBoomMuHistory() []float32 {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCSmallRocketRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -954,7 +954,7 @@ func (x *SCSmallRocketRoomState) GetParams() []float32 {
 	return nil
 }
 
-// 玩家信息
+//玩家信息
 type SCSmallRocketPlayerInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1122,8 +1122,8 @@ func (x *SCSmallRocketResumePlayerInfo) GetBetDataArr() []*BetDataInfo {
 	return nil
 }
 
-// 玩家进入
-// PACKET_SCSmallRocketPlayerEnter
+//玩家进入
+//PACKET_SCSmallRocketPlayerEnter
 type SCSmallRocketPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1171,8 +1171,8 @@ func (x *SCSmallRocketPlayerEnter) GetData() *SmallRocketPlayerData {
 	return nil
 }
 
-// 玩家离开
-// PACKET_SCSmallRocketPlayerLeave
+//玩家离开
+//PACKET_SCSmallRocketPlayerLeave
 type SCSmallRocketPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/tala/tala.pb.go b/protocol/tala/tala.pb.go
index ee233c7..1814429 100644
--- a/protocol/tala/tala.pb.go
+++ b/protocol/tala/tala.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -67,7 +67,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_tala_proto_rawDescGZIP(), []int{0}
 }
 
-// tala
+//tala
 type TaLaPacketID int32
 
 const (
@@ -162,7 +162,7 @@ func (TaLaPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_tala_proto_rawDescGZIP(), []int{1}
 }
 
-// 玩家信息
+//玩家信息
 type TaLaPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -433,7 +433,7 @@ func (x *LastDelCard) GetCards() []int32 {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCTaLaRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -625,7 +625,7 @@ func (x *SCTaLaRoomInfo) GetIsLast() bool {
 	return false
 }
 
-// 房间状态更新
+//房间状态更新
 type SCTaLaRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -681,7 +681,7 @@ func (x *SCTaLaRoomState) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSTaLaPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -808,7 +808,7 @@ func (x *SCTaLaPlayerOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 玩家进入
+//玩家进入
 type SCTaLaPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -856,7 +856,7 @@ func (x *SCTaLaPlayerEnter) GetData() *TaLaPlayerData {
 	return nil
 }
 
-// 玩家离开
+//玩家离开
 type SCTaLaPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -904,7 +904,7 @@ func (x *SCTaLaPlayerLeave) GetPos() int32 {
 	return 0
 }
 
-// 结算结果
+//结算结果
 type TaLaPlayerGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1047,7 +1047,7 @@ func (x *SCTaLaGameBilled) GetDatas() []*TaLaPlayerGameBilled {
 	return nil
 }
 
-// 小结算结果
+//小结算结果
 type SCTaLaSmallGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1135,7 +1135,7 @@ func (x *SCTaLaSmallGameBilled) GetLoseCoin() int64 {
 	return 0
 }
 
-// 发手牌
+//发手牌
 type SCTaLaHandCard struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1230,7 +1230,7 @@ func (x *Phoms) GetPhom() []int32 {
 	return nil
 }
 
-// ShowPhom
+//ShowPhom
 type SCTaLaShowPhom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1349,7 +1349,7 @@ func (x *MapSnidCards) GetSnidCard() map[int32]int32 {
 	return nil
 }
 
-// 组Phom
+//组Phom
 type SCTaLaOpPhom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1633,7 +1633,7 @@ func (x *SCTaLaMoveCard) GetCard() int32 {
 	return 0
 }
 
-// RecommendPhom
+//RecommendPhom
 type SCTaLaRecommendPhom struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1689,7 +1689,7 @@ func (x *SCTaLaRecommendPhom) GetCards() []int32 {
 	return nil
 }
 
-// PACKET_SCTaLaFirstOpPos
+//PACKET_SCTaLaFirstOpPos
 type SCTaLaFirstOpPos struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/tamquoc/tamquoc.pb.go b/protocol/tamquoc/tamquoc.pb.go
index a716d5f..9b09707 100644
--- a/protocol/tamquoc/tamquoc.pb.go
+++ b/protocol/tamquoc/tamquoc.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_tamquoc_proto_rawDescGZIP(), []int{0}
 }
 
-// 百战成神
+//百战成神
 type TamQuocPacketID int32
 
 const (
@@ -241,7 +241,7 @@ func (x *TamQuocPlayerData) GetParams() []string {
 	return nil
 }
 
-// 小游戏信息
+//小游戏信息
 type TamQuocBonusGameInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -313,7 +313,7 @@ func (x *TamQuocBonusGameInfo) GetDataMultiplier() int64 {
 	return 0
 }
 
-// 房间信息
+//房间信息
 type SCTamQuocRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -489,7 +489,7 @@ func (x *SCTamQuocRoomInfo) GetBilledData() *GameBilledData {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSTamQuocOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -545,7 +545,7 @@ func (x *CSTamQuocOp) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作返回
+//玩家操作返回
 type SCTamQuocOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -617,7 +617,7 @@ func (x *SCTamQuocOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 每条线的结算数据
+//每条线的结算数据
 type TamQuocLinesInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -840,7 +840,7 @@ func (x *GameBilledData) GetResponseStatus() int64 {
 	return 0
 }
 
-// 发送给客户端的数据 结算
+//发送给客户端的数据 结算
 type SCTamQuocGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1144,7 +1144,7 @@ func (x *SCTamQuocBurstHistory) GetBurstLog() []*TamQuocBurstHistoryInfo {
 	return nil
 }
 
-// 房间状态
+//房间状态
 type SCTamQuocRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/task/task.pb.go b/protocol/task/task.pb.go
index caa27f2..ded6ef6 100644
--- a/protocol/task/task.pb.go
+++ b/protocol/task/task.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
diff --git a/protocol/telegramapi/telegramapi.pb.go b/protocol/telegramapi/telegramapi.pb.go
index 8fa26f0..b74045a 100644
--- a/protocol/telegramapi/telegramapi.pb.go
+++ b/protocol/telegramapi/telegramapi.pb.go
@@ -77,7 +77,7 @@ func (TagCode) EnumDescriptor() ([]byte, []int) {
 	return file_telegramapi_proto_rawDescGZIP(), []int{0}
 }
 
-// [action] /api/Member/APIMemberRegisterOrLogin
+//[action] /api/Member/APIMemberRegisterOrLogin
 type ASLogin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -228,7 +228,7 @@ func (x *SALogin) GetSnid() int32 {
 	return 0
 }
 
-// 加币
+//加币
 // [action] /api/game/APIAddCoinById
 type ASAddCoinById struct {
 	state         protoimpl.MessageState
@@ -476,7 +476,7 @@ func (x *PlayerCoinData) GetBank() int64 {
 	return 0
 }
 
-// 查用户金币  /api/Member/GetMemberGoldById
+//查用户金币  /api/Member/GetMemberGoldById
 type ASMemberGold struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -595,7 +595,7 @@ func (x *SAMemberGold) GetData() *PlayerCoinData {
 	return nil
 }
 
-// 校验碰撞游戏Hash  /api/game/CrashVerifier
+//校验碰撞游戏Hash  /api/game/CrashVerifier
 type ASCrachHash struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -882,7 +882,7 @@ func (x *PlayerHistoryInfo) GetMultiple() int64 {
 	return 0
 }
 
-// 获取用户注单记录游戏记录 /api/Member/GetGameHistory
+//获取用户注单记录游戏记录 /api/Member/GetGameHistory
 type SAPlayerHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -954,7 +954,7 @@ func (x *SAPlayerHistory) GetGameHistory() []*GameHistoryInfo {
 	return nil
 }
 
-// 获取用户注单记录游戏记录  /api/Member/GetGameHistory
+//获取用户注单记录游戏记录  /api/Member/GetGameHistory
 type ASPlayerHistory struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/thirteen/thirteen.pb.go b/protocol/thirteen/thirteen.pb.go
index c2447e7..3fae835 100644
--- a/protocol/thirteen/thirteen.pb.go
+++ b/protocol/thirteen/thirteen.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 十三水
+//十三水
 type TWMmoPacketID int32
 
 const (
@@ -315,7 +315,7 @@ func (x *Poker) GetCards() []int32 {
 	return nil
 }
 
-// PACKET_SCThirteenPlayerCards
+//PACKET_SCThirteenPlayerCards
 type SCThirteenPlayerCards struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -379,8 +379,8 @@ func (x *SCThirteenPlayerCards) GetAllCardsO() []*Poker {
 	return nil
 }
 
-// 玩家操作
-// PACKET_CSThirteenPlayerOp
+//玩家操作
+//PACKET_CSThirteenPlayerOp
 type CSThirteenPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -440,7 +440,7 @@ func (x *CSThirteenPlayerOp) GetOpParam() []int64 {
 	return nil
 }
 
-// PACKET_SCThirteenPlayerOp
+//PACKET_SCThirteenPlayerOp
 type SCThirteenPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -520,7 +520,7 @@ func (x *SCThirteenPlayerOp) GetCards() *Poker {
 	return nil
 }
 
-// 玩家信息
+//玩家信息
 type ThirteenPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -776,8 +776,8 @@ func (x *ThirteenPlayerData) GetRoleId() int32 {
 	return 0
 }
 
-// 玩家进入
-// PACKET_SCThirteenPlayerEnter
+//玩家进入
+//PACKET_SCThirteenPlayerEnter
 type SCThirteenPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -825,8 +825,8 @@ func (x *SCThirteenPlayerEnter) GetData() *ThirteenPlayerData {
 	return nil
 }
 
-// 玩家离开
-// PACKET_SCThirteenPlayerLeave
+//玩家离开
+//PACKET_SCThirteenPlayerLeave
 type SCThirteenPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -874,8 +874,8 @@ func (x *SCThirteenPlayerLeave) GetPos() int32 {
 	return 0
 }
 
-// 房间信息
-// PACKET_SCThirteenRoomInfo
+//房间信息
+//PACKET_SCThirteenRoomInfo
 type SCThirteenRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1067,8 +1067,8 @@ func (x *SCThirteenRoomInfo) GetLeaveCombat() int32 {
 	return 0
 }
 
-// 房间状态更新
-// PACKET_SCThirteenRoomState
+//房间状态更新
+//PACKET_SCThirteenRoomState
 type SCThirteenRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1125,7 +1125,7 @@ func (x *SCThirteenRoomState) GetParams() []int32 {
 	return nil
 }
 
-// PACKET_SCThirteenShowCards
+//PACKET_SCThirteenShowCards
 type SCThirteenShowCards struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1252,7 +1252,7 @@ func (x *Billed) GetCombatCoin() int64 {
 	return 0
 }
 
-// PACKET_SCThirteenBilled
+//PACKET_SCThirteenBilled
 type SCThirteenBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go
index fb25470..2bab494 100644
--- a/protocol/tienlen/tienlen.pb.go
+++ b/protocol/tienlen/tienlen.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -70,7 +70,7 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) {
 	return file_tienlen_proto_rawDescGZIP(), []int{0}
 }
 
-// tienlen
+//tienlen
 type TienLenPacketID int32
 
 const (
@@ -162,7 +162,7 @@ func (TienLenPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_tienlen_proto_rawDescGZIP(), []int{1}
 }
 
-// 玩家信息
+//玩家信息
 type TienLenPlayerData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -457,7 +457,7 @@ func (x *LastDelCard) GetCards() []int32 {
 	return nil
 }
 
-// 房间信息
+//房间信息
 type SCTienLenRoomInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -707,7 +707,7 @@ func (x *SCTienLenRoomInfo) GetRecordId() string {
 	return ""
 }
 
-// 房间状态更新
+//房间状态更新
 type SCTienLenRoomState struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -763,7 +763,7 @@ func (x *SCTienLenRoomState) GetParams() []int64 {
 	return nil
 }
 
-// 玩家操作
+//玩家操作
 type CSTienLenPlayerOp struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -890,7 +890,7 @@ func (x *SCTienLenPlayerOp) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// 玩家进入
+//玩家进入
 type SCTienLenPlayerEnter struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -938,7 +938,7 @@ func (x *SCTienLenPlayerEnter) GetData() *TienLenPlayerData {
 	return nil
 }
 
-// 玩家离开
+//玩家离开
 type SCTienLenPlayerLeave struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1057,7 +1057,7 @@ func (x *AddItem) GetScore() int64 {
 	return 0
 }
 
-// 结算结果
+//结算结果
 type TienLenPlayerGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1224,7 +1224,7 @@ func (x *SCTienLenGameBilled) GetDatas() []*TienLenPlayerGameBilled {
 	return nil
 }
 
-// 小结算结果（炸的分）
+//小结算结果（炸的分）
 type SCTienLenSmallGameBilled struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1312,7 +1312,7 @@ func (x *SCTienLenSmallGameBilled) GetLoseCoin() int64 {
 	return 0
 }
 
-// 发牌
+//发牌
 type SCTienLenCard struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1360,7 +1360,7 @@ func (x *SCTienLenCard) GetCards() []int32 {
 	return nil
 }
 
-// 测试数据
+//测试数据
 type SCTienLenCardTest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1574,7 +1574,7 @@ func (x *SCTienLenUpdateMasterSnid) GetMasterSnid() int32 {
 	return 0
 }
 
-// PACKET_SCTienLenUpdateAudienceNum
+//PACKET_SCTienLenUpdateAudienceNum
 type SCTienLenUpdateAudienceNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1877,7 +1877,7 @@ func (x *SCTienLenAIData) GetIsWin() bool {
 	return false
 }
 
-// PACKET_SCTienLenFirstOpPos
+//PACKET_SCTienLenFirstOpPos
 type SCTienLenFirstOpPos struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1925,7 +1925,7 @@ func (x *SCTienLenFirstOpPos) GetPos() int32 {
 	return 0
 }
 
-// PACKET_SCTienLenThinkLongCnt
+//PACKET_SCTienLenThinkLongCnt
 type SCTienLenPlayerThinkLongCnt struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/tournament/tournament.pb.go b/protocol/tournament/tournament.pb.go
index 8bc5b8b..d24ff5b 100644
--- a/protocol/tournament/tournament.pb.go
+++ b/protocol/tournament/tournament.pb.go
@@ -108,7 +108,7 @@ func (TOURNAMENTID) EnumDescriptor() ([]byte, []int) {
 	return file_tournament_proto_rawDescGZIP(), []int{0}
 }
 
-// 操作结果
+//操作结果
 // 0成功 1重复报名 2比赛没有开启 3道具不足 4不在报名时间段 5金币不足 6钻石不足 7免费次数不足
 type SignRaceCode int32
 
@@ -174,8 +174,8 @@ func (SignRaceCode) EnumDescriptor() ([]byte, []int) {
 	return file_tournament_proto_rawDescGZIP(), []int{1}
 }
 
-// 比赛场场次
-// PACKET_TM_CSTMInfo
+//比赛场场次
+//PACKET_TM_CSTMInfo
 type CSTMInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -579,8 +579,8 @@ func (x *TMInfo) GetOnChannelName() []string {
 	return nil
 }
 
-// 比赛场场次 激战人数刷新也走这个
-// PACKET_TM_SCTMInfos
+//比赛场场次 激战人数刷新也走这个
+//PACKET_TM_SCTMInfos
 type SCTMInfos struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -628,8 +628,8 @@ func (x *SCTMInfos) GetTMInfo() []*TMInfo {
 	return nil
 }
 
-// 单场次排行榜
-// PACKET_TM_CSTMRankList
+//单场次排行榜
+//PACKET_TM_CSTMRankList
 type CSTMRankList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -740,7 +740,7 @@ func (x *TMRank) GetWinnerNum() int32 {
 	return 0
 }
 
-// PACKET_TM_CSTMRankList
+//PACKET_TM_CSTMRankList
 type SCTMRankList struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -804,8 +804,8 @@ func (x *SCTMRankList) GetTMRank() []*TMRank {
 	return nil
 }
 
-// 报名
-// PACKET_TM_CSSignRace
+//报名
+//PACKET_TM_CSSignRace
 type CSSignRace struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -861,7 +861,7 @@ func (x *CSSignRace) GetTMId() int32 {
 	return 0
 }
 
-// PACKET_TM_SCSignRace
+//PACKET_TM_SCSignRace
 type SCSignRace struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -925,8 +925,8 @@ func (x *SCSignRace) GetWaitStartTime() int64 {
 	return 0
 }
 
-// 报名人数更新  --报名那个场次通知那个 暂时只能报名一个场次
-// PACKET_TM_SCSyncSignNum
+//报名人数更新  --报名那个场次通知那个 暂时只能报名一个场次
+//PACKET_TM_SCSyncSignNum
 type SCSyncSignNum struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -982,8 +982,8 @@ func (x *SCSyncSignNum) GetMaxSignNum() int32 {
 	return 0
 }
 
-// 比赛开始
-// PACKET_TM_SCTMStart
+//比赛开始
+//PACKET_TM_SCTMStart
 type SCTMStart struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1094,8 +1094,8 @@ func (x *RankAward) GetDiamond() int64 {
 	return 0
 }
 
-// 晋级数据更新
-// PACKET_TM_SCPromotionInfo
+//晋级数据更新
+//PACKET_TM_SCPromotionInfo
 type SCPromotionInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1207,7 +1207,7 @@ func (x *SCPromotionInfo) GetMatchName() string {
 	return ""
 }
 
-// 赛季信息
+//赛季信息
 type CSTMSeasonInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1325,7 +1325,7 @@ func (x *SCTMSeasonInfo) GetIsAward() bool {
 	return false
 }
 
-// 赛季排行榜
+//赛季排行榜
 type SeasonRank struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1482,7 +1482,7 @@ func (x *SCTMSeasonRank) GetReasonRanks() []*SeasonRank {
 	return nil
 }
 
-// 领取赛季奖励
+//领取赛季奖励
 type CSTMSeasonAward struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go
index 445ecf3..79893e4 100644
--- a/protocol/webapi/common.pb.go
+++ b/protocol/webapi/common.pb.go
@@ -285,7 +285,7 @@ func (x *RankSwitch) GetProfit() int32 {
 	return 0
 }
 
-// 俱乐部配置
+//俱乐部配置
 type ClubConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1061,7 +1061,7 @@ func (x *PlatformDbConfig) GetMongoDbLog() *MongoDbSetting {
 	return nil
 }
 
-// 游戏分组配置
+//游戏分组配置
 type GameConfigGroup struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2371,7 +2371,7 @@ func (x *CoinPoolSetting) GetProfitPool() int64 {
 	return 0
 }
 
-// 邮件
+//邮件
 type MessageInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2658,7 +2658,7 @@ func (x *HorseRaceLamp) GetStandSec() int32 {
 	return 0
 }
 
-// 在线统计
+//在线统计
 type OnlineGameCnt struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3134,7 +3134,7 @@ func (x *ExchangeShop) GetTelCharge() int32 {
 	return 0
 }
 
-// 兑换类型
+//兑换类型
 type ExchangeType struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -3533,7 +3533,7 @@ func (x *ItemShopList) GetPlatform() string {
 	return ""
 }
 
-// 物品信息
+//物品信息
 type ItemInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/webapi/webapi.pb.go b/protocol/webapi/webapi.pb.go
index d2251ef..f8c0415 100644
--- a/protocol/webapi/webapi.pb.go
+++ b/protocol/webapi/webapi.pb.go
@@ -679,7 +679,7 @@ func (x *SAUpdatePlatform) GetMsg() string {
 }
 
 // 更新全局游戏开关
-// [action] /game_srv/update_global_game_status
+//[action] /game_srv/update_global_game_status
 type ASUpdateGameConfigGlobal struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -784,7 +784,7 @@ func (x *SAUpdateGameConfigGlobal) GetMsg() string {
 }
 
 // 更新游戏配置
-// [action] /game_srv/update_game_configs
+//[action] /game_srv/update_game_configs
 type ASUpdateGameConfig struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -993,8 +993,8 @@ func (x *SAUpdateGameConfigGroup) GetMsg() string {
 	return ""
 }
 
-// /////////////////////////////////////////////////////////////////////////////////////
-// 加币
+///////////////////////////////////////////////////////////////////////////////////////
+//加币
 // [action] /api/game/AddCoinById
 type ASAddCoinById struct {
 	state         protoimpl.MessageState
@@ -1179,7 +1179,7 @@ func (x *SAAddCoinById) GetMsg() string {
 	return ""
 }
 
-// 重置水池
+//重置水池
 // [action] /api/game/ResetGamePool
 type ASResetGamePool struct {
 	state         protoimpl.MessageState
@@ -1323,7 +1323,7 @@ func (x *SAResetGamePool) GetMsg() string {
 	return ""
 }
 
-// 更新水池
+//更新水池
 // [action] /api/game/UpdateGamePool
 type ASUpdateGamePool struct {
 	state         protoimpl.MessageState
@@ -1459,34 +1459,34 @@ func (x *SAUpdateGamePool) GetMsg() string {
 	return ""
 }
 
-// 可以更新的字段
-// InitValue
-// LowerLimit
-// UpperLimit
-// UpperOffsetLimit
-// MaxOutValue
-// ChangeRate
-// MinOutPlayerNum
-// BaseRate
-// CtroRate
-// HardTimeMin
-// HardTimeMax
-// NormalTimeMin
-// NormalTimeMax
-// EasyTimeMin
-// EasyTimeMax
-// EasrierTimeMin
-// EasrierTimeMax
-// CpCangeType
-// CpChangeInterval
-// CpChangeTotle
-// CpChangeLower
-// CpChangeUpper
-// ProfitRate
-// CoinPoolMode
-// ResetTime
-// //////////////////////////////////////////////////
-// 查询水池gameid
+//可以更新的字段
+//InitValue
+//LowerLimit
+//UpperLimit
+//UpperOffsetLimit
+//MaxOutValue
+//ChangeRate
+//MinOutPlayerNum
+//BaseRate
+//CtroRate
+//HardTimeMin
+//HardTimeMax
+//NormalTimeMin
+//NormalTimeMax
+//EasyTimeMin
+//EasyTimeMax
+//EasrierTimeMin
+//EasrierTimeMax
+//CpCangeType
+//CpChangeInterval
+//CpChangeTotle
+//CpChangeLower
+//CpChangeUpper
+//ProfitRate
+//CoinPoolMode
+//ResetTime
+////////////////////////////////////////////////////
+//查询水池gameid
 // [action] /api/game/QueryGamePoolByGameId
 type ASQueryGamePoolByGameId struct {
 	state         protoimpl.MessageState
@@ -1622,7 +1622,7 @@ func (x *SAQueryGamePoolByGameId) GetCoinPoolSetting() []*CoinPoolSetting {
 	return nil
 }
 
-// 查询水池
+//查询水池
 // [action] /api/game/QueryAllGamePool
 type ASQueryAllGamePool struct {
 	state         protoimpl.MessageState
@@ -1797,7 +1797,7 @@ func (x *SAQueryAllGamePool) GetCoinPoolStatesInfo() []*CoinPoolStatesInfo {
 	return nil
 }
 
-// 房间
+//房间
 // [action] /api/Cache/ListRoom
 type ASListRoom struct {
 	state         protoimpl.MessageState
@@ -2132,7 +2132,7 @@ func (x *SAGetRoom) GetRoomInfo() *RoomInfo {
 	return nil
 }
 
-// 销毁房间
+//销毁房间
 // [action] /api/Cache/DestroyRoom
 type ASDestroyRoom struct {
 	state         protoimpl.MessageState
@@ -2252,9 +2252,9 @@ func (x *SADestroyRoom) GetMsg() string {
 	return ""
 }
 
-// 单控
+//单控
 // [action] /api/game/SinglePlayerAdjust
-// PACKET_WG_SINGLEADJUST
+//PACKET_WG_SINGLEADJUST
 type ASSinglePlayerAdjust struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2373,8 +2373,8 @@ func (x *SASinglePlayerAdjust) GetPlayerSingleAdjust() *PlayerSingleAdjust {
 	return nil
 }
 
-// 玩家信息
-// 获取玩家信息
+//玩家信息
+//获取玩家信息
 // [action] /api/Player/PlayerData
 type ASGetPlayerData struct {
 	state         protoimpl.MessageState
@@ -2732,7 +2732,7 @@ func (x *SAKickPlayer) GetMsg() string {
 	return ""
 }
 
-// ///////////////////////////////////////////////
+/////////////////////////////////////////////////
 type PlayerEleArgs struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -2907,7 +2907,7 @@ func (x *SAUpdatePlayerElement) GetMsg() string {
 	return ""
 }
 
-// 黑白名单
+//黑白名单
 // [action] /api/Player/WhiteBlackControl
 type ASWhiteBlackControl struct {
 	state         protoimpl.MessageState
@@ -3067,7 +3067,7 @@ func (x *SAWhiteBlackControl) GetMsg() string {
 	return ""
 }
 
-// 跑马灯
+//跑马灯
 // [action] /api/Message/QueryHorseRaceLampList
 type ASQueryHorseRaceLampList struct {
 	state         protoimpl.MessageState
@@ -3735,7 +3735,7 @@ func (x *SARemoveHorseRaceLampById) GetMsg() string {
 	return ""
 }
 
-// 通过SnId设置黑名单
+//通过SnId设置黑名单
 // [action] /api/Player/BlackBySnId
 type ASBlackBySnId struct {
 	state         protoimpl.MessageState
@@ -3855,7 +3855,7 @@ func (x *SABlackBySnId) GetMsg() string {
 	return ""
 }
 
-// 邮件
+//邮件
 // [action] /api/game/CreateShortMessage
 type ASCreateShortMessage struct {
 	state         protoimpl.MessageState
@@ -4309,7 +4309,7 @@ func (x *SADeleteShortMessage) GetMsg() string {
 	return ""
 }
 
-// 在线列表
+//在线列表
 // [action] /api/Report/QueryOnlineReportList
 type ASQueryOnlineReportList struct {
 	state         protoimpl.MessageState
@@ -4501,7 +4501,7 @@ func (x *SAQueryOnlineReportList) GetPageSize() int32 {
 	return 0
 }
 
-// 关闭服务
+//关闭服务
 // [action] /api/Ctrl/SrvCtrlClose
 type ASSrvCtrlClose struct {
 	state         protoimpl.MessageState
@@ -4605,7 +4605,7 @@ func (x *SASrvCtrlClose) GetMsg() string {
 	return ""
 }
 
-// 发送公告
+//发送公告
 // [action] /api/Ctrl/SrvCtrlNotice
 type ASSrvCtrlNotice struct {
 	state         protoimpl.MessageState
@@ -4733,7 +4733,7 @@ func (x *SASrvCtrlNotice) GetMsg() string {
 	return ""
 }
 
-// 执行脚本
+//执行脚本
 // [action] /api/Ctrl/SrvCtrlStartScript
 type ASSrvCtrlStartScript struct {
 	state         protoimpl.MessageState
@@ -4828,7 +4828,7 @@ func (x *SASrvCtrlStartScript) GetMsg() string {
 	return ""
 }
 
-// 显示各个服务器状态
+//显示各个服务器状态
 // [action] /api/Ctrl/ListServerStates
 type ASListServerStates struct {
 	state         protoimpl.MessageState
@@ -4948,7 +4948,7 @@ func (x *SAListServerStates) GetServerInfo() []*ServerInfo {
 	return nil
 }
 
-// 切换状态
+//切换状态
 // [action] /api/Ctrl/ServerStateSwitch
 type ASServerStateSwitch struct {
 	state         protoimpl.MessageState
@@ -5060,7 +5060,7 @@ func (x *SAServerStateSwitch) GetMsg() string {
 	return ""
 }
 
-// 重置Etcd 连接和数据
+//重置Etcd 连接和数据
 // [action] /api/Ctrl/ResetEtcdData
 type ASResetEtcdData struct {
 	state         protoimpl.MessageState
@@ -5155,8 +5155,8 @@ func (x *SAResetEtcdData) GetMsg() string {
 	return ""
 }
 
-// 获取在线统计
-// [action] /api/Report/OnlineReportTotal
+//获取在线统计
+//[action] /api/Report/OnlineReportTotal
 type ASOnlineReportTotal struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -5283,8 +5283,8 @@ func (x *SAOnlineReportTotal) GetOnlineReport() *OnlineReport {
 	return nil
 }
 
-// /////////////////////////////////////////////////////////////////////////////////////
-// 加币
+///////////////////////////////////////////////////////////////////////////////////////
+//加币
 // [action] /api/game/AddCoinByIdAndPT
 type ASAddCoinByIdAndPT struct {
 	state         protoimpl.MessageState
@@ -5516,7 +5516,7 @@ func (x *JybInfoAward) GetDiamond() int64 {
 	return 0
 }
 
-// 生成兑换码
+//生成兑换码
 // [action] /api/game/CreateJYB
 type ASCreateJYB struct {
 	state         protoimpl.MessageState
@@ -5701,7 +5701,7 @@ func (x *SACreateJYB) GetMsg() string {
 	return ""
 }
 
-// 操作兑换码 删除 修改
+//操作兑换码 删除 修改
 // [action] /api/game/UpdateJYB
 type ASUpdateJYB struct {
 	state         protoimpl.MessageState
@@ -5822,7 +5822,7 @@ func (x *SAUpdateJYB) GetMsg() string {
 	return ""
 }
 
-// 创建订单
+//创建订单
 type ASCreatePayOrder struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6044,7 +6044,7 @@ func (x *SACreatePayOrder) GetReturnCPO() *ReturnCPO {
 	return nil
 }
 
-// 创建交易订单game_srv/create_exchange_order
+//创建交易订单game_srv/create_exchange_order
 type ASCreateExchangeOrder struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6243,7 +6243,7 @@ func (x *SACreateExchangeOrder) GetReturnCPO() *ReturnCPO {
 	return nil
 }
 
-// 获取交易订单game_srv/get_exchange_order
+//获取交易订单game_srv/get_exchange_order
 type ASGetExchangeOrder struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6513,7 +6513,7 @@ func (x *SAGetExchangeOrder) GetOrderList() []*ExchangeOrderInfo {
 	return nil
 }
 
-// 兑换确认
+//兑换确认
 // [action] /api/Customer/UpExchangeStatus
 type ASUpExchangeStatus struct {
 	state         protoimpl.MessageState
@@ -6675,7 +6675,7 @@ func (x *SAUpExchangeStatus) GetMsg() string {
 }
 
 // /game_srv/get_exchange_shop
-// 获取兑换商品信息
+//获取兑换商品信息
 type ASGetExchangeShop struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6786,7 +6786,7 @@ func (x *SAGetExchangeShop) GetList() []*ExchangeShop {
 	return nil
 }
 
-// 登录rocket/game_srv_third/register_or_login
+//登录rocket/game_srv_third/register_or_login
 type SARocketLogin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -6913,7 +6913,7 @@ func (x *ASRocketLogin) GetUrl() string {
 	return ""
 }
 
-// 退出rocket/game_srv_third/login_out
+//退出rocket/game_srv_third/login_out
 type SARocketLoginOut struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7032,7 +7032,7 @@ func (x *ASRocketLoginOut) GetMsg() string {
 	return ""
 }
 
-// /api/thd/UpdatePlayerCoin
+//  /api/thd/UpdatePlayerCoin
 type ASThdUpdatePlayerCoin struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7152,7 +7152,7 @@ func (x *SAThdUpdatePlayerCoin) GetMsg() string {
 	return ""
 }
 
-// 订单
+//订单
 type SACreateOrder struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7367,7 +7367,7 @@ func (x *ASCreateOrder) GetUrl() string {
 	return ""
 }
 
-// 系统透传
+//系统透传
 type SAWebAPISystemPass struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7494,7 +7494,7 @@ func (x *ASWebAPISystemPass) GetResponse() string {
 	return ""
 }
 
-// 支付回调 [/api/pay/CallbackPayment]
+//支付回调 [/api/pay/CallbackPayment]
 type ASCallbackPayment struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7613,7 +7613,7 @@ func (x *SACallbackPayment) GetMsg() string {
 	return ""
 }
 
-// 资源更新通知 [/api/game/resource]
+//资源更新通知 [/api/game/resource]
 type ASResource struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7716,7 +7716,7 @@ func (x *SAResource) GetMsg() string {
 	return ""
 }
 
-// 发送短信验证码 [/send_sms]
+//发送短信验证码 [/send_sms]
 type ASSendSms struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -7851,7 +7851,7 @@ func (x *SASendSms) GetMsg() string {
 	return ""
 }
 
-// 获取比赛奖品话费兑换码 [/get_match_award_code]
+//获取比赛奖品话费兑换码 [/get_match_award_code]
 type ASGetMatchAwardCode struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8002,7 +8002,7 @@ func (x *SAGetMatchAwardCode) GetMsg() string {
 	return ""
 }
 
-// 修改手机号 [/api/player/update_tel]
+//修改手机号 [/api/player/update_tel]
 type ASUpdateTel struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -8121,7 +8121,7 @@ func (x *SAUpdateTel) GetMsg() string {
 	return ""
 }
 
-// 获取图片验证码 [/get_img_verify]
+//获取图片验证码 [/get_img_verify]
 type ASGetImgVerify struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go
index 236f1c9..36ac51a 100644
--- a/protocol/welfare/welfare.pb.go
+++ b/protocol/welfare/welfare.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-// 操作结果
+//操作结果
 type OpResultCode int32
 
 const (
@@ -212,8 +212,8 @@ func (SPacketID) EnumDescriptor() ([]byte, []int) {
 	return file_welfare_proto_rawDescGZIP(), []int{1}
 }
 
-// 救济金领取
-// PACKET_CS_WELF_GETRELIEFFUND
+//救济金领取
+//PACKET_CS_WELF_GETRELIEFFUND
 type CSGetReliefFund struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -261,7 +261,7 @@ func (x *CSGetReliefFund) GetIsVideo() bool {
 	return false
 }
 
-// PACKET_SC_WELF_GETRELIEFFUND
+//PACKET_SC_WELF_GETRELIEFFUND
 type SCGetReliefFund struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -396,8 +396,8 @@ func (x *WelfareDate) GetItem_Id() int32 {
 	return 0
 }
 
-// 转动转盘
-// PACKET_CS_WELF_GETTURNPLATE
+//转动转盘
+//PACKET_CS_WELF_GETTURNPLATE
 type CSGetTurnplate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -445,7 +445,7 @@ func (x *CSGetTurnplate) GetIsVideo() bool {
 	return false
 }
 
-// PACKET_SC_WELF_GETTURNPLATE
+//PACKET_SC_WELF_GETTURNPLATE
 type SCGetTurnplate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -580,8 +580,8 @@ func (x *AddUpWelfareDate) GetAddUpDate() []*WelfareDate {
 	return nil
 }
 
-// 累计签到
-// PACKET_CS_WELF_GETADDUPSIGN
+//累计签到
+//PACKET_CS_WELF_GETADDUPSIGN
 type CSGetAddupSign struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -629,7 +629,7 @@ func (x *CSGetAddupSign) GetAddUpDay() int32 {
 	return 0
 }
 
-// PACKET_SC_WELF_GETADDUPSIGN
+//PACKET_SC_WELF_GETADDUPSIGN
 type SCGetAddupSign struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -693,8 +693,8 @@ func (x *SCGetAddupSign) GetAddUpSignDay() []int32 {
 	return nil
 }
 
-// 福利信息
-// PACKET_CS_WELF_WELFAREINFO
+//福利信息
+//PACKET_CS_WELF_WELFAREINFO
 type CSWelfaredInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -851,7 +851,7 @@ func (x *Welfare7SignDate) GetAddUpDate() []*AddUpWelfareDate {
 	return nil
 }
 
-// PACKET_SC_WELF_WELFAREINFO
+//PACKET_SC_WELF_WELFAREINFO
 type SCWelfaredInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1058,8 +1058,8 @@ func (x *BlindBoxData) GetItem_Id() int32 {
 	return 0
 }
 
-// 查看盲盒
-// PACKET_CS_WELF_BLINBOXINFO
+//查看盲盒
+//PACKET_CS_WELF_BLINBOXINFO
 type CSBlindBoxInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1107,7 +1107,7 @@ func (x *CSBlindBoxInfo) GetId() int32 {
 	return 0
 }
 
-// PACKET_SC_WELF_BLINBOXINFO
+//PACKET_SC_WELF_BLINBOXINFO
 type SCBlindBoxInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1187,8 +1187,8 @@ func (x *SCBlindBoxInfo) GetCycle() int32 {
 	return 0
 }
 
-// 领取盲盒
-// PACKET_CS_WELF_GETBLINBOX
+//领取盲盒
+//PACKET_CS_WELF_GETBLINBOX
 type CSGetBlindBox struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1236,7 +1236,7 @@ func (x *CSGetBlindBox) GetId() int32 {
 	return 0
 }
 
-// PACKET_SC_WELF_GETBLINBOX
+//PACKET_SC_WELF_GETBLINBOX
 type SCGetBlindBox struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1379,7 +1379,7 @@ func (x *WelfareSpree) GetDiscount() float64 {
 	return 0
 }
 
-// PACKET_CS_WELF_FIRSTPAYINFO
+//PACKET_CS_WELF_FIRSTPAYINFO
 type CSWelfareFirstPayData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1418,7 +1418,7 @@ func (*CSWelfareFirstPayData) Descriptor() ([]byte, []int) {
 	return file_welfare_proto_rawDescGZIP(), []int{18}
 }
 
-// PACKET_SC_WELF_FIRSTPAYINFO
+//PACKET_SC_WELF_FIRSTPAYINFO
 type SCWelfareFirstPayData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1498,7 +1498,7 @@ func (x *SCWelfareFirstPayData) GetDraw() int32 {
 	return 0
 }
 
-// PACKET_CS_WELF_FIRSTPAY
+//PACKET_CS_WELF_FIRSTPAY
 type CSWelfareFirstPay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1537,7 +1537,7 @@ func (*CSWelfareFirstPay) Descriptor() ([]byte, []int) {
 	return file_welfare_proto_rawDescGZIP(), []int{20}
 }
 
-// PACKET_SC_WELF_FIRSTPAY
+//PACKET_SC_WELF_FIRSTPAY
 type SCWelfareFirstPay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1585,7 +1585,7 @@ func (x *SCWelfareFirstPay) GetOpRetCode() OpResultCode {
 	return OpResultCode_OPRC_Sucess
 }
 
-// PACKET_CS_WELF_CONTINPAYINFO
+//PACKET_CS_WELF_CONTINPAYINFO
 type CSWelfareContinuousPayData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1624,7 +1624,7 @@ func (*CSWelfareContinuousPayData) Descriptor() ([]byte, []int) {
 	return file_welfare_proto_rawDescGZIP(), []int{22}
 }
 
-// PACKET_SC_WELF_CONTINPAYINFO
+//PACKET_SC_WELF_CONTINPAYINFO
 type SCWelfareContinuousPayData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1712,7 +1712,7 @@ func (x *SCWelfareContinuousPayData) GetDay() int32 {
 	return 0
 }
 
-// PACKET_CS_WELF_CONTINPAY
+//PACKET_CS_WELF_CONTINPAY
 type CSWelfareContinuousPay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -1751,7 +1751,7 @@ func (*CSWelfareContinuousPay) Descriptor() ([]byte, []int) {
 	return file_welfare_proto_rawDescGZIP(), []int{24}
 }
 
-// PACKET_SC_WELF_CONTINPAY
+//PACKET_SC_WELF_CONTINPAY
 type SCWelfareContinuousPay struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
diff --git a/srvdata/db_collectbox.go b/srvdata/db_collectbox.go
index f508213..3b1dec3 100644
--- a/srvdata/db_collectbox.go
+++ b/srvdata/db_collectbox.go
@@ -1,3 +1,4 @@
+
 // Code generated by xlsx2proto.
 // DO NOT EDIT!
 
@@ -6,7 +7,7 @@ package srvdata
 import (
 	"google.golang.org/protobuf/proto"
 
-	"mongo.games.com/game/protocol/server"
+    "mongo.games.com/game/protocol/server"
 )
 
 var PBDB_CollectBoxMgr = &DB_CollectBoxMgr{pool: make(map[int32]*server.DB_CollectBox), Datas: &server.DB_CollectBoxArray{}}
diff --git a/srvdata/db_collectboxgain.go b/srvdata/db_collectboxgain.go
index 27c71ae..189fb6b 100644
--- a/srvdata/db_collectboxgain.go
+++ b/srvdata/db_collectboxgain.go
@@ -1,3 +1,4 @@
+
 // Code generated by xlsx2proto.
 // DO NOT EDIT!
 
@@ -6,7 +7,7 @@ package srvdata
 import (
 	"google.golang.org/protobuf/proto"
 
-	"mongo.games.com/game/protocol/server"
+    "mongo.games.com/game/protocol/server"
 )
 
 var PBDB_CollectBoxGainMgr = &DB_CollectBoxGainMgr{pool: make(map[int32]*server.DB_CollectBoxGain), Datas: &server.DB_CollectBoxGainArray{}}
diff --git a/srvdata/db_propexchange.go b/srvdata/db_propexchange.go
index 9a09e8c..a5a5efe 100644
--- a/srvdata/db_propexchange.go
+++ b/srvdata/db_propexchange.go
@@ -1,3 +1,4 @@
+
 // Code generated by xlsx2proto.
 // DO NOT EDIT!
 
@@ -6,7 +7,7 @@ package srvdata
 import (
 	"google.golang.org/protobuf/proto"
 
-	"mongo.games.com/game/protocol/server"
+    "mongo.games.com/game/protocol/server"
 )
 
 var PBDB_PropExchangeMgr = &DB_PropExchangeMgr{pool: make(map[int32]*server.DB_PropExchange), Datas: &server.DB_PropExchangeArray{}}
diff --git a/tools/xlsx2binary/agc.go b/tools/xlsx2binary/agc.go
index 1d85b42..a431bd8 100644
--- a/tools/xlsx2binary/agc.go
+++ b/tools/xlsx2binary/agc.go
@@ -1,8 +1,8 @@
+
 // Code generated by xlsx2proto.
 // DO NOT EDIT!
 
 package main
-
 import (
 	"encoding/json"
 	"fmt"
@@ -12,14 +12,15 @@ import (
 	"strings"
 
 	"github.com/tealeg/xlsx"
-	"google.golang.org/protobuf/proto"
+    "google.golang.org/protobuf/proto"
 
 	"mongo.games.com/game/protocol/server"
 )
 
 var _ = strings.Split
 
-func AgcConvertDB_ActSign(fi, fo string) {
+
+func AgcConvertDB_ActSign(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -33,19 +34,19 @@ func AgcConvertDB_ActSign(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ActSignArray{
-			Arr: make([]*server.DB_ActSign, 0, len(sheet.Rows)),
+		arr:=&server.DB_ActSignArray{
+			Arr:make([]*server.DB_ActSign, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -53,46 +54,82 @@ func AgcConvertDB_ActSign(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ActSign{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Type = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Name = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Item_Id = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Grade = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -100,26 +137,26 @@ func AgcConvertDB_ActSign(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Activity1(fi, fo string) {
+	
+func AgcConvertDB_Activity1(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -133,19 +170,19 @@ func AgcConvertDB_Activity1(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Activity1Array{
-			Arr: make([]*server.DB_Activity1, 0, len(sheet.Rows)),
+		arr:=&server.DB_Activity1Array{
+			Arr:make([]*server.DB_Activity1, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -153,87 +190,165 @@ func AgcConvertDB_Activity1(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Activity1{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Parameter = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Turn = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.Title = row.Cells[3].String()
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Costype = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Costp = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Cost = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.Typee = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Propid = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Value = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.Getype = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -241,26 +356,26 @@ func AgcConvertDB_Activity1(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_AnimalColor(fi, fo string) {
+	
+func AgcConvertDB_AnimalColor(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -274,19 +389,19 @@ func AgcConvertDB_AnimalColor(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_AnimalColorArray{
-			Arr: make([]*server.DB_AnimalColor, 0, len(sheet.Rows)),
+		arr:=&server.DB_AnimalColorArray{
+			Arr:make([]*server.DB_AnimalColor, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -294,29 +409,46 @@ func AgcConvertDB_AnimalColor(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_AnimalColor{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Desc = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -327,6 +459,11 @@ func AgcConvertDB_AnimalColor(fi, fo string) {
 					}
 				}
 				data.ColorChance = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -334,26 +471,26 @@ func AgcConvertDB_AnimalColor(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ArtilleryRate(fi, fo string) {
+	
+func AgcConvertDB_ArtilleryRate(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -367,19 +504,19 @@ func AgcConvertDB_ArtilleryRate(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ArtilleryRateArray{
-			Arr: make([]*server.DB_ArtilleryRate, 0, len(sheet.Rows)),
+		arr:=&server.DB_ArtilleryRateArray{
+			Arr:make([]*server.DB_ArtilleryRate, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -387,38 +524,67 @@ func AgcConvertDB_ArtilleryRate(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ArtilleryRate{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Shell = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Level = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.Desc = row.Cells[3].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -426,26 +592,26 @@ func AgcConvertDB_ArtilleryRate(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ArtillerySkin(fi, fo string) {
+	
+func AgcConvertDB_ArtillerySkin(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -459,19 +625,19 @@ func AgcConvertDB_ArtillerySkin(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ArtillerySkinArray{
-			Arr: make([]*server.DB_ArtillerySkin, 0, len(sheet.Rows)),
+		arr:=&server.DB_ArtillerySkinArray{
+			Arr:make([]*server.DB_ArtillerySkin, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -479,94 +645,181 @@ func AgcConvertDB_ArtillerySkin(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ArtillerySkin{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.CannonId = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Type = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.ExprieTime = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Show = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Order = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
+								
+				
 				data.NameIcon = row.Cells[7].String()
-
-				if len(row.Cells) < 8+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
+								
+				
 				data.PicIcon = row.Cells[8].String()
-
-				if len(row.Cells) < 9+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
+								
+				
 				data.BaseIcon = row.Cells[9].String()
-
-				if len(row.Cells) < 10+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
+								
+				
 				data.ShellIcon = row.Cells[10].String()
-
-				if len(row.Cells) < 11+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
+								
+				
 				data.NetIcon = row.Cells[11].String()
-
-				if len(row.Cells) < 12+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[12].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[12].String() != "" {
@@ -577,54 +830,108 @@ func AgcConvertDB_ArtillerySkin(fi, fo string) {
 					}
 				}
 				data.Vip = arrInt
-
-				if len(row.Cells) < 13+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[13].String(), 10, 32)
 				data.Gold = int32(temp)
-
-				if len(row.Cells) < 14+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 32)
 				data.Diamond = int32(temp)
-
-				if len(row.Cells) < 15+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[15].String(), 10, 32)
 				data.Income = int32(temp)
-
-				if len(row.Cells) < 16+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[16].String(), 10, 32)
 				data.Speed = int32(temp)
-
-				if len(row.Cells) < 17+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<17+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[17].String(), 10, 32)
 				data.Caught = int32(temp)
-
-				if len(row.Cells) < 18+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<18+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[18].String(), 10, 32)
 				data.Introduce = int32(temp)
-
-				if len(row.Cells) < 19+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<19+1{
 					break
 				}
-
+				
+								
+				
 				data.Source = row.Cells[19].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -632,26 +939,26 @@ func AgcConvertDB_ArtillerySkin(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_BlackWhite(fi, fo string) {
+	
+func AgcConvertDB_BlackWhite(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -665,19 +972,19 @@ func AgcConvertDB_BlackWhite(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_BlackWhiteArray{
-			Arr: make([]*server.DB_BlackWhite, 0, len(sheet.Rows)),
+		arr:=&server.DB_BlackWhiteArray{
+			Arr:make([]*server.DB_BlackWhite, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -685,23 +992,33 @@ func AgcConvertDB_BlackWhite(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_BlackWhite{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -712,11 +1029,18 @@ func AgcConvertDB_BlackWhite(fi, fo string) {
 					}
 				}
 				data.BlackOdds = arrInt
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -727,6 +1051,11 @@ func AgcConvertDB_BlackWhite(fi, fo string) {
 					}
 				}
 				data.WhiteOdds = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -734,26 +1063,26 @@ func AgcConvertDB_BlackWhite(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_CardsJD(fi, fo string) {
+	
+func AgcConvertDB_CardsJD(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -767,19 +1096,19 @@ func AgcConvertDB_CardsJD(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_CardsJDArray{
-			Arr: make([]*server.DB_CardsJD, 0, len(sheet.Rows)),
+		arr:=&server.DB_CardsJDArray{
+			Arr:make([]*server.DB_CardsJD, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -787,122 +1116,242 @@ func AgcConvertDB_CardsJD(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_CardsJD{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Card1 = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Card1Score = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Card1HandNum = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
 				data.Change1Cards = row.Cells[4].String()
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
 				data.Card2 = row.Cells[5].String()
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Card2Score = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.Card2HandNum = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
+								
+				
 				data.Change2Cards = row.Cells[8].String()
-
-				if len(row.Cells) < 9+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
+								
+				
 				data.Card3 = row.Cells[9].String()
-
-				if len(row.Cells) < 10+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.Card3Score = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.Card3HandNum = int32(temp)
-
-				if len(row.Cells) < 12+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
+								
+				
 				data.Change3Cards = row.Cells[12].String()
-
-				if len(row.Cells) < 13+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
 				data.Card4 = row.Cells[13].String()
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 32)
 				data.Card4Score = int32(temp)
-
-				if len(row.Cells) < 15+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[15].String(), 10, 32)
 				data.Card4HandNum = int32(temp)
-
-				if len(row.Cells) < 16+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
+								
+				
 				data.Change4Cards = row.Cells[16].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -910,26 +1359,26 @@ func AgcConvertDB_CardsJD(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_CardsYuLe(fi, fo string) {
+	
+func AgcConvertDB_CardsYuLe(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -943,19 +1392,19 @@ func AgcConvertDB_CardsYuLe(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_CardsYuLeArray{
-			Arr: make([]*server.DB_CardsYuLe, 0, len(sheet.Rows)),
+		arr:=&server.DB_CardsYuLeArray{
+			Arr:make([]*server.DB_CardsYuLe, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -963,122 +1412,242 @@ func AgcConvertDB_CardsYuLe(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_CardsYuLe{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Card1 = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Card1Score = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Card1HandNum = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
 				data.Change1Cards = row.Cells[4].String()
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
 				data.Card2 = row.Cells[5].String()
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Card2Score = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.Card2HandNum = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
+								
+				
 				data.Change2Cards = row.Cells[8].String()
-
-				if len(row.Cells) < 9+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
+								
+				
 				data.Card3 = row.Cells[9].String()
-
-				if len(row.Cells) < 10+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.Card3Score = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.Card3HandNum = int32(temp)
-
-				if len(row.Cells) < 12+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
+								
+				
 				data.Change3Cards = row.Cells[12].String()
-
-				if len(row.Cells) < 13+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
 				data.Card4 = row.Cells[13].String()
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 32)
 				data.Card4Score = int32(temp)
-
-				if len(row.Cells) < 15+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[15].String(), 10, 32)
 				data.Card4HandNum = int32(temp)
-
-				if len(row.Cells) < 16+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
+								
+				
 				data.Change4Cards = row.Cells[16].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1086,26 +1655,26 @@ func AgcConvertDB_CardsYuLe(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ChessBilledRules(fi, fo string) {
+	
+func AgcConvertDB_ChessBilledRules(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1119,19 +1688,19 @@ func AgcConvertDB_ChessBilledRules(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ChessBilledRulesArray{
-			Arr: make([]*server.DB_ChessBilledRules, 0, len(sheet.Rows)),
+		arr:=&server.DB_ChessBilledRulesArray{
+			Arr:make([]*server.DB_ChessBilledRules, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1139,60 +1708,110 @@ func AgcConvertDB_ChessBilledRules(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ChessBilledRules{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.TypeId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.WinScore = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.LoseScore = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.DrawScore = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.WinTimes = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.OtherScore = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1200,26 +1819,26 @@ func AgcConvertDB_ChessBilledRules(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ChessMatchRules(fi, fo string) {
+	
+func AgcConvertDB_ChessMatchRules(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1233,19 +1852,19 @@ func AgcConvertDB_ChessMatchRules(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ChessMatchRulesArray{
-			Arr: make([]*server.DB_ChessMatchRules, 0, len(sheet.Rows)),
+		arr:=&server.DB_ChessMatchRulesArray{
+			Arr:make([]*server.DB_ChessMatchRules, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1253,51 +1872,89 @@ func AgcConvertDB_ChessMatchRules(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ChessMatchRules{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.ScoreMin = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.ScoreMax = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.MatchScoreMin = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.MatchScoreMax = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -1308,11 +1965,18 @@ func AgcConvertDB_ChessMatchRules(fi, fo string) {
 					}
 				}
 				data.MatchScoreLowStep = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[6].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[6].String() != "" {
@@ -1323,6 +1987,11 @@ func AgcConvertDB_ChessMatchRules(fi, fo string) {
 					}
 				}
 				data.MatchScoreHightStep = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1330,26 +1999,26 @@ func AgcConvertDB_ChessMatchRules(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ChessRank(fi, fo string) {
+	
+func AgcConvertDB_ChessRank(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1363,19 +2032,19 @@ func AgcConvertDB_ChessRank(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ChessRankArray{
-			Arr: make([]*server.DB_ChessRank, 0, len(sheet.Rows)),
+		arr:=&server.DB_ChessRankArray{
+			Arr:make([]*server.DB_ChessRank, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1383,31 +2052,53 @@ func AgcConvertDB_ChessRank(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ChessRank{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Score = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1415,26 +2106,26 @@ func AgcConvertDB_ChessRank(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ClientVer(fi, fo string) {
+	
+func AgcConvertDB_ClientVer(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1448,19 +2139,19 @@ func AgcConvertDB_ClientVer(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ClientVerArray{
-			Arr: make([]*server.DB_ClientVer, 0, len(sheet.Rows)),
+		arr:=&server.DB_ClientVerArray{
+			Arr:make([]*server.DB_ClientVer, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1468,36 +2159,65 @@ func AgcConvertDB_ClientVer(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ClientVer{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.PackageFlag = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.PackVers = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.GameVers = row.Cells[3].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1505,26 +2225,26 @@ func AgcConvertDB_ClientVer(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_CollectBox(fi, fo string) {
+	
+func AgcConvertDB_CollectBox(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1538,19 +2258,19 @@ func AgcConvertDB_CollectBox(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_CollectBoxArray{
-			Arr: make([]*server.DB_CollectBox, 0, len(sheet.Rows)),
+		arr:=&server.DB_CollectBoxArray{
+			Arr:make([]*server.DB_CollectBox, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1558,51 +2278,73 @@ func AgcConvertDB_CollectBox(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_CollectBox{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Rate = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
-				if row.Cells[2].String() != "" {
-					pairs := strings.Split(row.Cells[2].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[2].String() != ""{
+						pairs := strings.Split(row.Cells[2].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.ItemID = resultMap
 					}
-					data.ItemID = resultMap
-				}
+				
+				
 
 				break
 			}
@@ -1610,26 +2352,26 @@ func AgcConvertDB_CollectBox(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_CollectBoxGain(fi, fo string) {
+	
+func AgcConvertDB_CollectBoxGain(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1643,19 +2385,19 @@ func AgcConvertDB_CollectBoxGain(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_CollectBoxGainArray{
-			Arr: make([]*server.DB_CollectBoxGain, 0, len(sheet.Rows)),
+		arr:=&server.DB_CollectBoxGainArray{
+			Arr:make([]*server.DB_CollectBoxGain, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1663,25 +2405,40 @@ func AgcConvertDB_CollectBoxGain(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_CollectBoxGain{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Rate = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1689,26 +2446,26 @@ func AgcConvertDB_CollectBoxGain(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_CrashSearch(fi, fo string) {
+	
+func AgcConvertDB_CrashSearch(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1722,19 +2479,19 @@ func AgcConvertDB_CrashSearch(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_CrashSearchArray{
-			Arr: make([]*server.DB_CrashSearch, 0, len(sheet.Rows)),
+		arr:=&server.DB_CrashSearchArray{
+			Arr:make([]*server.DB_CrashSearch, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1742,32 +2499,54 @@ func AgcConvertDB_CrashSearch(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_CrashSearch{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Time = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Price = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1775,26 +2554,26 @@ func AgcConvertDB_CrashSearch(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Createroom(fi, fo string) {
+	
+func AgcConvertDB_Createroom(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1808,19 +2587,19 @@ func AgcConvertDB_Createroom(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_CreateroomArray{
-			Arr: make([]*server.DB_Createroom, 0, len(sheet.Rows)),
+		arr:=&server.DB_CreateroomArray{
+			Arr:make([]*server.DB_Createroom, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1828,37 +2607,61 @@ func AgcConvertDB_Createroom(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Createroom{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.GameId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.GameSite = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -1869,11 +2672,18 @@ func AgcConvertDB_Createroom(fi, fo string) {
 					}
 				}
 				data.GoldRange = arrInt
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -1884,6 +2694,11 @@ func AgcConvertDB_Createroom(fi, fo string) {
 					}
 				}
 				data.BetRange = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -1891,26 +2706,26 @@ func AgcConvertDB_Createroom(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Fish(fi, fo string) {
+	
+func AgcConvertDB_Fish(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -1924,19 +2739,19 @@ func AgcConvertDB_Fish(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FishArray{
-			Arr: make([]*server.DB_Fish, 0, len(sheet.Rows)),
+		arr:=&server.DB_FishArray{
+			Arr:make([]*server.DB_Fish, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -1944,35 +2759,59 @@ func AgcConvertDB_Fish(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Fish{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.NameE = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -1983,73 +2822,143 @@ func AgcConvertDB_Fish(fi, fo string) {
 					}
 				}
 				data.Gold = arrInt
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
 				data.Icon = row.Cells[4].String()
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Speed = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Exp = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.FrameCnt = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.FrameDelay = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Rate = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.ShowType = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.Show = int32(temp)
-
-				if len(row.Cells) < 12+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32)
 				data.ShowScale = int32(temp)
-
-				if len(row.Cells) < 13+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[13].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[13].String() != "" {
@@ -2060,85 +2969,169 @@ func AgcConvertDB_Fish(fi, fo string) {
 					}
 				}
 				data.ShowPos = arrInt
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
+								
+				
 				data.DieSound = row.Cells[14].String()
-
-				if len(row.Cells) < 15+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[15].String(), 10, 32)
 				data.DieFrame = int32(temp)
-
-				if len(row.Cells) < 16+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[16].String(), 10, 32)
 				data.DieRotate = int32(temp)
-
-				if len(row.Cells) < 17+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<17+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[17].String(), 10, 32)
 				data.DieEffect = int32(temp)
-
-				if len(row.Cells) < 18+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<18+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[18].String(), 10, 32)
 				data.DieShake = int32(temp)
-
-				if len(row.Cells) < 19+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<19+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[19].String(), 10, 32)
 				data.ShakeRange = int32(temp)
-
-				if len(row.Cells) < 20+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<20+1{
 					break
 				}
-
+				
+								
+				
 				data.Shape = row.Cells[20].String()
-
-				if len(row.Cells) < 21+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<21+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[21].String(), 10, 32)
 				data.IsBoss = int32(temp)
-
-				if len(row.Cells) < 22+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<22+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[22].String(), 10, 32)
 				data.ResId = int32(temp)
-
-				if len(row.Cells) < 23+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<23+1{
 					break
 				}
-
+				
+								
+				
 				data.DieParticle = row.Cells[23].String()
-
-				if len(row.Cells) < 24+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<24+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[24].String(), 10, 32)
 				data.GroupShape = int32(temp)
-
-				if len(row.Cells) < 25+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<25+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[25].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[25].String() != "" {
@@ -2149,64 +3142,132 @@ func AgcConvertDB_Fish(fi, fo string) {
 					}
 				}
 				data.GroupFishes = arrInt
-
-				if len(row.Cells) < 26+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<26+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[26].String(), 10, 32)
 				data.Zorder = int32(temp)
-
-				if len(row.Cells) < 27+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<27+1{
 					break
 				}
-
+				
+								
+				
 				data.ResPng = row.Cells[27].String()
-
-				if len(row.Cells) < 28+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<28+1{
 					break
 				}
-
+				
+								
+				
 				data.ResPlist = row.Cells[28].String()
-
-				if len(row.Cells) < 29+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<29+1{
 					break
 				}
-
+				
+								
+				
 				data.ExportJson = row.Cells[29].String()
-
-				if len(row.Cells) < 30+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<30+1{
 					break
 				}
-
+				
+								
+				
 				data.AimIcon = row.Cells[30].String()
-
-				if len(row.Cells) < 31+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<31+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[31].String(), 10, 32)
 				data.GameId = int32(temp)
-
-				if len(row.Cells) < 32+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<32+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[32].String(), 10, 32)
 				data.Sort = int32(temp)
-
-				if len(row.Cells) < 33+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<33+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[33].String(), 10, 32)
 				data.FishType = int32(temp)
-
-				if len(row.Cells) < 34+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<34+1{
 					break
 				}
-
+				
+								
+				
 				data.RandomCoin = row.Cells[34].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -2214,26 +3275,26 @@ func AgcConvertDB_Fish(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FishOut(fi, fo string) {
+	
+func AgcConvertDB_FishOut(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -2247,19 +3308,19 @@ func AgcConvertDB_FishOut(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FishOutArray{
-			Arr: make([]*server.DB_FishOut, 0, len(sheet.Rows)),
+		arr:=&server.DB_FishOutArray{
+			Arr:make([]*server.DB_FishOut, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -2267,43 +3328,74 @@ func AgcConvertDB_FishOut(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FishOut{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.SceneType = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Exp = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -2314,11 +3406,18 @@ func AgcConvertDB_FishOut(fi, fo string) {
 					}
 				}
 				data.Multiple = arrInt
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -2329,11 +3428,18 @@ func AgcConvertDB_FishOut(fi, fo string) {
 					}
 				}
 				data.Path = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[6].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[6].String() != "" {
@@ -2344,27 +3450,53 @@ func AgcConvertDB_FishOut(fi, fo string) {
 					}
 				}
 				data.Count = arrInt
-
-				if len(row.Cells) < 7+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.RefreshInterval = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Speed = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Event = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -2372,26 +3504,26 @@ func AgcConvertDB_FishOut(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FishPath(fi, fo string) {
+	
+func AgcConvertDB_FishPath(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -2405,19 +3537,19 @@ func AgcConvertDB_FishPath(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FishPathArray{
-			Arr: make([]*server.DB_FishPath, 0, len(sheet.Rows)),
+		arr:=&server.DB_FishPathArray{
+			Arr:make([]*server.DB_FishPath, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -2425,32 +3557,54 @@ func AgcConvertDB_FishPath(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FishPath{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.AppearTime = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.DisappearTime = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -2458,26 +3612,26 @@ func AgcConvertDB_FishPath(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FishRoom(fi, fo string) {
+	
+func AgcConvertDB_FishRoom(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -2491,19 +3645,19 @@ func AgcConvertDB_FishRoom(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FishRoomArray{
-			Arr: make([]*server.DB_FishRoom, 0, len(sheet.Rows)),
+		arr:=&server.DB_FishRoomArray{
+			Arr:make([]*server.DB_FishRoom, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -2511,87 +3665,172 @@ func AgcConvertDB_FishRoom(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FishRoom{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.RoomId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.SumGold1 = row.Cells[3].String()
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
 				data.SumGold2 = row.Cells[4].String()
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
 				data.SumGold3 = row.Cells[5].String()
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
 				data.SumGold4 = row.Cells[6].String()
-
-				if len(row.Cells) < 7+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
+								
+				
 				data.SumGold5 = row.Cells[7].String()
-
-				if len(row.Cells) < 8+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.BossCDTime = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.LittleBossCDTime = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
+								
+				
 				data.EnableBoss = row.Cells[10].String()
-
-				if len(row.Cells) < 11+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
+								
+				
 				data.EnableLittleBoss = row.Cells[11].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -2599,26 +3838,26 @@ func AgcConvertDB_FishRoom(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FishSkill(fi, fo string) {
+	
+func AgcConvertDB_FishSkill(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -2632,19 +3871,19 @@ func AgcConvertDB_FishSkill(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FishSkillArray{
-			Arr: make([]*server.DB_FishSkill, 0, len(sheet.Rows)),
+		arr:=&server.DB_FishSkillArray{
+			Arr:make([]*server.DB_FishSkill, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -2652,43 +3891,74 @@ func AgcConvertDB_FishSkill(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FishSkill{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Vip = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Consume = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -2699,11 +3969,18 @@ func AgcConvertDB_FishSkill(fi, fo string) {
 					}
 				}
 				data.Item = arrInt
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -2714,94 +3991,190 @@ func AgcConvertDB_FishSkill(fi, fo string) {
 					}
 				}
 				data.OtherConsumer = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Multiple = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.Duration = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.SkillGroups = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.GCD = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.Cooldown = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
+								
+				
 				data.Hidden = row.Cells[11].String()
-
-				if len(row.Cells) < 12+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
+								
+				
 				data.Describe = row.Cells[12].String()
-
-				if len(row.Cells) < 13+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
 				data.Boss = row.Cells[13].String()
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 32)
 				data.Type = int32(temp)
-
-				if len(row.Cells) < 15+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[15].String(), 10, 32)
 				data.Limit = int32(temp)
-
-				if len(row.Cells) < 16+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[16].String(), 10, 32)
 				data.Mutex = int32(temp)
-
-				if len(row.Cells) < 17+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<17+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[17].String(), 10, 32)
 				data.MutexTime = int32(temp)
-
-				if len(row.Cells) < 18+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<18+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[18].String(), 10, 32)
 				data.Fury = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -2809,26 +4182,26 @@ func AgcConvertDB_FishSkill(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FortuneGod_Odds(fi, fo string) {
+	
+func AgcConvertDB_FortuneGod_Odds(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -2842,19 +4215,19 @@ func AgcConvertDB_FortuneGod_Odds(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FortuneGod_OddsArray{
-			Arr: make([]*server.DB_FortuneGod_Odds, 0, len(sheet.Rows)),
+		arr:=&server.DB_FortuneGod_OddsArray{
+			Arr:make([]*server.DB_FortuneGod_Odds, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -2862,45 +4235,81 @@ func AgcConvertDB_FortuneGod_Odds(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FortuneGod_Odds{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Rateodds3 = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Rateodds4 = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Rateodds5 = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -2908,26 +4317,26 @@ func AgcConvertDB_FortuneGod_Odds(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FortuneGod_TurnRate(fi, fo string) {
+	
+func AgcConvertDB_FortuneGod_TurnRate(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -2941,19 +4350,19 @@ func AgcConvertDB_FortuneGod_TurnRate(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FortuneGod_TurnRateArray{
-			Arr: make([]*server.DB_FortuneGod_TurnRate, 0, len(sheet.Rows)),
+		arr:=&server.DB_FortuneGod_TurnRateArray{
+			Arr:make([]*server.DB_FortuneGod_TurnRate, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -2961,37 +4370,61 @@ func AgcConvertDB_FortuneGod_TurnRate(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FortuneGod_TurnRate{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.ReturnRateMin = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.ReturnRateMax = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -3002,6 +4435,11 @@ func AgcConvertDB_FortuneGod_TurnRate(fi, fo string) {
 					}
 				}
 				data.Chance = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -3009,26 +4447,26 @@ func AgcConvertDB_FortuneGod_TurnRate(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FortuneGod_Weight(fi, fo string) {
+	
+func AgcConvertDB_FortuneGod_Weight(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -3042,19 +4480,19 @@ func AgcConvertDB_FortuneGod_Weight(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FortuneGod_WeightArray{
-			Arr: make([]*server.DB_FortuneGod_Weight, 0, len(sheet.Rows)),
+		arr:=&server.DB_FortuneGod_WeightArray{
+			Arr:make([]*server.DB_FortuneGod_Weight, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -3062,29 +4500,46 @@ func AgcConvertDB_FortuneGod_Weight(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FortuneGod_Weight{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -3095,6 +4550,11 @@ func AgcConvertDB_FortuneGod_Weight(fi, fo string) {
 					}
 				}
 				data.Weight = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -3102,26 +4562,26 @@ func AgcConvertDB_FortuneGod_Weight(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_FortuneGod_WeightCondition(fi, fo string) {
+	
+func AgcConvertDB_FortuneGod_WeightCondition(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -3135,19 +4595,19 @@ func AgcConvertDB_FortuneGod_WeightCondition(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_FortuneGod_WeightConditionArray{
-			Arr: make([]*server.DB_FortuneGod_WeightCondition, 0, len(sheet.Rows)),
+		arr:=&server.DB_FortuneGod_WeightConditionArray{
+			Arr:make([]*server.DB_FortuneGod_WeightCondition, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -3155,30 +4615,47 @@ func AgcConvertDB_FortuneGod_WeightCondition(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_FortuneGod_WeightCondition{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.IsNew = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -3189,11 +4666,18 @@ func AgcConvertDB_FortuneGod_WeightCondition(fi, fo string) {
 					}
 				}
 				data.BetScope = arrInt
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -3204,13 +4688,25 @@ func AgcConvertDB_FortuneGod_WeightCondition(fi, fo string) {
 					}
 				}
 				data.TrueCalcRate = arrInt
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.WeightId = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -3218,26 +4714,26 @@ func AgcConvertDB_FortuneGod_WeightCondition(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GamMatchLV(fi, fo string) {
+	
+func AgcConvertDB_GamMatchLV(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -3251,19 +4747,19 @@ func AgcConvertDB_GamMatchLV(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GamMatchLVArray{
-			Arr: make([]*server.DB_GamMatchLV, 0, len(sheet.Rows)),
+		arr:=&server.DB_GamMatchLVArray{
+			Arr:make([]*server.DB_GamMatchLV, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -3271,23 +4767,33 @@ func AgcConvertDB_GamMatchLV(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GamMatchLV{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[1].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[1].String() != "" {
@@ -3298,82 +4804,164 @@ func AgcConvertDB_GamMatchLV(fi, fo string) {
 					}
 				}
 				data.Star = arrInt
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Star2 = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.AwardType1 = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.AwardId1 = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Number1 = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.AwardType2 = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.AwardId2 = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Number2 = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.AwardType3 = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.AwardId3 = int32(temp)
-
-				if len(row.Cells) < 12+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32)
 				data.Number3 = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -3381,26 +4969,26 @@ func AgcConvertDB_GamMatchLV(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GameCoinPool(fi, fo string) {
+	
+func AgcConvertDB_GameCoinPool(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -3414,19 +5002,19 @@ func AgcConvertDB_GameCoinPool(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GameCoinPoolArray{
-			Arr: make([]*server.DB_GameCoinPool, 0, len(sheet.Rows)),
+		arr:=&server.DB_GameCoinPoolArray{
+			Arr:make([]*server.DB_GameCoinPool, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -3434,81 +5022,152 @@ func AgcConvertDB_GameCoinPool(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GameCoinPool{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 64)
 				data.InitValue = int64(temp)
-
-				if len(row.Cells) < 4+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 64)
 				data.LowerLimit = int64(temp)
-
-				if len(row.Cells) < 5+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 64)
 				data.UpperLimit = int64(temp)
-
-				if len(row.Cells) < 6+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 64)
 				data.QuDu = int64(temp)
-
-				if len(row.Cells) < 7+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.UpperOdds = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.UpperOddsMax = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.LowerOdds = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.LowerOddsMax = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.ProfitRate = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -3516,26 +5175,26 @@ func AgcConvertDB_GameCoinPool(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GameFree(fi, fo string) {
+	
+func AgcConvertDB_GameFree(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -3549,19 +5208,19 @@ func AgcConvertDB_GameFree(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GameFreeArray{
-			Arr: make([]*server.DB_GameFree, 0, len(sheet.Rows)),
+		arr:=&server.DB_GameFreeArray{
+			Arr:make([]*server.DB_GameFree, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -3569,187 +5228,365 @@ func AgcConvertDB_GameFree(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GameFree{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Title = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.GameId = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.GameMode = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.FreeMode = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.GameRule = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.GameType = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.SceneType = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.RankType = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.SceneAdd = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
+								
+				
 				data.Desc = row.Cells[11].String()
-
-				if len(row.Cells) < 12+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32)
 				data.ShowType = int32(temp)
-
-				if len(row.Cells) < 13+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[13].String(), 10, 32)
 				data.SubShowType = int32(temp)
-
-				if len(row.Cells) < 14+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 32)
 				data.Flag = int32(temp)
-
-				if len(row.Cells) < 15+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[15].String(), 10, 32)
 				data.TestTakeCoin = int32(temp)
-
-				if len(row.Cells) < 16+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[16].String(), 10, 32)
 				data.ShowId = int32(temp)
-
-				if len(row.Cells) < 17+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<17+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[17].String(), 10, 64)
 				data.LimitCoin = int64(temp)
-
-				if len(row.Cells) < 18+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<18+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[18].String(), 10, 64)
 				data.MaxCoinLimit = int64(temp)
-
-				if len(row.Cells) < 19+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<19+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[19].String(), 10, 32)
 				data.ServiceFee = int32(temp)
-
-				if len(row.Cells) < 20+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<20+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[20].String(), 10, 64)
 				data.LowerThanKick = int64(temp)
-
-				if len(row.Cells) < 21+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<21+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[21].String(), 10, 32)
 				data.BaseScore = int32(temp)
-
-				if len(row.Cells) < 22+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<22+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[22].String(), 10, 32)
 				data.Turn = int32(temp)
-
-				if len(row.Cells) < 23+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<23+1{
 					break
 				}
-
+				
+								
+				
 				data.BetDec = row.Cells[23].String()
-
-				if len(row.Cells) < 24+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<24+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[24].String(), 10, 32)
 				data.Bot = int32(temp)
-
-				if len(row.Cells) < 25+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<25+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[25].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[25].String() != "" {
@@ -3760,25 +5597,48 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.Ai = arrInt
-
-				if len(row.Cells) < 26+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<26+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[26].String(), 10, 32)
 				data.Banker = int32(temp)
-
-				if len(row.Cells) < 27+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<27+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[27].String(), 10, 32)
 				data.MaxChip = int32(temp)
-
-				if len(row.Cells) < 28+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<28+1{
 					break
 				}
-
+				
+								
+				
+				
+				
+				
 				arrStr = strings.Split(row.Cells[28].String(), "|")
 				arrInt64 = nil
 				if len(arrStr) > 0 && row.Cells[28].String() != "" {
@@ -3789,11 +5649,18 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.OtherIntParams = arrInt64
-
-				if len(row.Cells) < 29+1 {
+				
+				
+				
+				if len(row.Cells)<29+1{
 					break
 				}
-
+				
+								
+				
+				
+				
+				
 				arrStr = strings.Split(row.Cells[29].String(), "|")
 				arrInt64 = nil
 				if len(arrStr) > 0 && row.Cells[29].String() != "" {
@@ -3804,11 +5671,18 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.ChessScoreParams = arrInt64
-
-				if len(row.Cells) < 30+1 {
+				
+				
+				
+				if len(row.Cells)<30+1{
 					break
 				}
-
+				
+								
+				
+				
+				
+				
 				arrStr = strings.Split(row.Cells[30].String(), "|")
 				arrInt64 = nil
 				if len(arrStr) > 0 && row.Cells[30].String() != "" {
@@ -3819,11 +5693,16 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.RankScoreParams = arrInt64
-
-				if len(row.Cells) < 31+1 {
+				
+				
+				
+				if len(row.Cells)<31+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[31].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[31].String() != "" {
@@ -3834,11 +5713,18 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.Jackpot = arrInt
-
-				if len(row.Cells) < 32+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<32+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[32].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[32].String() != "" {
@@ -3849,11 +5735,20 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.RobotNumRng = arrInt
-
-				if len(row.Cells) < 33+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<33+1{
 					break
 				}
-
+				
+								
+				
+				
+				
+				
 				arrStr = strings.Split(row.Cells[33].String(), "|")
 				arrInt64 = nil
 				if len(arrStr) > 0 && row.Cells[33].String() != "" {
@@ -3864,11 +5759,18 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.RobotTakeCoin = arrInt64
-
-				if len(row.Cells) < 34+1 {
+				
+				
+				
+				if len(row.Cells)<34+1{
 					break
 				}
-
+				
+								
+				
+				
+				
+				
 				arrStr = strings.Split(row.Cells[34].String(), "|")
 				arrInt64 = nil
 				if len(arrStr) > 0 && row.Cells[34].String() != "" {
@@ -3879,58 +5781,112 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.RobotLimitCoin = arrInt64
-
-				if len(row.Cells) < 35+1 {
+				
+				
+				
+				if len(row.Cells)<35+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[35].String(), 10, 32)
 				data.BetLimit = int32(temp)
-
-				if len(row.Cells) < 36+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<36+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[36].String(), 10, 32)
 				data.TaxRate = int32(temp)
-
-				if len(row.Cells) < 37+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<37+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[37].String(), 10, 32)
 				data.SameIpLimit = int32(temp)
-
-				if len(row.Cells) < 38+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<38+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[38].String(), 10, 32)
 				data.SamePlaceLimit = int32(temp)
-
-				if len(row.Cells) < 39+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<39+1{
 					break
 				}
-
+				
+								
+				
 				data.GameDif = row.Cells[39].String()
-
-				if len(row.Cells) < 40+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<40+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[40].String(), 10, 32)
 				data.GameClass = int32(temp)
-
-				if len(row.Cells) < 41+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<41+1{
 					break
 				}
-
+				
+								
+				
 				data.PlatformName = row.Cells[41].String()
-
-				if len(row.Cells) < 42+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<42+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[42].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[42].String() != "" {
@@ -3941,73 +5897,143 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.MaxBetCoin = arrInt
-
-				if len(row.Cells) < 43+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<43+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[43].String(), 10, 32)
 				data.PlayNumLimit = int32(temp)
-
-				if len(row.Cells) < 44+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<44+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[44].String(), 10, 32)
 				data.CreateRoomNum = int32(temp)
-
-				if len(row.Cells) < 45+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<45+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[45].String(), 10, 32)
 				data.MatchTrueMan = int32(temp)
-
-				if len(row.Cells) < 46+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<46+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[46].String(), 10, 32)
 				data.PlayerWaterRate = int32(temp)
-
-				if len(row.Cells) < 47+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<47+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[47].String(), 10, 32)
 				data.MatchMode = int32(temp)
-
-				if len(row.Cells) < 48+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<48+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[48].String(), 10, 32)
 				data.KillingRate = int32(temp)
-
-				if len(row.Cells) < 49+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<49+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[49].String(), 10, 32)
 				data.BetWaterRate = int32(temp)
-
-				if len(row.Cells) < 50+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<50+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[50].String(), 10, 32)
 				data.Lottery = int32(temp)
-
-				if len(row.Cells) < 51+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<51+1{
 					break
 				}
-
+				
+								
+				
 				data.LotteryConfig = row.Cells[51].String()
-
-				if len(row.Cells) < 52+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<52+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[52].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[52].String() != "" {
@@ -4018,25 +6044,46 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.BalanceLine = arrInt
-
-				if len(row.Cells) < 53+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<53+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[53].String(), 10, 32)
 				data.JackpotRatio = int32(temp)
-
-				if len(row.Cells) < 54+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<54+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[54].String(), 10, 32)
 				data.JackpotMin = int32(temp)
-
-				if len(row.Cells) < 55+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<55+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[55].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[55].String() != "" {
@@ -4047,110 +6094,220 @@ func AgcConvertDB_GameFree(fi, fo string) {
 					}
 				}
 				data.ChessGradeLimit = arrInt
-
-				if len(row.Cells) < 56+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<56+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[56].String(), 10, 32)
 				data.LeaveDeduct = int32(temp)
-
-				if len(row.Cells) < 57+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<57+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[57].String(), 10, 32)
 				data.LeaveCombat = int32(temp)
-
-				if len(row.Cells) < 58+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<58+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[58].String(), 10, 32)
 				data.IntuseCannonMin = int32(temp)
-
-				if len(row.Cells) < 59+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<59+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[59].String(), 10, 32)
 				data.IntuseCannonMax = int32(temp)
-
-				if len(row.Cells) < 60+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<60+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[60].String(), 10, 32)
 				data.BossDrainageBet = int32(temp)
-
-				if len(row.Cells) < 61+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<61+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[61].String(), 10, 32)
 				data.Draw = int32(temp)
-
-				if len(row.Cells) < 62+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<62+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[62].String(), 10, 64)
 				data.Fluctuate = int64(temp)
-
-				if len(row.Cells) < 63+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<63+1{
 					break
 				}
-
+				
+								
+				
 				data.FluctuateMax = row.Cells[63].String()
-
-				if len(row.Cells) < 64+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<64+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[64].String(), 10, 32)
 				data.Ratio = int32(temp)
-
-				if len(row.Cells) < 65+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<65+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[65].String(), 10, 64)
 				data.MinValue = int64(temp)
-
-				if len(row.Cells) < 66+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<66+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[66].String(), 10, 64)
 				data.MaxValue = int64(temp)
-
-				if len(row.Cells) < 67+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<67+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[67].String(), 10, 32)
 				data.DrainageBet = int32(temp)
-
-				if len(row.Cells) < 68+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<68+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[68].String(), 10, 32)
 				data.DiamondDrop = int32(temp)
-
-				if len(row.Cells) < 69+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<69+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[69].String(), 10, 32)
 				data.NegativeMax = int32(temp)
-
-				if len(row.Cells) < 70+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<70+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[70].String(), 10, 32)
 				data.RatioMax = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4158,26 +6315,26 @@ func AgcConvertDB_GameFree(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GameItem(fi, fo string) {
+	
+func AgcConvertDB_GameItem(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4191,19 +6348,19 @@ func AgcConvertDB_GameItem(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GameItemArray{
-			Arr: make([]*server.DB_GameItem, 0, len(sheet.Rows)),
+		arr:=&server.DB_GameItemArray{
+			Arr:make([]*server.DB_GameItem, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -4211,29 +6368,46 @@ func AgcConvertDB_GameItem(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GameItem{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -4244,11 +6418,18 @@ func AgcConvertDB_GameItem(fi, fo string) {
 					}
 				}
 				data.ShowLocation = arrInt
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -4259,18 +6440,32 @@ func AgcConvertDB_GameItem(fi, fo string) {
 					}
 				}
 				data.Classify = arrInt
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Type = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -4281,11 +6476,18 @@ func AgcConvertDB_GameItem(fi, fo string) {
 					}
 				}
 				data.Effect0 = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[6].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[6].String() != "" {
@@ -4296,66 +6498,134 @@ func AgcConvertDB_GameItem(fi, fo string) {
 					}
 				}
 				data.Effect = arrInt
-
-				if len(row.Cells) < 7+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.SaleType = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.SaleGold = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Composition = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.CompositionMax = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.Time = int32(temp)
-
-				if len(row.Cells) < 12+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
+								
+				
 				data.Location = row.Cells[12].String()
-
-				if len(row.Cells) < 13+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
 				data.Describe = row.Cells[13].String()
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 64)
 				data.Num = int64(temp)
-
-				if len(row.Cells) < 15+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
+								
+				
 				data.Value = row.Cells[15].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4363,26 +6633,26 @@ func AgcConvertDB_GameItem(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GameMatchLevel(fi, fo string) {
+	
+func AgcConvertDB_GameMatchLevel(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4396,19 +6666,19 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GameMatchLevelArray{
-			Arr: make([]*server.DB_GameMatchLevel, 0, len(sheet.Rows)),
+		arr:=&server.DB_GameMatchLevelArray{
+			Arr:make([]*server.DB_GameMatchLevel, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -4416,44 +6686,75 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GameMatchLevel{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.GameFreeId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.MatchLevel = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.RobotUpRatio = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -4464,11 +6765,18 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 					}
 				}
 				data.UpGrade = arrInt
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -4479,11 +6787,18 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 					}
 				}
 				data.UpGradeOdds = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[6].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[6].String() != "" {
@@ -4494,11 +6809,18 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 					}
 				}
 				data.DownGrade = arrInt
-
-				if len(row.Cells) < 7+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[7].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[7].String() != "" {
@@ -4509,6 +6831,11 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 					}
 				}
 				data.DownGradeOdds = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4516,26 +6843,26 @@ func AgcConvertDB_GameMatchLevel(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GameRule(fi, fo string) {
+	
+func AgcConvertDB_GameRule(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4549,19 +6876,19 @@ func AgcConvertDB_GameRule(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GameRuleArray{
-			Arr: make([]*server.DB_GameRule, 0, len(sheet.Rows)),
+		arr:=&server.DB_GameRuleArray{
+			Arr:make([]*server.DB_GameRule, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -4569,43 +6896,74 @@ func AgcConvertDB_GameRule(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GameRule{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.GameId = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.GameMode = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -4616,18 +6974,37 @@ func AgcConvertDB_GameRule(fi, fo string) {
 					}
 				}
 				data.Params = arrInt
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
 				data.RuleDesc = row.Cells[5].String()
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
 				data.GameDif = row.Cells[6].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4635,26 +7012,26 @@ func AgcConvertDB_GameRule(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GameSubsidy(fi, fo string) {
+	
+func AgcConvertDB_GameSubsidy(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4668,19 +7045,19 @@ func AgcConvertDB_GameSubsidy(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GameSubsidyArray{
-			Arr: make([]*server.DB_GameSubsidy, 0, len(sheet.Rows)),
+		arr:=&server.DB_GameSubsidyArray{
+			Arr:make([]*server.DB_GameSubsidy, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -4688,39 +7065,68 @@ func AgcConvertDB_GameSubsidy(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GameSubsidy{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.LimitNum = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Get = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Times = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4728,26 +7134,26 @@ func AgcConvertDB_GameSubsidy(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Game_Drop(fi, fo string) {
+	
+func AgcConvertDB_Game_Drop(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4761,19 +7167,19 @@ func AgcConvertDB_Game_Drop(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Game_DropArray{
-			Arr: make([]*server.DB_Game_Drop, 0, len(sheet.Rows)),
+		arr:=&server.DB_Game_DropArray{
+			Arr:make([]*server.DB_Game_Drop, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -4781,58 +7187,103 @@ func AgcConvertDB_Game_Drop(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Game_Drop{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.GameId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Bet = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.ItemName1 = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.ItemId1 = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Rate1 = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[6].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[6].String() != "" {
@@ -4843,6 +7294,11 @@ func AgcConvertDB_Game_Drop(fi, fo string) {
 					}
 				}
 				data.Amount1 = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4850,26 +7306,26 @@ func AgcConvertDB_Game_Drop(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Game_Introduction(fi, fo string) {
+	
+func AgcConvertDB_Game_Introduction(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4883,19 +7339,19 @@ func AgcConvertDB_Game_Introduction(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Game_IntroductionArray{
-			Arr: make([]*server.DB_Game_Introduction, 0, len(sheet.Rows)),
+		arr:=&server.DB_Game_IntroductionArray{
+			Arr:make([]*server.DB_Game_Introduction, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -4903,50 +7359,93 @@ func AgcConvertDB_Game_Introduction(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Game_Introduction{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Type = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.Story = row.Cells[3].String()
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
 				data.AwardTitle = row.Cells[4].String()
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.LevelMax = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -4954,26 +7453,26 @@ func AgcConvertDB_Game_Introduction(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Game_Pet(fi, fo string) {
+	
+func AgcConvertDB_Game_Pet(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -4987,19 +7486,19 @@ func AgcConvertDB_Game_Pet(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Game_PetArray{
-			Arr: make([]*server.DB_Game_Pet, 0, len(sheet.Rows)),
+		arr:=&server.DB_Game_PetArray{
+			Arr:make([]*server.DB_Game_Pet, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5007,80 +7506,151 @@ func AgcConvertDB_Game_Pet(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Game_Pet{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.PetId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Grade = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Level = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Fragment = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Amount = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.AwardType = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Award = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.AwardRate = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5088,26 +7658,26 @@ func AgcConvertDB_Game_Pet(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Game_Role(fi, fo string) {
+	
+func AgcConvertDB_Game_Role(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5121,19 +7691,19 @@ func AgcConvertDB_Game_Role(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Game_RoleArray{
-			Arr: make([]*server.DB_Game_Role, 0, len(sheet.Rows)),
+		arr:=&server.DB_Game_RoleArray{
+			Arr:make([]*server.DB_Game_Role, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5141,80 +7711,151 @@ func AgcConvertDB_Game_Role(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Game_Role{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.RoleId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Grade = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Level = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Fragment = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Amount = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.AwardType = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Award = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.AwardRate = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5222,26 +7863,26 @@ func AgcConvertDB_Game_Role(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_GiftBox(fi, fo string) {
+	
+func AgcConvertDB_GiftBox(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5255,19 +7896,19 @@ func AgcConvertDB_GiftBox(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_GiftBoxArray{
-			Arr: make([]*server.DB_GiftBox, 0, len(sheet.Rows)),
+		arr:=&server.DB_GiftBoxArray{
+			Arr:make([]*server.DB_GiftBox, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5275,51 +7916,73 @@ func AgcConvertDB_GiftBox(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_GiftBox{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Rate = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
-				if row.Cells[2].String() != "" {
-					pairs := strings.Split(row.Cells[2].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[2].String() != ""{
+						pairs := strings.Split(row.Cells[2].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.ItemID = resultMap
 					}
-					data.ItemID = resultMap
-				}
+				
+				
 
 				break
 			}
@@ -5327,26 +7990,26 @@ func AgcConvertDB_GiftBox(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_IceAgeElementRate(fi, fo string) {
+	
+func AgcConvertDB_IceAgeElementRate(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5360,19 +8023,19 @@ func AgcConvertDB_IceAgeElementRate(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_IceAgeElementRateArray{
-			Arr: make([]*server.DB_IceAgeElementRate, 0, len(sheet.Rows)),
+		arr:=&server.DB_IceAgeElementRateArray{
+			Arr:make([]*server.DB_IceAgeElementRate, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5380,36 +8043,60 @@ func AgcConvertDB_IceAgeElementRate(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_IceAgeElementRate{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.ModeName = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.ModeType = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -5420,6 +8107,11 @@ func AgcConvertDB_IceAgeElementRate(fi, fo string) {
 					}
 				}
 				data.Params = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5427,26 +8119,26 @@ func AgcConvertDB_IceAgeElementRate(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Legend_Odds(fi, fo string) {
+	
+func AgcConvertDB_Legend_Odds(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5460,19 +8152,19 @@ func AgcConvertDB_Legend_Odds(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Legend_OddsArray{
-			Arr: make([]*server.DB_Legend_Odds, 0, len(sheet.Rows)),
+		arr:=&server.DB_Legend_OddsArray{
+			Arr:make([]*server.DB_Legend_Odds, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5480,45 +8172,81 @@ func AgcConvertDB_Legend_Odds(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Legend_Odds{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Rateodds3 = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Rateodds4 = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Rateodds5 = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5526,26 +8254,26 @@ func AgcConvertDB_Legend_Odds(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Legend_TurnRate(fi, fo string) {
+	
+func AgcConvertDB_Legend_TurnRate(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5559,19 +8287,19 @@ func AgcConvertDB_Legend_TurnRate(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Legend_TurnRateArray{
-			Arr: make([]*server.DB_Legend_TurnRate, 0, len(sheet.Rows)),
+		arr:=&server.DB_Legend_TurnRateArray{
+			Arr:make([]*server.DB_Legend_TurnRate, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5579,37 +8307,61 @@ func AgcConvertDB_Legend_TurnRate(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Legend_TurnRate{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.ReturnRateMin = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.ReturnRateMax = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -5620,6 +8372,11 @@ func AgcConvertDB_Legend_TurnRate(fi, fo string) {
 					}
 				}
 				data.Chance = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5627,26 +8384,26 @@ func AgcConvertDB_Legend_TurnRate(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Legend_Weight(fi, fo string) {
+	
+func AgcConvertDB_Legend_Weight(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5660,19 +8417,19 @@ func AgcConvertDB_Legend_Weight(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Legend_WeightArray{
-			Arr: make([]*server.DB_Legend_Weight, 0, len(sheet.Rows)),
+		arr:=&server.DB_Legend_WeightArray{
+			Arr:make([]*server.DB_Legend_Weight, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5680,29 +8437,46 @@ func AgcConvertDB_Legend_Weight(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Legend_Weight{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -5713,6 +8487,11 @@ func AgcConvertDB_Legend_Weight(fi, fo string) {
 					}
 				}
 				data.Weight = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5720,26 +8499,26 @@ func AgcConvertDB_Legend_Weight(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Legend_WeightCondition(fi, fo string) {
+	
+func AgcConvertDB_Legend_WeightCondition(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5753,19 +8532,19 @@ func AgcConvertDB_Legend_WeightCondition(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Legend_WeightConditionArray{
-			Arr: make([]*server.DB_Legend_WeightCondition, 0, len(sheet.Rows)),
+		arr:=&server.DB_Legend_WeightConditionArray{
+			Arr:make([]*server.DB_Legend_WeightCondition, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5773,30 +8552,47 @@ func AgcConvertDB_Legend_WeightCondition(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Legend_WeightCondition{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.IsNew = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[2].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[2].String() != "" {
@@ -5807,11 +8603,18 @@ func AgcConvertDB_Legend_WeightCondition(fi, fo string) {
 					}
 				}
 				data.BetScope = arrInt
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -5822,13 +8625,25 @@ func AgcConvertDB_Legend_WeightCondition(fi, fo string) {
 					}
 				}
 				data.TrueCalcRate = arrInt
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.WeightId = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5836,26 +8651,26 @@ func AgcConvertDB_Legend_WeightCondition(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_MatchRank(fi, fo string) {
+	
+func AgcConvertDB_MatchRank(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5869,19 +8684,19 @@ func AgcConvertDB_MatchRank(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_MatchRankArray{
-			Arr: make([]*server.DB_MatchRank, 0, len(sheet.Rows)),
+		arr:=&server.DB_MatchRankArray{
+			Arr:make([]*server.DB_MatchRank, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5889,23 +8704,33 @@ func AgcConvertDB_MatchRank(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_MatchRank{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[1].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[1].String() != "" {
@@ -5916,6 +8741,11 @@ func AgcConvertDB_MatchRank(fi, fo string) {
 					}
 				}
 				data.RankStar = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -5923,26 +8753,26 @@ func AgcConvertDB_MatchRank(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Name(fi, fo string) {
+	
+func AgcConvertDB_Name(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -5956,19 +8786,19 @@ func AgcConvertDB_Name(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_NameArray{
-			Arr: make([]*server.DB_Name, 0, len(sheet.Rows)),
+		arr:=&server.DB_NameArray{
+			Arr:make([]*server.DB_Name, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -5976,24 +8806,39 @@ func AgcConvertDB_Name(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Name{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6001,26 +8846,26 @@ func AgcConvertDB_Name(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_NameBoy(fi, fo string) {
+	
+func AgcConvertDB_NameBoy(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6034,19 +8879,19 @@ func AgcConvertDB_NameBoy(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_NameBoyArray{
-			Arr: make([]*server.DB_NameBoy, 0, len(sheet.Rows)),
+		arr:=&server.DB_NameBoyArray{
+			Arr:make([]*server.DB_NameBoy, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6054,24 +8899,39 @@ func AgcConvertDB_NameBoy(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_NameBoy{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6079,26 +8939,26 @@ func AgcConvertDB_NameBoy(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_NameGirl(fi, fo string) {
+	
+func AgcConvertDB_NameGirl(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6112,19 +8972,19 @@ func AgcConvertDB_NameGirl(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_NameGirlArray{
-			Arr: make([]*server.DB_NameGirl, 0, len(sheet.Rows)),
+		arr:=&server.DB_NameGirlArray{
+			Arr:make([]*server.DB_NameGirl, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6132,24 +8992,39 @@ func AgcConvertDB_NameGirl(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_NameGirl{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6157,26 +9032,26 @@ func AgcConvertDB_NameGirl(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_NewPlayer(fi, fo string) {
+	
+func AgcConvertDB_NewPlayer(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6190,19 +9065,19 @@ func AgcConvertDB_NewPlayer(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_NewPlayerArray{
-			Arr: make([]*server.DB_NewPlayer, 0, len(sheet.Rows)),
+		arr:=&server.DB_NewPlayerArray{
+			Arr:make([]*server.DB_NewPlayer, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6210,81 +9085,152 @@ func AgcConvertDB_NewPlayer(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_NewPlayer{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Condition1 = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 64)
 				data.ConditionValue1 = int64(temp)
-
-				if len(row.Cells) < 4+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Condition2 = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 64)
 				data.ConditionValue2 = int64(temp)
-
-				if len(row.Cells) < 6+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Bond = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.AddType = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 64)
 				data.AddMax = int64(temp)
-
-				if len(row.Cells) < 9+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 64)
 				data.AddMin = int64(temp)
-
-				if len(row.Cells) < 10+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.TianHuRate = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6292,26 +9238,26 @@ func AgcConvertDB_NewPlayer(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_PhoneLottery(fi, fo string) {
+	
+func AgcConvertDB_PhoneLottery(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6325,19 +9271,19 @@ func AgcConvertDB_PhoneLottery(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_PhoneLotteryArray{
-			Arr: make([]*server.DB_PhoneLottery, 0, len(sheet.Rows)),
+		arr:=&server.DB_PhoneLotteryArray{
+			Arr:make([]*server.DB_PhoneLottery, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6345,95 +9291,180 @@ func AgcConvertDB_PhoneLottery(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_PhoneLottery{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Type = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Name = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Item_Id = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Grade = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Odd = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Oddrate1 = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.Odd2 = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Oddrate2 = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Odd3 = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.Oddrate3 = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.Oddrate4 = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6441,26 +9472,26 @@ func AgcConvertDB_PhoneLottery(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_PlayerExp(fi, fo string) {
+	
+func AgcConvertDB_PlayerExp(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6474,19 +9505,19 @@ func AgcConvertDB_PlayerExp(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_PlayerExpArray{
-			Arr: make([]*server.DB_PlayerExp, 0, len(sheet.Rows)),
+		arr:=&server.DB_PlayerExpArray{
+			Arr:make([]*server.DB_PlayerExp, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6494,25 +9525,40 @@ func AgcConvertDB_PlayerExp(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_PlayerExp{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Exp = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6520,26 +9566,26 @@ func AgcConvertDB_PlayerExp(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_PlayerInfo(fi, fo string) {
+	
+func AgcConvertDB_PlayerInfo(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6553,19 +9599,19 @@ func AgcConvertDB_PlayerInfo(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_PlayerInfoArray{
-			Arr: make([]*server.DB_PlayerInfo, 0, len(sheet.Rows)),
+		arr:=&server.DB_PlayerInfoArray{
+			Arr:make([]*server.DB_PlayerInfo, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6573,44 +9619,80 @@ func AgcConvertDB_PlayerInfo(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_PlayerInfo{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
+								
+				
 				data.City = row.Cells[0].String()
-
-				if len(row.Cells) < 1+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Head = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Sex = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Id = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6618,26 +9700,26 @@ func AgcConvertDB_PlayerInfo(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_PlayerType(fi, fo string) {
+	
+func AgcConvertDB_PlayerType(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6651,19 +9733,19 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_PlayerTypeArray{
-			Arr: make([]*server.DB_PlayerType, 0, len(sheet.Rows)),
+		arr:=&server.DB_PlayerTypeArray{
+			Arr:make([]*server.DB_PlayerType, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6671,106 +9753,200 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_PlayerType{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.GameFreeId = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.PayLowerLimit = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.PayUpperLimit = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.GameTimeLowerLimit = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.GameTimeUpperLimit = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.TotalInLowerLimit = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.TotalInUpperLimit = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.OddsLowerLimit = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.OddsUpperLimit = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[11].String(), 10, 32)
 				data.LuckyRate = int32(temp)
-
-				if len(row.Cells) < 12+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32)
 				data.ChangeCardRate = int32(temp)
-
-				if len(row.Cells) < 13+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[13].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[13].String() != "" {
@@ -6781,11 +9957,18 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 					}
 				}
 				data.CardValueRange = arrInt
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[14].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[14].String() != "" {
@@ -6796,11 +9979,18 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 					}
 				}
 				data.MatchPriority = arrInt
-
-				if len(row.Cells) < 15+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[15].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[15].String() != "" {
@@ -6811,18 +10001,32 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 					}
 				}
 				data.ExcludeMatch = arrInt
-
-				if len(row.Cells) < 16+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[16].String(), 10, 32)
 				data.CardLibRate = int32(temp)
-
-				if len(row.Cells) < 17+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<17+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[17].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[17].String() != "" {
@@ -6833,6 +10037,11 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 					}
 				}
 				data.CardLibArr = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6840,26 +10049,26 @@ func AgcConvertDB_PlayerType(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_PotOdd(fi, fo string) {
+	
+func AgcConvertDB_PotOdd(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6873,19 +10082,19 @@ func AgcConvertDB_PotOdd(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_PotOddArray{
-			Arr: make([]*server.DB_PotOdd, 0, len(sheet.Rows)),
+		arr:=&server.DB_PotOddArray{
+			Arr:make([]*server.DB_PotOdd, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6893,35 +10102,59 @@ func AgcConvertDB_PotOdd(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_PotOdd{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Title = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -6932,6 +10165,11 @@ func AgcConvertDB_PotOdd(fi, fo string) {
 					}
 				}
 				data.VipOdd = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -6939,26 +10177,26 @@ func AgcConvertDB_PotOdd(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_PropExchange(fi, fo string) {
+	
+func AgcConvertDB_PropExchange(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -6972,19 +10210,19 @@ func AgcConvertDB_PropExchange(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_PropExchangeArray{
-			Arr: make([]*server.DB_PropExchange, 0, len(sheet.Rows)),
+		arr:=&server.DB_PropExchangeArray{
+			Arr:make([]*server.DB_PropExchange, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -6992,77 +10230,106 @@ func AgcConvertDB_PropExchange(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_PropExchange{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.Group = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
-				if row.Cells[2].String() != "" {
-					pairs := strings.Split(row.Cells[2].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[2].String() != ""{
+						pairs := strings.Split(row.Cells[2].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.Cost = resultMap
 					}
-					data.Cost = resultMap
-				}
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
-				if row.Cells[3].String() != "" {
-					pairs := strings.Split(row.Cells[3].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[3].String() != ""{
+						pairs := strings.Split(row.Cells[3].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.Gain = resultMap
 					}
-					data.Gain = resultMap
-				}
+				
+				
 
 				break
 			}
@@ -7070,26 +10337,26 @@ func AgcConvertDB_PropExchange(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_RankCycle(fi, fo string) {
+	
+func AgcConvertDB_RankCycle(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7103,19 +10370,19 @@ func AgcConvertDB_RankCycle(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_RankCycleArray{
-			Arr: make([]*server.DB_RankCycle, 0, len(sheet.Rows)),
+		arr:=&server.DB_RankCycleArray{
+			Arr:make([]*server.DB_RankCycle, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7123,30 +10390,52 @@ func AgcConvertDB_RankCycle(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_RankCycle{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Start = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.End = row.Cells[2].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7154,26 +10443,26 @@ func AgcConvertDB_RankCycle(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_RankLevel(fi, fo string) {
+	
+func AgcConvertDB_RankLevel(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7187,19 +10476,19 @@ func AgcConvertDB_RankLevel(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_RankLevelArray{
-			Arr: make([]*server.DB_RankLevel, 0, len(sheet.Rows)),
+		arr:=&server.DB_RankLevelArray{
+			Arr:make([]*server.DB_RankLevel, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7207,45 +10496,81 @@ func AgcConvertDB_RankLevel(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_RankLevel{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.RankType = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Level = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[3].String()
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 64)
 				data.Score = int64(temp)
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7253,26 +10578,26 @@ func AgcConvertDB_RankLevel(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_RankReward(fi, fo string) {
+	
+func AgcConvertDB_RankReward(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7286,19 +10611,19 @@ func AgcConvertDB_RankReward(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_RankRewardArray{
-			Arr: make([]*server.DB_RankReward, 0, len(sheet.Rows)),
+		arr:=&server.DB_RankRewardArray{
+			Arr:make([]*server.DB_RankReward, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7306,74 +10631,138 @@ func AgcConvertDB_RankReward(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_RankReward{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.RankType = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Level = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Award1Id = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Award1Num = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.Award2Id = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.Award2Num = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 32)
 				data.Award3Id = int32(temp)
-
-				if len(row.Cells) < 8+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Award3Num = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7381,26 +10770,26 @@ func AgcConvertDB_RankReward(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Sensitive_Words(fi, fo string) {
+	
+func AgcConvertDB_Sensitive_Words(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7414,19 +10803,19 @@ func AgcConvertDB_Sensitive_Words(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_Sensitive_WordsArray{
-			Arr: make([]*server.DB_Sensitive_Words, 0, len(sheet.Rows)),
+		arr:=&server.DB_Sensitive_WordsArray{
+			Arr:make([]*server.DB_Sensitive_Words, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7434,24 +10823,39 @@ func AgcConvertDB_Sensitive_Words(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Sensitive_Words{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Sensitive_Words = row.Cells[1].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7459,26 +10863,26 @@ func AgcConvertDB_Sensitive_Words(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_SlotRateWeight(fi, fo string) {
+	
+func AgcConvertDB_SlotRateWeight(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7492,19 +10896,19 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_SlotRateWeightArray{
-			Arr: make([]*server.DB_SlotRateWeight, 0, len(sheet.Rows)),
+		arr:=&server.DB_SlotRateWeightArray{
+			Arr:make([]*server.DB_SlotRateWeight, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7512,37 +10916,61 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_SlotRateWeight{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.GameFreeId = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Pos = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[3].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[3].String() != "" {
@@ -7553,11 +10981,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.NormCol1 = arrInt
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -7568,11 +11003,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.NormCol2 = arrInt
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -7583,11 +11025,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.NormCol3 = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[6].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[6].String() != "" {
@@ -7598,11 +11047,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.NormCol4 = arrInt
-
-				if len(row.Cells) < 7+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[7].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[7].String() != "" {
@@ -7613,11 +11069,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.NormCol5 = arrInt
-
-				if len(row.Cells) < 8+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[8].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[8].String() != "" {
@@ -7628,11 +11091,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.FreeCol1 = arrInt
-
-				if len(row.Cells) < 9+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[9].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[9].String() != "" {
@@ -7643,11 +11113,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.FreeCol2 = arrInt
-
-				if len(row.Cells) < 10+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[10].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[10].String() != "" {
@@ -7658,11 +11135,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.FreeCol3 = arrInt
-
-				if len(row.Cells) < 11+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[11].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[11].String() != "" {
@@ -7673,11 +11157,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.FreeCol4 = arrInt
-
-				if len(row.Cells) < 12+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[12].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[12].String() != "" {
@@ -7688,11 +11179,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.FreeCol5 = arrInt
-
-				if len(row.Cells) < 13+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[13].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[13].String() != "" {
@@ -7703,11 +11201,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.MaryOut = arrInt
-
-				if len(row.Cells) < 14+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[14].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[14].String() != "" {
@@ -7718,11 +11223,18 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.MaryMid = arrInt
-
-				if len(row.Cells) < 15+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[15].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[15].String() != "" {
@@ -7733,6 +11245,11 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 					}
 				}
 				data.JackPot = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7740,26 +11257,26 @@ func AgcConvertDB_SlotRateWeight(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_SystemChance(fi, fo string) {
+	
+func AgcConvertDB_SystemChance(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7773,19 +11290,19 @@ func AgcConvertDB_SystemChance(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_SystemChanceArray{
-			Arr: make([]*server.DB_SystemChance, 0, len(sheet.Rows)),
+		arr:=&server.DB_SystemChanceArray{
+			Arr:make([]*server.DB_SystemChance, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7793,45 +11310,81 @@ func AgcConvertDB_SystemChance(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_SystemChance{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Desc = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.ChanceType = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.Coin = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.Rate = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7839,26 +11392,26 @@ func AgcConvertDB_SystemChance(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Task(fi, fo string) {
+	
+func AgcConvertDB_Task(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -7872,19 +11425,19 @@ func AgcConvertDB_Task(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_TaskArray{
-			Arr: make([]*server.DB_Task, 0, len(sheet.Rows)),
+		arr:=&server.DB_TaskArray{
+			Arr:make([]*server.DB_Task, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -7892,84 +11445,136 @@ func AgcConvertDB_Task(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Task{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.ActivityType = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[4].String(), 10, 32)
 				data.TaskType = int32(temp)
-
-				if len(row.Cells) < 5+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 64)
 				data.TargetTimes = int64(temp)
-
-				if len(row.Cells) < 6+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 64)
 				data.FinishTimes = int64(temp)
-
-				if len(row.Cells) < 7+1 {
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
-				if row.Cells[7].String() != "" {
-					pairs := strings.Split(row.Cells[7].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[7].String() != ""{
+						pairs := strings.Split(row.Cells[7].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.Award = resultMap
 					}
-					data.Award = resultMap
-				}
-
-				if len(row.Cells) < 8+1 {
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.GameType = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[9].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[9].String() != "" {
@@ -7980,6 +11585,11 @@ func AgcConvertDB_Task(fi, fo string) {
 					}
 				}
 				data.Position = arrInt
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -7987,26 +11597,26 @@ func AgcConvertDB_Task(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_ThirdPlatformGameMapping(fi, fo string) {
+	
+func AgcConvertDB_ThirdPlatformGameMapping(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -8020,19 +11630,19 @@ func AgcConvertDB_ThirdPlatformGameMapping(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_ThirdPlatformGameMappingArray{
-			Arr: make([]*server.DB_ThirdPlatformGameMapping, 0, len(sheet.Rows)),
+		arr:=&server.DB_ThirdPlatformGameMappingArray{
+			Arr:make([]*server.DB_ThirdPlatformGameMapping, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -8040,57 +11650,107 @@ func AgcConvertDB_ThirdPlatformGameMapping(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_ThirdPlatformGameMapping{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
 				data.SystemGameID = int32(temp)
-
-				if len(row.Cells) < 2+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.ThirdPlatformName = row.Cells[2].String()
-
-				if len(row.Cells) < 3+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
+								
+				
 				data.ThirdGameID = row.Cells[3].String()
-
-				if len(row.Cells) < 4+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
 				data.Desc = row.Cells[4].String()
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
 				data.ScreenOrientationType = int32(temp)
-
-				if len(row.Cells) < 6+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.ThirdID = int32(temp)
+				
+								
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -8098,26 +11758,26 @@ func AgcConvertDB_ThirdPlatformGameMapping(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_Tips(fi, fo string) {
+	
+func AgcConvertDB_Tips(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -8131,19 +11791,19 @@ func AgcConvertDB_Tips(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_TipsArray{
-			Arr: make([]*server.DB_Tips, 0, len(sheet.Rows)),
+		arr:=&server.DB_TipsArray{
+			Arr:make([]*server.DB_Tips, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -8151,23 +11811,33 @@ func AgcConvertDB_Tips(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_Tips{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[1].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[1].String() != "" {
@@ -8178,12 +11848,24 @@ func AgcConvertDB_Tips(fi, fo string) {
 					}
 				}
 				data.GameId = arrInt
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
+								
+				
 				data.Des = row.Cells[2].String()
+				
+				
+				
+				
+				
+				
 
 				break
 			}
@@ -8191,26 +11873,26 @@ func AgcConvertDB_Tips(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
-
-func AgcConvertDB_VIP(fi, fo string) {
+	
+func AgcConvertDB_VIP(fi,fo string) {
 	xlsxFile, err := xlsx.OpenFile(fi)
 	if err != nil {
 		fmt.Println("excel file open error:", err, "filename:", fi)
@@ -8224,19 +11906,19 @@ func AgcConvertDB_VIP(fi, fo string) {
 		fmt.Println("stack--->", string(buf[:lens]))
 	}
 	for _, sheet := range xlsxFile.Sheets {
-		arr := &server.DB_VIPArray{
-			Arr: make([]*server.DB_VIP, 0, len(sheet.Rows)),
+		arr:=&server.DB_VIPArray{
+			Arr:make([]*server.DB_VIP, 0, len(sheet.Rows)),
 		}
 
 		for i, row := range sheet.Rows {
 			if i <= 1 {
 				continue
 			}
-
+			
 			if len(row.Cells) == 0 {
 				break
 			}
-
+			
 			temp := int64(0)
 			var arrInt []int32
 			var arrInt64 []int64
@@ -8244,43 +11926,74 @@ func AgcConvertDB_VIP(fi, fo string) {
 			var _ = arrInt
 			var _ = arrStr
 			var _ = arrInt64
-
+			
 			temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 			data := &server.DB_VIP{}
 
 			for {
-
-				if len(row.Cells) < 0+1 {
+				
+				if len(row.Cells)<0+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
 				data.Id = int32(temp)
-
-				if len(row.Cells) < 1+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<1+1{
 					break
 				}
-
+				
+								
+				
 				data.Name = row.Cells[1].String()
-
-				if len(row.Cells) < 2+1 {
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<2+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[2].String(), 10, 32)
 				data.Count = int32(temp)
-
-				if len(row.Cells) < 3+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<3+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32)
 				data.VipExp = int32(temp)
-
-				if len(row.Cells) < 4+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<4+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[4].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[4].String() != "" {
@@ -8291,11 +12004,18 @@ func AgcConvertDB_VIP(fi, fo string) {
 					}
 				}
 				data.Privilege1 = arrInt
-
-				if len(row.Cells) < 5+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<5+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[5].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[5].String() != "" {
@@ -8306,18 +12026,32 @@ func AgcConvertDB_VIP(fi, fo string) {
 					}
 				}
 				data.Privilege2 = arrInt
-
-				if len(row.Cells) < 6+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<6+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
 				data.ShopId2 = int32(temp)
-
-				if len(row.Cells) < 7+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<7+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[7].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[7].String() != "" {
@@ -8328,79 +12062,135 @@ func AgcConvertDB_VIP(fi, fo string) {
 					}
 				}
 				data.Privilege3 = arrInt
-
-				if len(row.Cells) < 8+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<8+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[8].String(), 10, 32)
 				data.Privilege4 = int32(temp)
-
-				if len(row.Cells) < 9+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<9+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32)
 				data.Privilege5 = int32(temp)
-
-				if len(row.Cells) < 10+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<10+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[10].String(), 10, 32)
 				data.Privilege6 = int32(temp)
-
-				if len(row.Cells) < 11+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<11+1{
 					break
 				}
-
-				if row.Cells[11].String() != "" {
-					pairs := strings.Split(row.Cells[11].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[11].String() != ""{
+						pairs := strings.Split(row.Cells[11].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.Privilege7 = resultMap
 					}
-					data.Privilege7 = resultMap
-				}
-
-				if len(row.Cells) < 12+1 {
+				
+				
+				if len(row.Cells)<12+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32)
 				data.Privilege7Price = int32(temp)
-
-				if len(row.Cells) < 13+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<13+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[13].String(), 10, 32)
 				data.ShopId7 = int32(temp)
-
-				if len(row.Cells) < 14+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<14+1{
 					break
 				}
-
+				
 				temp, _ = strconv.ParseInt(row.Cells[14].String(), 10, 32)
 				data.Privilege8 = int32(temp)
-
-				if len(row.Cells) < 15+1 {
+				
+								
+				
+				
+				
+				
+				
+				
+				if len(row.Cells)<15+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[15].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[15].String() != "" {
@@ -8411,11 +12201,18 @@ func AgcConvertDB_VIP(fi, fo string) {
 					}
 				}
 				data.Param = arrInt
-
-				if len(row.Cells) < 16+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<16+1{
 					break
 				}
-
+				
+								
+				
+				
 				arrStr = strings.Split(row.Cells[16].String(), "|")
 				arrInt = nil
 				if len(arrStr) > 0 && row.Cells[16].String() != "" {
@@ -8426,41 +12223,60 @@ func AgcConvertDB_VIP(fi, fo string) {
 					}
 				}
 				data.RewardOutlineID = arrInt
-
-				if len(row.Cells) < 17+1 {
+				
+				
+				
+				
+				
+				if len(row.Cells)<17+1{
 					break
 				}
-
-				if row.Cells[17].String() != "" {
-					pairs := strings.Split(row.Cells[17].String(), ";")
-					resultMap := make(map[int64]int64)
-					for _, pair := range pairs {
-						kv := strings.Split(pair, ",")
-						key, err := strconv.ParseInt(kv[0], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[0])
-							continue
+				
+								
+				
+				
+				
+				
+				
+					if row.Cells[17].String() != ""{
+						pairs := strings.Split(row.Cells[17].String(), ";")
+						resultMap := make(map[int64]int64)
+						for _, pair := range pairs {
+							kv := strings.Split(pair, ",")
+							key, err := strconv.ParseInt(kv[0], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[0])
+								continue
+							}
+							value, err := strconv.ParseInt(kv[1], 10, 64)
+							if err != nil {
+								// 错误处理
+								fmt.Println("无法转换为int64:", kv[1])
+								continue
+							}
+							resultMap[key] = value
 						}
-						value, err := strconv.ParseInt(kv[1], 10, 64)
-						if err != nil {
-							// 错误处理
-							fmt.Println("无法转换为int64:", kv[1])
-							continue
-						}
-						resultMap[key] = value
+						data.Award = resultMap
 					}
-					data.Award = resultMap
-				}
-
-				if len(row.Cells) < 18+1 {
+				
+				
+				if len(row.Cells)<18+1{
 					break
 				}
-
+				
+								
+				
+				
+				
 				if row.Cells[18].String() != "" {
 					arrStr = strings.Split(row.Cells[18].String(), "|")
 					data.ParamName = arrStr
 				}
+				
+				
+				
+				
 
 				break
 			}
@@ -8468,151 +12284,152 @@ func AgcConvertDB_VIP(fi, fo string) {
 		}
 
 		byteData, err := proto.Marshal(arr)
-		if err == nil {
+		if err == nil{
 			err := os.WriteFile(fo, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
+               fmt.Println(err)
+            }
 		}
-
+		
 		byteData, err = json.MarshalIndent(arr, "", "\t")
 		if err == nil {
 			foJson := strings.Replace(fo, ".dat", ".json", -1)
 			err := os.WriteFile(foJson, byteData, os.ModePerm)
 			if err != nil {
-				fmt.Println(err)
-			}
-		}
+            	fmt.Println(err)
+            }
+		}		
 		break //only fetch first sheet
 	}
 }
+	
 
-func main() {
+func main(){
 
-	AgcConvertDB_ActSign(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ActSign.xlsx`, `..\..\data\DB_ActSign.dat`)
+	AgcConvertDB_ActSign(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ActSign.xlsx`,`..\..\data\DB_ActSign.dat`)
 
-	AgcConvertDB_Activity1(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Activity1.xlsx`, `..\..\data\DB_Activity1.dat`)
+	AgcConvertDB_Activity1(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Activity1.xlsx`,`..\..\data\DB_Activity1.dat`)
 
-	AgcConvertDB_AnimalColor(`D:\trunk\src\mongo.games.com\game\xlsx\DB_AnimalColor.xlsx`, `..\..\data\DB_AnimalColor.dat`)
+	AgcConvertDB_AnimalColor(`D:\trunk\src\mongo.games.com\game\xlsx\DB_AnimalColor.xlsx`,`..\..\data\DB_AnimalColor.dat`)
 
-	AgcConvertDB_ArtilleryRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ArtilleryRate.xlsx`, `..\..\data\DB_ArtilleryRate.dat`)
+	AgcConvertDB_ArtilleryRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ArtilleryRate.xlsx`,`..\..\data\DB_ArtilleryRate.dat`)
 
-	AgcConvertDB_ArtillerySkin(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ArtillerySkin.xlsx`, `..\..\data\DB_ArtillerySkin.dat`)
+	AgcConvertDB_ArtillerySkin(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ArtillerySkin.xlsx`,`..\..\data\DB_ArtillerySkin.dat`)
 
-	AgcConvertDB_BlackWhite(`D:\trunk\src\mongo.games.com\game\xlsx\DB_BlackWhite.xlsx`, `..\..\data\DB_BlackWhite.dat`)
+	AgcConvertDB_BlackWhite(`D:\trunk\src\mongo.games.com\game\xlsx\DB_BlackWhite.xlsx`,`..\..\data\DB_BlackWhite.dat`)
 
-	AgcConvertDB_CardsJD(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CardsJD.xlsx`, `..\..\data\DB_CardsJD.dat`)
+	AgcConvertDB_CardsJD(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CardsJD.xlsx`,`..\..\data\DB_CardsJD.dat`)
 
-	AgcConvertDB_CardsYuLe(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CardsYuLe.xlsx`, `..\..\data\DB_CardsYuLe.dat`)
+	AgcConvertDB_CardsYuLe(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CardsYuLe.xlsx`,`..\..\data\DB_CardsYuLe.dat`)
 
-	AgcConvertDB_ChessBilledRules(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ChessBilledRules.xlsx`, `..\..\data\DB_ChessBilledRules.dat`)
+	AgcConvertDB_ChessBilledRules(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ChessBilledRules.xlsx`,`..\..\data\DB_ChessBilledRules.dat`)
 
-	AgcConvertDB_ChessMatchRules(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ChessMatchRules.xlsx`, `..\..\data\DB_ChessMatchRules.dat`)
+	AgcConvertDB_ChessMatchRules(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ChessMatchRules.xlsx`,`..\..\data\DB_ChessMatchRules.dat`)
 
-	AgcConvertDB_ChessRank(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ChessRank.xlsx`, `..\..\data\DB_ChessRank.dat`)
+	AgcConvertDB_ChessRank(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ChessRank.xlsx`,`..\..\data\DB_ChessRank.dat`)
 
-	AgcConvertDB_ClientVer(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ClientVer.xlsx`, `..\..\data\DB_ClientVer.dat`)
+	AgcConvertDB_ClientVer(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ClientVer.xlsx`,`..\..\data\DB_ClientVer.dat`)
 
-	AgcConvertDB_CollectBox(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CollectBox.xlsx`, `..\..\data\DB_CollectBox.dat`)
+	AgcConvertDB_CollectBox(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CollectBox.xlsx`,`..\..\data\DB_CollectBox.dat`)
 
-	AgcConvertDB_CollectBoxGain(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CollectBoxGain.xlsx`, `..\..\data\DB_CollectBoxGain.dat`)
+	AgcConvertDB_CollectBoxGain(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CollectBoxGain.xlsx`,`..\..\data\DB_CollectBoxGain.dat`)
 
-	AgcConvertDB_CrashSearch(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CrashSearch.xlsx`, `..\..\data\DB_CrashSearch.dat`)
+	AgcConvertDB_CrashSearch(`D:\trunk\src\mongo.games.com\game\xlsx\DB_CrashSearch.xlsx`,`..\..\data\DB_CrashSearch.dat`)
 
-	AgcConvertDB_Createroom(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Createroom.xlsx`, `..\..\data\DB_Createroom.dat`)
+	AgcConvertDB_Createroom(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Createroom.xlsx`,`..\..\data\DB_Createroom.dat`)
 
-	AgcConvertDB_Fish(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Fish.xlsx`, `..\..\data\DB_Fish.dat`)
+	AgcConvertDB_Fish(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Fish.xlsx`,`..\..\data\DB_Fish.dat`)
 
-	AgcConvertDB_FishOut(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishOut.xlsx`, `..\..\data\DB_FishOut.dat`)
+	AgcConvertDB_FishOut(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishOut.xlsx`,`..\..\data\DB_FishOut.dat`)
 
-	AgcConvertDB_FishPath(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishPath.xlsx`, `..\..\data\DB_FishPath.dat`)
+	AgcConvertDB_FishPath(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishPath.xlsx`,`..\..\data\DB_FishPath.dat`)
 
-	AgcConvertDB_FishRoom(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishRoom.xlsx`, `..\..\data\DB_FishRoom.dat`)
+	AgcConvertDB_FishRoom(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishRoom.xlsx`,`..\..\data\DB_FishRoom.dat`)
 
-	AgcConvertDB_FishSkill(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishSkill.xlsx`, `..\..\data\DB_FishSkill.dat`)
+	AgcConvertDB_FishSkill(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FishSkill.xlsx`,`..\..\data\DB_FishSkill.dat`)
 
-	AgcConvertDB_FortuneGod_Odds(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Odds.xlsx`, `..\..\data\DB_FortuneGod_Odds.dat`)
+	AgcConvertDB_FortuneGod_Odds(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Odds.xlsx`,`..\..\data\DB_FortuneGod_Odds.dat`)
 
-	AgcConvertDB_FortuneGod_TurnRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_TurnRate.xlsx`, `..\..\data\DB_FortuneGod_TurnRate.dat`)
+	AgcConvertDB_FortuneGod_TurnRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_TurnRate.xlsx`,`..\..\data\DB_FortuneGod_TurnRate.dat`)
 
-	AgcConvertDB_FortuneGod_Weight(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Weight.xlsx`, `..\..\data\DB_FortuneGod_Weight.dat`)
+	AgcConvertDB_FortuneGod_Weight(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Weight.xlsx`,`..\..\data\DB_FortuneGod_Weight.dat`)
 
-	AgcConvertDB_FortuneGod_WeightCondition(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_WeightCondition.xlsx`, `..\..\data\DB_FortuneGod_WeightCondition.dat`)
+	AgcConvertDB_FortuneGod_WeightCondition(`D:\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_WeightCondition.xlsx`,`..\..\data\DB_FortuneGod_WeightCondition.dat`)
 
-	AgcConvertDB_GamMatchLV(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GamMatchLV.xlsx`, `..\..\data\DB_GamMatchLV.dat`)
+	AgcConvertDB_GamMatchLV(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GamMatchLV.xlsx`,`..\..\data\DB_GamMatchLV.dat`)
 
-	AgcConvertDB_GameCoinPool(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameCoinPool.xlsx`, `..\..\data\DB_GameCoinPool.dat`)
+	AgcConvertDB_GameCoinPool(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameCoinPool.xlsx`,`..\..\data\DB_GameCoinPool.dat`)
 
-	AgcConvertDB_GameFree(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameFree.xlsx`, `..\..\data\DB_GameFree.dat`)
+	AgcConvertDB_GameFree(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameFree.xlsx`,`..\..\data\DB_GameFree.dat`)
 
-	AgcConvertDB_GameItem(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameItem.xlsx`, `..\..\data\DB_GameItem.dat`)
+	AgcConvertDB_GameItem(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameItem.xlsx`,`..\..\data\DB_GameItem.dat`)
 
-	AgcConvertDB_GameMatchLevel(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameMatchLevel.xlsx`, `..\..\data\DB_GameMatchLevel.dat`)
+	AgcConvertDB_GameMatchLevel(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameMatchLevel.xlsx`,`..\..\data\DB_GameMatchLevel.dat`)
 
-	AgcConvertDB_GameRule(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameRule.xlsx`, `..\..\data\DB_GameRule.dat`)
+	AgcConvertDB_GameRule(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameRule.xlsx`,`..\..\data\DB_GameRule.dat`)
 
-	AgcConvertDB_GameSubsidy(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameSubsidy.xlsx`, `..\..\data\DB_GameSubsidy.dat`)
+	AgcConvertDB_GameSubsidy(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GameSubsidy.xlsx`,`..\..\data\DB_GameSubsidy.dat`)
 
-	AgcConvertDB_Game_Drop(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Drop.xlsx`, `..\..\data\DB_Game_Drop.dat`)
+	AgcConvertDB_Game_Drop(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Drop.xlsx`,`..\..\data\DB_Game_Drop.dat`)
 
-	AgcConvertDB_Game_Introduction(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Introduction.xlsx`, `..\..\data\DB_Game_Introduction.dat`)
+	AgcConvertDB_Game_Introduction(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Introduction.xlsx`,`..\..\data\DB_Game_Introduction.dat`)
 
-	AgcConvertDB_Game_Pet(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Pet.xlsx`, `..\..\data\DB_Game_Pet.dat`)
+	AgcConvertDB_Game_Pet(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Pet.xlsx`,`..\..\data\DB_Game_Pet.dat`)
 
-	AgcConvertDB_Game_Role(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Role.xlsx`, `..\..\data\DB_Game_Role.dat`)
+	AgcConvertDB_Game_Role(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Game_Role.xlsx`,`..\..\data\DB_Game_Role.dat`)
 
-	AgcConvertDB_GiftBox(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GiftBox.xlsx`, `..\..\data\DB_GiftBox.dat`)
+	AgcConvertDB_GiftBox(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GiftBox.xlsx`,`..\..\data\DB_GiftBox.dat`)
 
-	AgcConvertDB_IceAgeElementRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_IceAgeElementRate.xlsx`, `..\..\data\DB_IceAgeElementRate.dat`)
+	AgcConvertDB_IceAgeElementRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_IceAgeElementRate.xlsx`,`..\..\data\DB_IceAgeElementRate.dat`)
 
-	AgcConvertDB_Legend_Odds(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Odds.xlsx`, `..\..\data\DB_Legend_Odds.dat`)
+	AgcConvertDB_Legend_Odds(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Odds.xlsx`,`..\..\data\DB_Legend_Odds.dat`)
 
-	AgcConvertDB_Legend_TurnRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_TurnRate.xlsx`, `..\..\data\DB_Legend_TurnRate.dat`)
+	AgcConvertDB_Legend_TurnRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_TurnRate.xlsx`,`..\..\data\DB_Legend_TurnRate.dat`)
 
-	AgcConvertDB_Legend_Weight(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Weight.xlsx`, `..\..\data\DB_Legend_Weight.dat`)
+	AgcConvertDB_Legend_Weight(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Weight.xlsx`,`..\..\data\DB_Legend_Weight.dat`)
 
-	AgcConvertDB_Legend_WeightCondition(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_WeightCondition.xlsx`, `..\..\data\DB_Legend_WeightCondition.dat`)
+	AgcConvertDB_Legend_WeightCondition(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_WeightCondition.xlsx`,`..\..\data\DB_Legend_WeightCondition.dat`)
 
-	AgcConvertDB_MatchRank(`D:\trunk\src\mongo.games.com\game\xlsx\DB_MatchRank.xlsx`, `..\..\data\DB_MatchRank.dat`)
+	AgcConvertDB_MatchRank(`D:\trunk\src\mongo.games.com\game\xlsx\DB_MatchRank.xlsx`,`..\..\data\DB_MatchRank.dat`)
 
-	AgcConvertDB_Name(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Name.xlsx`, `..\..\data\DB_Name.dat`)
+	AgcConvertDB_Name(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Name.xlsx`,`..\..\data\DB_Name.dat`)
 
-	AgcConvertDB_NameBoy(`D:\trunk\src\mongo.games.com\game\xlsx\DB_NameBoy.xlsx`, `..\..\data\DB_NameBoy.dat`)
+	AgcConvertDB_NameBoy(`D:\trunk\src\mongo.games.com\game\xlsx\DB_NameBoy.xlsx`,`..\..\data\DB_NameBoy.dat`)
 
-	AgcConvertDB_NameGirl(`D:\trunk\src\mongo.games.com\game\xlsx\DB_NameGirl.xlsx`, `..\..\data\DB_NameGirl.dat`)
+	AgcConvertDB_NameGirl(`D:\trunk\src\mongo.games.com\game\xlsx\DB_NameGirl.xlsx`,`..\..\data\DB_NameGirl.dat`)
 
-	AgcConvertDB_NewPlayer(`D:\trunk\src\mongo.games.com\game\xlsx\DB_NewPlayer.xlsx`, `..\..\data\DB_NewPlayer.dat`)
+	AgcConvertDB_NewPlayer(`D:\trunk\src\mongo.games.com\game\xlsx\DB_NewPlayer.xlsx`,`..\..\data\DB_NewPlayer.dat`)
 
-	AgcConvertDB_PhoneLottery(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PhoneLottery.xlsx`, `..\..\data\DB_PhoneLottery.dat`)
+	AgcConvertDB_PhoneLottery(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PhoneLottery.xlsx`,`..\..\data\DB_PhoneLottery.dat`)
 
-	AgcConvertDB_PlayerExp(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PlayerExp.xlsx`, `..\..\data\DB_PlayerExp.dat`)
+	AgcConvertDB_PlayerExp(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PlayerExp.xlsx`,`..\..\data\DB_PlayerExp.dat`)
 
-	AgcConvertDB_PlayerInfo(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PlayerInfo.xlsx`, `..\..\data\DB_PlayerInfo.dat`)
+	AgcConvertDB_PlayerInfo(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PlayerInfo.xlsx`,`..\..\data\DB_PlayerInfo.dat`)
 
-	AgcConvertDB_PlayerType(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PlayerType.xlsx`, `..\..\data\DB_PlayerType.dat`)
+	AgcConvertDB_PlayerType(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PlayerType.xlsx`,`..\..\data\DB_PlayerType.dat`)
 
-	AgcConvertDB_PotOdd(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PotOdd.xlsx`, `..\..\data\DB_PotOdd.dat`)
+	AgcConvertDB_PotOdd(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PotOdd.xlsx`,`..\..\data\DB_PotOdd.dat`)
 
-	AgcConvertDB_PropExchange(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PropExchange.xlsx`, `..\..\data\DB_PropExchange.dat`)
+	AgcConvertDB_PropExchange(`D:\trunk\src\mongo.games.com\game\xlsx\DB_PropExchange.xlsx`,`..\..\data\DB_PropExchange.dat`)
 
-	AgcConvertDB_RankCycle(`D:\trunk\src\mongo.games.com\game\xlsx\DB_RankCycle.xlsx`, `..\..\data\DB_RankCycle.dat`)
+	AgcConvertDB_RankCycle(`D:\trunk\src\mongo.games.com\game\xlsx\DB_RankCycle.xlsx`,`..\..\data\DB_RankCycle.dat`)
 
-	AgcConvertDB_RankLevel(`D:\trunk\src\mongo.games.com\game\xlsx\DB_RankLevel.xlsx`, `..\..\data\DB_RankLevel.dat`)
+	AgcConvertDB_RankLevel(`D:\trunk\src\mongo.games.com\game\xlsx\DB_RankLevel.xlsx`,`..\..\data\DB_RankLevel.dat`)
 
-	AgcConvertDB_RankReward(`D:\trunk\src\mongo.games.com\game\xlsx\DB_RankReward.xlsx`, `..\..\data\DB_RankReward.dat`)
+	AgcConvertDB_RankReward(`D:\trunk\src\mongo.games.com\game\xlsx\DB_RankReward.xlsx`,`..\..\data\DB_RankReward.dat`)
 
-	AgcConvertDB_Sensitive_Words(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Sensitive_Words.xlsx`, `..\..\data\DB_Sensitive_Words.dat`)
+	AgcConvertDB_Sensitive_Words(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Sensitive_Words.xlsx`,`..\..\data\DB_Sensitive_Words.dat`)
 
-	AgcConvertDB_SlotRateWeight(`D:\trunk\src\mongo.games.com\game\xlsx\DB_SlotRateWeight.xlsx`, `..\..\data\DB_SlotRateWeight.dat`)
+	AgcConvertDB_SlotRateWeight(`D:\trunk\src\mongo.games.com\game\xlsx\DB_SlotRateWeight.xlsx`,`..\..\data\DB_SlotRateWeight.dat`)
 
-	AgcConvertDB_SystemChance(`D:\trunk\src\mongo.games.com\game\xlsx\DB_SystemChance.xlsx`, `..\..\data\DB_SystemChance.dat`)
+	AgcConvertDB_SystemChance(`D:\trunk\src\mongo.games.com\game\xlsx\DB_SystemChance.xlsx`,`..\..\data\DB_SystemChance.dat`)
 
-	AgcConvertDB_Task(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Task.xlsx`, `..\..\data\DB_Task.dat`)
+	AgcConvertDB_Task(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Task.xlsx`,`..\..\data\DB_Task.dat`)
 
-	AgcConvertDB_ThirdPlatformGameMapping(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ThirdPlatformGameMapping.xlsx`, `..\..\data\DB_ThirdPlatformGameMapping.dat`)
+	AgcConvertDB_ThirdPlatformGameMapping(`D:\trunk\src\mongo.games.com\game\xlsx\DB_ThirdPlatformGameMapping.xlsx`,`..\..\data\DB_ThirdPlatformGameMapping.dat`)
 
-	AgcConvertDB_Tips(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Tips.xlsx`, `..\..\data\DB_Tips.dat`)
+	AgcConvertDB_Tips(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Tips.xlsx`,`..\..\data\DB_Tips.dat`)
 
-	AgcConvertDB_VIP(`D:\trunk\src\mongo.games.com\game\xlsx\DB_VIP.xlsx`, `..\..\data\DB_VIP.dat`)
+	AgcConvertDB_VIP(`D:\trunk\src\mongo.games.com\game\xlsx\DB_VIP.xlsx`,`..\..\data\DB_VIP.dat`)
 
 }
