// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        v3.20.0
// source: practice/practice_msg.proto

package pb

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 PracticeInfoReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PracticeInfoReq) Reset() {
	*x = PracticeInfoReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeInfoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeInfoReq) ProtoMessage() {}

func (x *PracticeInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeInfoReq.ProtoReflect.Descriptor instead.
func (*PracticeInfoReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{0}
}

///信息请求 回应
type PracticeInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *DBPracticeRoom `protobuf:"bytes,1,opt,name=info,proto3" json:"info"`
}

func (x *PracticeInfoResp) Reset() {
	*x = PracticeInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeInfoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeInfoResp) ProtoMessage() {}

func (x *PracticeInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeInfoResp.ProtoReflect.Descriptor instead.
func (*PracticeInfoResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{1}
}

func (x *PracticeInfoResp) GetInfo() *DBPracticeRoom {
	if x != nil {
		return x.Info
	}
	return nil
}

///推送自己的房价数据变化
type PracticeRommChangePush struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *DBPracticeRoom `protobuf:"bytes,1,opt,name=info,proto3" json:"info"`
}

func (x *PracticeRommChangePush) Reset() {
	*x = PracticeRommChangePush{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeRommChangePush) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeRommChangePush) ProtoMessage() {}

func (x *PracticeRommChangePush) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeRommChangePush.ProtoReflect.Descriptor instead.
func (*PracticeRommChangePush) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{2}
}

func (x *PracticeRommChangePush) GetInfo() *DBPracticeRoom {
	if x != nil {
		return x.Info
	}
	return nil
}

///请求好友武馆房间信息
type PracticeFriendRommReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fuid []string `protobuf:"bytes,1,rep,name=fuid,proto3" json:"fuid"`
}

func (x *PracticeFriendRommReq) Reset() {
	*x = PracticeFriendRommReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeFriendRommReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeFriendRommReq) ProtoMessage() {}

func (x *PracticeFriendRommReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeFriendRommReq.ProtoReflect.Descriptor instead.
func (*PracticeFriendRommReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{3}
}

func (x *PracticeFriendRommReq) GetFuid() []string {
	if x != nil {
		return x.Fuid
	}
	return nil
}

///请求好友武馆房间信息 回应
type PracticeFriendRommResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Infos map[string]*DBPracticeRoom `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *PracticeFriendRommResp) Reset() {
	*x = PracticeFriendRommResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeFriendRommResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeFriendRommResp) ProtoMessage() {}

func (x *PracticeFriendRommResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeFriendRommResp.ProtoReflect.Descriptor instead.
func (*PracticeFriendRommResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{4}
}

func (x *PracticeFriendRommResp) GetInfos() map[string]*DBPracticeRoom {
	if x != nil {
		return x.Infos
	}
	return nil
}

///升级请求
type PracticeUnLockReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index"` //柱子id
}

func (x *PracticeUnLockReq) Reset() {
	*x = PracticeUnLockReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeUnLockReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeUnLockReq) ProtoMessage() {}

func (x *PracticeUnLockReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeUnLockReq.ProtoReflect.Descriptor instead.
func (*PracticeUnLockReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{5}
}

func (x *PracticeUnLockReq) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

type PracticeUnLockResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info *DBPracticeRoom `protobuf:"bytes,1,opt,name=info,proto3" json:"info"`
}

func (x *PracticeUnLockResp) Reset() {
	*x = PracticeUnLockResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeUnLockResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeUnLockResp) ProtoMessage() {}

func (x *PracticeUnLockResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeUnLockResp.ProtoReflect.Descriptor instead.
func (*PracticeUnLockResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{6}
}

func (x *PracticeUnLockResp) GetInfo() *DBPracticeRoom {
	if x != nil {
		return x.Info
	}
	return nil
}

///升级请求
type PracticeUpgradeReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index"` //柱子id
}

func (x *PracticeUpgradeReq) Reset() {
	*x = PracticeUpgradeReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeUpgradeReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeUpgradeReq) ProtoMessage() {}

func (x *PracticeUpgradeReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeUpgradeReq.ProtoReflect.Descriptor instead.
func (*PracticeUpgradeReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{7}
}

func (x *PracticeUpgradeReq) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

type PracticeUpgradeResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index"` //柱子id
	Lv    int32 `protobuf:"varint,2,opt,name=lv,proto3" json:"lv"`
}

func (x *PracticeUpgradeResp) Reset() {
	*x = PracticeUpgradeResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeUpgradeResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeUpgradeResp) ProtoMessage() {}

func (x *PracticeUpgradeResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeUpgradeResp.ProtoReflect.Descriptor instead.
func (*PracticeUpgradeResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{8}
}

func (x *PracticeUpgradeResp) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *PracticeUpgradeResp) GetLv() int32 {
	if x != nil {
		return x.Lv
	}
	return 0
}

///练功请求
type PracticePracticeReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index   int32  `protobuf:"varint,1,opt,name=index,proto3" json:"index"`    //柱子id
	Hero    string `protobuf:"bytes,2,opt,name=hero,proto3" json:"hero"`       //训练英雄id
	Teacher string `protobuf:"bytes,3,opt,name=teacher,proto3" json:"teacher"` //教习id
	Prop    string `protobuf:"bytes,4,opt,name=prop,proto3" json:"prop"`       //道具id
}

