上床捕羊匹配优化
This commit is contained in:
parent
6d86f3a05b
commit
74344f18ac
@ -13,7 +13,8 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SC_ServiceGateRouteComp core.S_Comps = "SC_GateRouteComp" //s_comps.ISC_GateRouteComp
|
SC_ServiceGateRouteComp core.S_Comps = "SC_GateRouteComp" //s_comps.ISC_GateRouteComp
|
||||||
|
SC_ServiceMatchComp core.S_Comps = "SC_ServiceMatchComp" //s_comps.ISC_GateRouteComp
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -115,6 +116,7 @@ const (
|
|||||||
ModuleEntertainment core.M_Modules = "entertain" //消消乐
|
ModuleEntertainment core.M_Modules = "entertain" //消消乐
|
||||||
ModuleDcolor core.M_Modules = "dcolor" //猜颜色
|
ModuleDcolor core.M_Modules = "dcolor" //猜颜色
|
||||||
ModuleMaincity core.M_Modules = "maincity" //主城同屏
|
ModuleMaincity core.M_Modules = "maincity" //主城同屏
|
||||||
|
ModuleMatchPool core.M_Modules = "matchpool" //匹配
|
||||||
)
|
)
|
||||||
|
|
||||||
// 数据表名定义处
|
// 数据表名定义处
|
||||||
@ -452,7 +454,11 @@ const ( //Rpc
|
|||||||
|
|
||||||
//PVP 离线托管
|
//PVP 离线托管
|
||||||
RPC_PVPTrusteeship core.Rpc_Key = "RPC_PVPTrusteeship"
|
RPC_PVPTrusteeship core.Rpc_Key = "RPC_PVPTrusteeship"
|
||||||
|
//捕羊大赛加入匹配请求
|
||||||
|
RPC_JoinMatchPools core.Rpc_Key = "RPC_JoinMatchPools" //加入匹配池
|
||||||
|
RPC_CancelMatch core.Rpc_Key = "RPC_CancelMatch" //取消匹配
|
||||||
|
//成功匹配
|
||||||
|
RPC_SuccMatchNotice core.Rpc_Key = "RPC_SuccMatchNotice" //成功匹配
|
||||||
//捕羊大赛加入匹配请求
|
//捕羊大赛加入匹配请求
|
||||||
RPC_ParkourJoinMatch core.Rpc_Key = "RPC_ParkourJoinMatch" //加入匹配
|
RPC_ParkourJoinMatch core.Rpc_Key = "RPC_ParkourJoinMatch" //加入匹配
|
||||||
RPC_ParkourCancelMatch core.Rpc_Key = "RPC_ParkourCancelMatch" //取消匹配
|
RPC_ParkourCancelMatch core.Rpc_Key = "RPC_ParkourCancelMatch" //取消匹配
|
||||||
|
24
comm/core.go
24
comm/core.go
@ -4,14 +4,15 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"go_dreamfactory/lego/base"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/utils/container/id"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
"math/big"
|
"math/big"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"go_dreamfactory/lego/base"
|
|
||||||
"go_dreamfactory/lego/core"
|
|
||||||
|
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
"google.golang.org/protobuf/types/known/anypb"
|
"google.golang.org/protobuf/types/known/anypb"
|
||||||
)
|
)
|
||||||
@ -25,6 +26,12 @@ type ISC_GateRouteComp interface {
|
|||||||
PutUserSession(session IUserSession)
|
PutUserSession(session IUserSession)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 服务匹配组件
|
||||||
|
type ISC_MatchComp interface {
|
||||||
|
core.IServiceComp
|
||||||
|
RegisterMatchPool(poolName string, comp reflect.Value, msg reflect.Type, handle reflect.Method)
|
||||||
|
}
|
||||||
|
|
||||||
// 游戏类资源类型
|
// 游戏类资源类型
|
||||||
const (
|
const (
|
||||||
AttrType = "attr" //用户属性资源 例如货币 经验 之类的
|
AttrType = "attr" //用户属性资源 例如货币 经验 之类的
|
||||||
@ -211,3 +218,14 @@ func GetUserBaseInfo(user *pb.DBUser) *pb.BaseUserInfo {
|
|||||||
}
|
}
|
||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetRobotBaseInfo(robot *cfg.GameRobotData) *pb.BaseUserInfo {
|
||||||
|
info := &pb.BaseUserInfo{
|
||||||
|
Uid: fmt.Sprintf("ai_%s", id.NewXId()),
|
||||||
|
Name: robot.Name,
|
||||||
|
Gender: robot.Sex,
|
||||||
|
Skin: robot.Showid,
|
||||||
|
Lv: robot.Lvshow,
|
||||||
|
}
|
||||||
|
return info
|
||||||
|
}
|
||||||
|
61
modules/comp_match.go
Normal file
61
modules/comp_match.go
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package modules
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/base"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/core/cbase"
|
||||||
|
"log"
|
||||||
|
"reflect"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
模块 网关组件 接收处理用户传递消息
|
||||||
|
*/
|
||||||
|
type MCompMatch struct {
|
||||||
|
cbase.ModuleCompBase
|
||||||
|
service base.IRPCXService //rpc服务对象
|
||||||
|
module core.IModule //当前业务模块
|
||||||
|
comp core.IModuleComp //网关组件自己
|
||||||
|
scomp comm.ISC_MatchComp
|
||||||
|
PoolName string
|
||||||
|
}
|
||||||
|
|
||||||
|
//组件初始化接口
|
||||||
|
func (this *MCompMatch) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
|
this.ModuleCompBase.Init(service, module, comp, options)
|
||||||
|
this.service = service.(base.IRPCXService)
|
||||||
|
this.module = module
|
||||||
|
this.comp = comp
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//组件启动接口,启动时将自己接收用户消息的处理函数注册到services/comp_gateroute.go 对象中
|
||||||
|
func (this *MCompMatch) Start() (err error) {
|
||||||
|
if err = this.ModuleCompBase.Start(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var comp core.IServiceComp
|
||||||
|
//注册远程路由
|
||||||
|
if comp, err = this.service.GetComp(comm.SC_ServiceMatchComp); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.scomp = comp.(comm.ISC_MatchComp)
|
||||||
|
this.suitableMethods()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//反射注册相关接口道services/comp_gateroute.go 对象中
|
||||||
|
func (this *MCompMatch) suitableMethods() {
|
||||||
|
typ := reflect.TypeOf(this.comp)
|
||||||
|
for m := 0; m < typ.NumMethod(); m++ {
|
||||||
|
method := typ.Method(m)
|
||||||
|
mname := method.Name
|
||||||
|
if mname == "MatchNotic" {
|
||||||
|
agrType := typ.In(1)
|
||||||
|
this.scomp.RegisterMatchPool(this.PoolName, reflect.ValueOf(this.comp), agrType, method)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.Panicf("反射注册匹配池处理函数错误 [%s-%s] Api接口格式错误", this.module.GetType(), "MatchNotic")
|
||||||
|
}
|
76
modules/matchpool/module.go
Normal file
76
modules/matchpool/module.go
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
package matchpool
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
模块名:匹配池
|
||||||
|
开发:李伟
|
||||||
|
描述:集合项目中所有匹配玩法
|
||||||
|
*/
|
||||||
|
type MatchPool struct {
|
||||||
|
modules.ModuleBase
|
||||||
|
service comm.IService
|
||||||
|
pools *poolsComp
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewModule() core.IModule {
|
||||||
|
return &MatchPool{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MatchPool) GetType() core.M_Modules {
|
||||||
|
return comm.ModuleMatchPool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MatchPool) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
||||||
|
if err = this.ModuleBase.Init(service, module, options); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.service = service.(comm.IService)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MatchPool) Start() (err error) {
|
||||||
|
if err = this.ModuleBase.Start(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.service.RegisterFunctionName(string(comm.RPC_JoinMatchPools), this.JoinMatchPools)
|
||||||
|
this.service.RegisterFunctionName(string(comm.RPC_CancelMatch), this.CancelMatch)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MatchPool) OnInstallComp() {
|
||||||
|
this.ModuleBase.OnInstallComp()
|
||||||
|
this.pools = this.RegisterComp(new(poolsComp)).(*poolsComp)
|
||||||
|
}
|
||||||
|
|
||||||
|
//加入匹配池
|
||||||
|
func (this *MatchPool) JoinMatchPools(ctx context.Context, req *pb.JoinMatchPoolReq, resp *pb.JoinMatchPoolResp) {
|
||||||
|
this.pools.joinPools(req)
|
||||||
|
}
|
||||||
|
|
||||||
|
//取消匹配
|
||||||
|
func (this *MatchPool) CancelMatch(ctx context.Context, req *pb.CancelMatchReq, resp *pb.CancelMatchResp) {
|
||||||
|
this.pools.cancelMatch(req)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MatchPool) MatchNotice(req *pb.SuccMatchNoticeReq) {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
if err = this.service.RpcCall(context.Background(),
|
||||||
|
comm.Service_Worker,
|
||||||
|
string(comm.RPC_SuccMatchNotice),
|
||||||
|
req,
|
||||||
|
&pb.RPCParkourMatchSuccResp{},
|
||||||
|
); err != nil {
|
||||||
|
this.Error("MatchNotice err!", log.Field{Key: "err", Value: err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
115
modules/matchpool/pool.go
Normal file
115
modules/matchpool/pool.go
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
package matchpool
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
"sync"
|
||||||
|
"sync/atomic"
|
||||||
|
|
||||||
|
anypb "google.golang.org/protobuf/types/known/anypb"
|
||||||
|
)
|
||||||
|
|
||||||
|
type MatchPlayer struct {
|
||||||
|
Uid string
|
||||||
|
Dan int32
|
||||||
|
Time int32
|
||||||
|
Data *anypb.Any
|
||||||
|
}
|
||||||
|
|
||||||
|
//基础匹配池
|
||||||
|
type MPool struct {
|
||||||
|
module *MatchPool
|
||||||
|
Name string
|
||||||
|
MatchNum int32
|
||||||
|
Timeout int32
|
||||||
|
lock sync.RWMutex
|
||||||
|
state int32
|
||||||
|
Players map[string]*MatchPlayer
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MPool) join(req *pb.JoinMatchPoolReq) {
|
||||||
|
this.lock.Lock()
|
||||||
|
player := &MatchPlayer{
|
||||||
|
Uid: req.Uid,
|
||||||
|
Time: 0,
|
||||||
|
Data: req.Data,
|
||||||
|
}
|
||||||
|
this.Players[req.Uid] = player
|
||||||
|
this.lock.Unlock()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MPool) cancel(uid string) {
|
||||||
|
this.lock.Lock()
|
||||||
|
delete(this.Players, uid)
|
||||||
|
this.lock.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MPool) match(cd int32) {
|
||||||
|
if !atomic.CompareAndSwapInt32(&this.state, 1, 2) { //正在执行,就不要在进来了
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
atomic.StoreInt32(&this.state, 1) //执行完毕释放
|
||||||
|
}()
|
||||||
|
var (
|
||||||
|
ok bool
|
||||||
|
playerNum int32
|
||||||
|
danplayers map[int32][]*MatchPlayer = make(map[int32][]*MatchPlayer)
|
||||||
|
group []*MatchPlayer
|
||||||
|
)
|
||||||
|
this.lock.Lock()
|
||||||
|
for _, v := range this.Players {
|
||||||
|
v.Time += cd
|
||||||
|
playerNum += 1
|
||||||
|
}
|
||||||
|
for _, v := range this.Players {
|
||||||
|
if _, ok = danplayers[v.Dan]; !ok {
|
||||||
|
danplayers[v.Dan] = make([]*MatchPlayer, 0)
|
||||||
|
}
|
||||||
|
danplayers[v.Dan] = append(danplayers[v.Dan], v)
|
||||||
|
}
|
||||||
|
this.lock.Unlock()
|
||||||
|
|
||||||
|
if playerNum == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
group = make([]*MatchPlayer, 0)
|
||||||
|
locp:
|
||||||
|
for _, players := range danplayers {
|
||||||
|
if len(players) >= int(this.MatchNum) {
|
||||||
|
group = append(group, players[0:this.MatchNum]...)
|
||||||
|
break locp
|
||||||
|
} else {
|
||||||
|
for _, player := range players {
|
||||||
|
if player.Time >= this.Timeout {
|
||||||
|
group = append(group, players...)
|
||||||
|
break locp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(group) > 0 {
|
||||||
|
this.matchSucc(group)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *MPool) matchSucc(group []*MatchPlayer) {
|
||||||
|
var (
|
||||||
|
Players map[string]*anypb.Any = make(map[string]*anypb.Any)
|
||||||
|
)
|
||||||
|
this.lock.Lock()
|
||||||
|
for _, v := range group {
|
||||||
|
delete(this.Players, v.Uid)
|
||||||
|
}
|
||||||
|
this.lock.Unlock()
|
||||||
|
for _, v := range group {
|
||||||
|
Players[v.Uid] = v.Data
|
||||||
|
}
|
||||||
|
|
||||||
|
go this.module.MatchNotice(&pb.SuccMatchNoticeReq{
|
||||||
|
Poolname: this.Name,
|
||||||
|
Players: Players,
|
||||||
|
Missnum: this.MatchNum - int32(len(group)),
|
||||||
|
})
|
||||||
|
}
|
82
modules/matchpool/pools.go
Normal file
82
modules/matchpool/pools.go
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
package matchpool
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/sys/cron"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
type poolsComp struct {
|
||||||
|
modules.MCompGate
|
||||||
|
service core.IService
|
||||||
|
module *MatchPool
|
||||||
|
lock sync.RWMutex
|
||||||
|
pools map[string]*MPool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *poolsComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
|
this.MCompGate.Init(service, module, comp, options)
|
||||||
|
this.module = module.(*MatchPool)
|
||||||
|
this.service = service
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *poolsComp) Start() (err error) {
|
||||||
|
err = this.MCompGate.Start()
|
||||||
|
if _, err = cron.AddFunc("*/1 * * * * ?", this.run); err != nil {
|
||||||
|
this.module.Errorf("cron.AddFunc err:%v", err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *poolsComp) joinPools(req *pb.JoinMatchPoolReq) {
|
||||||
|
var (
|
||||||
|
pool *MPool
|
||||||
|
ok bool
|
||||||
|
)
|
||||||
|
this.lock.RLock()
|
||||||
|
pool, ok = this.pools[req.Poolname]
|
||||||
|
this.lock.RUnlock()
|
||||||
|
if !ok {
|
||||||
|
pool = &MPool{
|
||||||
|
module: this.module,
|
||||||
|
Name: req.Poolname,
|
||||||
|
MatchNum: req.Matchnum,
|
||||||
|
Timeout: req.Timeout,
|
||||||
|
Players: make(map[string]*MatchPlayer),
|
||||||
|
}
|
||||||
|
this.lock.Lock()
|
||||||
|
this.pools[req.Poolname] = pool
|
||||||
|
this.lock.Unlock()
|
||||||
|
}
|
||||||
|
pool.join(req)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *poolsComp) cancelMatch(req *pb.CancelMatchReq) {
|
||||||
|
var (
|
||||||
|
pool *MPool
|
||||||
|
ok bool
|
||||||
|
)
|
||||||
|
this.lock.RLock()
|
||||||
|
pool, ok = this.pools[req.Poolname]
|
||||||
|
this.lock.RUnlock()
|
||||||
|
if ok {
|
||||||
|
pool.cancel(req.Uid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *poolsComp) run() {
|
||||||
|
var (
|
||||||
|
pools []*MPool = make([]*MPool, 0)
|
||||||
|
)
|
||||||
|
this.lock.Lock()
|
||||||
|
for _, v := range this.pools {
|
||||||
|
pools = append(pools, v)
|
||||||
|
}
|
||||||
|
this.lock.Unlock()
|
||||||
|
for _, v := range pools {
|
||||||
|
go v.match(1)
|
||||||
|
}
|
||||||
|
}
|
@ -70,7 +70,7 @@ func (this *aiComp) createAi(battleid string, btype pb.RaceType, users []*pb.DBR
|
|||||||
if conf, err = this.module.configure.getgameBukashiAiDataByDan(int32(btype)+1, v.Dan+1); err != nil {
|
if conf, err = this.module.configure.getgameBukashiAiDataByDan(int32(btype)+1, v.Dan+1); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ais[i] = NewAI(battleid, v.Uid, conf)
|
ais[i] = NewAI(battleid, v.User.Uid, conf)
|
||||||
|
|
||||||
}
|
}
|
||||||
this.lock.Lock()
|
this.lock.Lock()
|
||||||
|
@ -89,14 +89,8 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ParkourInfoReq) (er
|
|||||||
update["weekintegral"] = 0
|
update["weekintegral"] = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
info.Lv = user.Lv
|
info.User = comm.GetUserBaseInfo(user)
|
||||||
info.Name = user.Name
|
update["user"] = info.User
|
||||||
info.Sex = user.Gender
|
|
||||||
info.Skin = user.CurSkin
|
|
||||||
update["lv"] = user.Lv
|
|
||||||
update["name"] = user.Name
|
|
||||||
update["sex"] = user.Gender
|
|
||||||
update["skin"] = user.CurSkin
|
|
||||||
if err = this.module.parkourComp.Change(session.GetUserId(), update); err != nil {
|
if err = this.module.parkourComp.Change(session.GetUserId(), update); err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
Code: pb.ErrorCode_DBError,
|
Code: pb.ErrorCode_DBError,
|
||||||
@ -106,36 +100,5 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.ParkourInfoReq) (er
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
session.SendMsg(string(this.module.GetType()), "info", &pb.ParkourInfoResp{Info: info})
|
session.SendMsg(string(this.module.GetType()), "info", &pb.ParkourInfoResp{Info: info})
|
||||||
|
|
||||||
// var (
|
|
||||||
// isopen bool
|
|
||||||
// info *pb.DBParkour
|
|
||||||
// recommend []*pb.DBRaceMember
|
|
||||||
// err error
|
|
||||||
// )
|
|
||||||
// if errdata = this.InfoCheck(session, req); errdata != nil {
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// // isopen = this.module.configure.isopen()
|
|
||||||
// isopen = true
|
|
||||||
// if isopen {
|
|
||||||
// if info, err = this.module.parkourComp.queryinfo(session.GetUserId()); err != nil {
|
|
||||||
// errdata = &pb.ErrorData{
|
|
||||||
// Code: pb.ErrorCode_DBError,
|
|
||||||
// Title: pb.ErrorCode_DBError.ToString(),
|
|
||||||
// Message: err.Error(),
|
|
||||||
// }
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// if recommend, err = this.module.parkourComp.getrusers(session.GetUserId()); err != nil {
|
|
||||||
// errdata = &pb.ErrorData{
|
|
||||||
// Code: pb.ErrorCode_DBError,
|
|
||||||
// Title: pb.ErrorCode_DBError.ToString(),
|
|
||||||
// Message: err.Error(),
|
|
||||||
// }
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// session.SendMsg(string(this.module.GetType()), "info", &pb.ParkourInfoResp{Isopen: isopen, Info: info, Recommend: recommend})
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMat
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// if team.Captainid == "" { //为组队情况
|
// if team.Captainid == "" { //为组队情况
|
||||||
team.Captainid = team.Uid
|
team.Captainid = team.User.Uid
|
||||||
team.State = pb.RaceTeamState_teaming
|
team.State = pb.RaceTeamState_teaming
|
||||||
// team.Member = append(team.Member, &pb.DBRaceMember{
|
// team.Member = append(team.Member, &pb.DBRaceMember{
|
||||||
// Uid: team.Uid,
|
// Uid: team.Uid,
|
||||||
@ -58,11 +58,7 @@ func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMat
|
|||||||
// })
|
// })
|
||||||
team.Member = []*pb.DBRaceMember{
|
team.Member = []*pb.DBRaceMember{
|
||||||
{
|
{
|
||||||
Uid: team.Uid,
|
User: team.User,
|
||||||
Name: team.Name,
|
|
||||||
Skin: team.Skin,
|
|
||||||
Sex: team.Sex,
|
|
||||||
Lv: team.Lv,
|
|
||||||
Dan: team.Dan,
|
Dan: team.Dan,
|
||||||
Mount: team.Mount,
|
Mount: team.Mount,
|
||||||
Property: team.Property,
|
Property: team.Property,
|
||||||
@ -101,8 +97,8 @@ func (this *apiComp) RaceMatch(session comm.IUserSession, req *pb.ParkourRaceMat
|
|||||||
users = make([]string, len(team.Member))
|
users = make([]string, len(team.Member))
|
||||||
for i, v := range team.Member {
|
for i, v := range team.Member {
|
||||||
if !v.Isai {
|
if !v.Isai {
|
||||||
users[i] = v.Uid
|
users[i] = v.User.Uid
|
||||||
if err = this.module.parkourComp.Change(v.Uid, map[string]interface{}{
|
if err = this.module.parkourComp.Change(v.User.Uid, map[string]interface{}{
|
||||||
"state": pb.RaceTeamState_matching,
|
"state": pb.RaceTeamState_matching,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
|
@ -53,8 +53,8 @@ func (this *apiComp) RaceMatchCancel(session comm.IUserSession, req *pb.ParkourR
|
|||||||
users = make([]string, len(team.Member))
|
users = make([]string, len(team.Member))
|
||||||
for i, v := range team.Member {
|
for i, v := range team.Member {
|
||||||
if !v.Isai {
|
if !v.Isai {
|
||||||
users[i] = v.Uid
|
users[i] = v.User.Uid
|
||||||
if err = this.module.parkourComp.Change(v.Uid, map[string]interface{}{
|
if err = this.module.parkourComp.Change(v.User.Uid, map[string]interface{}{
|
||||||
"state": pb.RaceTeamState_matching,
|
"state": pb.RaceTeamState_matching,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
|
@ -28,7 +28,7 @@ func (this *apiComp) Ready(session comm.IUserSession, req *pb.ParkourReadyReq) (
|
|||||||
ok = false
|
ok = false
|
||||||
isready = true
|
isready = true
|
||||||
for _, v := range race.RedMember {
|
for _, v := range race.RedMember {
|
||||||
if v.Uid == session.GetUserId() {
|
if v.User.Uid == session.GetUserId() {
|
||||||
v.Ready = true
|
v.Ready = true
|
||||||
ok = true
|
ok = true
|
||||||
} else {
|
} else {
|
||||||
@ -38,7 +38,7 @@ func (this *apiComp) Ready(session comm.IUserSession, req *pb.ParkourReadyReq) (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v := range race.BuleMember {
|
for _, v := range race.BuleMember {
|
||||||
if v.Uid == session.GetUserId() {
|
if v.User.Uid == session.GetUserId() {
|
||||||
v.Ready = true
|
v.Ready = true
|
||||||
ok = true
|
ok = true
|
||||||
} else {
|
} else {
|
||||||
|
@ -27,8 +27,8 @@ func (this *apiComp) RecoverHp(session comm.IUserSession, req *pb.ParkourRecover
|
|||||||
users = make([]string, 0)
|
users = make([]string, 0)
|
||||||
ok = false
|
ok = false
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
users = append(users, v.Uid)
|
users = append(users, v.User.Uid)
|
||||||
if v.Uid == session.GetUserId() {
|
if v.User.Uid == session.GetUserId() {
|
||||||
ok = true
|
ok = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ func (this *apiComp) RecoverHp(session comm.IUserSession, req *pb.ParkourRecover
|
|||||||
if !ok {
|
if !ok {
|
||||||
users = users[:0]
|
users = users[:0]
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
users = append(users, v.Uid)
|
users = append(users, v.User.Uid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//恢复hp
|
//恢复hp
|
||||||
|
118
modules/parkour/match.go
Normal file
118
modules/parkour/match.go
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
package parkour
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/types/known/anypb"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
匹配组件
|
||||||
|
*/
|
||||||
|
type matchComp struct {
|
||||||
|
modules.MCompMatch
|
||||||
|
service core.IService
|
||||||
|
module *Parkour
|
||||||
|
}
|
||||||
|
|
||||||
|
//组件初始化接口
|
||||||
|
func (this *matchComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
|
this.MCompMatch.Init(service, module, comp, options)
|
||||||
|
this.module = module.(*Parkour)
|
||||||
|
this.service = service
|
||||||
|
this.PoolName = "parkour"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *matchComp) Start() (err error) {
|
||||||
|
err = this.MCompMatch.Start()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *matchComp) MatchReq(player *pb.DBMatchPlayer) (err error) {
|
||||||
|
data, _ := anypb.New(player)
|
||||||
|
err = this.module.service.RpcCall(
|
||||||
|
context.Background(),
|
||||||
|
comm.Service_Mainte,
|
||||||
|
string(comm.RPC_JoinMatchPools),
|
||||||
|
&pb.JoinMatchPoolReq{
|
||||||
|
Poolname: this.PoolName,
|
||||||
|
Uid: player.Suser.Uid,
|
||||||
|
Data: data,
|
||||||
|
Matchnum: 6,
|
||||||
|
Timeout: 10,
|
||||||
|
},
|
||||||
|
&pb.JoinMatchPoolResp{})
|
||||||
|
if err != nil {
|
||||||
|
this.module.Errorln(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *matchComp) MatchNotic(players []*pb.DBMatchPlayer) (errdata *pb.ErrorData) {
|
||||||
|
var (
|
||||||
|
red []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0, 3)
|
||||||
|
bule []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0, 3)
|
||||||
|
ais []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0, 6)
|
||||||
|
dan int32
|
||||||
|
leftnum int32
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
for i, v := range players {
|
||||||
|
if i%2 == 0 {
|
||||||
|
red = append(red, &pb.DBRaceMember{
|
||||||
|
User: v.Suser,
|
||||||
|
Dan: v.Dan,
|
||||||
|
Mlv: v.Mlv,
|
||||||
|
Mount: v.Mount,
|
||||||
|
Property: v.Property,
|
||||||
|
Currhp: v.Property[comm.Dhp],
|
||||||
|
})
|
||||||
|
dan = v.Dan
|
||||||
|
} else {
|
||||||
|
bule = append(bule, &pb.DBRaceMember{
|
||||||
|
User: v.Suser,
|
||||||
|
Dan: v.Dan,
|
||||||
|
Mlv: v.Mlv,
|
||||||
|
Mount: v.Mount,
|
||||||
|
Property: v.Property,
|
||||||
|
Currhp: v.Property[comm.Dhp],
|
||||||
|
})
|
||||||
|
dan = v.Dan
|
||||||
|
}
|
||||||
|
}
|
||||||
|
leftnum = 6 - int32(len(players))
|
||||||
|
if leftnum > 0 {
|
||||||
|
if ais, err = this.module.parkourComp.matcheAI(dan, leftnum); err != nil {
|
||||||
|
this.module.Error("matcheAI err!", log.Field{Key: "key", Value: err.Error()})
|
||||||
|
errdata = &pb.ErrorData{
|
||||||
|
Code: pb.ErrorCode_ConfigNoFound,
|
||||||
|
Message: err.Error(),
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(red) < 3 {
|
||||||
|
red = append(red, ais[0:3-len(red)]...)
|
||||||
|
ais = ais[3-len(red):]
|
||||||
|
}
|
||||||
|
if len(bule) < 3 {
|
||||||
|
bule = append(bule, ais[0:3-len(bule)]...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err = this.module.createbattle(red, bule); err != nil {
|
||||||
|
this.module.Error("createbattle err!", log.Field{Key: "key", Value: err.Error()})
|
||||||
|
errdata = &pb.ErrorData{
|
||||||
|
Code: pb.ErrorCode_SystemError,
|
||||||
|
Message: err.Error(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
@ -7,7 +7,6 @@ import (
|
|||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/log"
|
"go_dreamfactory/lego/sys/log"
|
||||||
"go_dreamfactory/lego/sys/mgo"
|
"go_dreamfactory/lego/sys/mgo"
|
||||||
"go_dreamfactory/lego/utils/container/id"
|
|
||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
"go_dreamfactory/sys/configure"
|
"go_dreamfactory/sys/configure"
|
||||||
@ -67,7 +66,7 @@ func (this *ModelParkourComp) getrusers(uid string) (recommend []*pb.DBRaceMembe
|
|||||||
this.lock.RLock()
|
this.lock.RLock()
|
||||||
users = make([]*Recommend, 0, len(this.users))
|
users = make([]*Recommend, 0, len(this.users))
|
||||||
for _, v := range this.users {
|
for _, v := range this.users {
|
||||||
if v.parkour.Uid != uid {
|
if v.parkour.User.Uid != uid {
|
||||||
users = append(users, v)
|
users = append(users, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,14 +79,11 @@ func (this *ModelParkourComp) getrusers(uid string) (recommend []*pb.DBRaceMembe
|
|||||||
r := rand.New(rand.NewSource(configure.Now().Unix()))
|
r := rand.New(rand.NewSource(configure.Now().Unix()))
|
||||||
for i, v := range r.Perm(num) {
|
for i, v := range r.Perm(num) {
|
||||||
if users[v].member == nil {
|
if users[v].member == nil {
|
||||||
if users[v].user, err = this.module.ModuleUser.GetUser(users[v].parkour.Uid); err != nil {
|
if users[v].user, err = this.module.ModuleUser.GetUser(users[v].parkour.User.Uid); err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
users[v].member = &pb.DBRaceMember{
|
users[v].member = &pb.DBRaceMember{
|
||||||
Uid: users[v].user.Uid,
|
User: users[v].member.User,
|
||||||
Name: users[v].user.Name,
|
|
||||||
Sex: users[v].user.Gender,
|
|
||||||
Lv: users[v].user.Lv,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
recommend[i] = users[v].member
|
recommend[i] = users[v].member
|
||||||
@ -111,11 +107,7 @@ func (this *ModelParkourComp) matcheAI(dan, num int32) (results []*pb.DBRaceMemb
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
results[i] = &pb.DBRaceMember{
|
results[i] = &pb.DBRaceMember{
|
||||||
Uid: fmt.Sprintf("ai_%s", id.NewXId()),
|
User: comm.GetRobotBaseInfo(v),
|
||||||
Name: v.Name,
|
|
||||||
Sex: v.Sex,
|
|
||||||
Skin: v.Showid,
|
|
||||||
Lv: v.Lvshow,
|
|
||||||
Dan: dan,
|
Dan: dan,
|
||||||
Mount: dragon.Dragonid,
|
Mount: dragon.Dragonid,
|
||||||
Mlv: dragon.Lv,
|
Mlv: dragon.Lv,
|
||||||
@ -169,14 +161,14 @@ func (this *ModelParkourComp) queryinfo(uid string) (result *pb.DBParkour, err e
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err == mgo.MongodbNil {
|
if err == mgo.MongodbNil {
|
||||||
//var tuser *pb.DBUser
|
var user *pb.DBUser
|
||||||
if _, err = this.module.ModuleUser.GetUser(uid); err != nil {
|
if user, err = this.module.ModuleUser.GetUser(uid); err != nil {
|
||||||
err = fmt.Errorf("no found udata:%s", uid)
|
err = fmt.Errorf("no found udata:%s", uid)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result = &pb.DBParkour{
|
result = &pb.DBParkour{
|
||||||
Id: primitive.NewObjectID().Hex(),
|
Id: primitive.NewObjectID().Hex(),
|
||||||
Uid: uid,
|
User: comm.GetUserBaseInfo(user),
|
||||||
State: pb.RaceTeamState_resting,
|
State: pb.RaceTeamState_resting,
|
||||||
Invite: make([]*pb.DBRaceInvite, 0),
|
Invite: make([]*pb.DBRaceInvite, 0),
|
||||||
Member: []*pb.DBRaceMember{},
|
Member: []*pb.DBRaceMember{},
|
||||||
@ -203,14 +195,14 @@ func (this *ModelParkourComp) queryinfos(uids []string) (results []*pb.DBParkour
|
|||||||
}
|
}
|
||||||
if len(onfound) > 0 {
|
if len(onfound) > 0 {
|
||||||
for _, v := range onfound {
|
for _, v := range onfound {
|
||||||
|
var user *pb.DBUser
|
||||||
if _, err = this.module.ModuleUser.GetUser(v); err != nil {
|
if user, err = this.module.ModuleUser.GetUser(v); err != nil {
|
||||||
err = fmt.Errorf("no found udata:%s", v)
|
err = fmt.Errorf("no found udata:%s", v)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
temp := &pb.DBParkour{
|
temp := &pb.DBParkour{
|
||||||
Id: primitive.NewObjectID().Hex(),
|
Id: primitive.NewObjectID().Hex(),
|
||||||
Uid: v,
|
User: comm.GetUserBaseInfo(user),
|
||||||
State: pb.RaceTeamState_resting,
|
State: pb.RaceTeamState_resting,
|
||||||
Invite: make([]*pb.DBRaceInvite, 0),
|
Invite: make([]*pb.DBRaceInvite, 0),
|
||||||
Member: []*pb.DBRaceMember{},
|
Member: []*pb.DBRaceMember{},
|
||||||
|
@ -89,16 +89,6 @@ func (this *Parkour) OnInstallComp() {
|
|||||||
// 匹配
|
// 匹配
|
||||||
func (this *Parkour) match(team *pb.DBParkour, ais []*pb.DBRaceMember) (err error) {
|
func (this *Parkour) match(team *pb.DBParkour, ais []*pb.DBRaceMember) (err error) {
|
||||||
|
|
||||||
err = this.service.RpcCall(
|
|
||||||
context.Background(),
|
|
||||||
comm.Service_Mainte,
|
|
||||||
string(comm.RPC_ParkourJoinMatch),
|
|
||||||
&pb.RPCParkourJoinMatchReq{Captainid: team.Captainid, Member: team.Member, Ais: ais},
|
|
||||||
&pb.RPCParkourJoinMatchResp{})
|
|
||||||
if err != nil {
|
|
||||||
this.Errorln(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,19 +108,18 @@ func (this *Parkour) cancelmatch(team *pb.DBParkour) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 匹配成功 创建战斗
|
// 匹配成功 创建战斗
|
||||||
func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSuccReq, resp *pb.RPCParkourMatchSuccResp) (err error) {
|
func (this *Parkour) createbattle(red []*pb.DBRaceMember, bule []*pb.DBRaceMember) (err error) {
|
||||||
var (
|
var (
|
||||||
race *pb.DBRace
|
race *pb.DBRace
|
||||||
battle *RaceItem
|
battle *RaceItem
|
||||||
sessions []comm.IUserSession = make([]comm.IUserSession, 0)
|
sessions []comm.IUserSession = make([]comm.IUserSession, 0)
|
||||||
)
|
)
|
||||||
this.Debug("createbattle", log.Field{Key: "req", Value: req.String()})
|
this.Debug("createbattle", log.Field{Key: "red", Value: red}, log.Field{Key: "bule", Value: bule})
|
||||||
|
|
||||||
race = &pb.DBRace{
|
race = &pb.DBRace{
|
||||||
Id: primitive.NewObjectID().Hex(),
|
Id: primitive.NewObjectID().Hex(),
|
||||||
ServicePath: fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()),
|
ServicePath: fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()),
|
||||||
Redmember: req.Red,
|
Redmember: red,
|
||||||
Bulemember: req.Bule,
|
Bulemember: bule,
|
||||||
}
|
}
|
||||||
battle = &RaceItem{
|
battle = &RaceItem{
|
||||||
Id: race.Id,
|
Id: race.Id,
|
||||||
@ -138,33 +127,33 @@ func (this *Parkour) createbattle(ctx context.Context, req *pb.RPCParkourMatchSu
|
|||||||
overtimer: timewheel.Add(time.Minute*3, this.overtimer, race.Id),
|
overtimer: timewheel.Add(time.Minute*3, this.overtimer, race.Id),
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range req.Red {
|
for _, v := range red {
|
||||||
v.Currhp = v.Property[comm.Dhp]
|
v.Currhp = v.Property[comm.Dhp]
|
||||||
if !v.Isai { //非AI
|
if !v.Isai { //非AI
|
||||||
session, online := this.GetUserSession(v.Uid)
|
session, online := this.GetUserSession(v.User.Uid)
|
||||||
v.Isoff = !online
|
v.Isoff = !online
|
||||||
if online {
|
if online {
|
||||||
battle.Session[v.Uid] = session
|
battle.Session[v.User.Uid] = session
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
v.Ready = true
|
v.Ready = true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
battle.RedMember = req.Red
|
battle.RedMember = red
|
||||||
for _, v := range req.Bule {
|
for _, v := range bule {
|
||||||
v.Currhp = v.Property[comm.Dhp]
|
v.Currhp = v.Property[comm.Dhp]
|
||||||
if !v.Isai { //非AI
|
if !v.Isai { //非AI
|
||||||
session, online := this.GetUserSession(v.Uid)
|
session, online := this.GetUserSession(v.User.Uid)
|
||||||
v.Isoff = !online
|
v.Isoff = !online
|
||||||
if online {
|
if online {
|
||||||
battle.Session[v.Uid] = session
|
battle.Session[v.User.Uid] = session
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
v.Ready = true
|
v.Ready = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
battle.BuleMember = req.Bule
|
battle.BuleMember = bule
|
||||||
|
|
||||||
for _, v := range battle.Session {
|
for _, v := range battle.Session {
|
||||||
sessions = append(sessions, v)
|
sessions = append(sessions, v)
|
||||||
@ -241,7 +230,7 @@ func (this *Parkour) qte(id string, uid string, time float32, conf *cfg.GameBuzk
|
|||||||
if ok {
|
if ok {
|
||||||
ok = false
|
ok = false
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
ok = true
|
ok = true
|
||||||
v.Scores += conf.Value
|
v.Scores += conf.Value
|
||||||
side = 1
|
side = 1
|
||||||
@ -251,7 +240,7 @@ func (this *Parkour) qte(id string, uid string, time float32, conf *cfg.GameBuzk
|
|||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
ok = true
|
ok = true
|
||||||
v.Scores += conf.Value
|
v.Scores += conf.Value
|
||||||
side = 2
|
side = 2
|
||||||
@ -304,7 +293,7 @@ func (this *Parkour) shot(id string, uid string) {
|
|||||||
if ok {
|
if ok {
|
||||||
ok = false
|
ok = false
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
v.Scores += this.ModuleTools.GetGlobalConf().BuzkashiGoalscore
|
v.Scores += this.ModuleTools.GetGlobalConf().BuzkashiGoalscore
|
||||||
ok = true
|
ok = true
|
||||||
side = 1
|
side = 1
|
||||||
@ -313,7 +302,7 @@ func (this *Parkour) shot(id string, uid string) {
|
|||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
v.Scores += this.ModuleTools.GetGlobalConf().BuzkashiGoalscore
|
v.Scores += this.ModuleTools.GetGlobalConf().BuzkashiGoalscore
|
||||||
ok = true
|
ok = true
|
||||||
side = 2
|
side = 2
|
||||||
@ -364,7 +353,7 @@ func (this *Parkour) avoid(id string, uid string, distance float32, conf *cfg.Ga
|
|||||||
if ok {
|
if ok {
|
||||||
ok = false
|
ok = false
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
member = v
|
member = v
|
||||||
ok = true
|
ok = true
|
||||||
winSide = 1
|
winSide = 1
|
||||||
@ -373,7 +362,7 @@ func (this *Parkour) avoid(id string, uid string, distance float32, conf *cfg.Ga
|
|||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
member = v
|
member = v
|
||||||
ok = true
|
ok = true
|
||||||
winSide = 2
|
winSide = 2
|
||||||
@ -393,7 +382,7 @@ func (this *Parkour) avoid(id string, uid string, distance float32, conf *cfg.Ga
|
|||||||
if conf == nil {
|
if conf == nil {
|
||||||
member.Currhp -= this.ModuleTools.GetGlobalConf().BuzkashiSpeedbumphp
|
member.Currhp -= this.ModuleTools.GetGlobalConf().BuzkashiSpeedbumphp
|
||||||
if member.Currhp <= 0 {
|
if member.Currhp <= 0 {
|
||||||
timewheel.Add(time.Second*time.Duration(this.ModuleTools.GetGlobalConf().BuzkashiResurrection), this.resurrectiontimer, battle.Id, member.Uid)
|
timewheel.Add(time.Second*time.Duration(this.ModuleTools.GetGlobalConf().BuzkashiResurrection), this.resurrectiontimer, battle.Id, member.User.Uid)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
member.Scores += conf.Value
|
member.Scores += conf.Value
|
||||||
@ -435,7 +424,7 @@ func (this *Parkour) recoverhp(id string, uid string, hp int32) {
|
|||||||
if ok {
|
if ok {
|
||||||
ok = false
|
ok = false
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
player = v
|
player = v
|
||||||
v.Currhp += hp
|
v.Currhp += hp
|
||||||
if v.Currhp > v.Property[comm.Dhp] {
|
if v.Currhp > v.Property[comm.Dhp] {
|
||||||
@ -446,7 +435,7 @@ func (this *Parkour) recoverhp(id string, uid string, hp int32) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
player = v
|
player = v
|
||||||
v.Currhp += hp
|
v.Currhp += hp
|
||||||
if v.Currhp > v.Property[comm.Dhp] {
|
if v.Currhp > v.Property[comm.Dhp] {
|
||||||
@ -518,7 +507,7 @@ func (this *Parkour) overtimer(task *timewheel.Task, args ...interface{}) {
|
|||||||
|
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if !v.Isai {
|
if !v.Isai {
|
||||||
if err = this.parkourComp.Change(v.Uid, map[string]interface{}{
|
if err = this.parkourComp.Change(v.User.Uid, map[string]interface{}{
|
||||||
"captainid": "",
|
"captainid": "",
|
||||||
"state": 0,
|
"state": 0,
|
||||||
"invite": []*pb.DBRaceInvite{},
|
"invite": []*pb.DBRaceInvite{},
|
||||||
@ -531,7 +520,7 @@ func (this *Parkour) overtimer(task *timewheel.Task, args ...interface{}) {
|
|||||||
}
|
}
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if !v.Isai {
|
if !v.Isai {
|
||||||
if err = this.parkourComp.Change(v.Uid, map[string]interface{}{
|
if err = this.parkourComp.Change(v.User.Uid, map[string]interface{}{
|
||||||
"captainid": "",
|
"captainid": "",
|
||||||
"state": 0,
|
"state": 0,
|
||||||
"invite": []*pb.DBRaceInvite{},
|
"invite": []*pb.DBRaceInvite{},
|
||||||
@ -569,13 +558,13 @@ func (this *Parkour) useroffline(uid, sessionid string) {
|
|||||||
if info.Captainid == uid {
|
if info.Captainid == uid {
|
||||||
users = make([]string, 0)
|
users = make([]string, 0)
|
||||||
for _, v := range info.Member {
|
for _, v := range info.Member {
|
||||||
if v.Uid != uid && !v.Isai {
|
if v.User.Uid != uid && !v.Isai {
|
||||||
users = append(users, v.Uid)
|
users = append(users, v.User.Uid)
|
||||||
if err = this.parkourComp.Change(v.Uid, map[string]interface{}{
|
if err = this.parkourComp.Change(v.User.Uid, map[string]interface{}{
|
||||||
"captainid": "",
|
"captainid": "",
|
||||||
"state": 0,
|
"state": 0,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: v.Uid}, log.Field{Key: "err", Value: err.Error()})
|
this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: v.User.Uid}, log.Field{Key: "err", Value: err.Error()})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -653,13 +642,13 @@ func (this *Parkour) useroffline(uid, sessionid string) {
|
|||||||
}
|
}
|
||||||
users = make([]string, 0)
|
users = make([]string, 0)
|
||||||
for _, v := range info.Member {
|
for _, v := range info.Member {
|
||||||
if v.Uid != uid && !v.Isai {
|
if v.User.Uid != uid && !v.Isai {
|
||||||
users = append(users, v.Uid)
|
users = append(users, v.User.Uid)
|
||||||
if err = this.parkourComp.Change(v.Uid, map[string]interface{}{
|
if err = this.parkourComp.Change(v.User.Uid, map[string]interface{}{
|
||||||
"captainid": "",
|
"captainid": "",
|
||||||
"state": 0,
|
"state": 0,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: v.Uid}, log.Field{Key: "err", Value: err.Error()})
|
this.Error("用户离线! 解散队伍处理", log.Field{Key: "uid", Value: v.User.Uid}, log.Field{Key: "err", Value: err.Error()})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -681,7 +670,7 @@ func (this *Parkour) useroffline(uid, sessionid string) {
|
|||||||
}
|
}
|
||||||
for _, v := range result {
|
for _, v := range result {
|
||||||
for _, v1 := range v.Redmember {
|
for _, v1 := range v.Redmember {
|
||||||
if !v1.Isai && v1.Uid == uid {
|
if !v1.Isai && v1.User.Uid == uid {
|
||||||
if lockpath == v.ServicePath {
|
if lockpath == v.ServicePath {
|
||||||
this.trusteeship(context.Background(), &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, nil)
|
this.trusteeship(context.Background(), &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, nil)
|
||||||
return
|
return
|
||||||
@ -702,7 +691,7 @@ func (this *Parkour) useroffline(uid, sessionid string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v1 := range v.Bulemember {
|
for _, v1 := range v.Bulemember {
|
||||||
if !v1.Isai && v1.Uid == uid {
|
if !v1.Isai && v1.User.Uid == uid {
|
||||||
if lockpath == v.ServicePath {
|
if lockpath == v.ServicePath {
|
||||||
this.trusteeship(context.Background(), &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, nil)
|
this.trusteeship(context.Background(), &pb.RPC_ParkourTrusteeshipReq{Battleid: v.Id, Uid: uid}, nil)
|
||||||
return
|
return
|
||||||
@ -739,12 +728,12 @@ func (this *Parkour) trusteeship(ctx context.Context, req *pb.RPC_ParkourTrustee
|
|||||||
if ok {
|
if ok {
|
||||||
battle.lock.Lock()
|
battle.lock.Lock()
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if v.Uid == v.Uid {
|
if v.User.Uid == v.User.Uid {
|
||||||
v.Isoff = true
|
v.Isoff = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if v.Uid == v.Uid {
|
if v.User.Uid == v.User.Uid {
|
||||||
v.Isoff = true
|
v.Isoff = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -774,14 +763,14 @@ func (this *Parkour) resurrectiontimer(task *timewheel.Task, args ...interface{}
|
|||||||
if ok {
|
if ok {
|
||||||
ok = false
|
ok = false
|
||||||
for _, v := range battle.RedMember {
|
for _, v := range battle.RedMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
member = v
|
member = v
|
||||||
ok = true
|
ok = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
for _, v := range battle.BuleMember {
|
for _, v := range battle.BuleMember {
|
||||||
if v.Uid == uid {
|
if v.User.Uid == uid {
|
||||||
member = v
|
member = v
|
||||||
ok = true
|
ok = true
|
||||||
}
|
}
|
||||||
|
@ -26,10 +26,10 @@ type Timer struct {
|
|||||||
service base.IRPCXService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口
|
service base.IRPCXService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口
|
||||||
chat *ChatComp //俩天系统定时任务
|
chat *ChatComp //俩天系统定时任务
|
||||||
//season *SeasonPagoda
|
//season *SeasonPagoda
|
||||||
forum *ForumComp
|
forum *ForumComp
|
||||||
arena *ArenaComp
|
arena *ArenaComp
|
||||||
sociaty *SociatyComp
|
sociaty *SociatyComp
|
||||||
parkour *ParkourComp
|
// parkour *ParkourComp
|
||||||
caravan *CaravanRank
|
caravan *CaravanRank
|
||||||
activity *Activity
|
activity *Activity
|
||||||
stone *StoneComp
|
stone *StoneComp
|
||||||
@ -69,7 +69,7 @@ func (this *Timer) OnInstallComp() {
|
|||||||
//this.season = this.RegisterComp(new(SeasonPagoda)).(*SeasonPagoda)
|
//this.season = this.RegisterComp(new(SeasonPagoda)).(*SeasonPagoda)
|
||||||
this.arena = this.RegisterComp(new(ArenaComp)).(*ArenaComp)
|
this.arena = this.RegisterComp(new(ArenaComp)).(*ArenaComp)
|
||||||
this.sociaty = this.RegisterComp(new(SociatyComp)).(*SociatyComp)
|
this.sociaty = this.RegisterComp(new(SociatyComp)).(*SociatyComp)
|
||||||
this.parkour = this.RegisterComp(new(ParkourComp)).(*ParkourComp)
|
// this.parkour = this.RegisterComp(new(ParkourComp)).(*ParkourComp)
|
||||||
this.caravan = this.RegisterComp(new(CaravanRank)).(*CaravanRank)
|
this.caravan = this.RegisterComp(new(CaravanRank)).(*CaravanRank)
|
||||||
this.activity = this.RegisterComp(new(Activity)).(*Activity)
|
this.activity = this.RegisterComp(new(Activity)).(*Activity)
|
||||||
this.stone = this.RegisterComp(new(StoneComp)).(*StoneComp)
|
this.stone = this.RegisterComp(new(StoneComp)).(*StoneComp)
|
||||||
|
@ -1,372 +1,372 @@
|
|||||||
package timer
|
package timer
|
||||||
|
|
||||||
import (
|
// import (
|
||||||
"context"
|
// "context"
|
||||||
"go_dreamfactory/comm"
|
// "go_dreamfactory/comm"
|
||||||
"go_dreamfactory/modules"
|
// "go_dreamfactory/modules"
|
||||||
"go_dreamfactory/pb"
|
// "go_dreamfactory/pb"
|
||||||
"go_dreamfactory/sys/db"
|
// "go_dreamfactory/sys/db"
|
||||||
"sync"
|
// "sync"
|
||||||
"sync/atomic"
|
// "sync/atomic"
|
||||||
"time"
|
// "time"
|
||||||
|
|
||||||
"go_dreamfactory/lego/base"
|
// "go_dreamfactory/lego/base"
|
||||||
"go_dreamfactory/lego/core"
|
// "go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/cron"
|
// "go_dreamfactory/lego/sys/cron"
|
||||||
"go_dreamfactory/lego/sys/log"
|
// "go_dreamfactory/lego/sys/log"
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
// "go.mongodb.org/mongo-driver/bson"
|
||||||
"go.mongodb.org/mongo-driver/mongo"
|
// "go.mongodb.org/mongo-driver/mongo"
|
||||||
"go.mongodb.org/mongo-driver/mongo/options"
|
// "go.mongodb.org/mongo-driver/mongo/options"
|
||||||
)
|
// )
|
||||||
|
|
||||||
type ParkourTeam struct {
|
// type ParkourTeam struct {
|
||||||
member []*pb.DBRaceMember
|
// member []*pb.DBRaceMember
|
||||||
ais []*pb.DBRaceMember
|
// ais []*pb.DBRaceMember
|
||||||
}
|
// }
|
||||||
|
|
||||||
/*
|
// /*
|
||||||
捕羊大赛 维护服务
|
// 捕羊大赛 维护服务
|
||||||
*/
|
// */
|
||||||
type ParkourComp struct {
|
// type ParkourComp struct {
|
||||||
modules.MCompConfigure
|
// modules.MCompConfigure
|
||||||
service base.IRPCXService
|
// service base.IRPCXService
|
||||||
module *Timer
|
// module *Timer
|
||||||
refresh time.Time //上一次刷新时间
|
// refresh time.Time //上一次刷新时间
|
||||||
ulock sync.RWMutex
|
// ulock sync.RWMutex
|
||||||
users []*pb.DBRaceMember //推荐用户信息
|
// users []*pb.DBRaceMember //推荐用户信息
|
||||||
tlock sync.RWMutex
|
// tlock sync.RWMutex
|
||||||
teams map[string]*ParkourTeam
|
// teams map[string]*ParkourTeam
|
||||||
timerlock int32
|
// timerlock int32
|
||||||
total int32
|
// total int32
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 组件初始化接口
|
// // 组件初始化接口
|
||||||
func (this *ParkourComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
// func (this *ParkourComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
this.MCompConfigure.Init(service, module, comp, options)
|
// this.MCompConfigure.Init(service, module, comp, options)
|
||||||
this.service = service.(base.IRPCXService)
|
// this.service = service.(base.IRPCXService)
|
||||||
this.module = module.(*Timer)
|
// this.module = module.(*Timer)
|
||||||
this.timerlock = 1
|
// this.timerlock = 1
|
||||||
this.teams = make(map[string]*ParkourTeam)
|
// this.teams = make(map[string]*ParkourTeam)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 自由跨服环境下开启此功能
|
// // 自由跨服环境下开启此功能
|
||||||
func (this *ParkourComp) Start() (err error) {
|
// func (this *ParkourComp) Start() (err error) {
|
||||||
err = this.MCompConfigure.Start()
|
// err = this.MCompConfigure.Start()
|
||||||
if db.IsCross() {
|
// if db.IsCross() {
|
||||||
this.refreshlist()
|
// this.refreshlist()
|
||||||
this.service.RegisterFunctionName(string(comm.RPC_ParkourJoinMatch), this.join)
|
// this.service.RegisterFunctionName(string(comm.RPC_ParkourJoinMatch), this.join)
|
||||||
this.service.RegisterFunctionName(string(comm.RPC_ParkourCancelMatch), this.cancel)
|
// this.service.RegisterFunctionName(string(comm.RPC_ParkourCancelMatch), this.cancel)
|
||||||
if _, err = cron.AddFunc("*/10 * * * * ?", this.match); err != nil {
|
// if _, err = cron.AddFunc("*/10 * * * * ?", this.match); err != nil {
|
||||||
this.module.Errorf("cron.AddFunc err:%v", err)
|
// this.module.Errorf("cron.AddFunc err:%v", err)
|
||||||
}
|
// }
|
||||||
if _, err = cron.AddFunc("1 1 * * * ?", this.refreshlist); err != nil {
|
// if _, err = cron.AddFunc("1 1 * * * ?", this.refreshlist); err != nil {
|
||||||
this.module.Errorf("cron.AddFunc err:%v", err)
|
// this.module.Errorf("cron.AddFunc err:%v", err)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 刷新推荐列表
|
// // 刷新推荐列表
|
||||||
func (this *ParkourComp) refreshlist() {
|
// func (this *ParkourComp) refreshlist() {
|
||||||
var (
|
// var (
|
||||||
c *mongo.Cursor
|
// c *mongo.Cursor
|
||||||
conn *db.DBConn
|
// conn *db.DBConn
|
||||||
err error
|
// err error
|
||||||
)
|
// )
|
||||||
if conn, err = db.Local(); err != nil {
|
// if conn, err = db.Local(); err != nil {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
if c, err = conn.Mgo.Find(core.SqlTable(comm.TableParkour), bson.M{}, options.Find().SetSort(bson.D{{"integral", -1}}).SetSkip(0).SetLimit(100)); err != nil {
|
// if c, err = conn.Mgo.Find(core.SqlTable(comm.TableParkour), bson.M{}, options.Find().SetSort(bson.D{{"integral", -1}}).SetSkip(0).SetLimit(100)); err != nil {
|
||||||
this.module.Errorln(err)
|
// this.module.Errorln(err)
|
||||||
return
|
// return
|
||||||
} else {
|
// } else {
|
||||||
result := make([]*pb.DBParkour, 0, c.RemainingBatchLength())
|
// result := make([]*pb.DBParkour, 0, c.RemainingBatchLength())
|
||||||
for c.Next(context.Background()) {
|
// for c.Next(context.Background()) {
|
||||||
tmp := &pb.DBParkour{}
|
// tmp := &pb.DBParkour{}
|
||||||
if err = c.Decode(tmp); err != nil {
|
// if err = c.Decode(tmp); err != nil {
|
||||||
log.Errorln(err)
|
// log.Errorln(err)
|
||||||
} else {
|
// } else {
|
||||||
result = append(result, tmp)
|
// result = append(result, tmp)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
this.ulock.Lock()
|
// this.ulock.Lock()
|
||||||
this.users = this.users[:0]
|
// this.users = this.users[:0]
|
||||||
for _, v := range result {
|
// for _, v := range result {
|
||||||
this.users = append(this.users, &pb.DBRaceMember{
|
// this.users = append(this.users, &pb.DBRaceMember{
|
||||||
Uid: v.Uid,
|
// Uid: v.Uid,
|
||||||
Name: v.Name,
|
// Name: v.Name,
|
||||||
Sex: v.Sex,
|
// Sex: v.Sex,
|
||||||
Skin: v.Skin,
|
// Skin: v.Skin,
|
||||||
Dan: v.Dan,
|
// Dan: v.Dan,
|
||||||
Lv: v.Lv,
|
// Lv: v.Lv,
|
||||||
Mount: v.Mount,
|
// Mount: v.Mount,
|
||||||
Mlv: v.Mlv,
|
// Mlv: v.Mlv,
|
||||||
Property: v.Property,
|
// Property: v.Property,
|
||||||
Currhp: v.Property[comm.Dhp],
|
// Currhp: v.Property[comm.Dhp],
|
||||||
Isai: true,
|
// Isai: true,
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
|
||||||
this.ulock.Unlock()
|
// this.ulock.Unlock()
|
||||||
}
|
// }
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 加入匹配中
|
// // 加入匹配中
|
||||||
func (this *ParkourComp) join(ctx context.Context, req *pb.RPCParkourJoinMatchReq, resp *pb.RPCParkourJoinMatchResp) (err error) {
|
// func (this *ParkourComp) join(ctx context.Context, req *pb.RPCParkourJoinMatchReq, resp *pb.RPCParkourJoinMatchResp) (err error) {
|
||||||
this.tlock.Lock()
|
// this.tlock.Lock()
|
||||||
this.teams[req.Captainid] = &ParkourTeam{
|
// this.teams[req.Captainid] = &ParkourTeam{
|
||||||
member: req.Member,
|
// member: req.Member,
|
||||||
ais: req.Ais,
|
// ais: req.Ais,
|
||||||
}
|
// }
|
||||||
this.total += int32(len(req.Member))
|
// this.total += int32(len(req.Member))
|
||||||
this.tlock.Unlock()
|
// this.tlock.Unlock()
|
||||||
if this.total >= 6 && atomic.LoadInt32(&this.timerlock) == 1 {
|
// if this.total >= 6 && atomic.LoadInt32(&this.timerlock) == 1 {
|
||||||
go this.match()
|
// go this.match()
|
||||||
}
|
// }
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 加入匹配中
|
// // 加入匹配中
|
||||||
func (this *ParkourComp) cancel(ctx context.Context, req *pb.RPCParkourCancelMatchReq, resp *pb.RPCParkourCancelMatchResp) (err error) {
|
// func (this *ParkourComp) cancel(ctx context.Context, req *pb.RPCParkourCancelMatchReq, resp *pb.RPCParkourCancelMatchResp) (err error) {
|
||||||
this.tlock.Lock()
|
// this.tlock.Lock()
|
||||||
delete(this.teams, req.Captainid)
|
// delete(this.teams, req.Captainid)
|
||||||
this.tlock.Unlock()
|
// this.tlock.Unlock()
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 定时匹配处理
|
// // 定时匹配处理
|
||||||
func (this *ParkourComp) match() {
|
// func (this *ParkourComp) match() {
|
||||||
// this.module.Debug("执行一次匹配!")
|
// // this.module.Debug("执行一次匹配!")
|
||||||
if !atomic.CompareAndSwapInt32(&this.timerlock, 1, 2) { //正在执行,就不要在进来了
|
// if !atomic.CompareAndSwapInt32(&this.timerlock, 1, 2) { //正在执行,就不要在进来了
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
// startime := time.Now()
|
// // startime := time.Now()
|
||||||
defer func() {
|
// defer func() {
|
||||||
atomic.StoreInt32(&this.timerlock, 1) //执行完毕释放
|
// atomic.StoreInt32(&this.timerlock, 1) //执行完毕释放
|
||||||
// log.Debug("Parkour Match",
|
// // log.Debug("Parkour Match",
|
||||||
// log.Field{Key: "t", Value: time.Since(startime).Milliseconds()},
|
// // log.Field{Key: "t", Value: time.Since(startime).Milliseconds()},
|
||||||
// )
|
// // )
|
||||||
}()
|
// }()
|
||||||
|
|
||||||
// this.module.Errorf("捕羊大赛 定时匹配,%d", this.total)
|
// // this.module.Errorf("捕羊大赛 定时匹配,%d", this.total)
|
||||||
if this.total == 0 {
|
// if this.total == 0 {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
var (
|
// var (
|
||||||
ok bool
|
// ok bool
|
||||||
err error
|
// err error
|
||||||
users []*pb.DBRaceMember
|
// users []*pb.DBRaceMember
|
||||||
teams1 []string = make([]string, 0)
|
// teams1 []string = make([]string, 0)
|
||||||
teams2 []string = make([]string, 0)
|
// teams2 []string = make([]string, 0)
|
||||||
teams3 []string = make([]string, 0)
|
// teams3 []string = make([]string, 0)
|
||||||
left int32 = this.total
|
// left int32 = this.total
|
||||||
red []string = make([]string, 0)
|
// red []string = make([]string, 0)
|
||||||
rednum int = 0
|
// rednum int = 0
|
||||||
reduser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
|
// reduser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
|
||||||
bule []string = make([]string, 0)
|
// bule []string = make([]string, 0)
|
||||||
bulenum int = 0
|
// bulenum int = 0
|
||||||
buleuser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
|
// buleuser []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
|
||||||
aismap map[string]*pb.DBRaceMember = make(map[string]*pb.DBRaceMember)
|
// aismap map[string]*pb.DBRaceMember = make(map[string]*pb.DBRaceMember)
|
||||||
ais []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
|
// ais []*pb.DBRaceMember = make([]*pb.DBRaceMember, 0)
|
||||||
order bool = false
|
// order bool = false
|
||||||
)
|
// )
|
||||||
this.tlock.Lock()
|
// this.tlock.Lock()
|
||||||
for k, v := range this.teams {
|
// for k, v := range this.teams {
|
||||||
if len(v.member) == 1 {
|
// if len(v.member) == 1 {
|
||||||
teams1 = append(teams1, k)
|
// teams1 = append(teams1, k)
|
||||||
} else if len(v.member) == 2 {
|
// } else if len(v.member) == 2 {
|
||||||
teams2 = append(teams2, k)
|
// teams2 = append(teams2, k)
|
||||||
} else {
|
// } else {
|
||||||
teams3 = append(teams3, k)
|
// teams3 = append(teams3, k)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
this.tlock.Unlock()
|
// this.tlock.Unlock()
|
||||||
|
|
||||||
this.ulock.RLock()
|
// this.ulock.RLock()
|
||||||
users = make([]*pb.DBRaceMember, 0, len(this.users))
|
// users = make([]*pb.DBRaceMember, 0, len(this.users))
|
||||||
for _, v1 := range this.users {
|
// for _, v1 := range this.users {
|
||||||
ok = false
|
// ok = false
|
||||||
for _, v := range this.teams {
|
// for _, v := range this.teams {
|
||||||
for _, v2 := range v.member {
|
// for _, v2 := range v.member {
|
||||||
if v1.Uid == v2.Uid {
|
// if v1.Uid == v2.Uid {
|
||||||
ok = true
|
// ok = true
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if !ok { //过滤掉已存在的人员
|
// if !ok { //过滤掉已存在的人员
|
||||||
users = append(users, v1)
|
// users = append(users, v1)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
this.ulock.RUnlock()
|
// this.ulock.RUnlock()
|
||||||
|
|
||||||
// if len(users)+int(this.total) < 6 { //人员不足
|
// // if len(users)+int(this.total) < 6 { //人员不足
|
||||||
// return
|
// // return
|
||||||
// }
|
// // }
|
||||||
|
|
||||||
var fn = func() {
|
// var fn = func() {
|
||||||
if order {
|
// if order {
|
||||||
//找红队
|
// //找红队
|
||||||
if rednum <= 0 && len(teams3) > 0 {
|
// if rednum <= 0 && len(teams3) > 0 {
|
||||||
red = append(red, teams3[0])
|
// red = append(red, teams3[0])
|
||||||
teams3 = teams3[1:]
|
// teams3 = teams3[1:]
|
||||||
rednum = 3
|
// rednum = 3
|
||||||
left -= 3
|
// left -= 3
|
||||||
} else if rednum <= 1 && len(teams2) > 0 {
|
// } else if rednum <= 1 && len(teams2) > 0 {
|
||||||
red = append(red, teams2[0])
|
// red = append(red, teams2[0])
|
||||||
teams2 = teams2[1:]
|
// teams2 = teams2[1:]
|
||||||
rednum = 2
|
// rednum = 2
|
||||||
left -= 2
|
// left -= 2
|
||||||
} else if rednum <= 2 && len(teams1) > 0 {
|
// } else if rednum <= 2 && len(teams1) > 0 {
|
||||||
red = append(red, teams1[0])
|
// red = append(red, teams1[0])
|
||||||
teams1 = teams1[1:]
|
// teams1 = teams1[1:]
|
||||||
rednum = 1
|
// rednum = 1
|
||||||
left -= 1
|
// left -= 1
|
||||||
}
|
// }
|
||||||
|
|
||||||
//找蓝队
|
// //找蓝队
|
||||||
if bulenum <= 0 && len(teams3) > 0 {
|
// if bulenum <= 0 && len(teams3) > 0 {
|
||||||
bule = append(bule, teams3[0])
|
// bule = append(bule, teams3[0])
|
||||||
teams3 = teams3[1:]
|
// teams3 = teams3[1:]
|
||||||
bulenum = 3
|
// bulenum = 3
|
||||||
left -= 3
|
// left -= 3
|
||||||
} else if bulenum <= 1 && len(teams2) > 0 {
|
// } else if bulenum <= 1 && len(teams2) > 0 {
|
||||||
bule = append(bule, teams2[0])
|
// bule = append(bule, teams2[0])
|
||||||
teams2 = teams2[1:]
|
// teams2 = teams2[1:]
|
||||||
bulenum = 2
|
// bulenum = 2
|
||||||
left -= 2
|
// left -= 2
|
||||||
} else if bulenum <= 2 && len(teams1) > 0 {
|
// } else if bulenum <= 2 && len(teams1) > 0 {
|
||||||
bule = append(bule, teams1[0])
|
// bule = append(bule, teams1[0])
|
||||||
teams1 = teams1[1:]
|
// teams1 = teams1[1:]
|
||||||
bulenum = 1
|
// bulenum = 1
|
||||||
left -= 1
|
// left -= 1
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
//找蓝队
|
// //找蓝队
|
||||||
if bulenum <= 0 && len(teams3) > 0 {
|
// if bulenum <= 0 && len(teams3) > 0 {
|
||||||
bule = append(bule, teams3[0])
|
// bule = append(bule, teams3[0])
|
||||||
teams3 = teams3[1:]
|
// teams3 = teams3[1:]
|
||||||
bulenum = 3
|
// bulenum = 3
|
||||||
left -= 3
|
// left -= 3
|
||||||
} else if bulenum <= 1 && len(teams2) > 0 {
|
// } else if bulenum <= 1 && len(teams2) > 0 {
|
||||||
bule = append(bule, teams2[0])
|
// bule = append(bule, teams2[0])
|
||||||
teams2 = teams2[1:]
|
// teams2 = teams2[1:]
|
||||||
bulenum = 2
|
// bulenum = 2
|
||||||
left -= 2
|
// left -= 2
|
||||||
} else if bulenum <= 2 && len(teams1) > 0 {
|
// } else if bulenum <= 2 && len(teams1) > 0 {
|
||||||
bule = append(bule, teams1[0])
|
// bule = append(bule, teams1[0])
|
||||||
teams1 = teams1[1:]
|
// teams1 = teams1[1:]
|
||||||
bulenum = 1
|
// bulenum = 1
|
||||||
left -= 1
|
// left -= 1
|
||||||
}
|
// }
|
||||||
//找红队
|
// //找红队
|
||||||
if rednum <= 0 && len(teams3) > 0 {
|
// if rednum <= 0 && len(teams3) > 0 {
|
||||||
red = append(red, teams3[0])
|
// red = append(red, teams3[0])
|
||||||
teams3 = teams3[1:]
|
// teams3 = teams3[1:]
|
||||||
rednum = 3
|
// rednum = 3
|
||||||
left -= 3
|
// left -= 3
|
||||||
} else if rednum <= 1 && len(teams2) > 0 {
|
// } else if rednum <= 1 && len(teams2) > 0 {
|
||||||
red = append(red, teams2[0])
|
// red = append(red, teams2[0])
|
||||||
teams2 = teams2[1:]
|
// teams2 = teams2[1:]
|
||||||
rednum = 2
|
// rednum = 2
|
||||||
left -= 2
|
// left -= 2
|
||||||
} else if rednum <= 2 && len(teams1) > 0 {
|
// } else if rednum <= 2 && len(teams1) > 0 {
|
||||||
red = append(red, teams1[0])
|
// red = append(red, teams1[0])
|
||||||
teams1 = teams1[1:]
|
// teams1 = teams1[1:]
|
||||||
rednum = 1
|
// rednum = 1
|
||||||
left -= 1
|
// left -= 1
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
order = !order
|
// order = !order
|
||||||
}
|
// }
|
||||||
fn()
|
// fn()
|
||||||
if (rednum < 3 || bulenum < 3) && left > 0 {
|
// if (rednum < 3 || bulenum < 3) && left > 0 {
|
||||||
_lt := left
|
// _lt := left
|
||||||
fn()
|
// fn()
|
||||||
if left < _lt {
|
// if left < _lt {
|
||||||
fn() //做多执行三次即可
|
// fn() //做多执行三次即可
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
this.tlock.RLock()
|
// this.tlock.RLock()
|
||||||
for _, v := range red {
|
// for _, v := range red {
|
||||||
reduser = append(reduser, this.teams[v].member...)
|
// reduser = append(reduser, this.teams[v].member...)
|
||||||
for _, ai := range this.teams[v].ais {
|
// for _, ai := range this.teams[v].ais {
|
||||||
aismap[ai.Name] = ai
|
// aismap[ai.Name] = ai
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
for _, v := range bule {
|
// for _, v := range bule {
|
||||||
buleuser = append(buleuser, this.teams[v].member...)
|
// buleuser = append(buleuser, this.teams[v].member...)
|
||||||
for _, ai := range this.teams[v].ais {
|
// for _, ai := range this.teams[v].ais {
|
||||||
aismap[ai.Name] = ai
|
// aismap[ai.Name] = ai
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
for _, v := range aismap {
|
// for _, v := range aismap {
|
||||||
ais = append(ais, v)
|
// ais = append(ais, v)
|
||||||
}
|
// }
|
||||||
this.tlock.RUnlock()
|
// this.tlock.RUnlock()
|
||||||
|
|
||||||
// if len(users)+rednum+bulenum < 6 {
|
// // if len(users)+rednum+bulenum < 6 {
|
||||||
// return
|
// // return
|
||||||
// }
|
// // }
|
||||||
n := len(reduser)
|
// n := len(reduser)
|
||||||
//补充人员
|
// //补充人员
|
||||||
if len(reduser) < 3 {
|
// if len(reduser) < 3 {
|
||||||
if len(users) > 3-n {
|
// if len(users) > 3-n {
|
||||||
reduser = append(reduser, users[0:(3-n)]...)
|
// reduser = append(reduser, users[0:(3-n)]...)
|
||||||
users = users[(3 - n):]
|
// users = users[(3 - n):]
|
||||||
} else {
|
// } else {
|
||||||
reduser = append(reduser, ais[0:(3-n)]...)
|
// reduser = append(reduser, ais[0:(3-n)]...)
|
||||||
ais = ais[(3 - n):]
|
// ais = ais[(3 - n):]
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
n = len(buleuser)
|
// n = len(buleuser)
|
||||||
if len(buleuser) < 3 {
|
// if len(buleuser) < 3 {
|
||||||
if len(users) > 3-n {
|
// if len(users) > 3-n {
|
||||||
buleuser = append(buleuser, users[0:(3-n)]...)
|
// buleuser = append(buleuser, users[0:(3-n)]...)
|
||||||
users = users[(3 - n):]
|
// users = users[(3 - n):]
|
||||||
} else {
|
// } else {
|
||||||
buleuser = append(buleuser, ais[0:(3-n)]...)
|
// buleuser = append(buleuser, ais[0:(3-n)]...)
|
||||||
ais = ais[(3 - n):]
|
// ais = ais[(3 - n):]
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if err = this.service.RpcCall(context.Background(),
|
// if err = this.service.RpcCall(context.Background(),
|
||||||
comm.Service_Worker,
|
// comm.Service_Worker,
|
||||||
string(comm.RPC_ParkourMatchSucc),
|
// string(comm.RPC_ParkourMatchSucc),
|
||||||
&pb.RPCParkourMatchSuccReq{Red: reduser, Bule: buleuser},
|
// &pb.RPCParkourMatchSuccReq{Red: reduser, Bule: buleuser},
|
||||||
&pb.RPCParkourMatchSuccResp{},
|
// &pb.RPCParkourMatchSuccResp{},
|
||||||
); err != nil {
|
// ); err != nil {
|
||||||
this.module.Errorln(err)
|
// this.module.Errorln(err)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
this.tlock.Lock()
|
// this.tlock.Lock()
|
||||||
for _, v := range red {
|
// for _, v := range red {
|
||||||
delete(this.teams, v)
|
// delete(this.teams, v)
|
||||||
}
|
// }
|
||||||
for _, v := range bule {
|
// for _, v := range bule {
|
||||||
delete(this.teams, v)
|
// delete(this.teams, v)
|
||||||
}
|
// }
|
||||||
this.total -= int32(rednum)
|
// this.total -= int32(rednum)
|
||||||
this.total -= int32(bulenum)
|
// this.total -= int32(bulenum)
|
||||||
this.tlock.Unlock()
|
// this.tlock.Unlock()
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 从远程库查询用户
|
// // 从远程库查询用户
|
||||||
func (this *ParkourComp) getuser(uid string) (user *pb.DBUser, err error) {
|
// func (this *ParkourComp) getuser(uid string) (user *pb.DBUser, err error) {
|
||||||
var (
|
// var (
|
||||||
model *db.DBModel
|
// model *db.DBModel
|
||||||
)
|
// )
|
||||||
if model, err = this.module.getDBModelByUid(uid, comm.TableUser); err != nil {
|
// if model, err = this.module.getDBModelByUid(uid, comm.TableUser); err != nil {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
user = &pb.DBUser{}
|
// user = &pb.DBUser{}
|
||||||
if err = model.Get(uid, user); err != nil {
|
// if err = model.Get(uid, user); err != nil {
|
||||||
this.module.Errorln(err)
|
// this.module.Errorln(err)
|
||||||
}
|
// }
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
@ -465,11 +465,13 @@ type DBDColorRoom struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Rid string `protobuf:"bytes,1,opt,name=rid,proto3" json:"rid"`
|
Rid string `protobuf:"bytes,1,opt,name=rid,proto3" json:"rid"`
|
||||||
Results []int32 `protobuf:"varint,2,rep,packed,name=results,proto3" json:"results"`
|
Difficulty DBDColorDifficulty `protobuf:"varint,2,opt,name=difficulty,proto3,enum=DBDColorDifficulty" json:"difficulty"`
|
||||||
Red *DBDColorRoomPlayer `protobuf:"bytes,3,opt,name=red,proto3" json:"red"`
|
Repeat bool `protobuf:"varint,3,opt,name=Repeat,proto3" json:"Repeat"`
|
||||||
Blue *DBDColorRoomPlayer `protobuf:"bytes,4,opt,name=blue,proto3" json:"blue"`
|
Results []int32 `protobuf:"varint,4,rep,packed,name=results,proto3" json:"results"`
|
||||||
Handles []*DBDColorResult `protobuf:"bytes,5,rep,name=handles,proto3" json:"handles"`
|
Red *DBDColorRoomPlayer `protobuf:"bytes,5,opt,name=red,proto3" json:"red"`
|
||||||
|
Blue *DBDColorRoomPlayer `protobuf:"bytes,6,opt,name=blue,proto3" json:"blue"`
|
||||||
|
Handles []*DBDColorResult `protobuf:"bytes,7,rep,name=handles,proto3" json:"handles"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBDColorRoom) Reset() {
|
func (x *DBDColorRoom) Reset() {
|
||||||
@ -511,6 +513,20 @@ func (x *DBDColorRoom) GetRid() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *DBDColorRoom) GetDifficulty() DBDColorDifficulty {
|
||||||
|
if x != nil {
|
||||||
|
return x.Difficulty
|
||||||
|
}
|
||||||
|
return DBDColorDifficulty_Simple
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBDColorRoom) GetRepeat() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.Repeat
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (x *DBDColorRoom) GetResults() []int32 {
|
func (x *DBDColorRoom) GetResults() []int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Results
|
return x.Results
|
||||||
@ -589,23 +605,28 @@ var file_dcolor_dcolor_db_proto_rawDesc = []byte{
|
|||||||
0x75, 0x6c, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x72, 0x69, 0x67, 0x68, 0x74,
|
0x75, 0x6c, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x72, 0x69, 0x67, 0x68, 0x74,
|
||||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x72, 0x69, 0x67, 0x68, 0x74,
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x72, 0x69, 0x67, 0x68, 0x74,
|
||||||
0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x6c, 0x66, 0x70, 0x61, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01,
|
0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x6c, 0x66, 0x70, 0x61, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01,
|
||||||
0x28, 0x05, 0x52, 0x08, 0x68, 0x61, 0x6c, 0x66, 0x70, 0x61, 0x69, 0x72, 0x22, 0xb5, 0x01, 0x0a,
|
0x28, 0x05, 0x52, 0x08, 0x68, 0x61, 0x6c, 0x66, 0x70, 0x61, 0x69, 0x72, 0x22, 0x82, 0x02, 0x0a,
|
||||||
0x0c, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a,
|
0x0c, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a,
|
||||||
0x03, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x69, 0x64, 0x12,
|
0x03, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x69, 0x64, 0x12,
|
||||||
0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05,
|
0x33, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20,
|
||||||
0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x72, 0x65, 0x64,
|
0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x69,
|
||||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f,
|
0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63,
|
||||||
0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x03, 0x72, 0x65, 0x64,
|
0x75, 0x6c, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x18, 0x03,
|
||||||
0x12, 0x27, 0x0a, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
|
0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07,
|
||||||
0x2e, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61,
|
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x72,
|
||||||
0x79, 0x65, 0x72, 0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x68, 0x61, 0x6e,
|
0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20,
|
||||||
0x64, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x44,
|
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x6f,
|
||||||
0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x68, 0x61, 0x6e,
|
0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x03, 0x72, 0x65, 0x64, 0x12, 0x27, 0x0a,
|
||||||
0x64, 0x6c, 0x65, 0x73, 0x2a, 0x3a, 0x0a, 0x12, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
|
0x04, 0x62, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42,
|
||||||
0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x69,
|
0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63,
|
0x52, 0x04, 0x62, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
0x75, 0x6c, 0x74, 0x79, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x65, 0x6c, 0x6c, 0x10, 0x02,
|
0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c,
|
||||||
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x6f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
|
||||||
|
0x73, 0x2a, 0x3a, 0x0a, 0x12, 0x44, 0x42, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x69, 0x66,
|
||||||
|
0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x69, 0x6d, 0x70, 0x6c,
|
||||||
|
0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74,
|
||||||
|
0x79, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x65, 0x6c, 0x6c, 0x10, 0x02, 0x42, 0x06, 0x5a,
|
||||||
|
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -636,14 +657,15 @@ var file_dcolor_dcolor_db_proto_depIdxs = []int32{
|
|||||||
2, // 0: DBDColorQiecuoRecord.targets:type_name -> DBDColorQiecuoInvite
|
2, // 0: DBDColorQiecuoRecord.targets:type_name -> DBDColorQiecuoInvite
|
||||||
0, // 1: DBDColorQiecuoRecord.difficulty:type_name -> DBDColorDifficulty
|
0, // 1: DBDColorQiecuoRecord.difficulty:type_name -> DBDColorDifficulty
|
||||||
7, // 2: DBDColorRoomPlayer.info:type_name -> BaseUserInfo
|
7, // 2: DBDColorRoomPlayer.info:type_name -> BaseUserInfo
|
||||||
4, // 3: DBDColorRoom.red:type_name -> DBDColorRoomPlayer
|
0, // 3: DBDColorRoom.difficulty:type_name -> DBDColorDifficulty
|
||||||
4, // 4: DBDColorRoom.blue:type_name -> DBDColorRoomPlayer
|
4, // 4: DBDColorRoom.red:type_name -> DBDColorRoomPlayer
|
||||||
5, // 5: DBDColorRoom.handles:type_name -> DBDColorResult
|
4, // 5: DBDColorRoom.blue:type_name -> DBDColorRoomPlayer
|
||||||
6, // [6:6] is the sub-list for method output_type
|
5, // 6: DBDColorRoom.handles:type_name -> DBDColorResult
|
||||||
6, // [6:6] is the sub-list for method input_type
|
7, // [7:7] is the sub-list for method output_type
|
||||||
6, // [6:6] is the sub-list for extension type_name
|
7, // [7:7] is the sub-list for method input_type
|
||||||
6, // [6:6] is the sub-list for extension extendee
|
7, // [7:7] is the sub-list for extension type_name
|
||||||
0, // [0:6] is the sub-list for field type_name
|
7, // [7:7] is the sub-list for extension extendee
|
||||||
|
0, // [0:7] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_dcolor_dcolor_db_proto_init() }
|
func init() { file_dcolor_dcolor_db_proto_init() }
|
||||||
|
@ -948,8 +948,9 @@ type DColorHandleReq struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index"`
|
Roomid string `protobuf:"bytes,1,opt,name=roomid,proto3" json:"roomid"` //战斗id
|
||||||
Results []int32 `protobuf:"varint,2,rep,packed,name=results,proto3" json:"results"`
|
Index int32 `protobuf:"varint,2,opt,name=index,proto3" json:"index"`
|
||||||
|
Results []int32 `protobuf:"varint,3,rep,packed,name=results,proto3" json:"results"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DColorHandleReq) Reset() {
|
func (x *DColorHandleReq) Reset() {
|
||||||
@ -984,6 +985,13 @@ func (*DColorHandleReq) Descriptor() ([]byte, []int) {
|
|||||||
return file_dcolor_dcolor_msg_proto_rawDescGZIP(), []int{17}
|
return file_dcolor_dcolor_msg_proto_rawDescGZIP(), []int{17}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *DColorHandleReq) GetRoomid() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Roomid
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (x *DColorHandleReq) GetIndex() int32 {
|
func (x *DColorHandleReq) GetIndex() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Index
|
return x.Index
|
||||||
@ -1043,8 +1051,9 @@ type DColorGameHandlePush struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
|
Roomid string `protobuf:"bytes,1,opt,name=roomid,proto3" json:"roomid"` //战斗id
|
||||||
Handle *DBDColorResult `protobuf:"bytes,2,opt,name=handle,proto3" json:"handle"`
|
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
|
||||||
|
Handle *DBDColorResult `protobuf:"bytes,3,opt,name=handle,proto3" json:"handle"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DColorGameHandlePush) Reset() {
|
func (x *DColorGameHandlePush) Reset() {
|
||||||
@ -1079,6 +1088,13 @@ func (*DColorGameHandlePush) Descriptor() ([]byte, []int) {
|
|||||||
return file_dcolor_dcolor_msg_proto_rawDescGZIP(), []int{19}
|
return file_dcolor_dcolor_msg_proto_rawDescGZIP(), []int{19}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *DColorGameHandlePush) GetRoomid() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Roomid
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (x *DColorGameHandlePush) GetUid() string {
|
func (x *DColorGameHandlePush) GetUid() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Uid
|
return x.Uid
|
||||||
@ -1243,16 +1259,19 @@ var file_dcolor_dcolor_msg_proto_rawDesc = []byte{
|
|||||||
0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06,
|
0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06,
|
||||||
0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
|
0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
|
||||||
0x6f, 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
|
0x6f, 0x6d, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||||
0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x22, 0x41, 0x0a, 0x0f, 0x44, 0x43, 0x6f, 0x6c,
|
0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x44, 0x43, 0x6f, 0x6c,
|
||||||
0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69,
|
0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72,
|
||||||
0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
|
0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f,
|
||||||
0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
|
0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01,
|
||||||
0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x44,
|
0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73,
|
||||||
0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22,
|
0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75,
|
||||||
0x51, 0x0a, 0x14, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6e,
|
0x6c, 0x74, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x61, 0x6e,
|
||||||
0x64, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01,
|
0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x69, 0x0a, 0x14, 0x44, 0x43, 0x6f, 0x6c, 0x6f,
|
||||||
|
0x72, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12,
|
||||||
|
0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x68, 0x61, 0x6e,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x68, 0x61, 0x6e,
|
||||||
0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x44, 0x43,
|
0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x44, 0x43,
|
||||||
0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64,
|
0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64,
|
||||||
0x6c, 0x65, 0x22, 0x74, 0x0a, 0x12, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x47, 0x61, 0x6d, 0x65,
|
0x6c, 0x65, 0x22, 0x74, 0x0a, 0x12, 0x44, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x47, 0x61, 0x6d, 0x65,
|
||||||
0x4f, 0x76, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x73,
|
0x4f, 0x76, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x73,
|
||||||
|
61
pb/matchpool_db.pb.go
Normal file
61
pb/matchpool_db.pb.go
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.28.0
|
||||||
|
// protoc v3.20.0
|
||||||
|
// source: matchpool/matchpool_db.proto
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
)
|
||||||
|
|
||||||
|
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)
|
||||||
|
)
|
||||||
|
|
||||||
|
var File_matchpool_matchpool_db_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_matchpool_matchpool_db_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x1c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x6d, 0x61, 0x74, 0x63,
|
||||||
|
0x68, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x06,
|
||||||
|
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_matchpool_matchpool_db_proto_goTypes = []interface{}{}
|
||||||
|
var file_matchpool_matchpool_db_proto_depIdxs = []int32{
|
||||||
|
0, // [0:0] is the sub-list for method output_type
|
||||||
|
0, // [0:0] is the sub-list for method input_type
|
||||||
|
0, // [0:0] is the sub-list for extension type_name
|
||||||
|
0, // [0:0] is the sub-list for extension extendee
|
||||||
|
0, // [0:0] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_matchpool_matchpool_db_proto_init() }
|
||||||
|
func file_matchpool_matchpool_db_proto_init() {
|
||||||
|
if File_matchpool_matchpool_db_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_matchpool_matchpool_db_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 0,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_matchpool_matchpool_db_proto_goTypes,
|
||||||
|
DependencyIndexes: file_matchpool_matchpool_db_proto_depIdxs,
|
||||||
|
}.Build()
|
||||||
|
File_matchpool_matchpool_db_proto = out.File
|
||||||
|
file_matchpool_matchpool_db_proto_rawDesc = nil
|
||||||
|
file_matchpool_matchpool_db_proto_goTypes = nil
|
||||||
|
file_matchpool_matchpool_db_proto_depIdxs = nil
|
||||||
|
}
|
520
pb/matchpool_msg.pb.go
Normal file
520
pb/matchpool_msg.pb.go
Normal file
@ -0,0 +1,520 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.28.0
|
||||||
|
// protoc v3.20.0
|
||||||
|
// source: matchpool/matchpool_msg.proto
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
anypb "google.golang.org/protobuf/types/known/anypb"
|
||||||
|
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 JoinMatchPoolReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Poolname string `protobuf:"bytes,1,opt,name=poolname,proto3" json:"poolname"`
|
||||||
|
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
|
||||||
|
Dan int32 `protobuf:"varint,3,opt,name=dan,proto3" json:"dan"` //段位
|
||||||
|
Data *anypb.Any `protobuf:"bytes,4,opt,name=data,proto3" json:"data"`
|
||||||
|
Matchnum int32 `protobuf:"varint,5,opt,name=matchnum,proto3" json:"matchnum"` //匹配人数
|
||||||
|
Timeout int32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout"` //秒级单位
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) Reset() {
|
||||||
|
*x = JoinMatchPoolReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_matchpool_matchpool_msg_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*JoinMatchPoolReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_matchpool_matchpool_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 JoinMatchPoolReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*JoinMatchPoolReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) GetPoolname() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Poolname
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) GetUid() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Uid
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) GetDan() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Dan
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) GetData() *anypb.Any {
|
||||||
|
if x != nil {
|
||||||
|
return x.Data
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) GetMatchnum() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Matchnum
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolReq) GetTimeout() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Timeout
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type JoinMatchPoolResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolResp) Reset() {
|
||||||
|
*x = JoinMatchPoolResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_matchpool_matchpool_msg_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*JoinMatchPoolResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *JoinMatchPoolResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_matchpool_matchpool_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 JoinMatchPoolResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*JoinMatchPoolResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
//取消匹配请求
|
||||||
|
type CancelMatchReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Poolname string `protobuf:"bytes,1,opt,name=poolname,proto3" json:"poolname"`
|
||||||
|
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CancelMatchReq) Reset() {
|
||||||
|
*x = CancelMatchReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_matchpool_matchpool_msg_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CancelMatchReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CancelMatchReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CancelMatchReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_matchpool_matchpool_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 CancelMatchReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CancelMatchReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescGZIP(), []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CancelMatchReq) GetPoolname() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Poolname
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CancelMatchReq) GetUid() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Uid
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type CancelMatchResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CancelMatchResp) Reset() {
|
||||||
|
*x = CancelMatchResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_matchpool_matchpool_msg_proto_msgTypes[3]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CancelMatchResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CancelMatchResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CancelMatchResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_matchpool_matchpool_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 CancelMatchResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CancelMatchResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescGZIP(), []int{3}
|
||||||
|
}
|
||||||
|
|
||||||
|
//成功匹配通知请求
|
||||||
|
type SuccMatchNoticeReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Poolname string `protobuf:"bytes,1,opt,name=poolname,proto3" json:"poolname"` //匹配池
|
||||||
|
Players map[string]*anypb.Any `protobuf:"bytes,2,rep,name=players,proto3" json:"players" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //匹配玩家
|
||||||
|
Missnum int32 `protobuf:"varint,3,opt,name=missnum,proto3" json:"missnum"` //缺失人数
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeReq) Reset() {
|
||||||
|
*x = SuccMatchNoticeReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_matchpool_matchpool_msg_proto_msgTypes[4]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*SuccMatchNoticeReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_matchpool_matchpool_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 SuccMatchNoticeReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*SuccMatchNoticeReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescGZIP(), []int{4}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeReq) GetPoolname() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Poolname
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeReq) GetPlayers() map[string]*anypb.Any {
|
||||||
|
if x != nil {
|
||||||
|
return x.Players
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeReq) GetMissnum() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Missnum
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type SuccMatchNoticeResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeResp) Reset() {
|
||||||
|
*x = SuccMatchNoticeResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_matchpool_matchpool_msg_proto_msgTypes[5]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*SuccMatchNoticeResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *SuccMatchNoticeResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_matchpool_matchpool_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 SuccMatchNoticeResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*SuccMatchNoticeResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescGZIP(), []int{5}
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_matchpool_matchpool_msg_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_matchpool_matchpool_msg_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x1d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x6d, 0x61, 0x74, 0x63,
|
||||||
|
0x68, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
|
||||||
|
0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||||
|
0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb2, 0x01, 0x0a, 0x10, 0x4a,
|
||||||
|
0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x12,
|
||||||
|
0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75,
|
||||||
|
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a,
|
||||||
|
0x03, 0x64, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12,
|
||||||
|
0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
|
||||||
|
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
||||||
|
0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x74,
|
||||||
|
0x63, 0x68, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x74,
|
||||||
|
0x63, 0x68, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
|
||||||
|
0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22,
|
||||||
|
0x13, 0x0a, 0x11, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x6f, 0x6c,
|
||||||
|
0x52, 0x65, 0x73, 0x70, 0x22, 0x3e, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61,
|
||||||
|
0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x61,
|
||||||
|
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x61,
|
||||||
|
0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x03, 0x75, 0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61,
|
||||||
|
0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd8, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x63, 0x63,
|
||||||
|
0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a,
|
||||||
|
0x0a, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||||
|
0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x6c,
|
||||||
|
0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x75,
|
||||||
|
0x63, 0x63, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
|
||||||
|
0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70,
|
||||||
|
0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x73, 0x73, 0x6e, 0x75,
|
||||||
|
0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x69, 0x73, 0x73, 0x6e, 0x75, 0x6d,
|
||||||
|
0x1a, 0x50, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
|
0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
|
||||||
|
0x38, 0x01, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x75, 0x63, 0x63, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e,
|
||||||
|
0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
|
||||||
|
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_matchpool_matchpool_msg_proto_rawDescOnce sync.Once
|
||||||
|
file_matchpool_matchpool_msg_proto_rawDescData = file_matchpool_matchpool_msg_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_matchpool_matchpool_msg_proto_rawDescGZIP() []byte {
|
||||||
|
file_matchpool_matchpool_msg_proto_rawDescOnce.Do(func() {
|
||||||
|
file_matchpool_matchpool_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_matchpool_matchpool_msg_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_matchpool_matchpool_msg_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_matchpool_matchpool_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||||||
|
var file_matchpool_matchpool_msg_proto_goTypes = []interface{}{
|
||||||
|
(*JoinMatchPoolReq)(nil), // 0: JoinMatchPoolReq
|
||||||
|
(*JoinMatchPoolResp)(nil), // 1: JoinMatchPoolResp
|
||||||
|
(*CancelMatchReq)(nil), // 2: CancelMatchReq
|
||||||
|
(*CancelMatchResp)(nil), // 3: CancelMatchResp
|
||||||
|
(*SuccMatchNoticeReq)(nil), // 4: SuccMatchNoticeReq
|
||||||
|
(*SuccMatchNoticeResp)(nil), // 5: SuccMatchNoticeResp
|
||||||
|
nil, // 6: SuccMatchNoticeReq.PlayersEntry
|
||||||
|
(*anypb.Any)(nil), // 7: google.protobuf.Any
|
||||||
|
}
|
||||||
|
var file_matchpool_matchpool_msg_proto_depIdxs = []int32{
|
||||||
|
7, // 0: JoinMatchPoolReq.data:type_name -> google.protobuf.Any
|
||||||
|
6, // 1: SuccMatchNoticeReq.players:type_name -> SuccMatchNoticeReq.PlayersEntry
|
||||||
|
7, // 2: SuccMatchNoticeReq.PlayersEntry.value:type_name -> google.protobuf.Any
|
||||||
|
3, // [3:3] is the sub-list for method output_type
|
||||||
|
3, // [3:3] is the sub-list for method input_type
|
||||||
|
3, // [3:3] is the sub-list for extension type_name
|
||||||
|
3, // [3:3] is the sub-list for extension extendee
|
||||||
|
0, // [0:3] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_matchpool_matchpool_msg_proto_init() }
|
||||||
|
func file_matchpool_matchpool_msg_proto_init() {
|
||||||
|
if File_matchpool_matchpool_msg_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_matchpool_matchpool_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*JoinMatchPoolReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_matchpool_matchpool_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*JoinMatchPoolResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_matchpool_matchpool_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*CancelMatchReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_matchpool_matchpool_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*CancelMatchResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_matchpool_matchpool_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*SuccMatchNoticeReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_matchpool_matchpool_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*SuccMatchNoticeResp); 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_matchpool_matchpool_msg_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 7,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_matchpool_matchpool_msg_proto_goTypes,
|
||||||
|
DependencyIndexes: file_matchpool_matchpool_msg_proto_depIdxs,
|
||||||
|
MessageInfos: file_matchpool_matchpool_msg_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_matchpool_matchpool_msg_proto = out.File
|
||||||
|
file_matchpool_matchpool_msg_proto_rawDesc = nil
|
||||||
|
file_matchpool_matchpool_msg_proto_goTypes = nil
|
||||||
|
file_matchpool_matchpool_msg_proto_depIdxs = nil
|
||||||
|
}
|
@ -125,23 +125,19 @@ type DBRaceMember struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id
|
User *BaseUserInfo `protobuf:"bytes,1,opt,name=user,proto3" json:"user"` //发起者信息
|
||||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //用户名称
|
Dan int32 `protobuf:"varint,2,opt,name=dan,proto3" json:"dan"` //段位
|
||||||
Skin string `protobuf:"bytes,3,opt,name=skin,proto3" json:"skin"` //皮肤
|
Mlv int32 `protobuf:"varint,3,opt,name=mlv,proto3" json:"mlv"` //坐骑等级
|
||||||
Sex int32 `protobuf:"varint,4,opt,name=sex,proto3" json:"sex"` //性别
|
Mount string `protobuf:"bytes,4,opt,name=mount,proto3" json:"mount"` //上阵坐骑
|
||||||
Dan int32 `protobuf:"varint,5,opt,name=dan,proto3" json:"dan"` //段位
|
Property map[string]int32 `protobuf:"bytes,5,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑属性
|
||||||
Lv int32 `protobuf:"varint,6,opt,name=lv,proto3" json:"lv"` //等级
|
Currhp int32 `protobuf:"varint,6,opt,name=currhp,proto3" json:"currhp"` //当前血量
|
||||||
Mlv int32 `protobuf:"varint,7,opt,name=mlv,proto3" json:"mlv"` //坐骑等级
|
Ready bool `protobuf:"varint,7,opt,name=ready,proto3" json:"ready"` //是否准备
|
||||||
Mount string `protobuf:"bytes,8,opt,name=mount,proto3" json:"mount"` //上阵坐骑
|
Isai bool `protobuf:"varint,8,opt,name=isai,proto3" json:"isai"` //是否是ai
|
||||||
Property map[string]int32 `protobuf:"bytes,9,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑属性
|
Isoff bool `protobuf:"varint,9,opt,name=isoff,proto3" json:"isoff"` //是否离线
|
||||||
Currhp int32 `protobuf:"varint,10,opt,name=currhp,proto3" json:"currhp"` //当前血量
|
Scores int32 `protobuf:"varint,10,opt,name=scores,proto3" json:"scores"` //当前分数
|
||||||
Ready bool `protobuf:"varint,12,opt,name=ready,proto3" json:"ready"` //是否准备
|
Energy int32 `protobuf:"varint,11,opt,name=energy,proto3" json:"energy"` //当前能量
|
||||||
Isai bool `protobuf:"varint,13,opt,name=isai,proto3" json:"isai"` //是否是ai
|
Dodge int32 `protobuf:"varint,12,opt,name=dodge,proto3" json:"dodge"` //闪避次数
|
||||||
Isoff bool `protobuf:"varint,14,opt,name=isoff,proto3" json:"isoff"` //是否离线
|
Shot int32 `protobuf:"varint,13,opt,name=shot,proto3" json:"shot"` //射门次数
|
||||||
Scores int32 `protobuf:"varint,15,opt,name=scores,proto3" json:"scores"` //当前分数
|
|
||||||
Energy int32 `protobuf:"varint,16,opt,name=energy,proto3" json:"energy"` //当前能量
|
|
||||||
Dodge int32 `protobuf:"varint,17,opt,name=dodge,proto3" json:"dodge"` //闪避次数
|
|
||||||
Shot int32 `protobuf:"varint,18,opt,name=shot,proto3" json:"shot"` //射门次数
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRaceMember) Reset() {
|
func (x *DBRaceMember) Reset() {
|
||||||
@ -176,32 +172,11 @@ func (*DBRaceMember) Descriptor() ([]byte, []int) {
|
|||||||
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{0}
|
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRaceMember) GetUid() string {
|
func (x *DBRaceMember) GetUser() *BaseUserInfo {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Uid
|
return x.User
|
||||||
}
|
}
|
||||||
return ""
|
return nil
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBRaceMember) GetName() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Name
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBRaceMember) GetSkin() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Skin
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBRaceMember) GetSex() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Sex
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRaceMember) GetDan() int32 {
|
func (x *DBRaceMember) GetDan() int32 {
|
||||||
@ -211,13 +186,6 @@ func (x *DBRaceMember) GetDan() int32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRaceMember) GetLv() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Lv
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBRaceMember) GetMlv() int32 {
|
func (x *DBRaceMember) GetMlv() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Mlv
|
return x.Mlv
|
||||||
@ -380,26 +348,22 @@ type DBParkour struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 队伍id
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` // 比赛唯一id
|
||||||
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` //用户id
|
User *BaseUserInfo `protobuf:"bytes,2,opt,name=user,proto3" json:"user"` //发起者信息
|
||||||
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name"` //名字
|
Dan int32 `protobuf:"varint,3,opt,name=dan,proto3" json:"dan"` //段位
|
||||||
Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv"` //等级
|
Defmts string `protobuf:"bytes,4,opt,name=defmts,proto3" json:"defmts"` //默认坐骑
|
||||||
Sex int32 `protobuf:"varint,5,opt,name=sex,proto3" json:"sex"` //性别
|
Mlv int32 `protobuf:"varint,5,opt,name=mlv,proto3" json:"mlv"` //坐骑等级
|
||||||
Skin string `protobuf:"bytes,6,opt,name=skin,proto3" json:"skin"` //时装
|
Mount string `protobuf:"bytes,6,opt,name=mount,proto3" json:"mount"` //上阵坐骑
|
||||||
Dan int32 `protobuf:"varint,7,opt,name=dan,proto3" json:"dan"` //段位
|
Property map[string]int32 `protobuf:"bytes,7,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑属性
|
||||||
Defmts string `protobuf:"bytes,8,opt,name=defmts,proto3" json:"defmts"` //默认坐骑
|
State RaceTeamState `protobuf:"varint,8,opt,name=state,proto3,enum=RaceTeamState" json:"state"` //队伍状态
|
||||||
Mlv int32 `protobuf:"varint,9,opt,name=mlv,proto3" json:"mlv"` //坐骑等级
|
Currbattid string `protobuf:"bytes,9,opt,name=currbattid,proto3" json:"currbattid"` //当前战斗id
|
||||||
Mount string `protobuf:"bytes,10,opt,name=mount,proto3" json:"mount"` //上阵坐骑
|
Integral int32 `protobuf:"varint,10,opt,name=integral,proto3" json:"integral"` //积分
|
||||||
Property map[string]int32 `protobuf:"bytes,11,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑属性
|
Captainid string `protobuf:"bytes,11,opt,name=captainid,proto3" json:"captainid"` //队长id 当前所在队伍
|
||||||
State RaceTeamState `protobuf:"varint,12,opt,name=state,proto3,enum=RaceTeamState" json:"state"` //队伍状态
|
Invite []*DBRaceInvite `protobuf:"bytes,12,rep,name=invite,proto3" json:"invite"` //邀请列表
|
||||||
Currbattid string `protobuf:"bytes,13,opt,name=currbattid,proto3" json:"currbattid"` //当前战斗id
|
Member []*DBRaceMember `protobuf:"bytes,13,rep,name=member,proto3" json:"member"` //成员列表
|
||||||
Integral int32 `protobuf:"varint,14,opt,name=integral,proto3" json:"integral"` //积分
|
Weektime int64 `protobuf:"varint,14,opt,name=weektime,proto3" json:"weektime"` //周积分重置使用
|
||||||
Captainid string `protobuf:"bytes,15,opt,name=captainid,proto3" json:"captainid"` //队长id 当前所在队伍
|
Weekreward map[int32]bool `protobuf:"bytes,15,rep,name=weekreward,proto3" json:"weekreward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //周长奖励领取
|
||||||
Invite []*DBRaceInvite `protobuf:"bytes,16,rep,name=invite,proto3" json:"invite"` //邀请列表
|
Weekintegral int32 `protobuf:"varint,16,opt,name=weekintegral,proto3" json:"weekintegral"` //周积分
|
||||||
Member []*DBRaceMember `protobuf:"bytes,17,rep,name=member,proto3" json:"member"` //成员列表
|
|
||||||
Weektime int64 `protobuf:"varint,18,opt,name=weektime,proto3" json:"weektime"` //周积分重置使用
|
|
||||||
Weekreward map[int32]bool `protobuf:"bytes,19,rep,name=weekreward,proto3" json:"weekreward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //周长奖励领取
|
|
||||||
Weekintegral int32 `protobuf:"varint,20,opt,name=weekintegral,proto3" json:"weekintegral"` //周积分
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBParkour) Reset() {
|
func (x *DBParkour) Reset() {
|
||||||
@ -441,39 +405,11 @@ func (x *DBParkour) GetId() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBParkour) GetUid() string {
|
func (x *DBParkour) GetUser() *BaseUserInfo {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Uid
|
return x.User
|
||||||
}
|
}
|
||||||
return ""
|
return nil
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBParkour) GetName() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Name
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBParkour) GetLv() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Lv
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBParkour) GetSex() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Sex
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBParkour) GetSkin() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Skin
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBParkour) GetDan() int32 {
|
func (x *DBParkour) GetDan() int32 {
|
||||||
@ -686,119 +622,207 @@ func (x *DBRace) GetBulescores() int32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//撇配用户数据
|
||||||
|
type DBMatchPlayer struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Suser *BaseUserInfo `protobuf:"bytes,1,opt,name=suser,proto3" json:"suser"` //发起者信息
|
||||||
|
Dan int32 `protobuf:"varint,2,opt,name=dan,proto3" json:"dan"` //段位
|
||||||
|
Mount string `protobuf:"bytes,3,opt,name=mount,proto3" json:"mount"` //上阵坐骑
|
||||||
|
Property map[string]int32 `protobuf:"bytes,4,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //坐骑属性
|
||||||
|
Mlv int32 `protobuf:"varint,5,opt,name=mlv,proto3" json:"mlv"` //坐骑等级
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) Reset() {
|
||||||
|
*x = DBMatchPlayer{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_parkour_parkour_db_proto_msgTypes[4]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*DBMatchPlayer) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_parkour_parkour_db_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 DBMatchPlayer.ProtoReflect.Descriptor instead.
|
||||||
|
func (*DBMatchPlayer) Descriptor() ([]byte, []int) {
|
||||||
|
return file_parkour_parkour_db_proto_rawDescGZIP(), []int{4}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) GetSuser() *BaseUserInfo {
|
||||||
|
if x != nil {
|
||||||
|
return x.Suser
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) GetDan() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Dan
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) GetMount() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Mount
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) GetProperty() map[string]int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Property
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBMatchPlayer) GetMlv() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Mlv
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
var File_parkour_parkour_db_proto protoreflect.FileDescriptor
|
var File_parkour_parkour_db_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_parkour_parkour_db_proto_rawDesc = []byte{
|
var file_parkour_parkour_db_proto_rawDesc = []byte{
|
||||||
0x0a, 0x18, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2f, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75,
|
0x0a, 0x18, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2f, 0x70, 0x61, 0x72, 0x6b, 0x6f, 0x75,
|
||||||
0x72, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x03, 0x0a, 0x0c, 0x44,
|
0x72, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d,
|
||||||
0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75,
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x03, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x63,
|
||||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a,
|
0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
|
||||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
|
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72,
|
||||||
0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61,
|
||||||
0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01,
|
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x10, 0x0a, 0x03,
|
||||||
0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x6e, 0x18, 0x05,
|
0x6d, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x6c, 0x76, 0x12, 0x14,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18,
|
0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d,
|
||||||
0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6c, 0x76,
|
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
|
||||||
0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x6c, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x6d,
|
0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d,
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e,
|
0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e,
|
||||||
0x74, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x09, 0x20,
|
0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a,
|
||||||
0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62,
|
0x06, 0x63, 0x75, 0x72, 0x72, 0x68, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63,
|
||||||
0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
0x75, 0x72, 0x72, 0x68, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x07,
|
||||||
0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75,
|
0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x69,
|
||||||
0x72, 0x72, 0x68, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x75, 0x72, 0x72,
|
0x73, 0x61, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12,
|
||||||
0x68, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28,
|
0x14, 0x0a, 0x05, 0x69, 0x73, 0x6f, 0x66, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
|
||||||
0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x61, 0x69,
|
0x69, 0x73, 0x6f, 0x66, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18,
|
||||||
0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x61, 0x69, 0x12, 0x14, 0x0a, 0x05,
|
0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x16, 0x0a,
|
||||||
0x69, 0x73, 0x6f, 0x66, 0x66, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x6f,
|
0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65,
|
||||||
0x66, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01,
|
0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x18, 0x0c,
|
||||||
0x28, 0x05, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e,
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73,
|
||||||
0x65, 0x72, 0x67, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72,
|
0x68, 0x6f, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x74, 0x1a,
|
||||||
0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28,
|
0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
||||||
0x05, 0x52, 0x05, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x74,
|
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
|
||||||
0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0x3b, 0x0a, 0x0d,
|
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
|
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x76, 0x0a, 0x0c,
|
||||||
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
|
0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03,
|
||||||
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
|
0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12,
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x76, 0x0a, 0x0c, 0x44, 0x42, 0x52,
|
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
|
||||||
0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
|
0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
|
0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76,
|
||||||
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78,
|
||||||
0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, 0x70,
|
||||||
0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20,
|
0x69, 0x72, 0x65, 0x64, 0x22, 0x8c, 0x05, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f,
|
||||||
0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72,
|
0x75, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||||
0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65,
|
0x69, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x64, 0x22, 0xc5, 0x05, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x12,
|
0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52,
|
||||||
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
|
0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
|
0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x66, 0x6d, 0x74,
|
||||||
0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x66, 0x6d, 0x74, 0x73, 0x12,
|
||||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28,
|
0x10, 0x0a, 0x03, 0x6d, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x6c,
|
||||||
0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01,
|
0x76, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18,
|
0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65,
|
||||||
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x64,
|
0x72, 0x74, 0x79, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x50, 0x61,
|
||||||
0x61, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x16, 0x0a,
|
0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e,
|
||||||
0x06, 0x64, 0x65, 0x66, 0x6d, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
|
0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x24, 0x0a,
|
||||||
0x65, 0x66, 0x6d, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6c, 0x76, 0x18, 0x09, 0x20, 0x01,
|
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x52,
|
||||||
0x28, 0x05, 0x52, 0x03, 0x6d, 0x6c, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
|
0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
|
||||||
0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a,
|
0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x62, 0x61, 0x74, 0x74, 0x69,
|
||||||
0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x62, 0x61, 0x74,
|
||||||
0x18, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x70,
|
0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18,
|
||||||
0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65,
|
0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12,
|
||||||
0x72, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01,
|
0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01,
|
||||||
0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61,
|
0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x64, 0x12, 0x25, 0x0a,
|
||||||
0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x72,
|
0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
|
||||||
0x72, 0x62, 0x61, 0x74, 0x74, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63,
|
0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x06, 0x69, 0x6e,
|
||||||
0x75, 0x72, 0x72, 0x62, 0x61, 0x74, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74,
|
0x76, 0x69, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d,
|
||||||
0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74,
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d,
|
||||||
0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e,
|
0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x77,
|
||||||
0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69,
|
0x65, 0x65, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x77,
|
||||||
0x6e, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x10, 0x20,
|
0x65, 0x65, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x72,
|
||||||
0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69,
|
0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x44, 0x42,
|
||||||
0x74, 0x65, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x6d, 0x65,
|
0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x72, 0x65, 0x77, 0x61,
|
||||||
0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52,
|
0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x72, 0x65, 0x77,
|
||||||
0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65,
|
0x61, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x74, 0x65, 0x67,
|
||||||
0x72, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20,
|
0x72, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, 0x65, 0x65, 0x6b, 0x69,
|
||||||
0x01, 0x28, 0x03, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a,
|
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65,
|
||||||
0x0a, 0x77, 0x65, 0x65, 0x6b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x13, 0x20, 0x03, 0x28,
|
0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
|
||||||
0x0b, 0x32, 0x1a, 0x2e, 0x44, 0x42, 0x50, 0x61, 0x72, 0x6b, 0x6f, 0x75, 0x72, 0x2e, 0x57, 0x65,
|
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
|
||||||
0x65, 0x6b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x77,
|
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||||
0x65, 0x65, 0x6b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x65,
|
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x57, 0x65, 0x65, 0x6b, 0x72, 0x65, 0x77, 0x61,
|
||||||
0x6b, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
|
||||||
0x0c, 0x77, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x1a, 0x3b, 0x0a,
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
|
||||||
0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
|
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
|
||||||
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
|
0x02, 0x38, 0x01, 0x22, 0xad, 0x02, 0x0a, 0x06, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e,
|
||||||
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20,
|
||||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x57, 0x65,
|
0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
|
||||||
0x65, 0x6b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
|
0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68,
|
||||||
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
|
0x12, 0x1f, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
|
||||||
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
|
0x09, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70,
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xad, 0x02, 0x0a, 0x06, 0x44, 0x42,
|
0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
|
||||||
0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
0x28, 0x05, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69,
|
||||||
0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50,
|
0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
|
||||||
0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69,
|
0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x64,
|
||||||
0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18,
|
0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
|
0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x09, 0x72, 0x65, 0x64,
|
||||||
0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b,
|
0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x73, 0x63, 0x6f,
|
||||||
0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69,
|
0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x64, 0x73, 0x63,
|
||||||
0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x18, 0x05,
|
0x6f, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62,
|
||||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x74, 0x12,
|
0x65, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63,
|
||||||
0x2b, 0x0a, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03,
|
0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d,
|
||||||
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65,
|
0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65,
|
||||||
0x72, 0x52, 0x09, 0x72, 0x65, 0x64, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09,
|
0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x75, 0x6c, 0x65, 0x73, 0x63, 0x6f,
|
||||||
0x72, 0x65, 0x64, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x72, 0x65, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50,
|
||||||
0x09, 0x72, 0x65, 0x64, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x62, 0x75,
|
0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x73, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01,
|
||||||
0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49,
|
||||||
0x2e, 0x44, 0x42, 0x52, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x62,
|
0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x75, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61,
|
||||||
0x75, 0x6c, 0x65, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x6c,
|
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05,
|
||||||
0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62,
|
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x75,
|
||||||
0x75, 0x6c, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x2a, 0x22, 0x0a, 0x08, 0x52, 0x61, 0x63,
|
0x6e, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x04,
|
||||||
0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x72,
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6c,
|
||||||
0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x10, 0x01, 0x2a, 0x44, 0x0a,
|
0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74,
|
||||||
0x0d, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b,
|
0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03,
|
||||||
0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x74,
|
0x6d, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x6c, 0x76, 0x1a, 0x3b,
|
||||||
0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63,
|
0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
|
||||||
0x68, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x61, 0x63, 0x65, 0x69, 0x6e,
|
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
|
||||||
0x67, 0x10, 0x03, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
|
||||||
0x74, 0x6f, 0x33,
|
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x22, 0x0a, 0x08, 0x52,
|
||||||
|
0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x69, 0x6e,
|
||||||
|
0x61, 0x72, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x72, 0x6f, 0x70, 0x10, 0x01, 0x2a,
|
||||||
|
0x44, 0x0a, 0x0d, 0x52, 0x61, 0x63, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65,
|
||||||
|
0x12, 0x0b, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0b, 0x0a,
|
||||||
|
0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61,
|
||||||
|
0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x61, 0x63, 0x65,
|
||||||
|
0x69, 0x6e, 0x67, 0x10, 0x03, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
|
||||||
|
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -814,33 +838,40 @@ func file_parkour_parkour_db_proto_rawDescGZIP() []byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var file_parkour_parkour_db_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
var file_parkour_parkour_db_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||||
var file_parkour_parkour_db_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
var file_parkour_parkour_db_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
||||||
var file_parkour_parkour_db_proto_goTypes = []interface{}{
|
var file_parkour_parkour_db_proto_goTypes = []interface{}{
|
||||||
(RaceType)(0), // 0: RaceType
|
(RaceType)(0), // 0: RaceType
|
||||||
(RaceTeamState)(0), // 1: RaceTeamState
|
(RaceTeamState)(0), // 1: RaceTeamState
|
||||||
(*DBRaceMember)(nil), // 2: DBRaceMember
|
(*DBRaceMember)(nil), // 2: DBRaceMember
|
||||||
(*DBRaceInvite)(nil), // 3: DBRaceInvite
|
(*DBRaceInvite)(nil), // 3: DBRaceInvite
|
||||||
(*DBParkour)(nil), // 4: DBParkour
|
(*DBParkour)(nil), // 4: DBParkour
|
||||||
(*DBRace)(nil), // 5: DBRace
|
(*DBRace)(nil), // 5: DBRace
|
||||||
nil, // 6: DBRaceMember.PropertyEntry
|
(*DBMatchPlayer)(nil), // 6: DBMatchPlayer
|
||||||
nil, // 7: DBParkour.PropertyEntry
|
nil, // 7: DBRaceMember.PropertyEntry
|
||||||
nil, // 8: DBParkour.WeekrewardEntry
|
nil, // 8: DBParkour.PropertyEntry
|
||||||
|
nil, // 9: DBParkour.WeekrewardEntry
|
||||||
|
nil, // 10: DBMatchPlayer.PropertyEntry
|
||||||
|
(*BaseUserInfo)(nil), // 11: BaseUserInfo
|
||||||
}
|
}
|
||||||
var file_parkour_parkour_db_proto_depIdxs = []int32{
|
var file_parkour_parkour_db_proto_depIdxs = []int32{
|
||||||
6, // 0: DBRaceMember.property:type_name -> DBRaceMember.PropertyEntry
|
11, // 0: DBRaceMember.user:type_name -> BaseUserInfo
|
||||||
7, // 1: DBParkour.property:type_name -> DBParkour.PropertyEntry
|
7, // 1: DBRaceMember.property:type_name -> DBRaceMember.PropertyEntry
|
||||||
1, // 2: DBParkour.state:type_name -> RaceTeamState
|
11, // 2: DBParkour.user:type_name -> BaseUserInfo
|
||||||
3, // 3: DBParkour.invite:type_name -> DBRaceInvite
|
8, // 3: DBParkour.property:type_name -> DBParkour.PropertyEntry
|
||||||
2, // 4: DBParkour.member:type_name -> DBRaceMember
|
1, // 4: DBParkour.state:type_name -> RaceTeamState
|
||||||
8, // 5: DBParkour.weekreward:type_name -> DBParkour.WeekrewardEntry
|
3, // 5: DBParkour.invite:type_name -> DBRaceInvite
|
||||||
0, // 6: DBRace.rtype:type_name -> RaceType
|
2, // 6: DBParkour.member:type_name -> DBRaceMember
|
||||||
2, // 7: DBRace.redmember:type_name -> DBRaceMember
|
9, // 7: DBParkour.weekreward:type_name -> DBParkour.WeekrewardEntry
|
||||||
2, // 8: DBRace.bulemember:type_name -> DBRaceMember
|
0, // 8: DBRace.rtype:type_name -> RaceType
|
||||||
9, // [9:9] is the sub-list for method output_type
|
2, // 9: DBRace.redmember:type_name -> DBRaceMember
|
||||||
9, // [9:9] is the sub-list for method input_type
|
2, // 10: DBRace.bulemember:type_name -> DBRaceMember
|
||||||
9, // [9:9] is the sub-list for extension type_name
|
11, // 11: DBMatchPlayer.suser:type_name -> BaseUserInfo
|
||||||
9, // [9:9] is the sub-list for extension extendee
|
10, // 12: DBMatchPlayer.property:type_name -> DBMatchPlayer.PropertyEntry
|
||||||
0, // [0:9] is the sub-list for field type_name
|
13, // [13:13] is the sub-list for method output_type
|
||||||
|
13, // [13:13] is the sub-list for method input_type
|
||||||
|
13, // [13:13] is the sub-list for extension type_name
|
||||||
|
13, // [13:13] is the sub-list for extension extendee
|
||||||
|
0, // [0:13] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_parkour_parkour_db_proto_init() }
|
func init() { file_parkour_parkour_db_proto_init() }
|
||||||
@ -848,6 +879,7 @@ func file_parkour_parkour_db_proto_init() {
|
|||||||
if File_parkour_parkour_db_proto != nil {
|
if File_parkour_parkour_db_proto != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
file_comm_proto_init()
|
||||||
if !protoimpl.UnsafeEnabled {
|
if !protoimpl.UnsafeEnabled {
|
||||||
file_parkour_parkour_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
file_parkour_parkour_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*DBRaceMember); i {
|
switch v := v.(*DBRaceMember); i {
|
||||||
@ -897,6 +929,18 @@ func file_parkour_parkour_db_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
file_parkour_parkour_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*DBMatchPlayer); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
@ -904,7 +948,7 @@ func file_parkour_parkour_db_proto_init() {
|
|||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_parkour_parkour_db_proto_rawDesc,
|
RawDescriptor: file_parkour_parkour_db_proto_rawDesc,
|
||||||
NumEnums: 2,
|
NumEnums: 2,
|
||||||
NumMessages: 7,
|
NumMessages: 9,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
|
@ -8,7 +8,6 @@ import (
|
|||||||
"go_dreamfactory/sys/configure"
|
"go_dreamfactory/sys/configure"
|
||||||
"go_dreamfactory/sys/db"
|
"go_dreamfactory/sys/db"
|
||||||
"reflect"
|
"reflect"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
@ -52,7 +51,6 @@ type SCompGateRoute struct {
|
|||||||
cbase.ServiceCompBase
|
cbase.ServiceCompBase
|
||||||
options *CompOptions
|
options *CompOptions
|
||||||
service comm.IService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口
|
service comm.IService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口
|
||||||
mrlock sync.RWMutex //msghandles 对象的锁
|
|
||||||
msghandles map[string]*msghandle //处理函数的管理对象
|
msghandles map[string]*msghandle //处理函数的管理对象
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +71,7 @@ func (this *SCompGateRoute) Init(service core.IService, comp core.IServiceComp,
|
|||||||
this.msghandles = make(map[string]*msghandle)
|
this.msghandles = make(map[string]*msghandle)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
} //
|
}
|
||||||
|
|
||||||
// 组件启动时注册rpc服务监听
|
// 组件启动时注册rpc服务监听
|
||||||
func (this *SCompGateRoute) Start() (err error) {
|
func (this *SCompGateRoute) Start() (err error) {
|
||||||
@ -92,20 +90,16 @@ func (this *SCompGateRoute) Start() (err error) {
|
|||||||
// 业务模块注册用户消息处理路由
|
// 业务模块注册用户消息处理路由
|
||||||
func (this *SCompGateRoute) RegisterRoute(methodName string, comp reflect.Value, msg reflect.Type, handele reflect.Method) {
|
func (this *SCompGateRoute) RegisterRoute(methodName string, comp reflect.Value, msg reflect.Type, handele reflect.Method) {
|
||||||
//log.Debugf("注册用户路由【%s】", methodName)
|
//log.Debugf("注册用户路由【%s】", methodName)
|
||||||
this.mrlock.RLock()
|
|
||||||
_, ok := this.msghandles[methodName]
|
_, ok := this.msghandles[methodName]
|
||||||
this.mrlock.RUnlock()
|
|
||||||
if ok {
|
if ok {
|
||||||
log.Errorf("重复 注册网关消息【%s】", methodName)
|
log.Errorf("重复 注册网关消息【%s】", methodName)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.mrlock.Lock()
|
|
||||||
this.msghandles[methodName] = &msghandle{
|
this.msghandles[methodName] = &msghandle{
|
||||||
rcvr: comp,
|
rcvr: comp,
|
||||||
msgType: msg,
|
msgType: msg,
|
||||||
handle: handele,
|
handle: handele,
|
||||||
}
|
}
|
||||||
this.mrlock.Unlock()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rpc_GatewayRoute服务接口的接收函数
|
// Rpc_GatewayRoute服务接口的接收函数
|
||||||
@ -125,9 +119,7 @@ func (this *SCompGateRoute) ReceiveMsg(ctx context.Context, args *pb.AgentMessag
|
|||||||
// log.Field{Key: "args", Value: args.String()},
|
// log.Field{Key: "args", Value: args.String()},
|
||||||
// )
|
// )
|
||||||
reply.ServiceId = this.service.GetId()
|
reply.ServiceId = this.service.GetId()
|
||||||
this.mrlock.RLock()
|
|
||||||
msghandle, ok := this.msghandles[method]
|
msghandle, ok := this.msghandles[method]
|
||||||
this.mrlock.RUnlock()
|
|
||||||
if ok {
|
if ok {
|
||||||
session := this.service.GetUserSession()
|
session := this.service.GetUserSession()
|
||||||
session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId)
|
session.SetSession(args.Ip, args.UserSessionId, args.ServiceTag, args.GatewayServiceId, args.UserId)
|
||||||
|
81
services/comp_match.go
Normal file
81
services/comp_match.go
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
package services
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/core/cbase"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
服务网关组件 用于接收网关服务发送过来的消息
|
||||||
|
*/
|
||||||
|
|
||||||
|
func NewMatchComp() comm.ISC_MatchComp {
|
||||||
|
comp := new(SCompMatch)
|
||||||
|
return comp
|
||||||
|
}
|
||||||
|
|
||||||
|
// 服务网关组件
|
||||||
|
type SCompMatch struct {
|
||||||
|
cbase.ServiceCompBase
|
||||||
|
options *CompOptions
|
||||||
|
service comm.IService //rpc服务对象 通过这个对象可以发布服务和调用其他服务的接口
|
||||||
|
msghandles map[string]*msghandle //处理函数的管理对象
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置服务组件名称 方便业务模块中获取此组件对象
|
||||||
|
func (this *SCompMatch) GetName() core.S_Comps {
|
||||||
|
return comm.SC_ServiceMatchComp
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *SCompMatch) NewOptions() (options core.ICompOptions) {
|
||||||
|
return new(CompOptions)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组件初始化函数
|
||||||
|
func (this *SCompMatch) Init(service core.IService, comp core.IServiceComp, options core.ICompOptions) (err error) {
|
||||||
|
err = this.ServiceCompBase.Init(service, comp, options)
|
||||||
|
this.options = options.(*CompOptions)
|
||||||
|
this.service = service.(comm.IService)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组件启动时注册rpc服务监听
|
||||||
|
func (this *SCompMatch) Start() (err error) {
|
||||||
|
this.service.RegisterFunctionName(string(comm.RPC_SuccMatchNotice), this.SuccMatchNotice) //注册用户登录通知
|
||||||
|
err = this.ServiceCompBase.Start()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *SCompMatch) RegisterMatchPool(poolName string, comp reflect.Value, msg reflect.Type, handle reflect.Method) {
|
||||||
|
this.msghandles[poolName] = &msghandle{
|
||||||
|
rcvr: comp,
|
||||||
|
msgType: msg,
|
||||||
|
handle: handle,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RPC_NoticeUserClose 接收用户登录通知
|
||||||
|
func (this *SCompMatch) SuccMatchNotice(ctx context.Context, args *pb.SuccMatchNoticeReq, reply *pb.SuccMatchNoticeResp) (err error) {
|
||||||
|
msghandle, ok := this.msghandles[args.Poolname]
|
||||||
|
if ok {
|
||||||
|
var (
|
||||||
|
msg proto.Message
|
||||||
|
)
|
||||||
|
newSlice := reflect.New(msghandle.msgType)
|
||||||
|
for _, v := range args.Players {
|
||||||
|
if msg, err = v.UnmarshalNew(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
newSlice = reflect.Append(newSlice, reflect.ValueOf(msg))
|
||||||
|
}
|
||||||
|
//执行处理流
|
||||||
|
msghandle.handle.Func.Call([]reflect.Value{msghandle.rcvr, newSlice})
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"go_dreamfactory/modules/matchpool"
|
||||||
"go_dreamfactory/modules/mgolog"
|
"go_dreamfactory/modules/mgolog"
|
||||||
"go_dreamfactory/modules/timer"
|
"go_dreamfactory/modules/timer"
|
||||||
"go_dreamfactory/modules/web"
|
"go_dreamfactory/modules/web"
|
||||||
@ -38,6 +39,7 @@ func main() {
|
|||||||
mgolog.NewModule(),
|
mgolog.NewModule(),
|
||||||
web.NewModule(),
|
web.NewModule(),
|
||||||
timer.NewModule(),
|
timer.NewModule(),
|
||||||
|
matchpool.NewModule(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@ func main() {
|
|||||||
)
|
)
|
||||||
s.OnInstallComp( //装备组件
|
s.OnInstallComp( //装备组件
|
||||||
services.NewGateRouteComp(), //此服务需要接受用户的消息 需要装备网关组件
|
services.NewGateRouteComp(), //此服务需要接受用户的消息 需要装备网关组件
|
||||||
|
services.NewMatchComp(), //匹配管理组件
|
||||||
)
|
)
|
||||||
lego.Run(s, //运行模块
|
lego.Run(s, //运行模块
|
||||||
sys.NewModule(),
|
sys.NewModule(),
|
||||||
|
Loading…
Reference in New Issue
Block a user