feat: 添加数据记录|排行榜,优化项目结构

main
NorthLan 3 years ago
parent ddbb363898
commit c256f6b3df

@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc-gen-go v1.27.1
// protoc v3.19.4
// source: user_center.proto
@ -117,6 +117,44 @@ func (x *User) GetPInfo() string {
return ""
}
type Empty struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Empty) Reset() {
*x = Empty{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Empty) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Empty) ProtoMessage() {}
func (x *Empty) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{1}
}
// req
type PlatformUserReq struct {
state protoimpl.MessageState
@ -130,7 +168,7 @@ type PlatformUserReq struct {
func (x *PlatformUserReq) Reset() {
*x = PlatformUserReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[1]
mi := &file_user_center_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -143,7 +181,7 @@ func (x *PlatformUserReq) String() string {
func (*PlatformUserReq) ProtoMessage() {}
func (x *PlatformUserReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[1]
mi := &file_user_center_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -156,7 +194,7 @@ func (x *PlatformUserReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use PlatformUserReq.ProtoReflect.Descriptor instead.
func (*PlatformUserReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{1}
return file_user_center_proto_rawDescGZIP(), []int{2}
}
func (x *PlatformUserReq) GetPlatform() string {
@ -184,7 +222,7 @@ type PlatformUserResp struct {
func (x *PlatformUserResp) Reset() {
*x = PlatformUserResp{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[2]
mi := &file_user_center_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -197,7 +235,7 @@ func (x *PlatformUserResp) String() string {
func (*PlatformUserResp) ProtoMessage() {}
func (x *PlatformUserResp) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[2]
mi := &file_user_center_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -210,7 +248,7 @@ func (x *PlatformUserResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use PlatformUserResp.ProtoReflect.Descriptor instead.
func (*PlatformUserResp) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{2}
return file_user_center_proto_rawDescGZIP(), []int{3}
}
func (x *PlatformUserResp) GetUser() *User {
@ -220,6 +258,516 @@ func (x *PlatformUserResp) GetUser() *User {
return nil
}
// 通知-PvP伤害 statistics.pvp.damage
type StatPvPDamageReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 造成伤害的用户ID
TargetUid *int64 `protobuf:"varint,2,opt,name=targetUid,proto3,oneof" json:"targetUid,omitempty"` // 目标用户ID可能是基地不一定有
Damage float32 `protobuf:"fixed32,3,opt,name=damage,proto3" json:"damage,omitempty"` // 伤害量
}
func (x *StatPvPDamageReq) Reset() {
*x = StatPvPDamageReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPDamageReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPDamageReq) ProtoMessage() {}
func (x *StatPvPDamageReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPDamageReq.ProtoReflect.Descriptor instead.
func (*StatPvPDamageReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{4}
}
func (x *StatPvPDamageReq) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPDamageReq) GetTargetUid() int64 {
if x != nil && x.TargetUid != nil {
return *x.TargetUid
}
return 0
}
func (x *StatPvPDamageReq) GetDamage() float32 {
if x != nil {
return x.Damage
}
return 0
}
// 通知-PvP击杀单位 statistics.pvp.killunit
type StatPvPKillUnitReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
TargetUid *int64 `protobuf:"varint,2,opt,name=targetUid,proto3,oneof" json:"targetUid,omitempty"` // 目标用户
Attacker string `protobuf:"bytes,3,opt,name=attacker,proto3" json:"attacker,omitempty"` // 造成击杀东西building:兵营 U0001:xxx兵 S0001: 技能)
Victim string `protobuf:"bytes,4,opt,name=victim,proto3" json:"victim,omitempty"` // 被击杀的东西U0001:xxx兵
}
func (x *StatPvPKillUnitReq) Reset() {
*x = StatPvPKillUnitReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPKillUnitReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPKillUnitReq) ProtoMessage() {}
func (x *StatPvPKillUnitReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPKillUnitReq.ProtoReflect.Descriptor instead.
func (*StatPvPKillUnitReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{5}
}
func (x *StatPvPKillUnitReq) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPKillUnitReq) GetTargetUid() int64 {
if x != nil && x.TargetUid != nil {
return *x.TargetUid
}
return 0
}
func (x *StatPvPKillUnitReq) GetAttacker() string {
if x != nil {
return x.Attacker
}
return ""
}
func (x *StatPvPKillUnitReq) GetVictim() string {
if x != nil {
return x.Victim
}
return ""
}
// 通知-PvP杀兵营(人) statistics.pvp.kill
type StatPvPKillReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
TargetUid int64 `protobuf:"varint,2,opt,name=targetUid,proto3" json:"targetUid,omitempty"` // 目标用户
IsGeneral bool `protobuf:"varint,3,opt,name=isGeneral,proto3" json:"isGeneral,omitempty"` // targetUid是否名将
}
func (x *StatPvPKillReq) Reset() {
*x = StatPvPKillReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPKillReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPKillReq) ProtoMessage() {}
func (x *StatPvPKillReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPKillReq.ProtoReflect.Descriptor instead.
func (*StatPvPKillReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{6}
}
func (x *StatPvPKillReq) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPKillReq) GetTargetUid() int64 {
if x != nil {
return x.TargetUid
}
return 0
}
func (x *StatPvPKillReq) GetIsGeneral() bool {
if x != nil {
return x.IsGeneral
}
return false
}
// 通知-PvP一血 statistics.pvp.first
type StatPvPFirstBloodReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` // 1-拿到一血 2-被破一血
}
func (x *StatPvPFirstBloodReq) Reset() {
*x = StatPvPFirstBloodReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPFirstBloodReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPFirstBloodReq) ProtoMessage() {}
func (x *StatPvPFirstBloodReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPFirstBloodReq.ProtoReflect.Descriptor instead.
func (*StatPvPFirstBloodReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{7}
}
func (x *StatPvPFirstBloodReq) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPFirstBloodReq) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
// 通知-PvP战报 statistics.pvp.report
type StatPvPReportReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
WinCamp int32 `protobuf:"varint,1,opt,name=winCamp,proto3" json:"winCamp,omitempty"` // 获胜阵营 1-蓝 2-红
GeneralUid int64 `protobuf:"varint,2,opt,name=generalUid,proto3" json:"generalUid,omitempty"` // 名将UID
WinUids []int64 `protobuf:"varint,3,rep,packed,name=winUids,proto3" json:"winUids,omitempty"` // 战胜方玩家列表
LostUids []int64 `protobuf:"varint,4,rep,packed,name=lostUids,proto3" json:"lostUids,omitempty"` // 战败方玩家列表
}
func (x *StatPvPReportReq) Reset() {
*x = StatPvPReportReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPReportReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPReportReq) ProtoMessage() {}
func (x *StatPvPReportReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPReportReq.ProtoReflect.Descriptor instead.
func (*StatPvPReportReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{8}
}
func (x *StatPvPReportReq) GetWinCamp() int32 {
if x != nil {
return x.WinCamp
}
return 0
}
func (x *StatPvPReportReq) GetGeneralUid() int64 {
if x != nil {
return x.GeneralUid
}
return 0
}
func (x *StatPvPReportReq) GetWinUids() []int64 {
if x != nil {
return x.WinUids
}
return nil
}
func (x *StatPvPReportReq) GetLostUids() []int64 {
if x != nil {
return x.LostUids
}
return nil
}
// rank
type RankPvpReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // rank类型
TopN int32 `protobuf:"varint,2,opt,name=topN,proto3" json:"topN,omitempty"` // TopN
}
func (x *RankPvpReq) Reset() {
*x = RankPvpReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RankPvpReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RankPvpReq) ProtoMessage() {}
func (x *RankPvpReq) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RankPvpReq.ProtoReflect.Descriptor instead.
func (*RankPvpReq) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{9}
}
func (x *RankPvpReq) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
func (x *RankPvpReq) GetTopN() int32 {
if x != nil {
return x.TopN
}
return 0
}
type RankPvpResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // rank类型
Items []*RankPvpResp_Item `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` // rank数据
}
func (x *RankPvpResp) Reset() {
*x = RankPvpResp{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RankPvpResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RankPvpResp) ProtoMessage() {}
func (x *RankPvpResp) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RankPvpResp.ProtoReflect.Descriptor instead.
func (*RankPvpResp) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{10}
}
func (x *RankPvpResp) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
func (x *RankPvpResp) GetItems() []*RankPvpResp_Item {
if x != nil {
return x.Items
}
return nil
}
type RankPvpResp_Item struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"`
Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"`
Score int64 `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"`
Avatar string `protobuf:"bytes,4,opt,name=avatar,proto3" json:"avatar,omitempty"`
}
func (x *RankPvpResp_Item) Reset() {
*x = RankPvpResp_Item{}
if protoimpl.UnsafeEnabled {
mi := &file_user_center_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RankPvpResp_Item) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RankPvpResp_Item) ProtoMessage() {}
func (x *RankPvpResp_Item) ProtoReflect() protoreflect.Message {
mi := &file_user_center_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RankPvpResp_Item.ProtoReflect.Descriptor instead.
func (*RankPvpResp_Item) Descriptor() ([]byte, []int) {
return file_user_center_proto_rawDescGZIP(), []int{10, 0}
}
func (x *RankPvpResp_Item) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *RankPvpResp_Item) GetUname() string {
if x != nil {
return x.Uname
}
return ""
}
func (x *RankPvpResp_Item) GetScore() int64 {
if x != nil {
return x.Score
}
return 0
}
func (x *RankPvpResp_Item) GetAvatar() string {
if x != nil {
return x.Avatar
}
return ""
}
var File_user_center_proto protoreflect.FileDescriptor
var file_user_center_proto_rawDesc = []byte{
@ -235,20 +783,88 @@ var file_user_center_proto_rawDesc = []byte{
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14,
0x0a, 0x05, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70,
0x49, 0x6e, 0x66, 0x6f, 0x22, 0x41, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x75,
0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55,
0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x4f, 0x0a, 0x0a, 0x75, 0x73, 0x65,
0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69,
0x65, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12,
0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65,
0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x49, 0x6e, 0x66, 0x6f, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x41, 0x0a,
0x0f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71,
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04,
0x70, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64,
0x22, 0x30, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72,
0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73,
0x65, 0x72, 0x22, 0x6d, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x44, 0x61, 0x6d,
0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67,
0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x64,
0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x64, 0x61, 0x6d,
0x61, 0x67, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69,
0x64, 0x22, 0x8b, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c,
0x6c, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x61,
0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52,
0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a,
0x08, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x63,
0x74, 0x69, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x69, 0x63, 0x74, 0x69,
0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x22,
0x5e, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x65,
0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69,
0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03,
0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22,
0x3c, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42,
0x6c, 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x82, 0x01,
0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a,
0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07,
0x77, 0x69, 0x6e, 0x55, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x77,
0x69, 0x6e, 0x55, 0x69, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x73, 0x74, 0x55, 0x69,
0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x73, 0x74, 0x55, 0x69,
0x64, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x22, 0xab, 0x01, 0x0a, 0x0b, 0x52, 0x61, 0x6e,
0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x05,
0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62,
0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65,
0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5c, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75,
0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x32, 0xfd, 0x02, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43,
0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76,
0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e,
0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52,
0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74,
0x50, 0x76, 0x70, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53,
0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a,
0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0f, 0x73, 0x74,
0x61, 0x74, 0x50, 0x76, 0x70, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x2e,
0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e,
0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x12, 0x2c, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70, 0x4b, 0x69, 0x6c, 0x6c, 0x12,
0x12, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c,
0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38,
0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c,
0x6f, 0x6f, 0x64, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50,
0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e,
0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74,
0x50, 0x76, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53,
0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a,
0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x61,
0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50,
0x76, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50,
0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -263,21 +879,43 @@ func file_user_center_proto_rawDescGZIP() []byte {
return file_user_center_proto_rawDescData
}
var file_user_center_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_user_center_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_user_center_proto_goTypes = []interface{}{
(*User)(nil), // 0: pb.User
(*PlatformUserReq)(nil), // 1: pb.PlatformUserReq
(*PlatformUserResp)(nil), // 2: pb.PlatformUserResp
(*Empty)(nil), // 1: pb.Empty
(*PlatformUserReq)(nil), // 2: pb.PlatformUserReq
(*PlatformUserResp)(nil), // 3: pb.PlatformUserResp
(*StatPvPDamageReq)(nil), // 4: pb.StatPvPDamageReq
(*StatPvPKillUnitReq)(nil), // 5: pb.StatPvPKillUnitReq
(*StatPvPKillReq)(nil), // 6: pb.StatPvPKillReq
(*StatPvPFirstBloodReq)(nil), // 7: pb.StatPvPFirstBloodReq
(*StatPvPReportReq)(nil), // 8: pb.StatPvPReportReq
(*RankPvpReq)(nil), // 9: pb.RankPvpReq
(*RankPvpResp)(nil), // 10: pb.RankPvpResp
(*RankPvpResp_Item)(nil), // 11: pb.RankPvpResp.Item
}
var file_user_center_proto_depIdxs = []int32{
0, // 0: pb.PlatformUserResp.user:type_name -> pb.User
1, // 1: pb.userCenter.retrievePlatformUser:input_type -> pb.PlatformUserReq
2, // 2: pb.userCenter.retrievePlatformUser:output_type -> pb.PlatformUserResp
2, // [2:3] is the sub-list for method output_type
1, // [1:2] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
11, // 1: pb.RankPvpResp.items:type_name -> pb.RankPvpResp.Item
2, // 2: pb.userCenter.retrievePlatformUser:input_type -> pb.PlatformUserReq
4, // 3: pb.userCenter.statPvpDamage:input_type -> pb.StatPvPDamageReq
5, // 4: pb.userCenter.statPvpKillUnit:input_type -> pb.StatPvPKillUnitReq
6, // 5: pb.userCenter.statPvpKill:input_type -> pb.StatPvPKillReq
7, // 6: pb.userCenter.statPvpFirstBlood:input_type -> pb.StatPvPFirstBloodReq
8, // 7: pb.userCenter.statPvpReport:input_type -> pb.StatPvPReportReq
9, // 8: pb.userCenter.rankPvp:input_type -> pb.RankPvpReq
3, // 9: pb.userCenter.retrievePlatformUser:output_type -> pb.PlatformUserResp
1, // 10: pb.userCenter.statPvpDamage:output_type -> pb.Empty
1, // 11: pb.userCenter.statPvpKillUnit:output_type -> pb.Empty
1, // 12: pb.userCenter.statPvpKill:output_type -> pb.Empty
1, // 13: pb.userCenter.statPvpFirstBlood:output_type -> pb.Empty
1, // 14: pb.userCenter.statPvpReport:output_type -> pb.Empty
10, // 15: pb.userCenter.rankPvp:output_type -> pb.RankPvpResp
9, // [9:16] is the sub-list for method output_type
2, // [2:9] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_user_center_proto_init() }
@ -299,7 +937,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlatformUserReq); i {
switch v := v.(*Empty); i {
case 0:
return &v.state
case 1:
@ -311,6 +949,18 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlatformUserReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlatformUserResp); i {
case 0:
return &v.state
@ -322,14 +972,112 @@ func file_user_center_proto_init() {
return nil
}
}
file_user_center_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPDamageReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPKillUnitReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPKillReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPFirstBloodReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPReportReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_center_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpResp_Item); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_user_center_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_user_center_proto_msgTypes[5].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_user_center_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumMessages: 12,
NumExtensions: 0,
NumServices: 1,
},

@ -16,6 +16,8 @@ message User {
string pInfo = 7;
}
message Empty {}
// req
message PlatformUserReq {
string platform = 1;
@ -26,8 +28,70 @@ message PlatformUserResp {
User user = 1;
}
// -PvP statistics.pvp.damage
message StatPvPDamageReq {
int64 uid = 1; // ID
optional int64 targetUid = 2; // ID
float damage = 3; //
}
// -PvP statistics.pvp.killunit
message StatPvPKillUnitReq {
int64 uid = 1; // ID
optional int64 targetUid = 2; //
string attacker = 3; // 西building: U0001:xxx S0001:
string victim = 4; // 西U0001:xxx
}
// -PvP( statistics.pvp.kill
message StatPvPKillReq {
int64 uid = 1; // ID
int64 targetUid = 2; //
bool isGeneral = 3; // targetUid
}
// -PvP statistics.pvp.first
message StatPvPFirstBloodReq {
int64 uid = 1; // ID
int32 type = 2; // 1- 2-
}
// -PvP statistics.pvp.report
message StatPvPReportReq {
int32 winCamp = 1; // 1- 2-
int64 generalUid = 2; // UID
repeated int64 winUids = 3; //
repeated int64 lostUids = 4; //
}
// rank
message RankPvpReq {
int32 type = 1; // rank
int32 topN = 2; // TopN
}
message RankPvpResp {
message Item {
int64 uid = 1;
string uname = 2;
int64 score = 3;
string avatar = 4;
}
int32 type = 1; // rank
repeated Item items = 2; // rank
}
service userCenter {
// user
rpc retrievePlatformUser(PlatformUserReq) returns (PlatformUserResp);
// statistics
rpc statPvpDamage(StatPvPDamageReq) returns (Empty);
rpc statPvpKillUnit(StatPvPKillUnitReq) returns (Empty);
rpc statPvpKill(StatPvPKillReq) returns (Empty);
rpc statPvpFirstBlood(StatPvPFirstBloodReq) returns (Empty);
rpc statPvpReport(StatPvPReportReq) returns (Empty);
// rank
rpc rankPvp(RankPvpReq) returns(RankPvpResp);
}

@ -24,6 +24,14 @@ const _ = grpc.SupportPackageIsVersion7
type UserCenterClient interface {
// user
RetrievePlatformUser(ctx context.Context, in *PlatformUserReq, opts ...grpc.CallOption) (*PlatformUserResp, error)
// statistics
StatPvpDamage(ctx context.Context, in *StatPvPDamageReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpKillUnit(ctx context.Context, in *StatPvPKillUnitReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpKill(ctx context.Context, in *StatPvPKillReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpFirstBlood(ctx context.Context, in *StatPvPFirstBloodReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error)
// rank
RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error)
}
type userCenterClient struct {
@ -43,12 +51,74 @@ func (c *userCenterClient) RetrievePlatformUser(ctx context.Context, in *Platfor
return out, nil
}
func (c *userCenterClient) StatPvpDamage(ctx context.Context, in *StatPvPDamageReq, opts ...grpc.CallOption) (*Empty, error) {
out := new(Empty)
err := c.cc.Invoke(ctx, "/pb.userCenter/statPvpDamage", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userCenterClient) StatPvpKillUnit(ctx context.Context, in *StatPvPKillUnitReq, opts ...grpc.CallOption) (*Empty, error) {
out := new(Empty)
err := c.cc.Invoke(ctx, "/pb.userCenter/statPvpKillUnit", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userCenterClient) StatPvpKill(ctx context.Context, in *StatPvPKillReq, opts ...grpc.CallOption) (*Empty, error) {
out := new(Empty)
err := c.cc.Invoke(ctx, "/pb.userCenter/statPvpKill", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userCenterClient) StatPvpFirstBlood(ctx context.Context, in *StatPvPFirstBloodReq, opts ...grpc.CallOption) (*Empty, error) {
out := new(Empty)
err := c.cc.Invoke(ctx, "/pb.userCenter/statPvpFirstBlood", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userCenterClient) StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error) {
out := new(Empty)
err := c.cc.Invoke(ctx, "/pb.userCenter/statPvpReport", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userCenterClient) RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error) {
out := new(RankPvpResp)
err := c.cc.Invoke(ctx, "/pb.userCenter/rankPvp", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// UserCenterServer is the server API for UserCenter service.
// All implementations must embed UnimplementedUserCenterServer
// for forward compatibility
type UserCenterServer interface {
// user
RetrievePlatformUser(context.Context, *PlatformUserReq) (*PlatformUserResp, error)
// statistics
StatPvpDamage(context.Context, *StatPvPDamageReq) (*Empty, error)
StatPvpKillUnit(context.Context, *StatPvPKillUnitReq) (*Empty, error)
StatPvpKill(context.Context, *StatPvPKillReq) (*Empty, error)
StatPvpFirstBlood(context.Context, *StatPvPFirstBloodReq) (*Empty, error)
StatPvpReport(context.Context, *StatPvPReportReq) (*Empty, error)
// rank
RankPvp(context.Context, *RankPvpReq) (*RankPvpResp, error)
mustEmbedUnimplementedUserCenterServer()
}
@ -59,6 +129,24 @@ type UnimplementedUserCenterServer struct {
func (UnimplementedUserCenterServer) RetrievePlatformUser(context.Context, *PlatformUserReq) (*PlatformUserResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method RetrievePlatformUser not implemented")
}
func (UnimplementedUserCenterServer) StatPvpDamage(context.Context, *StatPvPDamageReq) (*Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpDamage not implemented")
}
func (UnimplementedUserCenterServer) StatPvpKillUnit(context.Context, *StatPvPKillUnitReq) (*Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpKillUnit not implemented")
}
func (UnimplementedUserCenterServer) StatPvpKill(context.Context, *StatPvPKillReq) (*Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpKill not implemented")
}
func (UnimplementedUserCenterServer) StatPvpFirstBlood(context.Context, *StatPvPFirstBloodReq) (*Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpFirstBlood not implemented")
}
func (UnimplementedUserCenterServer) StatPvpReport(context.Context, *StatPvPReportReq) (*Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpReport not implemented")
}
func (UnimplementedUserCenterServer) RankPvp(context.Context, *RankPvpReq) (*RankPvpResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method RankPvp not implemented")
}
func (UnimplementedUserCenterServer) mustEmbedUnimplementedUserCenterServer() {}
// UnsafeUserCenterServer may be embedded to opt out of forward compatibility for this service.
@ -90,6 +178,114 @@ func _UserCenter_RetrievePlatformUser_Handler(srv interface{}, ctx context.Conte
return interceptor(ctx, in, info, handler)
}
func _UserCenter_StatPvpDamage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatPvPDamageReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).StatPvpDamage(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/statPvpDamage",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).StatPvpDamage(ctx, req.(*StatPvPDamageReq))
}
return interceptor(ctx, in, info, handler)
}
func _UserCenter_StatPvpKillUnit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatPvPKillUnitReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).StatPvpKillUnit(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/statPvpKillUnit",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).StatPvpKillUnit(ctx, req.(*StatPvPKillUnitReq))
}
return interceptor(ctx, in, info, handler)
}
func _UserCenter_StatPvpKill_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatPvPKillReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).StatPvpKill(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/statPvpKill",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).StatPvpKill(ctx, req.(*StatPvPKillReq))
}
return interceptor(ctx, in, info, handler)
}
func _UserCenter_StatPvpFirstBlood_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatPvPFirstBloodReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).StatPvpFirstBlood(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/statPvpFirstBlood",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).StatPvpFirstBlood(ctx, req.(*StatPvPFirstBloodReq))
}
return interceptor(ctx, in, info, handler)
}
func _UserCenter_StatPvpReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(StatPvPReportReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).StatPvpReport(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/statPvpReport",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).StatPvpReport(ctx, req.(*StatPvPReportReq))
}
return interceptor(ctx, in, info, handler)
}
func _UserCenter_RankPvp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RankPvpReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).RankPvp(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/rankPvp",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).RankPvp(ctx, req.(*RankPvpReq))
}
return interceptor(ctx, in, info, handler)
}
// UserCenter_ServiceDesc is the grpc.ServiceDesc for UserCenter service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@ -101,6 +297,30 @@ var UserCenter_ServiceDesc = grpc.ServiceDesc{
MethodName: "retrievePlatformUser",
Handler: _UserCenter_RetrievePlatformUser_Handler,
},
{
MethodName: "statPvpDamage",
Handler: _UserCenter_StatPvpDamage_Handler,
},
{
MethodName: "statPvpKillUnit",
Handler: _UserCenter_StatPvpKillUnit_Handler,
},
{
MethodName: "statPvpKill",
Handler: _UserCenter_StatPvpKill_Handler,
},
{
MethodName: "statPvpFirstBlood",
Handler: _UserCenter_StatPvpFirstBlood_Handler,
},
{
MethodName: "statPvpReport",
Handler: _UserCenter_StatPvpReport_Handler,
},
{
MethodName: "rankPvp",
Handler: _UserCenter_RankPvp_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "user_center.proto",

@ -13,13 +13,30 @@ import (
)
type (
Empty = pb.Empty
PlatformUserReq = pb.PlatformUserReq
PlatformUserResp = pb.PlatformUserResp
RankPvpReq = pb.RankPvpReq
RankPvpResp = pb.RankPvpResp
RankPvpResp_Item = pb.RankPvpResp_Item
StatPvPDamageReq = pb.StatPvPDamageReq
StatPvPFirstBloodReq = pb.StatPvPFirstBloodReq
StatPvPKillReq = pb.StatPvPKillReq
StatPvPKillUnitReq = pb.StatPvPKillUnitReq
StatPvPReportReq = pb.StatPvPReportReq
User = pb.User
UserCenter interface {
// user
RetrievePlatformUser(ctx context.Context, in *PlatformUserReq, opts ...grpc.CallOption) (*PlatformUserResp, error)
// statistics
StatPvpDamage(ctx context.Context, in *StatPvPDamageReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpKillUnit(ctx context.Context, in *StatPvPKillUnitReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpKill(ctx context.Context, in *StatPvPKillReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpFirstBlood(ctx context.Context, in *StatPvPFirstBloodReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error)
// rank
RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error)
}
defaultUserCenter struct {
@ -38,3 +55,35 @@ func (m *defaultUserCenter) RetrievePlatformUser(ctx context.Context, in *Platfo
client := pb.NewUserCenterClient(m.cli.Conn())
return client.RetrievePlatformUser(ctx, in, opts...)
}
// statistics
func (m *defaultUserCenter) StatPvpDamage(ctx context.Context, in *StatPvPDamageReq, opts ...grpc.CallOption) (*Empty, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.StatPvpDamage(ctx, in, opts...)
}
func (m *defaultUserCenter) StatPvpKillUnit(ctx context.Context, in *StatPvPKillUnitReq, opts ...grpc.CallOption) (*Empty, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.StatPvpKillUnit(ctx, in, opts...)
}
func (m *defaultUserCenter) StatPvpKill(ctx context.Context, in *StatPvPKillReq, opts ...grpc.CallOption) (*Empty, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.StatPvpKill(ctx, in, opts...)
}
func (m *defaultUserCenter) StatPvpFirstBlood(ctx context.Context, in *StatPvPFirstBloodReq, opts ...grpc.CallOption) (*Empty, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.StatPvpFirstBlood(ctx, in, opts...)
}
func (m *defaultUserCenter) StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.StatPvpReport(ctx, in, opts...)
}
// rank
func (m *defaultUserCenter) RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.RankPvp(ctx, in, opts...)
}

@ -0,0 +1,34 @@
Server:
Debug: false
Listen: 0.0.0.0:8888
Command:
Keys: [ "j", "加入", "加入游戏", "s", "w", "我在哪", "c1", "c2", "c3", "c4", "r1", "r2", "r3", "m1", "m2", "m3" ]
UserCenterRpc:
Etcd:
Hosts:
- 127.0.0.1:2379
Key: usercenter.rpc.dev
Kafka:
Danmaku:
Addr: [ "127.0.0.1:9093" ]
Topic: "danmaku"
Gift:
Addr: [ "127.0.0.1:9093" ]
Topic: "gift"
ConsumerGroupId:
GiftToPush: "giftToPush-Dev"
MsgToPush: "msgToPush-Dev"
Log:
Console:
Level: debug
Format: console
File:
Enabled: false
Level: info
Format: json
Path: ./logs
Filename: dcg.log
FileMaxSize: 10 # 10mb
FileMaxBackups: 30 #
MaxAge: 7 # 保留7天
Compress: true # 压缩日志

@ -20,10 +20,10 @@ ConsumerGroupId:
MsgToPush: "msgToPush"
Log:
Console:
Level: debug
Level: warn
Format: console
File:
Enabled: false
Enabled: true
Level: info
Format: json
Path: ./logs

@ -0,0 +1,52 @@
package logic
import (
"dcg/game/logic/rank"
"dcg/game/logic/room"
"dcg/game/logic/statistics"
"dcg/game/svc"
"git.noahlan.cn/northlan/ngs/component"
"strings"
)
var GameLogic *Logics
type Logics struct {
Services *component.Components
RoomManager *room.Manager
StatisticsPvP *statistics.PvP
Rank *rank.Rank
}
func Init(svcCtx *svc.ServiceContext) {
services := &component.Components{}
roomManager := room.NewRoomManager()
services.Register(roomManager,
component.WithName(roomManager.CMD()),
component.WithNameFunc(func(s string) string {
return strings.ToLower(s)
}))
statisticsPvP := statistics.NewStatisticsPvP(svcCtx)
services.Register(statisticsPvP,
component.WithName(statisticsPvP.CMD()),
component.WithNameFunc(func(s string) string {
return statisticsPvP.Prefix() + "." + strings.ToLower(s)
}))
rk := rank.NewRank(svcCtx)
services.Register(rk,
component.WithName(rk.CMD()),
component.WithNameFunc(func(s string) string {
return strings.ToLower(s)
}))
GameLogic = &Logics{
Services: services,
RoomManager: roomManager,
StatisticsPvP: statisticsPvP,
Rank: rk,
}
}

@ -0,0 +1,58 @@
package rank
import (
"dcg/app/user_center/usercenter"
pbRank "dcg/game/pb/rank"
"dcg/game/svc"
"git.noahlan.cn/northlan/ngs/component"
"git.noahlan.cn/northlan/ngs/session"
)
type Rank struct {
component.Base
svcCtx *svc.ServiceContext
}
func NewRank(svcCtx *svc.ServiceContext) *Rank {
return &Rank{
svcCtx: svcCtx,
}
}
func (p *Rank) Init() {
}
func (p *Rank) Shutdown() {
}
func (p *Rank) CMD() string {
return "rank"
}
func (p *Rank) Prefix() string {
return ""
}
// Pvp pvp排行榜获取
func (p *Rank) Pvp(s *session.Session, msg *pbRank.RankPvpReq) error {
result, err := p.svcCtx.UserCenterRpc.RankPvp(p.svcCtx.Ctx, &usercenter.RankPvpReq{
Type: msg.Type,
TopN: msg.TopN,
})
if err != nil {
return err
}
items := make([]*pbRank.RankPvpResp_Item, 0, len(result.Items))
for _, item := range result.Items {
items = append(items, &pbRank.RankPvpResp_Item{
Uid: item.Uid,
Uname: item.Uname,
Score: item.Score,
Avatar: item.Avatar,
})
}
return s.Response(&pbRank.RankPvpResp{
Type: result.Type,
Items: items,
})
}

@ -33,6 +33,10 @@ func NewRoomManager() *Manager {
}
}
func (m *Manager) CMD() string {
return "room"
}
func (m *Manager) Init() {
}

@ -0,0 +1,100 @@
package statistics
import (
"dcg/app/user_center/usercenter"
pbStat "dcg/game/pb/stat"
"dcg/game/svc"
"git.noahlan.cn/northlan/ngs/component"
"git.noahlan.cn/northlan/ngs/session"
)
type PvP struct {
component.Base
svcCtx *svc.ServiceContext
}
func NewStatisticsPvP(svcCtx *svc.ServiceContext) *PvP {
return &PvP{
svcCtx: svcCtx,
}
}
func (p *PvP) CMD() string {
return "statistics"
}
func (p *PvP) Prefix() string {
return "pvp"
}
func (p *PvP) Init() {
}
func (p *PvP) Shutdown() {
}
// Damage 伤害记录
func (p *PvP) Damage(s *session.Session, msg *pbStat.StatPvPDamage) error {
_, err := p.svcCtx.UserCenterRpc.StatPvpDamage(p.svcCtx.Ctx, &usercenter.StatPvPDamageReq{
Uid: msg.Uid,
TargetUid: msg.TargetUid,
Damage: msg.Damage,
})
if err != nil {
return err
}
return nil
}
// KillUnit 击杀单位
func (p *PvP) KillUnit(s *session.Session, msg *pbStat.StatPvPKillUnit) error {
_, err := p.svcCtx.UserCenterRpc.StatPvpKillUnit(p.svcCtx.Ctx, &usercenter.StatPvPKillUnitReq{
Uid: msg.Uid,
TargetUid: msg.TargetUid,
Attacker: msg.Attacker,
Victim: msg.Victim,
})
if err != nil {
return err
}
return nil
}
// Kill 击杀玩家
func (p *PvP) Kill(s *session.Session, msg *pbStat.StatPvPKill) error {
_, err := p.svcCtx.UserCenterRpc.StatPvpKill(p.svcCtx.Ctx, &usercenter.StatPvPKillReq{
Uid: msg.Uid,
TargetUid: msg.TargetUid,
IsGeneral: msg.IsGeneral,
})
if err != nil {
return err
}
return nil
}
// First 一血
func (p *PvP) First(s *session.Session, msg *pbStat.StatPvPFirstBlood) error {
_, err := p.svcCtx.UserCenterRpc.StatPvpFirstBlood(p.svcCtx.Ctx, &usercenter.StatPvPFirstBloodReq{
Uid: msg.Uid,
Type: msg.Type,
})
if err != nil {
return err
}
return nil
}
// Report 战报
func (p *PvP) Report(s *session.Session, msg *pbStat.StatPvPReport) error {
_, err := p.svcCtx.UserCenterRpc.StatPvpReport(p.svcCtx.Ctx, &usercenter.StatPvPReportReq{
WinCamp: msg.WinCamp,
GeneralUid: msg.GeneralUid,
WinUids: msg.WinUids,
LostUids: msg.LostUids,
})
if err != nil {
return err
}
return nil
}

@ -2,9 +2,10 @@ package danmaku
import (
"context"
"dcg/app/user_center/pb"
"dcg/app/user_center/usercenter"
"dcg/config"
"dcg/game/command"
"dcg/game/logic"
pbMq "dcg/game/pb/mq"
pushPb "dcg/game/pb/push"
"dcg/game/svc"
@ -57,11 +58,11 @@ func (h *MsgToPushHandler) Init(svc *svc.ServiceContext) {
}
func (h *MsgToPushHandler) handleJoinGame(roomId int64, _ string, user *pushPb.PushUser) {
h.svc.RoomManager.PushToRoom(roomId, "game.join", &pushPb.JoinGame{User: user})
logic.GameLogic.RoomManager.PushToRoom(roomId, "game.join", &pushPb.JoinGame{User: user})
}
func (h *MsgToPushHandler) handleOutbreak(roomId int64, _ string, user *pushPb.PushUser) {
h.svc.RoomManager.PushToRoom(roomId, "game.outbreak", &pushPb.Outbreak{User: user})
logic.GameLogic.RoomManager.PushToRoom(roomId, "game.outbreak", &pushPb.Outbreak{User: user})
}
func (h *MsgToPushHandler) handleCreateUnit(roomId int64, cmd string, user *pushPb.PushUser) {
@ -69,7 +70,7 @@ func (h *MsgToPushHandler) handleCreateUnit(roomId int64, cmd string, user *push
return
}
unit := cmd[1]
h.svc.RoomManager.PushToRoom(roomId, "game.createUnit", &pushPb.CreateUnit{
logic.GameLogic.RoomManager.PushToRoom(roomId, "game.createUnit", &pushPb.CreateUnit{
User: user,
Unit: string(unit),
})
@ -80,14 +81,14 @@ func (h *MsgToPushHandler) handleMove(roomId int64, cmd string, user *pushPb.Pus
return
}
line := cmd[1]
h.svc.RoomManager.PushToRoom(roomId, "game.move", &pushPb.Move{
logic.GameLogic.RoomManager.PushToRoom(roomId, "game.move", &pushPb.Move{
User: user,
Line: string(line),
})
}
func (h *MsgToPushHandler) handleWai(roomId int64, _ string, user *pushPb.PushUser) {
h.svc.RoomManager.PushToRoom(roomId, "game.wai", &pushPb.Wai{User: user})
logic.GameLogic.RoomManager.PushToRoom(roomId, "game.wai", &pushPb.Wai{User: user})
}
func (h *MsgToPushHandler) handleMode(roomId int64, cmd string, user *pushPb.PushUser) {
@ -95,13 +96,13 @@ func (h *MsgToPushHandler) handleMode(roomId int64, cmd string, user *pushPb.Pus
return
}
line := cmd[1]
h.svc.RoomManager.PushToRoom(roomId, "game.mode", &pushPb.BuildingMode{
logic.GameLogic.RoomManager.PushToRoom(roomId, "game.mode", &pushPb.BuildingMode{
User: user,
Mode: string(line),
})
}
func (h *MsgToPushHandler) handleDanmaku(data []byte, msgKey string) {
func (h *MsgToPushHandler) handleDanmaku(data []byte, _ string) {
// danmaku msg proto
var msgFromMq pbMq.MqDanmaku
if err := proto.Unmarshal(data, &msgFromMq); err != nil {
@ -114,7 +115,7 @@ func (h *MsgToPushHandler) handleDanmaku(data []byte, msgKey string) {
Uname: msgFromMq.Uname,
}
rpcUser, err := h.svc.UserCenterRpc.RetrievePlatformUser(context.Background(), &pb.PlatformUserReq{
rpcUser, err := h.svc.UserCenterRpc.RetrievePlatformUser(context.Background(), &usercenter.PlatformUserReq{
Platform: msgFromMq.Platform,
PUid: strconv.FormatInt(msgFromMq.Uid, 10),
})
@ -132,7 +133,7 @@ func (h *MsgToPushHandler) handleDanmaku(data []byte, msgKey string) {
}
} else {
// 发送正常的非命令弹幕消息
h.svc.RoomManager.PushToRoom(msgFromMq.LiveRoomId, "live.danmaku", &pushPb.DanmakuMsg{
logic.GameLogic.RoomManager.PushToRoom(msgFromMq.LiveRoomId, "live.danmaku", &pushPb.DanmakuMsg{
User: pbUser,
Content: msgFromMq.Content,
})

@ -2,8 +2,9 @@ package gift
import (
"context"
"dcg/app/user_center/pb"
"dcg/app/user_center/usercenter"
"dcg/config"
"dcg/game/logic"
pbMq "dcg/game/pb/mq"
pushPb "dcg/game/pb/push"
"dcg/game/svc"
@ -54,7 +55,7 @@ func (h *MsgToPushHandler) handleGift(data []byte, msgKey string) {
UId: msgFromMq.Uid,
Uname: msgFromMq.Uname,
}
rpcUser, err := h.ctx.UserCenterRpc.RetrievePlatformUser(context.Background(), &pb.PlatformUserReq{
rpcUser, err := h.ctx.UserCenterRpc.RetrievePlatformUser(context.Background(), &usercenter.PlatformUserReq{
Platform: msgFromMq.Platform,
PUid: strconv.FormatInt(msgFromMq.Uid, 10),
})
@ -65,7 +66,7 @@ func (h *MsgToPushHandler) handleGift(data []byte, msgKey string) {
logger.SLog.Error("rpc获取用户信息失败", err)
}
h.ctx.RoomManager.PushToRoom(msgFromMq.LiveRoomId, "game.gift", &pushPb.Gift{
logic.GameLogic.RoomManager.PushToRoom(msgFromMq.LiveRoomId, "game.gift", &pushPb.Gift{
User: pbUser,
GiftId: msgFromMq.GiftId,
Num: msgFromMq.Num,

@ -1,46 +0,0 @@
syntax = "proto3";
package pb;
option go_package = "/pbNotify";
// -PvP
message NotifyPvPDamage {
int64 uid = 1; // ID
int64 targetUid = 2; // ID
float damage = 3; //
int32 type = 4; // 1- 2-
string unit = 5; //
string skill = 6; //
}
// -PvP
message NotifyPvPKillUnit {
int64 uid = 1; // ID
int64 targetUid = 2; //
string unit = 3; // player: U0001-xx
}
message NotifyPvPKill {
int64 uid = 1; // ID
int64 targetUid = 2; //
}
// -PvP
message NotifyPvPFirstBlood {
int64 uid = 1; // ID
int32 type = 2; // 1- 2-
}
// -PvP
message NotifyPvPReport {
message Report {
int64 uid = 1; // ID
string uname = 2; //
int64 score = 3; //
int64 damage = 4; //
}
int32 winCamp = 1; // 1- 2-
repeated Report winReport = 2; //
repeated Report lostReport = 3; //
}

@ -9,7 +9,7 @@ using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Pb {
namespace PbClient {
/// <summary>Holder for reflection information generated from broadcast.proto</summary>
public static partial class BroadcastReflection {
@ -24,31 +24,32 @@ namespace Pb {
static BroadcastReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Cg9icm9hZGNhc3QucHJvdG8SAnBiIjYKCFB1c2hVc2VyEgsKA3VJZBgBIAEo",
"AxINCgV1bmFtZRgCIAEoCRIOCgZhdmF0YXIYAyABKAkiJgoISm9pbkdhbWUS",
"GgoEdXNlchgBIAEoCzIMLnBiLlB1c2hVc2VyIjYKCkNyZWF0ZVVuaXQSGgoE",
"dXNlchgBIAEoCzIMLnBiLlB1c2hVc2VyEgwKBHVuaXQYAiABKAkiMAoETW92",
"ZRIaCgR1c2VyGAEgASgLMgwucGIuUHVzaFVzZXISDAoEbGluZRgCIAEoCSIm",
"CghPdXRicmVhaxIaCgR1c2VyGAEgASgLMgwucGIuUHVzaFVzZXIidgoER2lm",
"dBIaCgR1c2VyGAEgASgLMgwucGIuUHVzaFVzZXISDgoGZ2lmdElkGAIgASgD",
"EgsKA251bRgDIAEoAxIQCghnaWZ0TmFtZRgEIAEoCRIRCgl0b3RhbENvaW4Y",
"BSABKAMSEAoIc2VuZFRpbWUYBiABKAMiIQoDV2FpEhoKBHVzZXIYASABKAsy",
"DC5wYi5QdXNoVXNlciI4CgxCdWlsZGluZ01vZGUSGgoEdXNlchgBIAEoCzIM",
"LnBiLlB1c2hVc2VyEgwKBG1vZGUYAiABKAkiOQoKRGFubWFrdU1zZxIaCgR1",
"c2VyGAEgASgLMgwucGIuUHVzaFVzZXISDwoHY29udGVudBgCIAEoCUIJWgcv",
"cGJQdXNoYgZwcm90bzM="));
"Cg9icm9hZGNhc3QucHJvdG8SCHBiQ2xpZW50IjYKCFB1c2hVc2VyEgsKA3VJ",
"ZBgBIAEoAxINCgV1bmFtZRgCIAEoCRIOCgZhdmF0YXIYAyABKAkiLAoISm9p",
"bkdhbWUSIAoEdXNlchgBIAEoCzISLnBiQ2xpZW50LlB1c2hVc2VyIjwKCkNy",
"ZWF0ZVVuaXQSIAoEdXNlchgBIAEoCzISLnBiQ2xpZW50LlB1c2hVc2VyEgwK",
"BHVuaXQYAiABKAkiNgoETW92ZRIgCgR1c2VyGAEgASgLMhIucGJDbGllbnQu",
"UHVzaFVzZXISDAoEbGluZRgCIAEoCSIsCghPdXRicmVhaxIgCgR1c2VyGAEg",
"ASgLMhIucGJDbGllbnQuUHVzaFVzZXIifAoER2lmdBIgCgR1c2VyGAEgASgL",
"MhIucGJDbGllbnQuUHVzaFVzZXISDgoGZ2lmdElkGAIgASgDEgsKA251bRgD",
"IAEoAxIQCghnaWZ0TmFtZRgEIAEoCRIRCgl0b3RhbENvaW4YBSABKAMSEAoI",
"c2VuZFRpbWUYBiABKAMiJwoDV2FpEiAKBHVzZXIYASABKAsyEi5wYkNsaWVu",
"dC5QdXNoVXNlciI+CgxCdWlsZGluZ01vZGUSIAoEdXNlchgBIAEoCzISLnBi",
"Q2xpZW50LlB1c2hVc2VyEgwKBG1vZGUYAiABKAkiPwoKRGFubWFrdU1zZxIg",
"CgR1c2VyGAEgASgLMhIucGJDbGllbnQuUHVzaFVzZXISDwoHY29udGVudBgC",
"IAEoCUIJWgcvcGJQdXNoYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.PushUser), global::Pb.PushUser.Parser, new[]{ "UId", "Uname", "Avatar" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.JoinGame), global::Pb.JoinGame.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.CreateUnit), global::Pb.CreateUnit.Parser, new[]{ "User", "Unit" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Move), global::Pb.Move.Parser, new[]{ "User", "Line" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Outbreak), global::Pb.Outbreak.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Gift), global::Pb.Gift.Parser, new[]{ "User", "GiftId", "Num", "GiftName", "TotalCoin", "SendTime" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Wai), global::Pb.Wai.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.BuildingMode), global::Pb.BuildingMode.Parser, new[]{ "User", "Mode" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.DanmakuMsg), global::Pb.DanmakuMsg.Parser, new[]{ "User", "Content" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.PushUser), global::PbClient.PushUser.Parser, new[]{ "UId", "Uname", "Avatar" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.JoinGame), global::PbClient.JoinGame.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.CreateUnit), global::PbClient.CreateUnit.Parser, new[]{ "User", "Unit" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.Move), global::PbClient.Move.Parser, new[]{ "User", "Line" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.Outbreak), global::PbClient.Outbreak.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.Gift), global::PbClient.Gift.Parser, new[]{ "User", "GiftId", "Num", "GiftName", "TotalCoin", "SendTime" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.Wai), global::PbClient.Wai.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.BuildingMode), global::PbClient.BuildingMode.Parser, new[]{ "User", "Mode" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.DanmakuMsg), global::PbClient.DanmakuMsg.Parser, new[]{ "User", "Content" }, null, null, null, null)
}));
}
#endregion
@ -69,7 +70,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[0]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -341,7 +342,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[1]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -373,10 +374,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -470,7 +471,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -491,7 +492,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -513,7 +514,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -539,7 +540,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[2]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[2]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -572,10 +573,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -697,7 +698,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -721,7 +722,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -747,7 +748,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -777,7 +778,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[3]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[3]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -810,10 +811,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -935,7 +936,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -959,7 +960,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -985,7 +986,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1015,7 +1016,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[4]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[4]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1047,10 +1048,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -1144,7 +1145,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -1165,7 +1166,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1187,7 +1188,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1213,7 +1214,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[5]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[5]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1250,10 +1251,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -1472,7 +1473,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -1508,7 +1509,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1550,7 +1551,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1596,7 +1597,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[6]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[6]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1628,10 +1629,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -1725,7 +1726,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -1746,7 +1747,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1768,7 +1769,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1794,7 +1795,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[7]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[7]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1827,10 +1828,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -1949,7 +1950,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -1973,7 +1974,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -1999,7 +2000,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -2029,7 +2030,7 @@ namespace Pb {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.BroadcastReflection.Descriptor.MessageTypes[8]; }
get { return global::PbClient.BroadcastReflection.Descriptor.MessageTypes[8]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -2062,10 +2063,10 @@ namespace Pb {
/// <summary>Field number for the "user" field.</summary>
public const int UserFieldNumber = 1;
private global::Pb.PushUser user_;
private global::PbClient.PushUser user_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.PushUser User {
public global::PbClient.PushUser User {
get { return user_; }
set {
user_ = value;
@ -2184,7 +2185,7 @@ namespace Pb {
}
if (other.user_ != null) {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
User.MergeFrom(other.User);
}
@ -2208,7 +2209,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;
@ -2234,7 +2235,7 @@ namespace Pb {
break;
case 10: {
if (user_ == null) {
User = new global::Pb.PushUser();
User = new global::PbClient.PushUser();
}
input.ReadMessage(User);
break;

@ -535,49 +535,52 @@ var File_broadcast_proto protoreflect.FileDescriptor
var file_broadcast_proto_rawDesc = []byte{
0x0a, 0x0f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x4a, 0x0a, 0x08, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65,
0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
0x75, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61,
0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61,
0x72, 0x22, 0x2c, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62,
0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22,
0x42, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x20, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62,
0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75,
0x6e, 0x69, 0x74, 0x22, 0x3c, 0x0a, 0x04, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x75,
0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50,
0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a,
0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e,
0x65, 0x22, 0x2c, 0x0a, 0x08, 0x4f, 0x75, 0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x20, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62,
0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22,
0xa8, 0x01, 0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x73, 0x68,
0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69,
0x66, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x69, 0x66, 0x74,
0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20,
0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a,
0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x27, 0x0a, 0x03, 0x57, 0x61,
0x69, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75,
0x73, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4d,
0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52,
0x6f, 0x12, 0x08, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x4a, 0x0a, 0x08, 0x50,
0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x32, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x47,
0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x75, 0x73,
0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x0a, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65,
0x72, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x42, 0x0a, 0x04, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x26, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52,
0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x32, 0x0a, 0x08, 0x4f, 0x75, 0x74,
0x62, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50,
0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0xae, 0x01,
0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x16,
0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20,
0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74,
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69,
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f,
0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06,
0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2d,
0x0a, 0x03, 0x57, 0x61, 0x69, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50,
0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x4a, 0x0a,
0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52,
0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x48, 0x0a, 0x0a, 0x44, 0x61, 0x6e,
0x6d, 0x61, 0x6b, 0x75, 0x4d, 0x73, 0x67, 0x12, 0x20, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x55,
0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,
0x65, 0x6e, 0x74, 0x42, 0x09, 0x5a, 0x07, 0x2f, 0x70, 0x62, 0x50, 0x75, 0x73, 0x68, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x4e, 0x0a, 0x0a, 0x44, 0x61, 0x6e,
0x6d, 0x61, 0x6b, 0x75, 0x4d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x2e, 0x50, 0x75, 0x73, 0x68, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x5a, 0x07, 0x2f, 0x70, 0x62,
0x50, 0x75, 0x73, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -594,25 +597,25 @@ func file_broadcast_proto_rawDescGZIP() []byte {
var file_broadcast_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_broadcast_proto_goTypes = []interface{}{
(*PushUser)(nil), // 0: pb.PushUser
(*JoinGame)(nil), // 1: pb.JoinGame
(*CreateUnit)(nil), // 2: pb.CreateUnit
(*Move)(nil), // 3: pb.Move
(*Outbreak)(nil), // 4: pb.Outbreak
(*Gift)(nil), // 5: pb.Gift
(*Wai)(nil), // 6: pb.Wai
(*BuildingMode)(nil), // 7: pb.BuildingMode
(*DanmakuMsg)(nil), // 8: pb.DanmakuMsg
(*PushUser)(nil), // 0: pbClient.PushUser
(*JoinGame)(nil), // 1: pbClient.JoinGame
(*CreateUnit)(nil), // 2: pbClient.CreateUnit
(*Move)(nil), // 3: pbClient.Move
(*Outbreak)(nil), // 4: pbClient.Outbreak
(*Gift)(nil), // 5: pbClient.Gift
(*Wai)(nil), // 6: pbClient.Wai
(*BuildingMode)(nil), // 7: pbClient.BuildingMode
(*DanmakuMsg)(nil), // 8: pbClient.DanmakuMsg
}
var file_broadcast_proto_depIdxs = []int32{
0, // 0: pb.JoinGame.user:type_name -> pb.PushUser
0, // 1: pb.CreateUnit.user:type_name -> pb.PushUser
0, // 2: pb.Move.user:type_name -> pb.PushUser
0, // 3: pb.Outbreak.user:type_name -> pb.PushUser
0, // 4: pb.Gift.user:type_name -> pb.PushUser
0, // 5: pb.Wai.user:type_name -> pb.PushUser
0, // 6: pb.BuildingMode.user:type_name -> pb.PushUser
0, // 7: pb.DanmakuMsg.user:type_name -> pb.PushUser
0, // 0: pbClient.JoinGame.user:type_name -> pbClient.PushUser
0, // 1: pbClient.CreateUnit.user:type_name -> pbClient.PushUser
0, // 2: pbClient.Move.user:type_name -> pbClient.PushUser
0, // 3: pbClient.Outbreak.user:type_name -> pbClient.PushUser
0, // 4: pbClient.Gift.user:type_name -> pbClient.PushUser
0, // 5: pbClient.Wai.user:type_name -> pbClient.PushUser
0, // 6: pbClient.BuildingMode.user:type_name -> pbClient.PushUser
0, // 7: pbClient.DanmakuMsg.user:type_name -> pbClient.PushUser
8, // [8:8] is the sub-list for method output_type
8, // [8:8] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name

@ -1,6 +1,6 @@
syntax = "proto3";
package pb;
package pbClient;
option go_package = "/pbPush";

@ -0,0 +1,827 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: rank.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace PbClient {
/// <summary>Holder for reflection information generated from rank.proto</summary>
public static partial class RankReflection {
#region Descriptor
/// <summary>File descriptor for rank.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static RankReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CgpyYW5rLnByb3RvEghwYkNsaWVudCIoCgpSYW5rUHZwUmVxEgwKBHR5cGUY",
"ASABKAUSDAoEdG9wThgCIAEoBSKJAQoLUmFua1B2cFJlc3ASDAoEdHlwZRgB",
"IAEoBRIpCgVpdGVtcxgCIAMoCzIaLnBiQ2xpZW50LlJhbmtQdnBSZXNwLkl0",
"ZW0aQQoESXRlbRILCgN1aWQYASABKAMSDQoFdW5hbWUYAiABKAkSDQoFc2Nv",
"cmUYAyABKAMSDgoGYXZhdGFyGAQgASgJKk4KCFJhbmtUeXBlEgsKB1Vua25v",
"d24QABIKCgZEYW1hZ2UQARILCgdHZW5lcmFsEAISDAoIS2lsbFVuaXQQAxIO",
"CgpLaWxsUGxheWVyEARCCVoHL3BiUmFua2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::PbClient.RankType), }, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.RankPvpReq), global::PbClient.RankPvpReq.Parser, new[]{ "Type", "TopN" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.RankPvpResp), global::PbClient.RankPvpResp.Parser, new[]{ "Type", "Items" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PbClient.RankPvpResp.Types.Item), global::PbClient.RankPvpResp.Types.Item.Parser, new[]{ "Uid", "Uname", "Score", "Avatar" }, null, null, null, null)})
}));
}
#endregion
}
#region Enums
public enum RankType {
[pbr::OriginalName("Unknown")] Unknown = 0,
[pbr::OriginalName("Damage")] Damage = 1,
[pbr::OriginalName("General")] General = 2,
[pbr::OriginalName("KillUnit")] KillUnit = 3,
[pbr::OriginalName("KillPlayer")] KillPlayer = 4,
}
#endregion
#region Messages
/// <summary>
/// RankPvpReq 获取排行榜 request > rank.pvp
/// </summary>
public sealed partial class RankPvpReq : pb::IMessage<RankPvpReq>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<RankPvpReq> _parser = new pb::MessageParser<RankPvpReq>(() => new RankPvpReq());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<RankPvpReq> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::PbClient.RankReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RankPvpReq() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RankPvpReq(RankPvpReq other) : this() {
type_ = other.type_;
topN_ = other.topN_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RankPvpReq Clone() {
return new RankPvpReq(this);
}
/// <summary>Field number for the "type" field.</summary>
public const int TypeFieldNumber = 1;
private int type_;
/// <summary>
/// rank类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Type {
get { return type_; }
set {
type_ = value;
}
}
/// <summary>Field number for the "topN" field.</summary>
public const int TopNFieldNumber = 2;
private int topN_;
/// <summary>
/// TopN
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int TopN {
get { return topN_; }
set {
topN_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as RankPvpReq);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(RankPvpReq other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Type != other.Type) return false;
if (TopN != other.TopN) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (Type != 0) hash ^= Type.GetHashCode();
if (TopN != 0) hash ^= TopN.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Type != 0) {
output.WriteRawTag(8);
output.WriteInt32(Type);
}
if (TopN != 0) {
output.WriteRawTag(16);
output.WriteInt32(TopN);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Type != 0) {
output.WriteRawTag(8);
output.WriteInt32(Type);
}
if (TopN != 0) {
output.WriteRawTag(16);
output.WriteInt32(TopN);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (Type != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type);
}
if (TopN != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(TopN);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(RankPvpReq other) {
if (other == null) {
return;
}
if (other.Type != 0) {
Type = other.Type;
}
if (other.TopN != 0) {
TopN = other.TopN;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
Type = input.ReadInt32();
break;
}
case 16: {
TopN = input.ReadInt32();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
Type = input.ReadInt32();
break;
}
case 16: {
TopN = input.ReadInt32();
break;
}
}
}
}
#endif
}
/// <summary>
/// RankPvpResp 排行榜数据 response > rank.pvp
/// </summary>
public sealed partial class RankPvpResp : pb::IMessage<RankPvpResp>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<RankPvpResp> _parser = new pb::MessageParser<RankPvpResp>(() => new RankPvpResp());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<RankPvpResp> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::PbClient.RankReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RankPvpResp() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RankPvpResp(RankPvpResp other) : this() {
type_ = other.type_;
items_ = other.items_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public RankPvpResp Clone() {
return new RankPvpResp(this);
}
/// <summary>Field number for the "type" field.</summary>
public const int TypeFieldNumber = 1;
private int type_;
/// <summary>
/// rank类型
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Type {
get { return type_; }
set {
type_ = value;
}
}
/// <summary>Field number for the "items" field.</summary>
public const int ItemsFieldNumber = 2;
private static readonly pb::FieldCodec<global::PbClient.RankPvpResp.Types.Item> _repeated_items_codec
= pb::FieldCodec.ForMessage(18, global::PbClient.RankPvpResp.Types.Item.Parser);
private readonly pbc::RepeatedField<global::PbClient.RankPvpResp.Types.Item> items_ = new pbc::RepeatedField<global::PbClient.RankPvpResp.Types.Item>();
/// <summary>
/// rank数据
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public pbc::RepeatedField<global::PbClient.RankPvpResp.Types.Item> Items {
get { return items_; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as RankPvpResp);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(RankPvpResp other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Type != other.Type) return false;
if(!items_.Equals(other.items_)) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (Type != 0) hash ^= Type.GetHashCode();
hash ^= items_.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Type != 0) {
output.WriteRawTag(8);
output.WriteInt32(Type);
}
items_.WriteTo(output, _repeated_items_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Type != 0) {
output.WriteRawTag(8);
output.WriteInt32(Type);
}
items_.WriteTo(ref output, _repeated_items_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (Type != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Type);
}
size += items_.CalculateSize(_repeated_items_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(RankPvpResp other) {
if (other == null) {
return;
}
if (other.Type != 0) {
Type = other.Type;
}
items_.Add(other.items_);
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
Type = input.ReadInt32();
break;
}
case 18: {
items_.AddEntriesFrom(input, _repeated_items_codec);
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
Type = input.ReadInt32();
break;
}
case 18: {
items_.AddEntriesFrom(ref input, _repeated_items_codec);
break;
}
}
}
}
#endif
#region Nested types
/// <summary>Container for nested types declared in the RankPvpResp message type.</summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static partial class Types {
public sealed partial class Item : pb::IMessage<Item>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Item> _parser = new pb::MessageParser<Item>(() => new Item());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<Item> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::PbClient.RankPvpResp.Descriptor.NestedTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Item() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Item(Item other) : this() {
uid_ = other.uid_;
uname_ = other.uname_;
score_ = other.score_;
avatar_ = other.avatar_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Item Clone() {
return new Item(this);
}
/// <summary>Field number for the "uid" field.</summary>
public const int UidFieldNumber = 1;
private long uid_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public long Uid {
get { return uid_; }
set {
uid_ = value;
}
}
/// <summary>Field number for the "uname" field.</summary>
public const int UnameFieldNumber = 2;
private string uname_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Uname {
get { return uname_; }
set {
uname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "score" field.</summary>
public const int ScoreFieldNumber = 3;
private long score_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public long Score {
get { return score_; }
set {
score_ = value;
}
}
/// <summary>Field number for the "avatar" field.</summary>
public const int AvatarFieldNumber = 4;
private string avatar_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Avatar {
get { return avatar_; }
set {
avatar_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as Item);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(Item other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Uid != other.Uid) return false;
if (Uname != other.Uname) return false;
if (Score != other.Score) return false;
if (Avatar != other.Avatar) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (Uid != 0L) hash ^= Uid.GetHashCode();
if (Uname.Length != 0) hash ^= Uname.GetHashCode();
if (Score != 0L) hash ^= Score.GetHashCode();
if (Avatar.Length != 0) hash ^= Avatar.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Uid != 0L) {
output.WriteRawTag(8);
output.WriteInt64(Uid);
}
if (Uname.Length != 0) {
output.WriteRawTag(18);
output.WriteString(Uname);
}
if (Score != 0L) {
output.WriteRawTag(24);
output.WriteInt64(Score);
}
if (Avatar.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Avatar);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Uid != 0L) {
output.WriteRawTag(8);
output.WriteInt64(Uid);
}
if (Uname.Length != 0) {
output.WriteRawTag(18);
output.WriteString(Uname);
}
if (Score != 0L) {
output.WriteRawTag(24);
output.WriteInt64(Score);
}
if (Avatar.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Avatar);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (Uid != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(Uid);
}
if (Uname.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Uname);
}
if (Score != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(Score);
}
if (Avatar.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Avatar);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(Item other) {
if (other == null) {
return;
}
if (other.Uid != 0L) {
Uid = other.Uid;
}
if (other.Uname.Length != 0) {
Uname = other.Uname;
}
if (other.Score != 0L) {
Score = other.Score;
}
if (other.Avatar.Length != 0) {
Avatar = other.Avatar;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
Uid = input.ReadInt64();
break;
}
case 18: {
Uname = input.ReadString();
break;
}
case 24: {
Score = input.ReadInt64();
break;
}
case 34: {
Avatar = input.ReadString();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
Uid = input.ReadInt64();
break;
}
case 18: {
Uname = input.ReadString();
break;
}
case 24: {
Score = input.ReadInt64();
break;
}
case 34: {
Avatar = input.ReadString();
break;
}
}
}
}
#endif
}
}
#endregion
}
#endregion
}
#endregion Designer generated code

@ -0,0 +1,2 @@
protoc --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative --go-grpc_opt=require_unimplemented_servers=false --go_out=. --go-grpc_out=. --proto_path=. *.proto
protoc --csharp_out=. --proto_path=. *.proto

@ -0,0 +1,380 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc v3.19.4
// source: rank.proto
package pbRank
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type RankType int32
const (
RankType_Unknown RankType = 0
RankType_Damage RankType = 1
RankType_General RankType = 2
RankType_KillUnit RankType = 3
RankType_KillPlayer RankType = 4
)
// Enum value maps for RankType.
var (
RankType_name = map[int32]string{
0: "Unknown",
1: "Damage",
2: "General",
3: "KillUnit",
4: "KillPlayer",
}
RankType_value = map[string]int32{
"Unknown": 0,
"Damage": 1,
"General": 2,
"KillUnit": 3,
"KillPlayer": 4,
}
)
func (x RankType) Enum() *RankType {
p := new(RankType)
*p = x
return p
}
func (x RankType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RankType) Descriptor() protoreflect.EnumDescriptor {
return file_rank_proto_enumTypes[0].Descriptor()
}
func (RankType) Type() protoreflect.EnumType {
return &file_rank_proto_enumTypes[0]
}
func (x RankType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RankType.Descriptor instead.
func (RankType) EnumDescriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{0}
}
// RankPvpReq 获取排行榜 request > rank.pvp
type RankPvpReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // rank类型
TopN int32 `protobuf:"varint,2,opt,name=topN,proto3" json:"topN,omitempty"` // TopN
}
func (x *RankPvpReq) Reset() {
*x = RankPvpReq{}
if protoimpl.UnsafeEnabled {
mi := &file_rank_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RankPvpReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RankPvpReq) ProtoMessage() {}
func (x *RankPvpReq) ProtoReflect() protoreflect.Message {
mi := &file_rank_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RankPvpReq.ProtoReflect.Descriptor instead.
func (*RankPvpReq) Descriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{0}
}
func (x *RankPvpReq) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
func (x *RankPvpReq) GetTopN() int32 {
if x != nil {
return x.TopN
}
return 0
}
// RankPvpResp 排行榜数据 response > rank.pvp
type RankPvpResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // rank类型
Items []*RankPvpResp_Item `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` // rank数据
}
func (x *RankPvpResp) Reset() {
*x = RankPvpResp{}
if protoimpl.UnsafeEnabled {
mi := &file_rank_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RankPvpResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RankPvpResp) ProtoMessage() {}
func (x *RankPvpResp) ProtoReflect() protoreflect.Message {
mi := &file_rank_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RankPvpResp.ProtoReflect.Descriptor instead.
func (*RankPvpResp) Descriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{1}
}
func (x *RankPvpResp) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
func (x *RankPvpResp) GetItems() []*RankPvpResp_Item {
if x != nil {
return x.Items
}
return nil
}
type RankPvpResp_Item struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"`
Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"`
Score int64 `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"`
Avatar string `protobuf:"bytes,4,opt,name=avatar,proto3" json:"avatar,omitempty"`
}
func (x *RankPvpResp_Item) Reset() {
*x = RankPvpResp_Item{}
if protoimpl.UnsafeEnabled {
mi := &file_rank_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RankPvpResp_Item) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RankPvpResp_Item) ProtoMessage() {}
func (x *RankPvpResp_Item) ProtoReflect() protoreflect.Message {
mi := &file_rank_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RankPvpResp_Item.ProtoReflect.Descriptor instead.
func (*RankPvpResp_Item) Descriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{1, 0}
}
func (x *RankPvpResp_Item) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *RankPvpResp_Item) GetUname() string {
if x != nil {
return x.Uname
}
return ""
}
func (x *RankPvpResp_Item) GetScore() int64 {
if x != nil {
return x.Score
}
return 0
}
func (x *RankPvpResp_Item) GetAvatar() string {
if x != nil {
return x.Avatar
}
return ""
}
var File_rank_proto protoreflect.FileDescriptor
var file_rank_proto_rawDesc = []byte{
0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x62,
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76,
0x70, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x4e,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x22, 0xb1, 0x01, 0x0a,
0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04,
0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
0x12, 0x30, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x70, 0x62, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50,
0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x1a, 0x5c, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05,
0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74,
0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72,
0x2a, 0x4e, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07,
0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x61, 0x6d,
0x61, 0x67, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c,
0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x10, 0x03,
0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x04,
0x42, 0x09, 0x5a, 0x07, 0x2f, 0x70, 0x62, 0x52, 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
file_rank_proto_rawDescOnce sync.Once
file_rank_proto_rawDescData = file_rank_proto_rawDesc
)
func file_rank_proto_rawDescGZIP() []byte {
file_rank_proto_rawDescOnce.Do(func() {
file_rank_proto_rawDescData = protoimpl.X.CompressGZIP(file_rank_proto_rawDescData)
})
return file_rank_proto_rawDescData
}
var file_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_rank_proto_goTypes = []interface{}{
(RankType)(0), // 0: pbClient.RankType
(*RankPvpReq)(nil), // 1: pbClient.RankPvpReq
(*RankPvpResp)(nil), // 2: pbClient.RankPvpResp
(*RankPvpResp_Item)(nil), // 3: pbClient.RankPvpResp.Item
}
var file_rank_proto_depIdxs = []int32{
3, // 0: pbClient.RankPvpResp.items:type_name -> pbClient.RankPvpResp.Item
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_rank_proto_init() }
func file_rank_proto_init() {
if File_rank_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_rank_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rank_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rank_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpResp_Item); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rank_proto_rawDesc,
NumEnums: 1,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_rank_proto_goTypes,
DependencyIndexes: file_rank_proto_depIdxs,
EnumInfos: file_rank_proto_enumTypes,
MessageInfos: file_rank_proto_msgTypes,
}.Build()
File_rank_proto = out.File
file_rank_proto_rawDesc = nil
file_rank_proto_goTypes = nil
file_rank_proto_depIdxs = nil
}

@ -0,0 +1,31 @@
syntax = "proto3";
package pbClient;
option go_package = "/pbRank";
enum RankType {
Unknown = 0;
Damage = 1;
General = 2;
KillUnit = 3;
KillPlayer = 4;
}
// RankPvpReq request > rank.pvp
message RankPvpReq {
int32 type = 1; // rank
int32 topN = 2; // TopN
}
// RankPvpResp response > rank.pvp
message RankPvpResp {
message Item {
int64 uid = 1;
string uname = 2;
int64 score = 3;
string avatar = 4;
}
int32 type = 1; // rank
repeated Item items = 2; // rank
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,2 @@
protoc --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative --go-grpc_opt=require_unimplemented_servers=false --go_out=. --go-grpc_out=. --proto_path=. *.proto
protoc --csharp_out=. --proto_path=. *.proto

@ -0,0 +1,507 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc v3.19.4
// source: stat.proto
package pbStat
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 通知-PvP伤害 statistics.pvp.damage
type StatPvPDamage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 造成伤害的用户ID
TargetUid *int64 `protobuf:"varint,2,opt,name=targetUid,proto3,oneof" json:"targetUid,omitempty"` // 目标用户ID可能是基地不一定有
Damage float32 `protobuf:"fixed32,3,opt,name=damage,proto3" json:"damage,omitempty"` // 伤害量
}
func (x *StatPvPDamage) Reset() {
*x = StatPvPDamage{}
if protoimpl.UnsafeEnabled {
mi := &file_stat_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPDamage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPDamage) ProtoMessage() {}
func (x *StatPvPDamage) ProtoReflect() protoreflect.Message {
mi := &file_stat_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPDamage.ProtoReflect.Descriptor instead.
func (*StatPvPDamage) Descriptor() ([]byte, []int) {
return file_stat_proto_rawDescGZIP(), []int{0}
}
func (x *StatPvPDamage) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPDamage) GetTargetUid() int64 {
if x != nil && x.TargetUid != nil {
return *x.TargetUid
}
return 0
}
func (x *StatPvPDamage) GetDamage() float32 {
if x != nil {
return x.Damage
}
return 0
}
// 通知-PvP击杀单位 statistics.pvp.killunit
type StatPvPKillUnit struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
TargetUid *int64 `protobuf:"varint,2,opt,name=targetUid,proto3,oneof" json:"targetUid,omitempty"` // 目标用户
Attacker string `protobuf:"bytes,3,opt,name=attacker,proto3" json:"attacker,omitempty"` // 造成击杀东西building:兵营 U0001:xxx兵 S0001: 技能)
Victim string `protobuf:"bytes,4,opt,name=victim,proto3" json:"victim,omitempty"` // 被击杀的东西U0001:xxx兵
}
func (x *StatPvPKillUnit) Reset() {
*x = StatPvPKillUnit{}
if protoimpl.UnsafeEnabled {
mi := &file_stat_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPKillUnit) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPKillUnit) ProtoMessage() {}
func (x *StatPvPKillUnit) ProtoReflect() protoreflect.Message {
mi := &file_stat_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPKillUnit.ProtoReflect.Descriptor instead.
func (*StatPvPKillUnit) Descriptor() ([]byte, []int) {
return file_stat_proto_rawDescGZIP(), []int{1}
}
func (x *StatPvPKillUnit) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPKillUnit) GetTargetUid() int64 {
if x != nil && x.TargetUid != nil {
return *x.TargetUid
}
return 0
}
func (x *StatPvPKillUnit) GetAttacker() string {
if x != nil {
return x.Attacker
}
return ""
}
func (x *StatPvPKillUnit) GetVictim() string {
if x != nil {
return x.Victim
}
return ""
}
// 通知-PvP杀兵营(人) statistics.pvp.kill
type StatPvPKill struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
TargetUid int64 `protobuf:"varint,2,opt,name=targetUid,proto3" json:"targetUid,omitempty"` // 目标用户
IsGeneral bool `protobuf:"varint,3,opt,name=isGeneral,proto3" json:"isGeneral,omitempty"` // targetUid是否名将
}
func (x *StatPvPKill) Reset() {
*x = StatPvPKill{}
if protoimpl.UnsafeEnabled {
mi := &file_stat_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPKill) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPKill) ProtoMessage() {}
func (x *StatPvPKill) ProtoReflect() protoreflect.Message {
mi := &file_stat_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPKill.ProtoReflect.Descriptor instead.
func (*StatPvPKill) Descriptor() ([]byte, []int) {
return file_stat_proto_rawDescGZIP(), []int{2}
}
func (x *StatPvPKill) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPKill) GetTargetUid() int64 {
if x != nil {
return x.TargetUid
}
return 0
}
func (x *StatPvPKill) GetIsGeneral() bool {
if x != nil {
return x.IsGeneral
}
return false
}
// 通知-PvP一血 statistics.pvp.first
type StatPvPFirstBlood struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` // 1-拿到一血 2-被破一血
}
func (x *StatPvPFirstBlood) Reset() {
*x = StatPvPFirstBlood{}
if protoimpl.UnsafeEnabled {
mi := &file_stat_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPFirstBlood) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPFirstBlood) ProtoMessage() {}
func (x *StatPvPFirstBlood) ProtoReflect() protoreflect.Message {
mi := &file_stat_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPFirstBlood.ProtoReflect.Descriptor instead.
func (*StatPvPFirstBlood) Descriptor() ([]byte, []int) {
return file_stat_proto_rawDescGZIP(), []int{3}
}
func (x *StatPvPFirstBlood) GetUid() int64 {
if x != nil {
return x.Uid
}
return 0
}
func (x *StatPvPFirstBlood) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
// 通知-PvP战报 statistics.pvp.report
type StatPvPReport struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
WinCamp int32 `protobuf:"varint,1,opt,name=winCamp,proto3" json:"winCamp,omitempty"` // 获胜阵营 1-蓝 2-红
GeneralUid int64 `protobuf:"varint,2,opt,name=generalUid,proto3" json:"generalUid,omitempty"` // 名将UID
WinUids []int64 `protobuf:"varint,3,rep,packed,name=winUids,proto3" json:"winUids,omitempty"` // 战胜方玩家列表
LostUids []int64 `protobuf:"varint,4,rep,packed,name=lostUids,proto3" json:"lostUids,omitempty"` // 战败方玩家列表
}
func (x *StatPvPReport) Reset() {
*x = StatPvPReport{}
if protoimpl.UnsafeEnabled {
mi := &file_stat_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPReport) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPReport) ProtoMessage() {}
func (x *StatPvPReport) ProtoReflect() protoreflect.Message {
mi := &file_stat_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPReport.ProtoReflect.Descriptor instead.
func (*StatPvPReport) Descriptor() ([]byte, []int) {
return file_stat_proto_rawDescGZIP(), []int{4}
}
func (x *StatPvPReport) GetWinCamp() int32 {
if x != nil {
return x.WinCamp
}
return 0
}
func (x *StatPvPReport) GetGeneralUid() int64 {
if x != nil {
return x.GeneralUid
}
return 0
}
func (x *StatPvPReport) GetWinUids() []int64 {
if x != nil {
return x.WinUids
}
return nil
}
func (x *StatPvPReport) GetLostUids() []int64 {
if x != nil {
return x.LostUids
}
return nil
}
var File_stat_proto protoreflect.FileDescriptor
var file_stat_proto_rawDesc = []byte{
0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x62,
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x6a, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76,
0x50, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x61, 0x72,
0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09,
0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06,
0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x64, 0x61,
0x6d, 0x61, 0x67, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55,
0x69, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69,
0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67,
0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x61,
0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61,
0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x63, 0x74, 0x69,
0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x42,
0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x22, 0x5b, 0x0a,
0x0b, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x10, 0x0a, 0x03,
0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c,
0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09,
0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x39, 0x0a, 0x11, 0x53, 0x74,
0x61, 0x74, 0x50, 0x76, 0x50, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50,
0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d,
0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70,
0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64,
0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x55, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x03, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x55, 0x69, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f,
0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f,
0x73, 0x74, 0x55, 0x69, 0x64, 0x73, 0x42, 0x09, 0x5a, 0x07, 0x2f, 0x70, 0x62, 0x53, 0x74, 0x61,
0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_stat_proto_rawDescOnce sync.Once
file_stat_proto_rawDescData = file_stat_proto_rawDesc
)
func file_stat_proto_rawDescGZIP() []byte {
file_stat_proto_rawDescOnce.Do(func() {
file_stat_proto_rawDescData = protoimpl.X.CompressGZIP(file_stat_proto_rawDescData)
})
return file_stat_proto_rawDescData
}
var file_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_stat_proto_goTypes = []interface{}{
(*StatPvPDamage)(nil), // 0: pbClient.StatPvPDamage
(*StatPvPKillUnit)(nil), // 1: pbClient.StatPvPKillUnit
(*StatPvPKill)(nil), // 2: pbClient.StatPvPKill
(*StatPvPFirstBlood)(nil), // 3: pbClient.StatPvPFirstBlood
(*StatPvPReport)(nil), // 4: pbClient.StatPvPReport
}
var file_stat_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_stat_proto_init() }
func file_stat_proto_init() {
if File_stat_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPDamage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stat_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPKillUnit); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stat_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPKill); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPFirstBlood); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPReport); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_stat_proto_msgTypes[0].OneofWrappers = []interface{}{}
file_stat_proto_msgTypes[1].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_stat_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_stat_proto_goTypes,
DependencyIndexes: file_stat_proto_depIdxs,
MessageInfos: file_stat_proto_msgTypes,
}.Build()
File_stat_proto = out.File
file_stat_proto_rawDesc = nil
file_stat_proto_goTypes = nil
file_stat_proto_depIdxs = nil
}

@ -0,0 +1,41 @@
syntax = "proto3";
package pbClient;
option go_package = "/pbStat";
// -PvP statistics.pvp.damage
message StatPvPDamage {
int64 uid = 1; // ID
optional int64 targetUid = 2; // ID
float damage = 3; //
}
// -PvP statistics.pvp.killunit
message StatPvPKillUnit {
int64 uid = 1; // ID
optional int64 targetUid = 2; //
string attacker = 3; // 西building: U0001:xxx S0001:
string victim = 4; // 西U0001:xxx
}
// -PvP( statistics.pvp.kill
message StatPvPKill {
int64 uid = 1; // ID
int64 targetUid = 2; //
bool isGeneral = 3; // targetUid
}
// -PvP statistics.pvp.first
message StatPvPFirstBlood {
int64 uid = 1; // ID
int32 type = 2; // 1- 2-
}
// -PvP statistics.pvp.report
message StatPvPReport {
int32 winCamp = 1; // 1- 2-
int64 generalUid = 2; // UID
repeated int64 winUids = 3; //
repeated int64 lostUids = 4; //
}

@ -1,35 +1,22 @@
package svc
import (
"context"
"dcg/app/user_center/usercenter"
"dcg/config"
"dcg/game/room"
"git.noahlan.cn/northlan/ngs/component"
"github.com/zeromicro/go-zero/zrpc"
"strings"
)
type ServiceContext struct {
Services *component.Components
RoomManager *room.Manager
Ctx context.Context
UserCenterRpc usercenter.UserCenter
}
func NewServiceContext() *ServiceContext {
services := &component.Components{}
roomManager := room.NewRoomManager()
services.Register(roomManager,
component.WithName("room"),
component.WithNameFunc(func(s string) string {
return strings.ToLower(s)
}))
return &ServiceContext{
Services: services,
RoomManager: roomManager,
svc := &ServiceContext{
Ctx: context.Background(),
// rpc
UserCenterRpc: usercenter.NewUserCenter(zrpc.MustNewClient(config.Config.UserCenterRpc)),
}
return svc
}

@ -2,6 +2,7 @@ package main
import (
"dcg/config"
"dcg/game/logic"
"dcg/game/msg_transfer"
"dcg/game/svc"
"flag"
@ -22,11 +23,13 @@ func main() {
ctx := svc.NewServiceContext()
logic.Init(ctx)
msg_transfer.Init(ctx)
msg_transfer.Run()
opts := make([]ngs.Option, 0)
opts = append(opts, ngs.WithComponents(ctx.Services))
opts = append(opts, ngs.WithComponents(logic.GameLogic.Services))
opts = append(opts, ngs.WithSerializer(protobuf.NewSerializer()))
if config.Config.Server.Debug {
ngs.WithDebugMode()

Loading…
Cancel
Save