func (x *PracticePracticeReq) Reset() {
	*x = PracticePracticeReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticePracticeReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticePracticeReq) ProtoMessage() {}

func (x *PracticePracticeReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticePracticeReq.ProtoReflect.Descriptor instead.
func (*PracticePracticeReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{9}
}

func (x *PracticePracticeReq) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *PracticePracticeReq) GetHero() string {
	if x != nil {
		return x.Hero
	}
	return ""
}

func (x *PracticePracticeReq) GetTeacher() string {
	if x != nil {
		return x.Teacher
	}
	return ""
}

func (x *PracticePracticeReq) GetProp() string {
	if x != nil {
		return x.Prop
	}
	return ""
}

type PracticePracticeResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pillar *DBPracticePillar `protobuf:"bytes,1,opt,name=pillar,proto3" json:"pillar"`
}

func (x *PracticePracticeResp) Reset() {
	*x = PracticePracticeResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticePracticeResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticePracticeResp) ProtoMessage() {}

func (x *PracticePracticeResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticePracticeResp.ProtoReflect.Descriptor instead.
func (*PracticePracticeResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{10}
}

func (x *PracticePracticeResp) GetPillar() *DBPracticePillar {
	if x != nil {
		return x.Pillar
	}
	return nil
}

///蹭馆请求
type PracticeLootReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Friend  string `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend"`   //好友id
	Hero    string `protobuf:"bytes,2,opt,name=hero,proto3" json:"hero"`       //训练英雄id
	Teacher string `protobuf:"bytes,3,opt,name=teacher,proto3" json:"teacher"` //教习id
	Prop    string `protobuf:"bytes,4,opt,name=prop,proto3" json:"prop"`       //道具id
}

func (x *PracticeLootReq) Reset() {
	*x = PracticeLootReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeLootReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeLootReq) ProtoMessage() {}

func (x *PracticeLootReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_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 PracticeLootReq.ProtoReflect.Descriptor instead.
func (*PracticeLootReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{11}
}

func (x *PracticeLootReq) GetFriend() string {
	if x != nil {
		return x.Friend
	}
	return ""
}

func (x *PracticeLootReq) GetHero() string {
	if x != nil {
		return x.Hero
	}
	return ""
}

func (x *PracticeLootReq) GetTeacher() string {
	if x != nil {
		return x.Teacher
	}
	return ""
}

func (x *PracticeLootReq) GetProp() string {
	if x != nil {
		return x.Prop
	}
	return ""
}

type PracticeLootResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Friend string            `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend"` //好友id
	Pillar *DBPracticePillar `protobuf:"bytes,2,opt,name=pillar,proto3" json:"pillar"`
}

func (x *PracticeLootResp) Reset() {
	*x = PracticeLootResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeLootResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeLootResp) ProtoMessage() {}

func (x *PracticeLootResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[12]
	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 PracticeLootResp.ProtoReflect.Descriptor instead.
func (*PracticeLootResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{12}
}

func (x *PracticeLootResp) GetFriend() string {
	if x != nil {
		return x.Friend
	}
	return ""
}

func (x *PracticeLootResp) GetPillar() *DBPracticePillar {
	if x != nil {
		return x.Pillar
	}
	return nil
}

///驱逐
type PracticeExpulsionReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PracticeExpulsionReq) Reset() {
	*x = PracticeExpulsionReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeExpulsionReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeExpulsionReq) ProtoMessage() {}

func (x *PracticeExpulsionReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[13]
	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 PracticeExpulsionReq.ProtoReflect.Descriptor instead.
func (*PracticeExpulsionReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{13}
}

type PracticeExpulsionResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pillar   *DBPracticePillar `protobuf:"bytes,1,opt,name=pillar,proto3" json:"pillar"`
	Knapsack map[string]int32  `protobuf:"bytes,2,rep,name=knapsack,proto3" json:"knapsack" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //资源
}

func (x *PracticeExpulsionResp) Reset() {
	*x = PracticeExpulsionResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeExpulsionResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeExpulsionResp) ProtoMessage() {}

func (x *PracticeExpulsionResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[14]
	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 PracticeExpulsionResp.ProtoReflect.Descriptor instead.
func (*PracticeExpulsionResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{14}
}

func (x *PracticeExpulsionResp) GetPillar() *DBPracticePillar {
	if x != nil {
		return x.Pillar
	}
	return nil
}

func (x *PracticeExpulsionResp) GetKnapsack() map[string]int32 {
	if x != nil {
		return x.Knapsack
	}
	return nil
}

///自己的英雄被驱逐推送
type PracticeBeExpulsionPush struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fuid     string            `protobuf:"bytes,1,opt,name=fuid,proto3" json:"fuid"`
	Pillar   *DBPracticePillar `protobuf:"bytes,2,opt,name=pillar,proto3" json:"pillar"`
	Knapsack map[string]int32  `protobuf:"bytes,3,rep,name=knapsack,proto3" json:"knapsack" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //资源
}

func (x *PracticeBeExpulsionPush) Reset() {
	*x = PracticeBeExpulsionPush{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeBeExpulsionPush) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeBeExpulsionPush) ProtoMessage() {}

func (x *PracticeBeExpulsionPush) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[15]
	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 PracticeBeExpulsionPush.ProtoReflect.Descriptor instead.
