diff --git a/data/DB_Pigbank_Prop.dat b/data/DB_Pigbank_Prop.dat index 49848a8..608885b 100644 Binary files a/data/DB_Pigbank_Prop.dat and b/data/DB_Pigbank_Prop.dat differ diff --git a/data/DB_Pigbank_Prop.json b/data/DB_Pigbank_Prop.json index 3f155af..58ad0ed 100644 --- a/data/DB_Pigbank_Prop.json +++ b/data/DB_Pigbank_Prop.json @@ -1,579 +1,19 @@ { "Arr": [ - { - "Name": "不是VIP", - "Privilege1": [ - 100000, - 2 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 0, - 0 - ], - "Privilege4": 2, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 1 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, { "Id": 1, - "Name": "VIP1", - "Count": 1000, - "VipExp": 1000, - "Privilege1": [ - 100000, - 100 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 1, - 2 - ], - "Privilege4": 5, - "Privilege6": 2, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 2 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] + "PorpName": "BankMaxCoin", + "PropValue": 150000 }, { "Id": 2, - "Name": "VIP2", - "Count": 2000, - "VipExp": 2000, - "Privilege1": [ - 150000, - 150 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 1, - 2 - ], - "Privilege4": 9, - "Privilege6": 3, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 2 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] + "PorpName": "WinCointRate", + "PropValue": 5 }, { "Id": 3, - "Name": "VIP3", - "Count": 5000, - "VipExp": 5000, - "Privilege1": [ - 200000, - 200 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 2, - 2 - ], - "Privilege4": 13, - "Privilege6": 4, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 3 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 4, - "Name": "VIP4", - "Count": 10000, - "VipExp": 10000, - "Privilege1": [ - 300000, - 250 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 2, - 2 - ], - "Privilege4": 17, - "Privilege6": 5, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 3 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 5, - "Name": "VIP5", - "Count": 20000, - "VipExp": 20000, - "Privilege1": [ - 400000, - 300 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 2, - 2 - ], - "Privilege4": 22, - "Privilege6": 6, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 4 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 6, - "Name": "VIP6", - "Count": 50000, - "VipExp": 50000, - "Privilege1": [ - 500000, - 350 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 2, - 3 - ], - "Privilege4": 27, - "Privilege6": 7, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 4 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 7, - "Name": "VIP7", - "Count": 100000, - "VipExp": 100000, - "Privilege1": [ - 600000, - 400 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 2, - 3 - ], - "Privilege4": 32, - "Privilege6": 8, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 3 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 8, - "Name": "VIP8", - "Count": 200000, - "VipExp": 200000, - "Privilege1": [ - 700000, - 450 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 3, - 3 - ], - "Privilege4": 37, - "Privilege6": 9, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 3 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 9, - "Name": "VIP9", - "Count": 500000, - "VipExp": 500000, - "Privilege1": [ - 800000, - 500 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 3, - 3 - ], - "Privilege4": 42, - "Privilege6": 10, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 4 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 10, - "Name": "VIP10", - "Count": 1000000, - "VipExp": 1000000, - "Privilege1": [ - 900000, - 550 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 3, - 3 - ], - "Privilege4": 47, - "Privilege6": 11, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 4 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 11, - "Name": "VIP11", - "Count": 2000000, - "VipExp": 2000000, - "Privilege1": [ - 1000000, - 600 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 3, - 4 - ], - "Privilege4": 50, - "Privilege6": 12, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 0 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 12, - "Name": "VIP12", - "Count": 5000000, - "VipExp": 5000000, - "Privilege1": [ - 2000000, - 650 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 3, - 4 - ], - "Privilege4": 60, - "Privilege6": 13, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 0 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 13, - "Name": "VIP13", - "Count": 10000000, - "VipExp": 10000000, - "Privilege1": [ - 3000000, - 700 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 4, - 4 - ], - "Privilege4": 70, - "Privilege6": 14, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 0 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 14, - "Name": "VIP14", - "Count": 20000000, - "VipExp": 20000000, - "Privilege1": [ - 4000000, - 750 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 4, - 4 - ], - "Privilege4": 80, - "Privilege6": 15, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 0 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 15, - "Name": "VIP15", - "Count": 50000000, - "VipExp": 50000000, - "Privilege1": [ - 5000000, - 800 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 4, - 4 - ], - "Privilege4": 90, - "Privilege6": 16, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 0 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - { - "Id": 16, - "Name": "VIP16", - "Count": 100000000, - "VipExp": 100000000, - "Privilege1": [ - 6000000, - 850 - ], - "Privilege2": [ - 0, - 0 - ], - "Privilege3": [ - 4, - 4 - ], - "Privilege4": 100, - "Privilege6": 20, - "Privilege8": 1, - "Param": [ - 1, - 1, - 1 - ], - "RewardOutlineID": [ - 0 - ], - "ParamName": [ - "获得专属头像框", - "获得专属炮台", - "更多VIP功能正待开发" - ] - }, - {} + "PorpName": "LoseCoinRate", + "PropValue": 10 + } ] } \ No newline at end of file diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index 6760470..167e164 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7840,25 +7840,9 @@ type DB_Pigbank_Prop struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` - VipExp int32 `protobuf:"varint,4,opt,name=VipExp,proto3" json:"VipExp,omitempty"` - Privilege1 []int32 `protobuf:"varint,5,rep,packed,name=Privilege1,proto3" json:"Privilege1,omitempty"` - Privilege2 []int32 `protobuf:"varint,6,rep,packed,name=Privilege2,proto3" json:"Privilege2,omitempty"` - ShopId2 int32 `protobuf:"varint,7,opt,name=ShopId2,proto3" json:"ShopId2,omitempty"` - Privilege3 []int32 `protobuf:"varint,8,rep,packed,name=Privilege3,proto3" json:"Privilege3,omitempty"` - Privilege4 int32 `protobuf:"varint,9,opt,name=Privilege4,proto3" json:"Privilege4,omitempty"` - Privilege5 int32 `protobuf:"varint,10,opt,name=Privilege5,proto3" json:"Privilege5,omitempty"` - Privilege6 int32 `protobuf:"varint,11,opt,name=Privilege6,proto3" json:"Privilege6,omitempty"` - Privilege7 map[int64]int64 `protobuf:"bytes,12,rep,name=Privilege7,proto3" json:"Privilege7,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Privilege7Price int32 `protobuf:"varint,13,opt,name=Privilege7Price,proto3" json:"Privilege7Price,omitempty"` - ShopId7 int32 `protobuf:"varint,14,opt,name=ShopId7,proto3" json:"ShopId7,omitempty"` - Privilege8 int32 `protobuf:"varint,15,opt,name=Privilege8,proto3" json:"Privilege8,omitempty"` - Param []int32 `protobuf:"varint,16,rep,packed,name=Param,proto3" json:"Param,omitempty"` - RewardOutlineID []int32 `protobuf:"varint,17,rep,packed,name=RewardOutlineID,proto3" json:"RewardOutlineID,omitempty"` - Award map[int64]int64 `protobuf:"bytes,18,rep,name=Award,proto3" json:"Award,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - ParamName []string `protobuf:"bytes,19,rep,name=ParamName,proto3" json:"ParamName,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + PorpName string `protobuf:"bytes,2,opt,name=PorpName,proto3" json:"PorpName,omitempty"` + PropValue int32 `protobuf:"varint,3,opt,name=PropValue,proto3" json:"PropValue,omitempty"` } func (x *DB_Pigbank_Prop) Reset() { @@ -7900,132 +7884,20 @@ func (x *DB_Pigbank_Prop) GetId() int32 { return 0 } -func (x *DB_Pigbank_Prop) GetName() string { +func (x *DB_Pigbank_Prop) GetPorpName() string { if x != nil { - return x.Name + return x.PorpName } return "" } -func (x *DB_Pigbank_Prop) GetCount() int32 { +func (x *DB_Pigbank_Prop) GetPropValue() int32 { if x != nil { - return x.Count + return x.PropValue } return 0 } -func (x *DB_Pigbank_Prop) GetVipExp() int32 { - if x != nil { - return x.VipExp - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetPrivilege1() []int32 { - if x != nil { - return x.Privilege1 - } - return nil -} - -func (x *DB_Pigbank_Prop) GetPrivilege2() []int32 { - if x != nil { - return x.Privilege2 - } - return nil -} - -func (x *DB_Pigbank_Prop) GetShopId2() int32 { - if x != nil { - return x.ShopId2 - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetPrivilege3() []int32 { - if x != nil { - return x.Privilege3 - } - return nil -} - -func (x *DB_Pigbank_Prop) GetPrivilege4() int32 { - if x != nil { - return x.Privilege4 - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetPrivilege5() int32 { - if x != nil { - return x.Privilege5 - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetPrivilege6() int32 { - if x != nil { - return x.Privilege6 - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetPrivilege7() map[int64]int64 { - if x != nil { - return x.Privilege7 - } - return nil -} - -func (x *DB_Pigbank_Prop) GetPrivilege7Price() int32 { - if x != nil { - return x.Privilege7Price - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetShopId7() int32 { - if x != nil { - return x.ShopId7 - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetPrivilege8() int32 { - if x != nil { - return x.Privilege8 - } - return 0 -} - -func (x *DB_Pigbank_Prop) GetParam() []int32 { - if x != nil { - return x.Param - } - return nil -} - -func (x *DB_Pigbank_Prop) GetRewardOutlineID() []int32 { - if x != nil { - return x.RewardOutlineID - } - return nil -} - -func (x *DB_Pigbank_Prop) GetAward() map[int64]int64 { - if x != nil { - return x.Award - } - return nil -} - -func (x *DB_Pigbank_Prop) GetParamName() []string { - if x != nil { - return x.ParamName - } - return nil -} - type DB_Pigbank_PropArray struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -11267,355 +11139,313 @@ var file_pbdata_proto_rawDesc = []byte{ 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, - 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfb, 0x05, - 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, - 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, - 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x47, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, - 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, - 0x6f, 0x70, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, + 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, + 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, + 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, + 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, + 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x22, + 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x6d, 0x0a, 0x0d, + 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x12, 0x44, + 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, + 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, + 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, + 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, + 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, + 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, + 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, + 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, + 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, + 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, + 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, + 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, + 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, + 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, + 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x1a, + 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, - 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, - 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, - 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, - 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x6d, 0x0a, - 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, - 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, - 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, - 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x12, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, 0x0a, 0x0d, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, - 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, - 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, - 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, - 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, - 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, - 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, - 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, - 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x75, 0x63, - 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x75, - 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, - 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, - 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, - 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x12, + 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, + 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, + 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, + 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, + 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, + 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, + 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, + 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, + 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, + 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, + 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, + 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, + 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, + 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, + 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, + 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, + 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, + 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, + 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, + 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, + 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, + 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, + 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, + 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, + 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, - 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, - 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x41, 0x72, - 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, - 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, - 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, - 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, 0x61, 0x69, - 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, - 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, - 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, - 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, - 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, 0x3b, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, - 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, - 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, - 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, - 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x53, 0x65, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, - 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, - 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, - 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, - 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, - 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, - 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, - 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, - 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, - 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, - 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, - 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, - 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, - 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, + 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, + 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, + 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, + 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, + 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe0, 0x05, 0x0a, 0x06, 0x44, + 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, + 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, + 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, + 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, + 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, - 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, - 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, - 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, - 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, - 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, - 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe0, 0x05, 0x0a, 0x06, - 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, - 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, - 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, - 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, - 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, - 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, - 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, + 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, + 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, + 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -11630,7 +11460,7 @@ func file_pbdata_proto_rawDescGZIP() []byte { return file_pbdata_proto_rawDescData } -var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 143) +var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 141) var file_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -11768,13 +11598,11 @@ var file_pbdata_proto_goTypes = []interface{}{ nil, // 133: server.DB_GiftBox.ItemIDEntry nil, // 134: server.DB_GiftCard.RewardsEntry nil, // 135: server.DB_GiftCard.DayRewardsEntry - nil, // 136: server.DB_Pigbank_Prop.Privilege7Entry - nil, // 137: server.DB_Pigbank_Prop.AwardEntry - nil, // 138: server.DB_PropExchange.CostEntry - nil, // 139: server.DB_PropExchange.GainEntry - nil, // 140: server.DB_Task.AwardEntry - nil, // 141: server.DB_VIP.Privilege7Entry - nil, // 142: server.DB_VIP.AwardEntry + nil, // 136: server.DB_PropExchange.CostEntry + nil, // 137: server.DB_PropExchange.GainEntry + nil, // 138: server.DB_Task.AwardEntry + nil, // 139: server.DB_VIP.Privilege7Entry + nil, // 140: server.DB_VIP.AwardEntry } var file_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -11831,34 +11659,32 @@ var file_pbdata_proto_depIdxs = []int32{ 94, // 51: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer 96, // 52: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery 98, // 53: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 136, // 54: server.DB_Pigbank_Prop.Privilege7:type_name -> server.DB_Pigbank_Prop.Privilege7Entry - 137, // 55: server.DB_Pigbank_Prop.Award:type_name -> server.DB_Pigbank_Prop.AwardEntry - 100, // 56: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 102, // 57: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 104, // 58: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo - 106, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 108, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 138, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 139, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 110, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 112, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 114, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 116, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 118, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 120, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 122, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 140, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 124, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 126, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 128, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 141, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 142, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 130, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 77, // [77:77] is the sub-list for method output_type - 77, // [77:77] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 100, // 54: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 102, // 55: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 104, // 56: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo + 106, // 57: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 108, // 58: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 136, // 59: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 137, // 60: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 110, // 61: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 112, // 62: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 114, // 63: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 116, // 64: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 118, // 65: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 120, // 66: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 122, // 67: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 138, // 68: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 124, // 69: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 126, // 70: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 128, // 71: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 139, // 72: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 140, // 73: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 130, // 74: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 75, // [75:75] is the sub-list for method output_type + 75, // [75:75] is the sub-list for method input_type + 75, // [75:75] is the sub-list for extension type_name + 75, // [75:75] is the sub-list for extension extendee + 0, // [0:75] is the sub-list for field type_name } func init() { file_pbdata_proto_init() } @@ -13458,7 +13284,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 143, + NumMessages: 141, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 0150a56..71a7cf1 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1287,41 +1287,9 @@ message DB_Pigbank_Prop { int32 Id = 1; - string Name = 2; + string PorpName = 2; - int32 Count = 3; - - int32 VipExp = 4; - - repeated int32 Privilege1 = 5; - - repeated int32 Privilege2 = 6; - - int32 ShopId2 = 7; - - repeated int32 Privilege3 = 8; - - int32 Privilege4 = 9; - - int32 Privilege5 = 10; - - int32 Privilege6 = 11; - - map Privilege7 = 12; - - int32 Privilege7Price = 13; - - int32 ShopId7 = 14; - - int32 Privilege8 = 15; - - repeated int32 Param = 16; - - repeated int32 RewardOutlineID = 17; - - map Award = 18; - - repeated string ParamName = 19; + int32 PropValue = 3; } diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 36ac51a..09f34d2 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 ( @@ -117,10 +117,14 @@ const ( SPacketID_PACKET_CSWelfRelief SPacketID = 2900 //救济金信息 SPacketID_PACKET_SCWelfRelief SPacketID = 2901 //救济金信息 // 邀请活动 - SPacketID_PACKET_CSInviteInfo SPacketID = 2902 //邀请信息 - SPacketID_PACKET_SCInviteInfo SPacketID = 2903 //邀请信息 - SPacketID_PACKET_CSBindInvite SPacketID = 2904 //绑定邀请人 - SPacketID_PACKET_SCBindInvite SPacketID = 2905 //绑定邀请人 + SPacketID_PACKET_CSInviteInfo SPacketID = 2902 //邀请信息 + SPacketID_PACKET_SCInviteInfo SPacketID = 2903 //邀请信息 + SPacketID_PACKET_CSBindInvite SPacketID = 2904 //绑定邀请人 + SPacketID_PACKET_SCBindInvite SPacketID = 2905 //绑定邀请人 + SPacketID_PACKET_CSPigbankGetInfo SPacketID = 2910 // 存钱罐信息获取 + SPacketID_PACKET_SCPigbankGetInfo SPacketID = 2911 // 存钱罐信息获取 + SPacketID_PACKET_CSPigbankTakeCoin SPacketID = 2912 // 存钱罐领取金币 + SPacketID_PACKET_SCPigbankTakeCoin SPacketID = 2913 // 存钱罐领取金币 ) // Enum value maps for SPacketID. @@ -153,6 +157,10 @@ var ( 2903: "PACKET_SCInviteInfo", 2904: "PACKET_CSBindInvite", 2905: "PACKET_SCBindInvite", + 2910: "PACKET_CSPigbankGetInfo", + 2911: "PACKET_SCPigbankGetInfo", + 2912: "PACKET_CSPigbankTakeCoin", + 2913: "PACKET_SCPigbankTakeCoin", } SPacketID_value = map[string]int32{ "PACKET_SHOP_ZERO": 0, @@ -182,6 +190,10 @@ var ( "PACKET_SCInviteInfo": 2903, "PACKET_CSBindInvite": 2904, "PACKET_SCBindInvite": 2905, + "PACKET_CSPigbankGetInfo": 2910, + "PACKET_SCPigbankGetInfo": 2911, + "PACKET_CSPigbankTakeCoin": 2912, + "PACKET_SCPigbankTakeCoin": 2913, } ) @@ -212,8 +224,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 +273,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 +408,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 +457,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 +592,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 +641,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 +705,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 +863,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 +1070,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 +1119,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 +1199,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 +1248,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 +1391,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 +1430,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 +1510,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 +1549,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 +1597,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 +1636,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 +1724,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 +1763,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 @@ -2327,7 +2339,7 @@ var file_welfare_proto_rawDesc = []byte{ 0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, - 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x2a, 0xd3, 0x06, + 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x2a, 0xcd, 0x07, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, @@ -2381,10 +2393,17 @@ var file_welfare_proto_rawDesc = []byte{ 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd8, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x10, 0xd9, 0x16, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, - 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x10, 0xd9, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xde, + 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, + 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xdf, 0x16, 0x12, + 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, + 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe0, 0x16, 0x12, 0x1d, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe1, 0x16, 0x42, 0x27, 0x5a, + 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index cd25574..fd0f274 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -45,6 +45,11 @@ enum SPacketID { PACKET_SCInviteInfo = 2903;//邀请信息 PACKET_CSBindInvite = 2904;//绑定邀请人 PACKET_SCBindInvite = 2905;//绑定邀请人 + + PACKET_CSPigbankGetInfo = 2910;// 存钱罐信息获取 + PACKET_SCPigbankGetInfo = 2911;// 存钱罐信息获取 + PACKET_CSPigbankTakeCoin = 2912;// 存钱罐领取金币 + PACKET_SCPigbankTakeCoin = 2913;// 存钱罐领取金币 } //救济金领取 diff --git a/tools/xlsx2binary/agc.go b/tools/xlsx2binary/agc.go index 254792a..7190348 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,15 +12,14 @@ 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) @@ -34,19 +33,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 @@ -54,82 +53,46 @@ 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 } @@ -137,26 +100,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) @@ -170,19 +133,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 @@ -190,165 +153,87 @@ 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 } @@ -356,26 +241,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) @@ -389,19 +274,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 @@ -409,46 +294,29 @@ 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() != "" { @@ -459,11 +327,6 @@ func AgcConvertDB_AnimalColor(fi,fo string) { } } data.ColorChance = arrInt - - - - - break } @@ -471,26 +334,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) @@ -504,19 +367,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 @@ -524,67 +387,38 @@ 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 } @@ -592,26 +426,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) @@ -625,19 +459,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 @@ -645,181 +479,94 @@ 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() != "" { @@ -830,108 +577,54 @@ 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 } @@ -939,26 +632,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) @@ -972,19 +665,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 @@ -992,33 +685,23 @@ 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() != "" { @@ -1029,18 +712,11 @@ 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() != "" { @@ -1051,11 +727,6 @@ func AgcConvertDB_BlackWhite(fi,fo string) { } } data.WhiteOdds = arrInt - - - - - break } @@ -1063,26 +734,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) @@ -1096,19 +767,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 @@ -1116,242 +787,122 @@ 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 } @@ -1359,26 +910,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) @@ -1392,19 +943,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 @@ -1412,242 +963,122 @@ 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 } @@ -1655,26 +1086,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) @@ -1688,19 +1119,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 @@ -1708,110 +1139,60 @@ 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 } @@ -1819,26 +1200,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) @@ -1852,19 +1233,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 @@ -1872,89 +1253,51 @@ 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() != "" { @@ -1965,18 +1308,11 @@ 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() != "" { @@ -1987,11 +1323,6 @@ func AgcConvertDB_ChessMatchRules(fi,fo string) { } } data.MatchScoreHightStep = arrInt - - - - - break } @@ -1999,26 +1330,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) @@ -2032,19 +1363,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 @@ -2052,53 +1383,31 @@ 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 } @@ -2106,26 +1415,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) @@ -2139,19 +1448,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 @@ -2159,65 +1468,36 @@ 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 } @@ -2225,26 +1505,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) @@ -2258,19 +1538,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 @@ -2278,73 +1558,51 @@ 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value + + 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 } - data.ItemID = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - + data.ItemID = resultMap + } break } @@ -2352,26 +1610,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) @@ -2385,19 +1643,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 @@ -2405,40 +1663,25 @@ 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 } @@ -2446,26 +1689,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) @@ -2479,19 +1722,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 @@ -2499,54 +1742,32 @@ 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 } @@ -2554,26 +1775,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) @@ -2587,19 +1808,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 @@ -2607,61 +1828,37 @@ 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() != "" { @@ -2672,18 +1869,11 @@ 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() != "" { @@ -2694,11 +1884,6 @@ func AgcConvertDB_Createroom(fi,fo string) { } } data.BetRange = arrInt - - - - - break } @@ -2706,26 +1891,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) @@ -2739,19 +1924,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 @@ -2759,59 +1944,35 @@ 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() != "" { @@ -2822,143 +1983,73 @@ 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() != "" { @@ -2969,169 +2060,85 @@ 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() != "" { @@ -3142,132 +2149,64 @@ 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 } @@ -3275,26 +2214,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) @@ -3308,19 +2247,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 @@ -3328,74 +2267,43 @@ 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() != "" { @@ -3406,18 +2314,11 @@ 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() != "" { @@ -3428,18 +2329,11 @@ 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() != "" { @@ -3450,53 +2344,27 @@ 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 } @@ -3504,26 +2372,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) @@ -3537,19 +2405,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 @@ -3557,54 +2425,32 @@ 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 } @@ -3612,26 +2458,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) @@ -3645,19 +2491,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 @@ -3665,172 +2511,87 @@ 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 } @@ -3838,26 +2599,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) @@ -3871,19 +2632,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 @@ -3891,74 +2652,43 @@ 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() != "" { @@ -3969,18 +2699,11 @@ 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() != "" { @@ -3991,190 +2714,94 @@ 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 } @@ -4182,26 +2809,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) @@ -4215,19 +2842,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 @@ -4235,81 +2862,45 @@ 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 } @@ -4317,26 +2908,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) @@ -4350,19 +2941,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 @@ -4370,61 +2961,37 @@ 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() != "" { @@ -4435,11 +3002,6 @@ func AgcConvertDB_FortuneGod_TurnRate(fi,fo string) { } } data.Chance = arrInt - - - - - break } @@ -4447,26 +3009,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) @@ -4480,19 +3042,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 @@ -4500,46 +3062,29 @@ 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() != "" { @@ -4550,11 +3095,6 @@ func AgcConvertDB_FortuneGod_Weight(fi,fo string) { } } data.Weight = arrInt - - - - - break } @@ -4562,26 +3102,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) @@ -4595,19 +3135,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 @@ -4615,47 +3155,30 @@ 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() != "" { @@ -4666,18 +3189,11 @@ 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() != "" { @@ -4688,25 +3204,13 @@ 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 } @@ -4714,26 +3218,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) @@ -4747,19 +3251,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 @@ -4767,33 +3271,23 @@ 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() != "" { @@ -4804,164 +3298,82 @@ 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 } @@ -4969,26 +3381,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) @@ -5002,19 +3414,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 @@ -5022,180 +3434,95 @@ 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) - - - - - - - - - if len(row.Cells)<12+1{ + + if len(row.Cells) < 12+1 { break } - + temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32) data.CtrlRate = int32(temp) - - - - - - - - - if len(row.Cells)<13+1{ + + if len(row.Cells) < 13+1 { break } - - + temp, _ = strconv.ParseInt(row.Cells[13].String(), 10, 64) data.InitNovicValue = int64(temp) - - - - - - - break } @@ -5203,26 +3530,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) @@ -5236,19 +3563,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 @@ -5256,365 +3583,187 @@ 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() != "" { @@ -5625,48 +3774,25 @@ 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() != "" { @@ -5677,18 +3803,11 @@ 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() != "" { @@ -5699,18 +3818,11 @@ 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() != "" { @@ -5721,16 +3833,11 @@ 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() != "" { @@ -5741,18 +3848,11 @@ 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() != "" { @@ -5763,20 +3863,11 @@ 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() != "" { @@ -5787,18 +3878,11 @@ 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() != "" { @@ -5809,112 +3893,58 @@ 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() != "" { @@ -5925,143 +3955,73 @@ 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() != "" { @@ -6072,46 +4032,25 @@ 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() != "" { @@ -6122,220 +4061,110 @@ 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 } @@ -6343,26 +4172,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) @@ -6376,19 +4205,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 @@ -6396,46 +4225,29 @@ 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() != "" { @@ -6446,18 +4258,11 @@ 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() != "" { @@ -6468,32 +4273,18 @@ 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() != "" { @@ -6504,18 +4295,11 @@ 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() != "" { @@ -6526,134 +4310,66 @@ 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 } @@ -6661,26 +4377,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) @@ -6694,19 +4410,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 @@ -6714,75 +4430,44 @@ 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() != "" { @@ -6793,18 +4478,11 @@ 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() != "" { @@ -6815,18 +4493,11 @@ 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() != "" { @@ -6837,18 +4508,11 @@ 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() != "" { @@ -6859,11 +4523,6 @@ func AgcConvertDB_GameMatchLevel(fi,fo string) { } } data.DownGradeOdds = arrInt - - - - - break } @@ -6871,26 +4530,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) @@ -6904,19 +4563,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 @@ -6924,74 +4583,43 @@ 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() != "" { @@ -7002,37 +4630,18 @@ 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 } @@ -7040,26 +4649,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) @@ -7073,19 +4682,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 @@ -7093,68 +4702,39 @@ 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 } @@ -7162,26 +4742,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) @@ -7195,19 +4775,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 @@ -7215,103 +4795,58 @@ 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() != "" { @@ -7322,11 +4857,6 @@ func AgcConvertDB_Game_Drop(fi,fo string) { } } data.Amount1 = arrInt - - - - - break } @@ -7334,26 +4864,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) @@ -7367,19 +4897,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 @@ -7387,93 +4917,50 @@ 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 } @@ -7481,26 +4968,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) @@ -7514,19 +5001,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 @@ -7534,151 +5021,80 @@ 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 } @@ -7686,26 +5102,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) @@ -7719,19 +5135,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 @@ -7739,151 +5155,80 @@ 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 } @@ -7891,26 +5236,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) @@ -7924,19 +5269,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 @@ -7944,73 +5289,51 @@ 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value + + 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 } - data.ItemID = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - + data.ItemID = resultMap + } break } @@ -8018,26 +5341,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_GiftCard(fi,fo string) { + +func AgcConvertDB_GiftCard(fi, fo string) { xlsxFile, err := xlsx.OpenFile(fi) if err != nil { fmt.Println("excel file open error:", err, "filename:", fi) @@ -8051,19 +5374,19 @@ func AgcConvertDB_GiftCard(fi,fo string) { fmt.Println("stack--->", string(buf[:lens])) } for _, sheet := range xlsxFile.Sheets { - arr:=&server.DB_GiftCardArray{ - Arr:make([]*server.DB_GiftCard, 0, len(sheet.Rows)), + arr := &server.DB_GiftCardArray{ + Arr: make([]*server.DB_GiftCard, 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 @@ -8071,140 +5394,95 @@ func AgcConvertDB_GiftCard(fi,fo string) { var _ = arrInt var _ = arrStr var _ = arrInt64 - + temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32) data := &server.DB_GiftCard{} 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.ShopID = 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 } - - - - - - - - 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 + + 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 } - data.Rewards = resultMap - } - - - if len(row.Cells)<4+1{ - break - } - - - - - - - - if row.Cells[4].String() != ""{ - pairs := strings.Split(row.Cells[4].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 } - data.DayRewards = resultMap + resultMap[key] = value } - - - if len(row.Cells)<5+1{ + data.Rewards = resultMap + } + + if len(row.Cells) < 4+1 { break } - + + if row.Cells[4].String() != "" { + pairs := strings.Split(row.Cells[4].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 + } + data.DayRewards = resultMap + } + + if len(row.Cells) < 5+1 { + break + } + temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32) data.Time = 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() != "" { @@ -8215,11 +5493,6 @@ func AgcConvertDB_GiftCard(fi,fo string) { } } data.Equity = arrInt - - - - - break } @@ -8227,26 +5500,26 @@ func AgcConvertDB_GiftCard(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) @@ -8260,19 +5533,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 @@ -8280,60 +5553,36 @@ 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() != "" { @@ -8344,11 +5593,6 @@ func AgcConvertDB_IceAgeElementRate(fi,fo string) { } } data.Params = arrInt - - - - - break } @@ -8356,26 +5600,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) @@ -8389,19 +5633,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 @@ -8409,81 +5653,45 @@ 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 } @@ -8491,26 +5699,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) @@ -8524,19 +5732,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 @@ -8544,61 +5752,37 @@ 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() != "" { @@ -8609,11 +5793,6 @@ func AgcConvertDB_Legend_TurnRate(fi,fo string) { } } data.Chance = arrInt - - - - - break } @@ -8621,26 +5800,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) @@ -8654,19 +5833,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 @@ -8674,46 +5853,29 @@ 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() != "" { @@ -8724,11 +5886,6 @@ func AgcConvertDB_Legend_Weight(fi,fo string) { } } data.Weight = arrInt - - - - - break } @@ -8736,26 +5893,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) @@ -8769,19 +5926,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 @@ -8789,47 +5946,30 @@ 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() != "" { @@ -8840,18 +5980,11 @@ 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() != "" { @@ -8862,25 +5995,13 @@ 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 } @@ -8888,26 +6009,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) @@ -8921,19 +6042,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 @@ -8941,33 +6062,23 @@ 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() != "" { @@ -8978,11 +6089,6 @@ func AgcConvertDB_MatchRank(fi,fo string) { } } data.RankStar = arrInt - - - - - break } @@ -8990,26 +6096,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) @@ -9023,19 +6129,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 @@ -9043,39 +6149,24 @@ 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 } @@ -9083,26 +6174,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) @@ -9116,19 +6207,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 @@ -9136,39 +6227,24 @@ 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 } @@ -9176,26 +6252,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) @@ -9209,19 +6285,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 @@ -9229,39 +6305,24 @@ 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 } @@ -9269,26 +6330,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) @@ -9302,19 +6363,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 @@ -9322,152 +6383,81 @@ 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 } @@ -9475,26 +6465,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) @@ -9508,19 +6498,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 @@ -9528,180 +6518,95 @@ 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 } @@ -9709,26 +6614,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_PigBank_Diamond(fi,fo string) { + +func AgcConvertDB_PigBank_Diamond(fi, fo string) { xlsxFile, err := xlsx.OpenFile(fi) if err != nil { fmt.Println("excel file open error:", err, "filename:", fi) @@ -9742,19 +6647,19 @@ func AgcConvertDB_PigBank_Diamond(fi,fo string) { fmt.Println("stack--->", string(buf[:lens])) } for _, sheet := range xlsxFile.Sheets { - arr:=&server.DB_PigBank_DiamondArray{ - Arr:make([]*server.DB_PigBank_Diamond, 0, len(sheet.Rows)), + arr := &server.DB_PigBank_DiamondArray{ + Arr: make([]*server.DB_PigBank_Diamond, 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 @@ -9762,68 +6667,39 @@ func AgcConvertDB_PigBank_Diamond(fi,fo string) { var _ = arrInt var _ = arrStr var _ = arrInt64 - + temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32) data := &server.DB_PigBank_Diamond{} 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.BuyCountMin = 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.BuyCountMax = 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.CostDiamond = int32(temp) - - - - - - - - break } @@ -9831,26 +6707,26 @@ func AgcConvertDB_PigBank_Diamond(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_Pigbank_Prop(fi,fo string) { + +func AgcConvertDB_Pigbank_Prop(fi, fo string) { xlsxFile, err := xlsx.OpenFile(fi) if err != nil { fmt.Println("excel file open error:", err, "filename:", fi) @@ -9864,19 +6740,19 @@ func AgcConvertDB_Pigbank_Prop(fi,fo string) { fmt.Println("stack--->", string(buf[:lens])) } for _, sheet := range xlsxFile.Sheets { - arr:=&server.DB_Pigbank_PropArray{ - Arr:make([]*server.DB_Pigbank_Prop, 0, len(sheet.Rows)), + arr := &server.DB_Pigbank_PropArray{ + Arr: make([]*server.DB_Pigbank_Prop, 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 @@ -9884,357 +6760,31 @@ func AgcConvertDB_Pigbank_Prop(fi,fo string) { var _ = arrInt var _ = arrStr var _ = arrInt64 - + temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32) data := &server.DB_Pigbank_Prop{} 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{ + + data.PorpName = row.Cells[1].String() + + 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{ - break - } - - temp, _ = strconv.ParseInt(row.Cells[3].String(), 10, 32) - data.VipExp = int32(temp) - - - - - - - - - if len(row.Cells)<4+1{ - break - } - - - - - arrStr = strings.Split(row.Cells[4].String(), "|") - arrInt = nil - if len(arrStr) > 0 && row.Cells[4].String() != "" { - arrInt = make([]int32, len(arrStr), len(arrStr)) - for i, v := range arrStr { - temp, _ = strconv.ParseInt(strings.TrimSpace(v), 10, 32) - arrInt[i] = int32(temp) - } - } - data.Privilege1 = arrInt - - - - - - if len(row.Cells)<5+1{ - break - } - - - - - arrStr = strings.Split(row.Cells[5].String(), "|") - arrInt = nil - if len(arrStr) > 0 && row.Cells[5].String() != "" { - arrInt = make([]int32, len(arrStr), len(arrStr)) - for i, v := range arrStr { - temp, _ = strconv.ParseInt(strings.TrimSpace(v), 10, 32) - arrInt[i] = int32(temp) - } - } - data.Privilege2 = arrInt - - - - - - 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{ - break - } - - - - - arrStr = strings.Split(row.Cells[7].String(), "|") - arrInt = nil - if len(arrStr) > 0 && row.Cells[7].String() != "" { - arrInt = make([]int32, len(arrStr), len(arrStr)) - for i, v := range arrStr { - temp, _ = strconv.ParseInt(strings.TrimSpace(v), 10, 32) - arrInt[i] = int32(temp) - } - } - data.Privilege3 = arrInt - - - - - - 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{ - break - } - - temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32) - data.Privilege5 = int32(temp) - - - - - - - - - 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{ - 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value - } - data.Privilege7 = resultMap - } - - - 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{ - break - } - - temp, _ = strconv.ParseInt(row.Cells[13].String(), 10, 32) - data.ShopId7 = int32(temp) - - - - - - - - - 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{ - break - } - - - - - arrStr = strings.Split(row.Cells[15].String(), "|") - arrInt = nil - if len(arrStr) > 0 && row.Cells[15].String() != "" { - arrInt = make([]int32, len(arrStr), len(arrStr)) - for i, v := range arrStr { - temp, _ = strconv.ParseInt(strings.TrimSpace(v), 10, 32) - arrInt[i] = int32(temp) - } - } - data.Param = arrInt - - - - - - if len(row.Cells)<16+1{ - break - } - - - - - arrStr = strings.Split(row.Cells[16].String(), "|") - arrInt = nil - if len(arrStr) > 0 && row.Cells[16].String() != "" { - arrInt = make([]int32, len(arrStr), len(arrStr)) - for i, v := range arrStr { - temp, _ = strconv.ParseInt(strings.TrimSpace(v), 10, 32) - arrInt[i] = int32(temp) - } - } - data.RewardOutlineID = arrInt - - - - - - 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value - } - data.Award = resultMap - } - - - if len(row.Cells)<18+1{ - break - } - - - - - - if row.Cells[18].String() != "" { - arrStr = strings.Split(row.Cells[18].String(), "|") - data.ParamName = arrStr - } - - - - + data.PropValue = int32(temp) break } @@ -10242,26 +6792,26 @@ func AgcConvertDB_Pigbank_Prop(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) @@ -10275,19 +6825,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 @@ -10295,40 +6845,25 @@ 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 } @@ -10336,26 +6871,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) @@ -10369,19 +6904,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 @@ -10389,80 +6924,44 @@ 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 } @@ -10470,26 +6969,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) @@ -10503,19 +7002,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 @@ -10523,200 +7022,106 @@ 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() != "" { @@ -10727,18 +7132,11 @@ 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() != "" { @@ -10749,18 +7147,11 @@ 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() != "" { @@ -10771,32 +7162,18 @@ 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() != "" { @@ -10807,11 +7184,6 @@ func AgcConvertDB_PlayerType(fi,fo string) { } } data.CardLibArr = arrInt - - - - - break } @@ -10819,26 +7191,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) @@ -10852,19 +7224,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 @@ -10872,59 +7244,35 @@ 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() != "" { @@ -10935,11 +7283,6 @@ func AgcConvertDB_PotOdd(fi,fo string) { } } data.VipOdd = arrInt - - - - - break } @@ -10947,26 +7290,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) @@ -10980,19 +7323,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 @@ -11000,106 +7343,77 @@ 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value + + 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 } - data.Cost = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - - if len(row.Cells)<3+1{ + data.Cost = resultMap + } + + 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value + + 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 } - data.Gain = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - + data.Gain = resultMap + } break } @@ -11107,26 +7421,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) @@ -11140,19 +7454,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 @@ -11160,52 +7474,30 @@ 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 } @@ -11213,26 +7505,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) @@ -11246,19 +7538,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 @@ -11266,81 +7558,45 @@ 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 } @@ -11348,26 +7604,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) @@ -11381,19 +7637,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 @@ -11401,138 +7657,74 @@ 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 } @@ -11540,26 +7732,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) @@ -11573,19 +7765,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 @@ -11593,39 +7785,24 @@ 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 } @@ -11633,26 +7810,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) @@ -11666,19 +7843,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 @@ -11686,61 +7863,37 @@ 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() != "" { @@ -11751,18 +7904,11 @@ 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() != "" { @@ -11773,18 +7919,11 @@ 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() != "" { @@ -11795,18 +7934,11 @@ 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() != "" { @@ -11817,18 +7949,11 @@ 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() != "" { @@ -11839,18 +7964,11 @@ 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() != "" { @@ -11861,18 +7979,11 @@ 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() != "" { @@ -11883,18 +7994,11 @@ 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() != "" { @@ -11905,18 +8009,11 @@ 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() != "" { @@ -11927,18 +8024,11 @@ 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() != "" { @@ -11949,18 +8039,11 @@ 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() != "" { @@ -11971,18 +8054,11 @@ 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() != "" { @@ -11993,18 +8069,11 @@ 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() != "" { @@ -12015,11 +8084,6 @@ func AgcConvertDB_SlotRateWeight(fi,fo string) { } } data.JackPot = arrInt - - - - - break } @@ -12027,26 +8091,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) @@ -12060,19 +8124,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 @@ -12080,81 +8144,45 @@ 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 } @@ -12162,26 +8190,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) @@ -12195,19 +8223,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 @@ -12215,150 +8243,91 @@ 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)<1+1{ + + if len(row.Cells) < 1+1 { break } - + temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32) data.Order = 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.ActivityType = 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.TaskType = int32(temp) - - - - - - - - - if len(row.Cells)<6+1{ + + if len(row.Cells) < 6+1 { break } - - + temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 64) data.TargetTimes = int64(temp) - - - - - - - - if len(row.Cells)<7+1{ + + if len(row.Cells) < 7+1 { break } - - + temp, _ = strconv.ParseInt(row.Cells[7].String(), 10, 64) data.FinishTimes = int64(temp) - - - - - - - - if len(row.Cells)<8+1{ + + if len(row.Cells) < 8+1 { break } - - - - - - - - if row.Cells[8].String() != ""{ - pairs := strings.Split(row.Cells[8].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 + + if row.Cells[8].String() != "" { + pairs := strings.Split(row.Cells[8].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 } - data.Award = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - - if len(row.Cells)<9+1{ + data.Award = resultMap + } + + if len(row.Cells) < 9+1 { break } - + temp, _ = strconv.ParseInt(row.Cells[9].String(), 10, 32) data.GameType = int32(temp) - - - - - - - - - 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() != "" { @@ -12369,11 +8338,6 @@ func AgcConvertDB_Task(fi,fo string) { } } data.Position = arrInt - - - - - break } @@ -12381,26 +8345,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) @@ -12414,19 +8378,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 @@ -12434,107 +8398,57 @@ 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 } @@ -12542,26 +8456,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) @@ -12575,19 +8489,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 @@ -12595,33 +8509,23 @@ 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() != "" { @@ -12632,24 +8536,12 @@ 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 } @@ -12657,26 +8549,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) @@ -12690,19 +8582,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 @@ -12710,74 +8602,43 @@ 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() != "" { @@ -12788,18 +8649,11 @@ 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() != "" { @@ -12810,32 +8664,18 @@ 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() != "" { @@ -12846,135 +8686,79 @@ 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value + + 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 } - data.Privilege7 = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - - if len(row.Cells)<12+1{ + data.Privilege7 = resultMap + } + + 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() != "" { @@ -12985,18 +8769,11 @@ 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() != "" { @@ -13007,60 +8784,41 @@ 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 - } - value, err := strconv.ParseInt(kv[1], 10, 64) - if err != nil { - // 错误处理 - fmt.Println("无法转换为int64:", kv[1]) - continue - } - resultMap[key] = value + + 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 } - data.Award = resultMap + value, err := strconv.ParseInt(kv[1], 10, 64) + if err != nil { + // 错误处理 + fmt.Println("无法转换为int64:", kv[1]) + continue + } + resultMap[key] = value } - - - if len(row.Cells)<18+1{ + data.Award = resultMap + } + + if len(row.Cells) < 18+1 { break } - - - - - + if row.Cells[18].String() != "" { arrStr = strings.Split(row.Cells[18].String(), "|") data.ParamName = arrStr } - - - - break } @@ -13068,158 +8826,157 @@ 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(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ActSign.xlsx`,`..\..\data\DB_ActSign.dat`) + AgcConvertDB_ActSign(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ActSign.xlsx`, `..\..\data\DB_ActSign.dat`) - AgcConvertDB_Activity1(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Activity1.xlsx`,`..\..\data\DB_Activity1.dat`) + AgcConvertDB_Activity1(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Activity1.xlsx`, `..\..\data\DB_Activity1.dat`) - AgcConvertDB_AnimalColor(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_AnimalColor.xlsx`,`..\..\data\DB_AnimalColor.dat`) + AgcConvertDB_AnimalColor(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_AnimalColor.xlsx`, `..\..\data\DB_AnimalColor.dat`) - AgcConvertDB_ArtilleryRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ArtilleryRate.xlsx`,`..\..\data\DB_ArtilleryRate.dat`) + AgcConvertDB_ArtilleryRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ArtilleryRate.xlsx`, `..\..\data\DB_ArtilleryRate.dat`) - AgcConvertDB_ArtillerySkin(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ArtillerySkin.xlsx`,`..\..\data\DB_ArtillerySkin.dat`) + AgcConvertDB_ArtillerySkin(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ArtillerySkin.xlsx`, `..\..\data\DB_ArtillerySkin.dat`) - AgcConvertDB_BlackWhite(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_BlackWhite.xlsx`,`..\..\data\DB_BlackWhite.dat`) + AgcConvertDB_BlackWhite(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_BlackWhite.xlsx`, `..\..\data\DB_BlackWhite.dat`) - AgcConvertDB_CardsJD(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CardsJD.xlsx`,`..\..\data\DB_CardsJD.dat`) + AgcConvertDB_CardsJD(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CardsJD.xlsx`, `..\..\data\DB_CardsJD.dat`) - AgcConvertDB_CardsYuLe(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CardsYuLe.xlsx`,`..\..\data\DB_CardsYuLe.dat`) + AgcConvertDB_CardsYuLe(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CardsYuLe.xlsx`, `..\..\data\DB_CardsYuLe.dat`) - AgcConvertDB_ChessBilledRules(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ChessBilledRules.xlsx`,`..\..\data\DB_ChessBilledRules.dat`) + AgcConvertDB_ChessBilledRules(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ChessBilledRules.xlsx`, `..\..\data\DB_ChessBilledRules.dat`) - AgcConvertDB_ChessMatchRules(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ChessMatchRules.xlsx`,`..\..\data\DB_ChessMatchRules.dat`) + AgcConvertDB_ChessMatchRules(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ChessMatchRules.xlsx`, `..\..\data\DB_ChessMatchRules.dat`) - AgcConvertDB_ChessRank(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ChessRank.xlsx`,`..\..\data\DB_ChessRank.dat`) + AgcConvertDB_ChessRank(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ChessRank.xlsx`, `..\..\data\DB_ChessRank.dat`) - AgcConvertDB_ClientVer(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ClientVer.xlsx`,`..\..\data\DB_ClientVer.dat`) + AgcConvertDB_ClientVer(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ClientVer.xlsx`, `..\..\data\DB_ClientVer.dat`) - AgcConvertDB_CollectBox(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CollectBox.xlsx`,`..\..\data\DB_CollectBox.dat`) + AgcConvertDB_CollectBox(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CollectBox.xlsx`, `..\..\data\DB_CollectBox.dat`) - AgcConvertDB_CollectBoxGain(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CollectBoxGain.xlsx`,`..\..\data\DB_CollectBoxGain.dat`) + AgcConvertDB_CollectBoxGain(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CollectBoxGain.xlsx`, `..\..\data\DB_CollectBoxGain.dat`) - AgcConvertDB_CrashSearch(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CrashSearch.xlsx`,`..\..\data\DB_CrashSearch.dat`) + AgcConvertDB_CrashSearch(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_CrashSearch.xlsx`, `..\..\data\DB_CrashSearch.dat`) - AgcConvertDB_Createroom(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Createroom.xlsx`,`..\..\data\DB_Createroom.dat`) + AgcConvertDB_Createroom(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Createroom.xlsx`, `..\..\data\DB_Createroom.dat`) - AgcConvertDB_Fish(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Fish.xlsx`,`..\..\data\DB_Fish.dat`) + AgcConvertDB_Fish(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Fish.xlsx`, `..\..\data\DB_Fish.dat`) - AgcConvertDB_FishOut(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishOut.xlsx`,`..\..\data\DB_FishOut.dat`) + AgcConvertDB_FishOut(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishOut.xlsx`, `..\..\data\DB_FishOut.dat`) - AgcConvertDB_FishPath(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishPath.xlsx`,`..\..\data\DB_FishPath.dat`) + AgcConvertDB_FishPath(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishPath.xlsx`, `..\..\data\DB_FishPath.dat`) - AgcConvertDB_FishRoom(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishRoom.xlsx`,`..\..\data\DB_FishRoom.dat`) + AgcConvertDB_FishRoom(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishRoom.xlsx`, `..\..\data\DB_FishRoom.dat`) - AgcConvertDB_FishSkill(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishSkill.xlsx`,`..\..\data\DB_FishSkill.dat`) + AgcConvertDB_FishSkill(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FishSkill.xlsx`, `..\..\data\DB_FishSkill.dat`) - AgcConvertDB_FortuneGod_Odds(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Odds.xlsx`,`..\..\data\DB_FortuneGod_Odds.dat`) + AgcConvertDB_FortuneGod_Odds(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Odds.xlsx`, `..\..\data\DB_FortuneGod_Odds.dat`) - AgcConvertDB_FortuneGod_TurnRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_TurnRate.xlsx`,`..\..\data\DB_FortuneGod_TurnRate.dat`) + AgcConvertDB_FortuneGod_TurnRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_TurnRate.xlsx`, `..\..\data\DB_FortuneGod_TurnRate.dat`) - AgcConvertDB_FortuneGod_Weight(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Weight.xlsx`,`..\..\data\DB_FortuneGod_Weight.dat`) + AgcConvertDB_FortuneGod_Weight(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_Weight.xlsx`, `..\..\data\DB_FortuneGod_Weight.dat`) - AgcConvertDB_FortuneGod_WeightCondition(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_WeightCondition.xlsx`,`..\..\data\DB_FortuneGod_WeightCondition.dat`) + AgcConvertDB_FortuneGod_WeightCondition(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_FortuneGod_WeightCondition.xlsx`, `..\..\data\DB_FortuneGod_WeightCondition.dat`) - AgcConvertDB_GamMatchLV(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GamMatchLV.xlsx`,`..\..\data\DB_GamMatchLV.dat`) + AgcConvertDB_GamMatchLV(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GamMatchLV.xlsx`, `..\..\data\DB_GamMatchLV.dat`) - AgcConvertDB_GameCoinPool(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameCoinPool.xlsx`,`..\..\data\DB_GameCoinPool.dat`) + AgcConvertDB_GameCoinPool(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameCoinPool.xlsx`, `..\..\data\DB_GameCoinPool.dat`) - AgcConvertDB_GameFree(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameFree.xlsx`,`..\..\data\DB_GameFree.dat`) + AgcConvertDB_GameFree(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameFree.xlsx`, `..\..\data\DB_GameFree.dat`) - AgcConvertDB_GameItem(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameItem.xlsx`,`..\..\data\DB_GameItem.dat`) + AgcConvertDB_GameItem(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameItem.xlsx`, `..\..\data\DB_GameItem.dat`) - AgcConvertDB_GameMatchLevel(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameMatchLevel.xlsx`,`..\..\data\DB_GameMatchLevel.dat`) + AgcConvertDB_GameMatchLevel(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameMatchLevel.xlsx`, `..\..\data\DB_GameMatchLevel.dat`) - AgcConvertDB_GameRule(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameRule.xlsx`,`..\..\data\DB_GameRule.dat`) + AgcConvertDB_GameRule(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameRule.xlsx`, `..\..\data\DB_GameRule.dat`) - AgcConvertDB_GameSubsidy(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameSubsidy.xlsx`,`..\..\data\DB_GameSubsidy.dat`) + AgcConvertDB_GameSubsidy(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GameSubsidy.xlsx`, `..\..\data\DB_GameSubsidy.dat`) - AgcConvertDB_Game_Drop(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Drop.xlsx`,`..\..\data\DB_Game_Drop.dat`) + AgcConvertDB_Game_Drop(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Drop.xlsx`, `..\..\data\DB_Game_Drop.dat`) - AgcConvertDB_Game_Introduction(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Introduction.xlsx`,`..\..\data\DB_Game_Introduction.dat`) + AgcConvertDB_Game_Introduction(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Introduction.xlsx`, `..\..\data\DB_Game_Introduction.dat`) - AgcConvertDB_Game_Pet(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Pet.xlsx`,`..\..\data\DB_Game_Pet.dat`) + AgcConvertDB_Game_Pet(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Pet.xlsx`, `..\..\data\DB_Game_Pet.dat`) - AgcConvertDB_Game_Role(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Role.xlsx`,`..\..\data\DB_Game_Role.dat`) + AgcConvertDB_Game_Role(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Game_Role.xlsx`, `..\..\data\DB_Game_Role.dat`) - AgcConvertDB_GiftBox(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GiftBox.xlsx`,`..\..\data\DB_GiftBox.dat`) + AgcConvertDB_GiftBox(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GiftBox.xlsx`, `..\..\data\DB_GiftBox.dat`) - AgcConvertDB_GiftCard(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GiftCard.xlsx`,`..\..\data\DB_GiftCard.dat`) + AgcConvertDB_GiftCard(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_GiftCard.xlsx`, `..\..\data\DB_GiftCard.dat`) - AgcConvertDB_IceAgeElementRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_IceAgeElementRate.xlsx`,`..\..\data\DB_IceAgeElementRate.dat`) + AgcConvertDB_IceAgeElementRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_IceAgeElementRate.xlsx`, `..\..\data\DB_IceAgeElementRate.dat`) - AgcConvertDB_Legend_Odds(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Odds.xlsx`,`..\..\data\DB_Legend_Odds.dat`) + AgcConvertDB_Legend_Odds(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Odds.xlsx`, `..\..\data\DB_Legend_Odds.dat`) - AgcConvertDB_Legend_TurnRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_TurnRate.xlsx`,`..\..\data\DB_Legend_TurnRate.dat`) + AgcConvertDB_Legend_TurnRate(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_TurnRate.xlsx`, `..\..\data\DB_Legend_TurnRate.dat`) - AgcConvertDB_Legend_Weight(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Weight.xlsx`,`..\..\data\DB_Legend_Weight.dat`) + AgcConvertDB_Legend_Weight(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Weight.xlsx`, `..\..\data\DB_Legend_Weight.dat`) - AgcConvertDB_Legend_WeightCondition(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_WeightCondition.xlsx`,`..\..\data\DB_Legend_WeightCondition.dat`) + AgcConvertDB_Legend_WeightCondition(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Legend_WeightCondition.xlsx`, `..\..\data\DB_Legend_WeightCondition.dat`) - AgcConvertDB_MatchRank(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_MatchRank.xlsx`,`..\..\data\DB_MatchRank.dat`) + AgcConvertDB_MatchRank(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_MatchRank.xlsx`, `..\..\data\DB_MatchRank.dat`) - AgcConvertDB_Name(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Name.xlsx`,`..\..\data\DB_Name.dat`) + AgcConvertDB_Name(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Name.xlsx`, `..\..\data\DB_Name.dat`) - AgcConvertDB_NameBoy(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_NameBoy.xlsx`,`..\..\data\DB_NameBoy.dat`) + AgcConvertDB_NameBoy(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_NameBoy.xlsx`, `..\..\data\DB_NameBoy.dat`) - AgcConvertDB_NameGirl(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_NameGirl.xlsx`,`..\..\data\DB_NameGirl.dat`) + AgcConvertDB_NameGirl(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_NameGirl.xlsx`, `..\..\data\DB_NameGirl.dat`) - AgcConvertDB_NewPlayer(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_NewPlayer.xlsx`,`..\..\data\DB_NewPlayer.dat`) + AgcConvertDB_NewPlayer(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_NewPlayer.xlsx`, `..\..\data\DB_NewPlayer.dat`) - AgcConvertDB_PhoneLottery(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PhoneLottery.xlsx`,`..\..\data\DB_PhoneLottery.dat`) + AgcConvertDB_PhoneLottery(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PhoneLottery.xlsx`, `..\..\data\DB_PhoneLottery.dat`) - AgcConvertDB_PigBank_Diamond(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PigBank_Diamond.xlsx`,`..\..\data\DB_PigBank_Diamond.dat`) + AgcConvertDB_PigBank_Diamond(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PigBank_Diamond.xlsx`, `..\..\data\DB_PigBank_Diamond.dat`) - AgcConvertDB_Pigbank_Prop(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Pigbank_Prop.xlsx`,`..\..\data\DB_Pigbank_Prop.dat`) + AgcConvertDB_Pigbank_Prop(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Pigbank_Prop.xlsx`, `..\..\data\DB_Pigbank_Prop.dat`) - AgcConvertDB_PlayerExp(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PlayerExp.xlsx`,`..\..\data\DB_PlayerExp.dat`) + AgcConvertDB_PlayerExp(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PlayerExp.xlsx`, `..\..\data\DB_PlayerExp.dat`) - AgcConvertDB_PlayerInfo(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PlayerInfo.xlsx`,`..\..\data\DB_PlayerInfo.dat`) + AgcConvertDB_PlayerInfo(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PlayerInfo.xlsx`, `..\..\data\DB_PlayerInfo.dat`) - AgcConvertDB_PlayerType(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PlayerType.xlsx`,`..\..\data\DB_PlayerType.dat`) + AgcConvertDB_PlayerType(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PlayerType.xlsx`, `..\..\data\DB_PlayerType.dat`) - AgcConvertDB_PotOdd(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PotOdd.xlsx`,`..\..\data\DB_PotOdd.dat`) + AgcConvertDB_PotOdd(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PotOdd.xlsx`, `..\..\data\DB_PotOdd.dat`) - AgcConvertDB_PropExchange(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PropExchange.xlsx`,`..\..\data\DB_PropExchange.dat`) + AgcConvertDB_PropExchange(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_PropExchange.xlsx`, `..\..\data\DB_PropExchange.dat`) - AgcConvertDB_RankCycle(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_RankCycle.xlsx`,`..\..\data\DB_RankCycle.dat`) + AgcConvertDB_RankCycle(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_RankCycle.xlsx`, `..\..\data\DB_RankCycle.dat`) - AgcConvertDB_RankLevel(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_RankLevel.xlsx`,`..\..\data\DB_RankLevel.dat`) + AgcConvertDB_RankLevel(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_RankLevel.xlsx`, `..\..\data\DB_RankLevel.dat`) - AgcConvertDB_RankReward(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_RankReward.xlsx`,`..\..\data\DB_RankReward.dat`) + AgcConvertDB_RankReward(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_RankReward.xlsx`, `..\..\data\DB_RankReward.dat`) - AgcConvertDB_Sensitive_Words(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Sensitive_Words.xlsx`,`..\..\data\DB_Sensitive_Words.dat`) + AgcConvertDB_Sensitive_Words(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Sensitive_Words.xlsx`, `..\..\data\DB_Sensitive_Words.dat`) - AgcConvertDB_SlotRateWeight(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_SlotRateWeight.xlsx`,`..\..\data\DB_SlotRateWeight.dat`) + AgcConvertDB_SlotRateWeight(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_SlotRateWeight.xlsx`, `..\..\data\DB_SlotRateWeight.dat`) - AgcConvertDB_SystemChance(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_SystemChance.xlsx`,`..\..\data\DB_SystemChance.dat`) + AgcConvertDB_SystemChance(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_SystemChance.xlsx`, `..\..\data\DB_SystemChance.dat`) - AgcConvertDB_Task(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Task.xlsx`,`..\..\data\DB_Task.dat`) + AgcConvertDB_Task(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Task.xlsx`, `..\..\data\DB_Task.dat`) - AgcConvertDB_ThirdPlatformGameMapping(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ThirdPlatformGameMapping.xlsx`,`..\..\data\DB_ThirdPlatformGameMapping.dat`) + AgcConvertDB_ThirdPlatformGameMapping(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_ThirdPlatformGameMapping.xlsx`, `..\..\data\DB_ThirdPlatformGameMapping.dat`) - AgcConvertDB_Tips(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Tips.xlsx`,`..\..\data\DB_Tips.dat`) + AgcConvertDB_Tips(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_Tips.xlsx`, `..\..\data\DB_Tips.dat`) - AgcConvertDB_VIP(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_VIP.xlsx`,`..\..\data\DB_VIP.dat`) + AgcConvertDB_VIP(`G:\work\server\trunk\src\mongo.games.com\game\xlsx\DB_VIP.xlsx`, `..\..\data\DB_VIP.dat`) } diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index 2a05db7..554ac89 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -415,6 +415,40 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) return nil } +// ------------------------------------------------ +type CSPigBankGetInfoPacketFactory struct { +} + +type CSPigBankGetInfoHandler struct { +} + +func (this *CSPigBankGetInfoPacketFactory) CreatePacket() interface{} { + + return nil +} + +func (this *CSPigBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + + return nil +} + +// ------------------------------------------------ +type CSPigBankTakeCoinPacketFactory struct { +} + +type CSPigBankTakeCoinHandler struct { +} + +func (this *CSPigBankTakeCoinPacketFactory) CreatePacket() interface{} { + + return nil +} + +func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + + return nil +} + func init() { // 领取救济金 common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_WELF_GETRELIEFFUND), &CSGetReliefFundHandler{}) @@ -452,4 +486,11 @@ func init() { common.Register(int(welfare.SPacketID_PACKET_CSInviteInfo), welfare.CSInviteInfo{}, CSInviteInfo) // 绑定信息 common.Register(int(welfare.SPacketID_PACKET_CSBindInvite), welfare.CSBindInvite{}, CSBindInvite) + + //获取存钱罐数据 + common.RegisterHandler(int(welfare.SPacketID_PACKET_CSPigbankGetInfo), &CSPigBankGetInfoHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSPigbankGetInfo), &CSPigBankGetInfoPacketFactory{}) + //领取存钱罐金币 + common.RegisterHandler(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinPacketFactory{}) } diff --git a/xlsx/DB_Pigbank_Prop.xlsx b/xlsx/DB_Pigbank_Prop.xlsx index 65f038c..b798909 100644 Binary files a/xlsx/DB_Pigbank_Prop.xlsx and b/xlsx/DB_Pigbank_Prop.xlsx differ