func (*PracticeBeExpulsionPush) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{15}
}

func (x *PracticeBeExpulsionPush) GetFuid() string {
	if x != nil {
		return x.Fuid
	}
	return ""
}

func (x *PracticeBeExpulsionPush) GetPillar() *DBPracticePillar {
	if x != nil {
		return x.Pillar
	}
	return nil
}

func (x *PracticeBeExpulsionPush) GetKnapsack() map[string]int32 {
	if x != nil {
		return x.Knapsack
	}
	return nil
}

///领取收益
type PracticeReceiveReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index  int32  `protobuf:"varint,1,opt,name=index,proto3" json:"index"`  //柱子id
	Friend string `protobuf:"bytes,2,opt,name=friend,proto3" json:"friend"` //好友id
}

func (x *PracticeReceiveReq) Reset() {
	*x = PracticeReceiveReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeReceiveReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeReceiveReq) ProtoMessage() {}

func (x *PracticeReceiveReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[16]
	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 PracticeReceiveReq.ProtoReflect.Descriptor instead.
func (*PracticeReceiveReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{16}
}

func (x *PracticeReceiveReq) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *PracticeReceiveReq) GetFriend() string {
	if x != nil {
		return x.Friend
	}
	return ""
}

type PracticeReceiveResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pillar   *DBPracticePillar `protobuf:"bytes,1,opt,name=pillar,proto3" json:"pillar"`
	Knapsack map[string]int32  `protobuf:"bytes,2,rep,name=knapsack,proto3" json:"knapsack" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //资源
}

func (x *PracticeReceiveResp) Reset() {
	*x = PracticeReceiveResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeReceiveResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeReceiveResp) ProtoMessage() {}

func (x *PracticeReceiveResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[17]
	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 PracticeReceiveResp.ProtoReflect.Descriptor instead.
func (*PracticeReceiveResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{17}
}

func (x *PracticeReceiveResp) GetPillar() *DBPracticePillar {
	if x != nil {
		return x.Pillar
	}
	return nil
}

func (x *PracticeReceiveResp) GetKnapsack() map[string]int32 {
	if x != nil {
		return x.Knapsack
	}
	return nil
}

///登记满级英雄
type PracticeEnrolledReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Group int32    `protobuf:"varint,1,opt,name=group,proto3" json:"group"`
	Hero  []string `protobuf:"bytes,2,rep,name=hero,proto3" json:"hero"`
}

func (x *PracticeEnrolledReq) Reset() {
	*x = PracticeEnrolledReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeEnrolledReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeEnrolledReq) ProtoMessage() {}

func (x *PracticeEnrolledReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[18]
	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 PracticeEnrolledReq.ProtoReflect.Descriptor instead.
func (*PracticeEnrolledReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{18}
}

func (x *PracticeEnrolledReq) GetGroup() int32 {
	if x != nil {
		return x.Group
	}
	return 0
}

func (x *PracticeEnrolledReq) GetHero() []string {
	if x != nil {
		return x.Hero
	}
	return nil
}

///登记满级英雄 回应
type PracticeEnrolledResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Group int32    `protobuf:"varint,1,opt,name=group,proto3" json:"group"`
	Hero  []string `protobuf:"bytes,2,rep,name=hero,proto3" json:"hero"`
}

func (x *PracticeEnrolledResp) Reset() {
	*x = PracticeEnrolledResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeEnrolledResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeEnrolledResp) ProtoMessage() {}

func (x *PracticeEnrolledResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[19]
	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 PracticeEnrolledResp.ProtoReflect.Descriptor instead.
func (*PracticeEnrolledResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{19}
}

func (x *PracticeEnrolledResp) GetGroup() int32 {
	if x != nil {
		return x.Group
	}
	return 0
}

func (x *PracticeEnrolledResp) GetHero() []string {
	if x != nil {
		return x.Hero
	}
	return nil
}

///练功道具和教习推送
type PracticeJXItemPush struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id"`
}

func (x *PracticeJXItemPush) Reset() {
	*x = PracticeJXItemPush{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeJXItemPush) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeJXItemPush) ProtoMessage() {}

func (x *PracticeJXItemPush) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[20]
	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 PracticeJXItemPush.ProtoReflect.Descriptor instead.
func (*PracticeJXItemPush) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{20}
}

func (x *PracticeJXItemPush) GetId() []string {
	if x != nil {
		return x.Id
	}
	return nil
}

///健身获得buff请求
type PracticeGymInfoReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PracticeGymInfoReq) Reset() {
	*x = PracticeGymInfoReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGymInfoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGymInfoReq) ProtoMessage() {}

func (x *PracticeGymInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[21]
	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 PracticeGymInfoReq.ProtoReflect.Descriptor instead.
func (*PracticeGymInfoReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{21}
}

///健身获得buff请求
type PracticeGymInfoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Lastaction int32 `protobuf:"varint,1,opt,name=lastaction,proto3" json:"lastaction"`
	Refreshnum int32 `protobuf:"varint,2,opt,name=refreshnum,proto3" json:"refreshnum"`
}

func (x *PracticeGymInfoResp) Reset() {
	*x = PracticeGymInfoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGymInfoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGymInfoResp) ProtoMessage() {}

func (x *PracticeGymInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[22]
	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 PracticeGymInfoResp.ProtoReflect.Descriptor instead.
func (*PracticeGymInfoResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{22}
}

func (x *PracticeGymInfoResp) GetLastaction() int32 {
	if x != nil {
		return x.Lastaction
	}
	return 0
}

func (x *PracticeGymInfoResp) GetRefreshnum() int32 {
	if x != nil {
		return x.Refreshnum
	}
	return 0
}

type PracticeGymRefreshReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PracticeGymRefreshReq) Reset() {
	*x = PracticeGymRefreshReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGymRefreshReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGymRefreshReq) ProtoMessage() {}

func (x *PracticeGymRefreshReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[23]
	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 PracticeGymRefreshReq.ProtoReflect.Descriptor instead.
func (*PracticeGymRefreshReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{23}
}

type PracticeGymRefreshResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Lastaction int32 `protobuf:"varint,1,opt,name=lastaction,proto3" json:"lastaction"`
	Refreshnum int32 `protobuf:"varint,2,opt,name=refreshnum,proto3" json:"refreshnum"`
}

func (x *PracticeGymRefreshResp) Reset() {
	*x = PracticeGymRefreshResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGymRefreshResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGymRefreshResp) ProtoMessage() {}

func (x *PracticeGymRefreshResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[24]
	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 PracticeGymRefreshResp.ProtoReflect.Descriptor instead.
func (*PracticeGymRefreshResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{24}
}

func (x *PracticeGymRefreshResp) GetLastaction() int32 {
	if x != nil {
		return x.Lastaction
	}
	return 0
}

func (x *PracticeGymRefreshResp) GetRefreshnum() int32 {
	if x != nil {
		return x.Refreshnum
	}
	return 0
}

///健身获得buff请求
type PracticeGetGymBuffReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Posture int32 `protobuf:"varint,1,opt,name=posture,proto3" json:"posture"`
}

func (x *PracticeGetGymBuffReq) Reset() {
	*x = PracticeGetGymBuffReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGetGymBuffReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGetGymBuffReq) ProtoMessage() {}

func (x *PracticeGetGymBuffReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[25]
	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 PracticeGetGymBuffReq.ProtoReflect.Descriptor instead.
func (*PracticeGetGymBuffReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{25}
}

func (x *PracticeGetGymBuffReq) GetPosture() int32 {
	if x != nil {
		return x.Posture
	}
	return 0
}

///健身获得buff请求 回应
type PracticeGetGymBuffResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Buffid int32 `protobuf:"varint,1,opt,name=buffid,proto3" json:"buffid"`
}

func (x *PracticeGetGymBuffResp) Reset() {
	*x = PracticeGetGymBuffResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGetGymBuffResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGetGymBuffResp) ProtoMessage() {}

func (x *PracticeGetGymBuffResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[26]
	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 PracticeGetGymBuffResp.ProtoReflect.Descriptor instead.
func (*PracticeGetGymBuffResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{26}
}

func (x *PracticeGetGymBuffResp) GetBuffid() int32 {
	if x != nil {
		return x.Buffid
	}
	return 0
}

///健身 确认buff 请求
type PracticeGymConfirmReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Buffid int32 `protobuf:"varint,1,opt,name=buffid,proto3" json:"buffid"`
}

func (x *PracticeGymConfirmReq) Reset() {
	*x = PracticeGymConfirmReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGymConfirmReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGymConfirmReq) ProtoMessage() {}

func (x *PracticeGymConfirmReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[27]
	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 PracticeGymConfirmReq.ProtoReflect.Descriptor instead.
func (*PracticeGymConfirmReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{27}
}

func (x *PracticeGymConfirmReq) GetBuffid() int32 {
	if x != nil {
		return x.Buffid
	}
	return 0
}

///健身 确认buff 请求回应
type PracticeGymConfirmResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Buffid int32 `protobuf:"varint,1,opt,name=buffid,proto3" json:"buffid"`
}

func (x *PracticeGymConfirmResp) Reset() {
	*x = PracticeGymConfirmResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeGymConfirmResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeGymConfirmResp) ProtoMessage() {}

func (x *PracticeGymConfirmResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[28]
	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 PracticeGymConfirmResp.ProtoReflect.Descriptor instead.
func (*PracticeGymConfirmResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{28}
}

func (x *PracticeGymConfirmResp) GetBuffid() int32 {
	if x != nil {
		return x.Buffid
	}
	return 0
}

///武馆切磋请求
type PracticeQiecuoReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"`
}

func (x *PracticeQiecuoReq) Reset() {
	*x = PracticeQiecuoReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeQiecuoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeQiecuoReq) ProtoMessage() {}

func (x *PracticeQiecuoReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[29]
	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 PracticeQiecuoReq.ProtoReflect.Descriptor instead.
func (*PracticeQiecuoReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{29}
}

func (x *PracticeQiecuoReq) GetFid() string {
	if x != nil {
		return x.Fid
	}
	return ""
}

type PracticeQiecuoResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fid      string       `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid"`
	Isbattle bool         `protobuf:"varint,2,opt,name=isbattle,proto3" json:"isbattle"`
	Battle   *DBPvpBattle `protobuf:"bytes,3,opt,name=battle,proto3" json:"battle"`
}

func (x *PracticeQiecuoResp) Reset() {
	*x = PracticeQiecuoResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeQiecuoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeQiecuoResp) ProtoMessage() {}

func (x *PracticeQiecuoResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[30]
	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 PracticeQiecuoResp.ProtoReflect.Descriptor instead.
func (*PracticeQiecuoResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{30}
}

func (x *PracticeQiecuoResp) GetFid() string {
	if x != nil {
		return x.Fid
	}
	return ""
}

func (x *PracticeQiecuoResp) GetIsbattle() bool {
	if x != nil {
		return x.Isbattle
	}
	return false
}

func (x *PracticeQiecuoResp) GetBattle() *DBPvpBattle {
	if x != nil {
		return x.Battle
	}
	return nil
}

//接受切磋
type PracticeAcceptReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //切磋发起者
}

func (x *PracticeAcceptReq) Reset() {
	*x = PracticeAcceptReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeAcceptReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeAcceptReq) ProtoMessage() {}

func (x *PracticeAcceptReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[31]
	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 PracticeAcceptReq.ProtoReflect.Descriptor instead.
func (*PracticeAcceptReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{31}
}

func (x *PracticeAcceptReq) GetUid() string {
	if x != nil {
		return x.Uid
	}
	return ""
}

type PracticeAcceptResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"`
}

func (x *PracticeAcceptResp) Reset() {
	*x = PracticeAcceptResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeAcceptResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeAcceptResp) ProtoMessage() {}

func (x *PracticeAcceptResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[32]
	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 PracticeAcceptResp.ProtoReflect.Descriptor instead.
func (*PracticeAcceptResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{32}
}

func (x *PracticeAcceptResp) GetIsSucc() bool {
	if x != nil {
		return x.IsSucc
	}
	return false
}

//拒绝切磋
type PracticeRefuseReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //切磋发起者
}

func (x *PracticeRefuseReq) Reset() {
	*x = PracticeRefuseReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeRefuseReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeRefuseReq) ProtoMessage() {}

func (x *PracticeRefuseReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[33]
	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 PracticeRefuseReq.ProtoReflect.Descriptor instead.
func (*PracticeRefuseReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{33}
}

func (x *PracticeRefuseReq) GetUid() string {
	if x != nil {
		return x.Uid
	}
	return ""
}

type PracticeRefuseResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"`
}

func (x *PracticeRefuseResp) Reset() {
	*x = PracticeRefuseResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeRefuseResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeRefuseResp) ProtoMessage() {}

func (x *PracticeRefuseResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[34]
	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 PracticeRefuseResp.ProtoReflect.Descriptor instead.
func (*PracticeRefuseResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{34}
}

func (x *PracticeRefuseResp) GetIsSucc() bool {
	if x != nil {
		return x.IsSucc
	}
	return false
}

//切磋通知
type PracticeQiecuonotifyPush struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Uid        string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`                //发起者（切磋)
	Name       string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`              //发起者用户名
	NotifyType int32  `protobuf:"varint,3,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知
}

func (x *PracticeQiecuonotifyPush) Reset() {
	*x = PracticeQiecuonotifyPush{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeQiecuonotifyPush) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeQiecuonotifyPush) ProtoMessage() {}

func (x *PracticeQiecuonotifyPush) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[35]
	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 PracticeQiecuonotifyPush.ProtoReflect.Descriptor instead.
func (*PracticeQiecuonotifyPush) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{35}
}

func (x *PracticeQiecuonotifyPush) GetUid() string {
	if x != nil {
		return x.Uid
	}
	return ""
}

func (x *PracticeQiecuonotifyPush) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *PracticeQiecuonotifyPush) GetNotifyType() int32 {
	if x != nil {
		return x.NotifyType
	}
	return 0
}

//NPC战斗请求
type PracticeNPCBattkleReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Formation *BattleFormation `protobuf:"bytes,1,opt,name=formation,proto3" json:"formation"` //战斗类型
}

func (x *PracticeNPCBattkleReq) Reset() {
	*x = PracticeNPCBattkleReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeNPCBattkleReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeNPCBattkleReq) ProtoMessage() {}

func (x *PracticeNPCBattkleReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[36]
	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 PracticeNPCBattkleReq.ProtoReflect.Descriptor instead.
func (*PracticeNPCBattkleReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{36}
}

func (x *PracticeNPCBattkleReq) GetFormation() *BattleFormation {
	if x != nil {
		return x.Formation
	}
	return nil
}

//NPC战斗请求 回应
type PracticeNPCBattkleResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code ErrorCode   `protobuf:"varint,1,opt,name=code,proto3,enum=ErrorCode" json:"code"` //是否成功
	Info *BattleInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info"`
}

func (x *PracticeNPCBattkleResp) Reset() {
	*x = PracticeNPCBattkleResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeNPCBattkleResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeNPCBattkleResp) ProtoMessage() {}

func (x *PracticeNPCBattkleResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[37]
	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 PracticeNPCBattkleResp.ProtoReflect.Descriptor instead.
func (*PracticeNPCBattkleResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{37}
}

func (x *PracticeNPCBattkleResp) GetCode() ErrorCode {
	if x != nil {
		return x.Code
	}
	return ErrorCode_Success
}

func (x *PracticeNPCBattkleResp) GetInfo() *BattleInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

//NPC战斗结束请求
type PracticeNPCBattkleFinishReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Report *BattleReport `protobuf:"bytes,1,opt,name=report,proto3" json:"report"` //战报
}

func (x *PracticeNPCBattkleFinishReq) Reset() {
	*x = PracticeNPCBattkleFinishReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeNPCBattkleFinishReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeNPCBattkleFinishReq) ProtoMessage() {}

func (x *PracticeNPCBattkleFinishReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[38]
	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 PracticeNPCBattkleFinishReq.ProtoReflect.Descriptor instead.
func (*PracticeNPCBattkleFinishReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{38}
}

func (x *PracticeNPCBattkleFinishReq) GetReport() *BattleReport {
	if x != nil {
		return x.Report
	}
	return nil
}

//NPC战斗结束请求 回应
type PracticeNPCBattkleFinishResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"` //是否成功
}

func (x *PracticeNPCBattkleFinishResp) Reset() {
	*x = PracticeNPCBattkleFinishResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeNPCBattkleFinishResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeNPCBattkleFinishResp) ProtoMessage() {}

func (x *PracticeNPCBattkleFinishResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[39]
	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 PracticeNPCBattkleFinishResp.ProtoReflect.Descriptor instead.
func (*PracticeNPCBattkleFinishResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{39}
}

func (x *PracticeNPCBattkleFinishResp) GetIssucc() bool {
	if x != nil {
		return x.Issucc
	}
	return false
}

//NPC对话 请求
type PracticeNPCDialogReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PracticeNPCDialogReq) Reset() {
	*x = PracticeNPCDialogReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeNPCDialogReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeNPCDialogReq) ProtoMessage() {}

func (x *PracticeNPCDialogReq) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[40]
	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 PracticeNPCDialogReq.ProtoReflect.Descriptor instead.
func (*PracticeNPCDialogReq) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{40}
}

//NPC对话 请求
type PracticeNPCDialogResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"` //是否成功
}

func (x *PracticeNPCDialogResp) Reset() {
	*x = PracticeNPCDialogResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_practice_practice_msg_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PracticeNPCDialogResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PracticeNPCDialogResp) ProtoMessage() {}

func (x *PracticeNPCDialogResp) ProtoReflect() protoreflect.Message {
	mi := &file_practice_practice_msg_proto_msgTypes[41]
	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 PracticeNPCDialogResp.ProtoReflect.Descriptor instead.
func (*PracticeNPCDialogResp) Descriptor() ([]byte, []int) {
	return file_practice_practice_msg_proto_rawDescGZIP(), []int{41}
}

func (x *PracticeNPCDialogResp) GetIssucc() bool {
	if x != nil {
		return x.Issucc
	}
	return false
}

var File_practice_practice_msg_proto protoreflect.FileDescriptor

var file_practice_practice_msg_proto_rawDesc = []byte{
	0x0a, 0x1b, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x63, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a,
	0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63,
	0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74,
	0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x70, 0x76, 0x70, 0x2f, 0x70, 0x76, 0x70, 0x5f, 0x64, 0x62, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x10, 0x50, 0x72, 0x61, 0x63,
	0x74, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50,
	0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66,
	0x6f, 0x22, 0x3d, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6d,
	0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x04, 0x69,
	0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72,
	0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
	0x22, 0x2b, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x69, 0x64, 0x22, 0x9d, 0x01,
	0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69,
	0x63, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6d, 0x6d, 0x52, 0x65, 0x73, 0x70,
	0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x6e, 0x66,
	0x6f, 0x73, 0x1a, 0x49, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f,
	0x6f, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x29, 0x0a,
	0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52,
	0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x39, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63,
	0x74, 0x69, 0x63, 0x65, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23,
	0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44,
	0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x69,
	0x6e, 0x66, 0x6f, 0x22, 0x2a, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55,
	0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22,
	0x3b, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61,
	0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02,
	0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x6d, 0x0a, 0x13,
	0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65,
	0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72,
	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a,
	0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x41, 0x0a, 0x14, 0x50,
	0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65,
	0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x22, 0x6b,
	0x0a, 0x0f, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x74, 0x52, 0x65,
	0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x72,
	0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x18, 0x0a,
	0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x22, 0x55, 0x0a, 0x10, 0x50,
	0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63,
	0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c,
	0x61, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78,
	0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x50,
	0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63,
	0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x12,
	0x40, 0x0a, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x24, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x75,
	0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61,
	0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63,
	0x6b, 0x1a, 0x3b, 0x0a, 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd9,
	0x01, 0x0a, 0x17, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x42, 0x65, 0x45, 0x78, 0x70,
	0x75, 0x6c, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x69, 0x64, 0x12, 0x29,
	0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61,
	0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x12, 0x42, 0x0a, 0x08, 0x6b, 0x6e, 0x61,
	0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x50, 0x72,
	0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x42, 0x65, 0x45, 0x78, 0x70, 0x75, 0x6c, 0x73, 0x69, 0x6f,
	0x6e, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x1a, 0x3b, 0x0a,
	0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x12, 0x50, 0x72,
	0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71,
	0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0xbd,
	0x01, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x63, 0x65, 0x50, 0x69, 0x6c, 0x6c, 0x61, 0x72, 0x52, 0x06, 0x70, 0x69, 0x6c, 0x6c, 0x61,
	0x72, 0x12, 0x3e, 0x0a, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61,
	0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63,
	0x6b, 0x1a, 0x3b, 0x0a, 0x0d, 0x4b, 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3f,
	0x0a, 0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68,
	0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22,
	0x40, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x72, 0x6f, 0x6c,
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a,
	0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x72,
	0x6f, 0x22, 0x24, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4a, 0x58, 0x49,
	0x74, 0x65, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x55, 0x0a,
	0x13, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6e,
	0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73,
	0x68, 0x6e, 0x75, 0x6d, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65,
	0x47, 0x79, 0x6d, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x22, 0x58, 0x0a,
	0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x52, 0x65, 0x66, 0x72,
	0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x61, 0x73,
	0x74, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x72, 0x65,
	0x73, 0x68, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x66,
	0x72, 0x65, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x22, 0x31, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x47, 0x79, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x71,
	0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x22, 0x30, 0x0a, 0x16, 0x50, 0x72,
	0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x47, 0x79, 0x6d, 0x42, 0x75, 0x66, 0x66,
	0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x2f, 0x0a, 0x15,
	0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x72, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22, 0x30, 0x0a,
	0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x47, 0x79, 0x6d, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x69, 0x64, 0x22,
	0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75,
	0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69,
	0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03,
	0x66, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x1a,
	0x0a, 0x08, 0x69, 0x73, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x69, 0x73, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x06, 0x62, 0x61,
	0x74, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x42, 0x50,
	0x76, 0x70, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
	0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65,
	0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a,
	0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
	0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x25, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63,
	0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a, 0x12,
	0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x60, 0x0a, 0x18, 0x50, 0x72,
	0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74, 0x69,
	0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
	0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x15,
	0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b,
	0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c,
	0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63,
	0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
	0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
	0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
	0x22, 0x44, 0x0a, 0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42,
	0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12,
	0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06,
	0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69,
	0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69,
	0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x16,
	0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61,
	0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69,
	0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_practice_practice_msg_proto_rawDescOnce sync.Once
	file_practice_practice_msg_proto_rawDescData = file_practice_practice_msg_proto_rawDesc
)

func file_practice_practice_msg_proto_rawDescGZIP() []byte {
	file_practice_practice_msg_proto_rawDescOnce.Do(func() {
		file_practice_practice_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_practice_practice_msg_proto_rawDescData)
	})
	return file_practice_practice_msg_proto_rawDescData
}

var file_practice_practice_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 46)
var file_practice_practice_msg_proto_goTypes = []interface{}{
	(*PracticeInfoReq)(nil),              // 0: PracticeInfoReq
	(*PracticeInfoResp)(nil),             // 1: PracticeInfoResp
	(*PracticeRommChangePush)(nil),       // 2: PracticeRommChangePush
	(*PracticeFriendRommReq)(nil),        // 3: PracticeFriendRommReq
	(*PracticeFriendRommResp)(nil),       // 4: PracticeFriendRommResp
	(*PracticeUnLockReq)(nil),            // 5: PracticeUnLockReq
	(*PracticeUnLockResp)(nil),           // 6: PracticeUnLockResp
	(*PracticeUpgradeReq)(nil),           // 7: PracticeUpgradeReq
	(*PracticeUpgradeResp)(nil),          // 8: PracticeUpgradeResp
	(*PracticePracticeReq)(nil),          // 9: PracticePracticeReq
	(*PracticePracticeResp)(nil),         // 10: PracticePracticeResp
	(*PracticeLootReq)(nil),              // 11: PracticeLootReq
	(*PracticeLootResp)(nil),             // 12: PracticeLootResp
	(*PracticeExpulsionReq)(nil),         // 13: PracticeExpulsionReq
	(*PracticeExpulsionResp)(nil),        // 14: PracticeExpulsionResp
	(*PracticeBeExpulsionPush)(nil),      // 15: PracticeBeExpulsionPush
	(*PracticeReceiveReq)(nil),           // 16: PracticeReceiveReq
	(*PracticeReceiveResp)(nil),          // 17: PracticeReceiveResp
	(*PracticeEnrolledReq)(nil),          // 18: PracticeEnrolledReq
	(*PracticeEnrolledResp)(nil),         // 19: PracticeEnrolledResp
	(*PracticeJXItemPush)(nil),           // 20: PracticeJXItemPush
	(*PracticeGymInfoReq)(nil),           // 21: PracticeGymInfoReq
	(*PracticeGymInfoResp)(nil),          // 22: PracticeGymInfoResp
	(*PracticeGymRefreshReq)(nil),        // 23: PracticeGymRefreshReq
	(*PracticeGymRefreshResp)(nil),       // 24: PracticeGymRefreshResp
	(*PracticeGetGymBuffReq)(nil),        // 25: PracticeGetGymBuffReq
	(*PracticeGetGymBuffResp)(nil),       // 26: PracticeGetGymBuffResp
	(*PracticeGymConfirmReq)(nil),        // 27: PracticeGymConfirmReq
	(*PracticeGymConfirmResp)(nil),       // 28: PracticeGymConfirmResp
	(*PracticeQiecuoReq)(nil),            // 29: PracticeQiecuoReq
	(*PracticeQiecuoResp)(nil),           // 30: PracticeQiecuoResp
	(*PracticeAcceptReq)(nil),            // 31: PracticeAcceptReq
	(*PracticeAcceptResp)(nil),           // 32: PracticeAcceptResp
	(*PracticeRefuseReq)(nil),            // 33: PracticeRefuseReq
	(*PracticeRefuseResp)(nil),           // 34: PracticeRefuseResp
	(*PracticeQiecuonotifyPush)(nil),     // 35: PracticeQiecuonotifyPush
	(*PracticeNPCBattkleReq)(nil),        // 36: PracticeNPCBattkleReq
	(*PracticeNPCBattkleResp)(nil),       // 37: PracticeNPCBattkleResp
	(*PracticeNPCBattkleFinishReq)(nil),  // 38: PracticeNPCBattkleFinishReq
	(*PracticeNPCBattkleFinishResp)(nil), // 39: PracticeNPCBattkleFinishResp
	(*PracticeNPCDialogReq)(nil),         // 40: PracticeNPCDialogReq
	(*PracticeNPCDialogResp)(nil),        // 41: PracticeNPCDialogResp
	nil,                                  // 42: PracticeFriendRommResp.InfosEntry
	nil,                                  // 43: PracticeExpulsionResp.KnapsackEntry
	nil,                                  // 44: PracticeBeExpulsionPush.KnapsackEntry
	nil,                                  // 45: PracticeReceiveResp.KnapsackEntry
	(*DBPracticeRoom)(nil),               // 46: DBPracticeRoom
	(*DBPracticePillar)(nil),             // 47: DBPracticePillar
	(*DBPvpBattle)(nil),                  // 48: DBPvpBattle
	(*BattleFormation)(nil),              // 49: BattleFormation
	(ErrorCode)(0),                       // 50: ErrorCode
	(*BattleInfo)(nil),                   // 51: BattleInfo
	(*BattleReport)(nil),                 // 52: BattleReport
}
var file_practice_practice_msg_proto_depIdxs = []int32{
	46, // 0: PracticeInfoResp.info:type_name -> DBPracticeRoom
	46, // 1: PracticeRommChangePush.info:type_name -> DBPracticeRoom
	42, // 2: PracticeFriendRommResp.infos:type_name -> PracticeFriendRommResp.InfosEntry
	46, // 3: PracticeUnLockResp.info:type_name -> DBPracticeRoom
	47, // 4: PracticePracticeResp.pillar:type_name -> DBPracticePillar
	47, // 5: PracticeLootResp.pillar:type_name -> DBPracticePillar
	47, // 6: PracticeExpulsionResp.pillar:type_name -> DBPracticePillar
	43, // 7: PracticeExpulsionResp.knapsack:type_name -> PracticeExpulsionResp.KnapsackEntry
	47, // 8: PracticeBeExpulsionPush.pillar:type_name -> DBPracticePillar
	44, // 9: PracticeBeExpulsionPush.knapsack:type_name -> PracticeBeExpulsionPush.KnapsackEntry
	47, // 10: PracticeReceiveResp.pillar:type_name -> DBPracticePillar
	45, // 11: PracticeReceiveResp.knapsack:type_name -> PracticeReceiveResp.KnapsackEntry
	48, // 12: PracticeQiecuoResp.battle:type_name -> DBPvpBattle
	49, // 13: PracticeNPCBattkleReq.formation:type_name -> BattleFormation
	50, // 14: PracticeNPCBattkleResp.code:type_name -> ErrorCode
	51, // 15: PracticeNPCBattkleResp.info:type_name -> BattleInfo
	52, // 16: PracticeNPCBattkleFinishReq.report:type_name -> BattleReport
	46, // 17: PracticeFriendRommResp.InfosEntry.value:type_name -> DBPracticeRoom
	18, // [18:18] is the sub-list for method output_type
	18, // [18:18] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] is the sub-list for field type_name
}

func init() { file_practice_practice_msg_proto_init() }
func file_practice_practice_msg_proto_init() {
	if File_practice_practice_msg_proto != nil {
		return
	}
	file_errorcode_proto_init()
	file_practice_practice_db_proto_init()
	file_battle_battle_msg_proto_init()
	file_pvp_pvp_db_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_practice_practice_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeInfoReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeRommChangePush); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeFriendRommReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeFriendRommResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeUnLockReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeUnLockResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeUpgradeReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeUpgradeResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticePracticeReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticePracticeResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeLootReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeLootResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeExpulsionReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeExpulsionResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeBeExpulsionPush); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeReceiveReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeReceiveResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeEnrolledReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeEnrolledResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeJXItemPush); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGymInfoReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGymInfoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGymRefreshReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGymRefreshResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGetGymBuffReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGetGymBuffResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGymConfirmReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeGymConfirmResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeQiecuoReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeQiecuoResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeAcceptReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeAcceptResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeRefuseReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeRefuseResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeQiecuonotifyPush); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeNPCBattkleReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeNPCBattkleResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeNPCBattkleFinishReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeNPCBattkleFinishResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeNPCDialogReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_practice_practice_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PracticeNPCDialogResp); 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_practice_practice_msg_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   46,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_practice_practice_msg_proto_goTypes,
		DependencyIndexes: file_practice_practice_msg_proto_depIdxs,
		MessageInfos:      file_practice_practice_msg_proto_msgTypes,
	}.Build()
	File_practice_practice_msg_proto = out.File
	file_practice_practice_msg_proto_rawDesc = nil
	file_practice_practice_msg_proto_goTypes = nil
	file_practice_practice_msg_proto_depIdxs = nil
}
