跨服排行数据结构整理优化 减少io查询

This commit is contained in:
meixiongfeng 2023-12-27 19:00:42 +08:00
parent 7fdfc0f0b0
commit 5771cde844
10 changed files with 1013 additions and 636 deletions

View File

@ -45,7 +45,7 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.IntegralChalle
return
}
// 校验门票 最大值等配置
if list.Count >= 3 {
if list.Count >= this.module.ModuleTools.GetGlobalConf().IntegralBossChallengeNum {
errdata = &pb.ErrorData{ // 不能挑战了
Code: pb.ErrorCode_TntegralDayMaxChallenge,
Title: pb.ErrorCode_TntegralDayMaxChallenge.ToString(),

View File

@ -116,7 +116,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
if viking.BossTime[key] == 0 || viking.BossTime[key] > req.Report.Costtime {
viking.BossTime[key] = req.Report.Costtime
mapData["bossTime"] = viking.BossTime // 更新时间
this.module.CheckRank(session.GetUserId(), req.BossId, req.Difficulty, req.Report)
//this.module.CheckRank(session.GetUserId(), req.BossId, req.Difficulty, req.Report)
}
if req.Auto == 1 {
@ -127,8 +127,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
viking.Round[req.Auto] = req.Report.Round
mapData["round"] = viking.Round
}
// 连续自动战斗
if len(viking.Round) == 10 {
var total int32
for _, v := range viking.Round {
total += v
@ -147,9 +145,13 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
}
}
}
this.module.CheckSeasonRank(session.GetUserId(), req.BossId, req.Difficulty, Leadpos, szLine, total)
go func() {
this.module.modulerank.CheckRank(session.GetUserId(), req.BossId, req.Difficulty, Leadpos, szLine, req.Report.Costtime)
// 连续自动战斗
if len(viking.Round) == 10 {
this.module.modelsrank.CheckSeasonRank(session.GetUserId(), req.BossId, req.Difficulty, Leadpos, szLine, total)
}
}()
reward = this.module.ModuleTools.GetGroupDataByLottery(vikingCfg.Drop, user.Vip, user.Lv)
b := this.module.ModuleActivity.HDCelebration(session, 2, req.BossId)
@ -218,7 +220,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
var tasks []*pb.BuriedParam
tasks = append(tasks, comm.GetBuriedParam(comm.Rtype73, 1, req.BossId, req.Difficulty))
//szTask = append(szTask, comm.GetBuriedParam(comm.Rtype74, req.BossId, req.Difficulty))
tasks = append(tasks, comm.GetBuriedParam(comm.Rtype78, req.BossId, req.Report.Costtime/1000, req.Difficulty))
tasks = append(tasks, comm.GetBuriedParam(comm.Rtype78, req.BossId, req.Report.Costtime, req.Difficulty))
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
for _, v := range req.Report.Info.Redflist[0].Team {

View File

@ -1,14 +1,8 @@
package viking
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"strconv"
"github.com/go-redis/redis/v8"
)
//参数校验
@ -24,44 +18,44 @@ func (this *apiComp) RankListCheck(session comm.IUserSession, req *pb.VikingRank
func (this *apiComp) RankList(session comm.IUserSession, req *pb.VikingRankListReq) (errdata *pb.ErrorData) {
var (
szRank []*pb.DBVikingRank
rd *redis.StringSliceCmd
fRank []*pb.DBVikingRank
uids []string
err error
ranks []*pb.DBVikingRecord
players []*pb.DBVikingRank
)
if errdata = this.RankListCheck(session, req); errdata != nil {
return // 参数校验失败直接返回
}
conn, _ := db.Local()
dbModel := db.NewDBModelByExpired(comm.TableVikingRank, conn)
if !req.Friend {
var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())
)
rd = pipe.ZRevRange("vikingRank"+strconv.Itoa(int(req.BoosType)), 0, comm.MaxRankList)
if _, err := pipe.Exec(); err != nil {
this.module.Errorln(err)
if uids, err = this.module.modulerank.querySRankUser(int(req.BoosType)); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
_dataList := rd.Val()
for _, v := range _dataList {
result := &pb.DBVikingRank{}
if err := dbModel.Redis.HGetAll(v, result); err == nil {
szRank = append(szRank, result)
if ranks, err = this.module.modulerank.queryPlayers(uids); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
players = make([]*pb.DBVikingRank, len(ranks))
for i, v := range ranks {
players[i] = &pb.DBVikingRank{
Uinfo: v.Uinfo,
Line: v.Line,
Difficulty: v.Data[req.BoosType].Maxnandu,
Bosstype: req.BoosType,
Costtime: v.Data[req.BoosType].Costime[v.Data[req.BoosType].Maxnandu],
}
}
} else {
uids := this.friend.GetFriendList(session.GetUserId())
for _, id := range uids {
rankData := this.module.modulerank.getVikingRankListByBossType(id, req.BoosType)
if rankData != nil {
szRank = append(szRank, rankData)
}
}
}
session.SendMsg(string(this.module.GetType()), VikingRankListResp, &pb.VikingRankListResp{Ranks: szRank})
session.SendMsg(string(this.module.GetType()), VikingRankListResp, &pb.VikingRankListResp{
Ranks: players,
Franks: fRank,
})
return
}

View File

@ -1,14 +1,9 @@
package viking
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"strconv"
"github.com/go-redis/redis/v8"
)
//参数校验
@ -24,57 +19,57 @@ func (this *apiComp) SeasonRankCheck(session comm.IUserSession, req *pb.VikingSe
func (this *apiComp) SeasonRank(session comm.IUserSession, req *pb.VikingSeasonRankReq) (errdata *pb.ErrorData) {
var (
szRank []*pb.DBVSeasonRank
rd *redis.StringSliceCmd
conn *db.DBConn
pipe *pipe.RedisPipe
uids []string
err error
endSeasonTime int64
bCross bool // 是否是跨服
ranks []*pb.DBVSeasonRecord
players []*pb.DBVikingSRank
)
if errdata = this.SeasonRankCheck(session, req); errdata != nil {
return // 参数校验失败直接返回
}
if bCross, endSeasonTime = this.module.CheckCurSeasonData(); bCross {
conn, err = db.Local()
var (
conn_ *db.DBConn
)
if bcross, _ := this.module.CheckCurSeasonData(); bcross {
conn_, err = db.Local() // 获取跨服数据库对象
if err != nil {
return
}
} else { //数据记录在本服
conn_, err = db.Cross()
if err != nil {
return
}
}
if uids, err = this.module.modelsrank.querySRankUser(int(req.BoosType), conn_); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
} else {
conn, _ = db.Cross()
if err != nil {
if ranks, err = this.module.modelsrank.queryPlayers(uids, conn_); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
}
dbModel := db.NewDBModelByExpired(comm.TableVikingSRank, conn)
pipe = conn.Redis.RedisPipe(context.TODO())
rd = pipe.ZRevRange("vSeasonRank"+strconv.Itoa(int(req.BoosType)), 0, comm.MaxRankList)
if _, err := pipe.Exec(); err != nil {
this.module.Errorln(err)
return
}
_dataList := rd.Val()
for _, v := range _dataList {
result := &pb.DBVSeasonRank{}
if err := dbModel.Redis.HGetAll(v, result); err == nil {
szRank = append(szRank, result)
players = make([]*pb.DBVikingSRank, len(ranks))
for i, v := range ranks {
players[i] = &pb.DBVikingSRank{
Uinfo: v.Uinfo,
Line: v.Line,
Difficulty: v.Data[req.BoosType].Maxnandu,
Bosstype: req.BoosType,
Huihe: v.Data[req.BoosType].Huihe[v.Data[req.BoosType].Maxnandu],
}
}
session.SendMsg(string(this.module.GetType()), VikingSeasonRankReq, &pb.VikingSeasonRankResp{
Ranks: szRank,
Etime: endSeasonTime,
Ranks: players,
})
return
}

View File

@ -1,18 +1,25 @@
package viking
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"strconv"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type ModelRank struct {
modules.MCompModel
moduleViking *Viking
}
@ -28,45 +35,143 @@ func (this *ModelRank) Init(service core.IService, module core.IModule, comp cor
}
// 获取排行榜数据
func (this *ModelRank) getVikingRankList(uid string) []*pb.DBVikingRank {
ranks := make([]*pb.DBVikingRank, 0)
err := this.GetList(uid, &ranks)
if err != nil {
return nil
func (this *ModelRank) getVikingRank(uid string) *pb.DBVikingRecord {
data := &pb.DBVikingRecord{}
if !db.IsCross() {
if conn_, err := db.Cross(); err == nil {
model := db.NewDBModelByExpired(comm.TableVikingRank, conn_)
if err := model.Get(uid, data); err != nil {
return data
}
return ranks
}
}
return data
}
func (this *ModelRank) getVikingRankListByBossType(uid string, bossType int32) *pb.DBVikingRank {
// 获取排行榜前50的用户名单
func (this *ModelRank) querySRankUser(bossid int) (ranks []string, err error) {
var (
result []string
)
if db.IsCross() {
ranks := make([]*pb.DBVikingRank, 0)
err := this.GetList(uid, &ranks)
tableName := this.TableName + strconv.Itoa(int(bossid))
if result, err = this.Redis.ZRevRange(tableName, 0, 50).Result(); err != nil {
//this.module.Errorln(err)
return
}
ranks = make([]string, 0)
for i := 0; i < len(result); i += 1 {
ranks = append(ranks, result[i])
}
return
}
func (this *ModelRank) queryPlayers(uIds []string) (result []*pb.DBVikingRecord, err error) {
result = make([]*pb.DBVikingRecord, 0)
if _, err = this.Gets(uIds, &result); err != nil && err != mgo.MongodbNil {
//this.module.Errorln(err)
return
}
return
}
// 记录数据存在跨服
func (this *ModelRank) CheckRank(uid string, boosID int32, difficulty int32, leadpos int32, szLine []*pb.LineUp, costTime int32) {
conn_, err := db.Cross() // 获取跨服数据库对象
if err != nil {
return nil
return
}
for _, v := range ranks {
if v.Bosstype == bossType {
return v
user, err := this.moduleViking.ModuleUser.GetUser(uid)
if err != nil {
return
}
model := db.NewDBModelByExpired(comm.TableVikingRank, conn_)
// 写入排行榜
record := &pb.DBVikingRecord{}
if err = model.Get(uid, record); err == mgo.MongodbNil {
record.Id = primitive.NewObjectID().Hex()
record.Data = make(map[int32]*pb.ScoreData, 0)
record.Uid = uid
record.Uinfo = &pb.BaseUserInfo{
Uid: uid,
Sid: user.Sid,
Name: user.Name,
Gender: user.Gender,
Skin: user.CurSkin,
Aframe: user.Curaframe,
Title: user.Curtitle,
Lv: user.Lv,
}
record.Line = &pb.LineData{
Leadpos: leadpos,
Line: szLine,
}
tmp := make(map[int32]int32, 0)
tmp[difficulty] = costTime
if record.Data[boosID] == nil {
record.Data[boosID] = &pb.ScoreData{
Costime: tmp,
Maxnandu: difficulty,
}
} else {
conn, err := db.Cross()
if err != nil {
return nil
}
model := db.NewDBModelByExpired(comm.TableVikingRank, conn)
ranks := make([]*pb.DBVikingRank, 0)
err = model.GetList(uid, &ranks)
if err != nil {
return nil
}
for _, v := range ranks {
if v.Bosstype == bossType {
return v
}
if record.Data[boosID].Maxnandu < difficulty {
record.Data[boosID].Maxnandu = difficulty
}
}
return nil
model.Add(uid, record)
} else if err == nil {
record.Uinfo = &pb.BaseUserInfo{
Uid: uid,
Sid: user.Sid,
Name: user.Name,
Gender: user.Gender,
Skin: user.CurSkin,
Aframe: user.Curaframe,
Title: user.Curtitle,
Lv: user.Lv,
}
update := make(map[string]interface{}, 0)
update["uinfo"] = record.Uinfo
if record.Data[boosID] == nil {
record.Data[boosID].Costime = make(map[int32]int32, 0)
}
if record.Data[boosID].Maxnandu < difficulty {
record.Data[boosID].Maxnandu = difficulty
} else {
if record.Data[boosID].Costime[difficulty] > costTime { // 不是新记录不写
return
}
}
record.Data[boosID].Costime[difficulty] = costTime
update["data"] = record.Data
model.Change(uid, update)
}
var (
pipe *pipe.RedisPipe = conn_.Redis.RedisPipe(context.TODO())
menbers *redis.Z
tableName string
score int32
)
score = difficulty*10000 + (10000 - costTime)
tableName = this.TableName + strconv.Itoa(int(boosID))
menbers = &redis.Z{Score: float64(score), Member: uid}
if cmd := pipe.ZAdd(tableName, menbers); cmd != nil {
// dock, err1 := cmd.Result()
// if err1 != nil {
// //this.Errorln(dock, err1)
// }
}
if _, err := pipe.Exec(); err != nil {
//this.Errorln(err)
return
}
}

View File

@ -0,0 +1,234 @@
package viking
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"strconv"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type ModelSRank struct {
modules.MCompModel
moduleViking *Viking
}
func (this *ModelSRank) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = comm.TableVikingSRank
err = this.MCompModel.Init(service, module, comp, options)
this.moduleViking = module.(*Viking)
//创建uid索引
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
func (this *ModelSRank) queryPlayers(uIds []string, conn_ *db.DBConn) (result []*pb.DBVSeasonRecord, err error) {
result = make([]*pb.DBVSeasonRecord, 0)
model := db.NewDBModelByExpired(comm.TableVikingSRank, conn_)
if _, err = model.Gets(uIds, &result); err != nil && err != mgo.MongodbNil {
//this.module.Errorln(err)
return
}
return
}
func (this *ModelSRank) CheckCurSeasonData() (bLocal bool, endSeasonTime int64) {
var subTime int64
var oneSeason int64
openTime := this.moduleViking.service.GetOpentime().Unix()
// 获取第一个赛季结束的时间
oneSeason = utils.GetTodayZeroTime(openTime) //+ int64((6-d)*3600*24)
var c int32
if Continued%Cycle == 0 {
c = Continued / Cycle
} else {
c = Continued/Cycle + 1
}
if configure.Now().Unix() > oneSeason {
subTime = configure.Now().Unix() - oneSeason
subTime = subTime/(14*3600*24) + 1
}
// 只需判断当前时间是否大于第c个赛季即可
endSeasonTime = oneSeason
endSeasonTime += 14 * 3600 * 24 * int64(c)
if endSeasonTime <= configure.Now().Unix() {
endSeasonTime = oneSeason + subTime*14*3600*24
return false, endSeasonTime
}
endSeasonTime = oneSeason + subTime*14*3600*24
return true, endSeasonTime
}
// 检查上一个赛季实在本服还是在跨服
func (this *ModelSRank) CheckPreSeasonData() (bLocal bool) {
openTime := this.moduleViking.service.GetOpentime().Unix()
// 获取第一个赛季结束的时间
endSeasonTime := utils.GetTodayZeroTime(openTime) //+ int64((6-d)*3600*24)
var c int32
if Continued%Cycle == 0 {
c = Continued / Cycle
} else {
c = Continued/Cycle + 1
}
// 只需判断当前时间是否大于第c个赛季即可
endSeasonTime += 3600 * 24 * int64(Cycle*c)
if endSeasonTime <= configure.Now().Unix()-int64(Cycle*3600*24) {
return false
}
return true
}
// 记录数据存在跨服
func (this *ModelSRank) CheckSeasonRank(uid string, boosID int32, difficulty int32, leadpos int32, szLine []*pb.LineUp, huihe int32) {
var (
conn_ *db.DBConn
err error
bcross bool
record *pb.DBVSeasonRecord
update map[string]interface{}
)
update = make(map[string]interface{}, 0)
bcross, _ = this.CheckCurSeasonData()
if bcross {
conn_, err = db.Local() // 获取跨服数据库对象
if err != nil {
return
}
} else { //数据记录在本服
conn_, err = db.Cross()
if err != nil {
return
}
}
user, err := this.moduleViking.ModuleUser.GetUser(uid)
if err != nil {
return
}
model := db.NewDBModelByExpired(comm.TableVikingSRank, conn_)
// 写入排行榜
record = &pb.DBVSeasonRecord{
Id: "",
Uinfo: &pb.BaseUserInfo{},
Data: map[int32]*pb.HuiheData{},
Line: &pb.LineData{},
}
if err = model.Get(uid, record); err == mgo.MongodbNil {
record.Id = primitive.NewObjectID().Hex()
record.Uid = uid
record.Data = make(map[int32]*pb.HuiheData, 0)
record.Uinfo = &pb.BaseUserInfo{
Uid: uid,
Sid: user.Sid,
Name: user.Name,
Gender: user.Gender,
Skin: user.CurSkin,
Aframe: user.Curaframe,
Title: user.Curtitle,
Lv: user.Lv,
}
record.Line = &pb.LineData{
Leadpos: leadpos,
Line: szLine,
}
tmp := make(map[int32]int32, 0)
tmp[difficulty] = huihe
if record.Data[boosID] == nil {
record.Data[boosID] = &pb.HuiheData{
Huihe: tmp,
Maxnandu: difficulty,
}
} else {
if record.Data[boosID].Maxnandu < difficulty {
record.Data[boosID].Maxnandu = difficulty
}
}
model.Add(uid, record)
} else if err == nil {
record.Uinfo = &pb.BaseUserInfo{
Uid: uid,
Sid: user.Sid,
Name: user.Name,
Gender: user.Gender,
Skin: user.CurSkin,
Aframe: user.Curaframe,
Title: user.Curtitle,
Lv: user.Lv,
}
update["uinfo"] = record.Uinfo
if record.Data[boosID] == nil {
record.Data[boosID].Huihe = make(map[int32]int32, 0)
}
if record.Data[boosID].Maxnandu < difficulty {
record.Data[boosID].Maxnandu = difficulty
} else {
if record.Data[boosID].Huihe[difficulty] > huihe { // 不是新记录不写
return
}
}
record.Data[boosID].Huihe[difficulty] = huihe
update["data"] = record.Data
model.Change(uid, update)
}
var (
pipe *pipe.RedisPipe = conn_.Redis.RedisPipe(context.TODO())
menbers *redis.Z
tableName string
score int32
)
score = difficulty*10000 + huihe
tableName = this.TableName + strconv.Itoa(int(boosID))
menbers = &redis.Z{Score: float64(score), Member: uid}
if cmd := pipe.ZAdd(tableName, menbers); cmd != nil {
// dock, err1 := cmd.Result()
// if err1 != nil {
// //this.Errorln(dock, err1)
// }
}
if _, err := pipe.Exec(); err != nil {
//this.Errorln(err)
return
}
}
// 获取排行榜前50的用户名单
func (this *ModelSRank) querySRankUser(bossid int, conn_ *db.DBConn) (ranks []string, err error) {
var (
result []string
)
tableName := this.TableName + strconv.Itoa(int(bossid))
if result, err = conn_.Redis.ZRevRange(tableName, 0, 50).Result(); err != nil {
//this.module.Errorln(err)
return
}
ranks = make([]string, 0)
for i := 0; i < len(result); i += 1 {
ranks = append(ranks, result[i])
}
return
}

View File

@ -6,22 +6,14 @@
package viking
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/utils"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go_dreamfactory/sys/db"
"math"
"strconv"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type Viking struct {
@ -32,6 +24,7 @@ type Viking struct {
modulerank *ModelRank
battle comm.IBattle
service base.IRPCXService
modelsrank *ModelSRank
}
const (
@ -60,6 +53,7 @@ func (this *Viking) OnInstallComp() {
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelViking = this.RegisterComp(new(modelViking)).(*modelViking)
this.modulerank = this.RegisterComp(new(ModelRank)).(*ModelRank)
this.modelsrank = this.RegisterComp(new(ModelSRank)).(*ModelSRank)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
@ -90,112 +84,24 @@ func (this *Viking) Start() (err error) {
}
func (this *Viking) CheckUserBaseVikingInfo(uid string) (data []*pb.DBVikingRank) {
list, err := this.modelViking.getVikingList(uid)
if err == nil {
for k := range list.Boss {
if d := this.modulerank.getVikingRank(uid); d.Id != "" {
for k, v := range d.Data {
if k <= 3 {
_d := this.modulerank.getVikingRankListByBossType(uid, k)
if _d != nil {
data = append(data, _d)
}
data = append(data, &pb.DBVikingRank{
Uinfo: d.Uinfo,
Line: d.Line,
Difficulty: v.Maxnandu,
Bosstype: k,
Costtime: v.Costime[v.Maxnandu],
})
}
}
}
return
}
// 记录数据存在跨服
func (this *Viking) CheckRank(uid string, boosID int32, difficulty int32, report *pb.BattleReport) {
conn_, err := db.Cross() // 获取跨服数据库对象
if err != nil {
return
}
userinfo, err := this.ModuleUser.GetUser(uid)
if err != nil {
return
}
model := db.NewDBModelByExpired(comm.TableVikingRank, conn_)
costTime := report.Costtime
szLine := make([]*pb.LineUp, len(report.Info.Redflist[0].Team))
Leadpos := 0
if report != nil && report.Info != nil && len(report.Info.Redflist) > 0 {
costTime = report.Costtime
Leadpos = int(report.Info.Redflist[0].Leadpos)
for i, v := range report.Info.Redflist[0].Team {
if v != nil {
szLine[i] = &pb.LineUp{
Cid: v.HeroID,
Star: v.Star,
Lv: v.Lv,
}
}
}
}
// 写入排行榜
objID := ""
bFind := false
ranks := make([]*pb.DBVikingRank, 0)
model.GetList(uid, &ranks)
for _, v := range ranks {
if v.Bosstype == boosID {
mapRankData := make(map[string]interface{}, 0)
mapRankData["difficulty"] = difficulty
mapRankData["bosstype"] = boosID
mapRankData["Leadpos"] = Leadpos
mapRankData["line"] = szLine
mapRankData["costTime"] = costTime
model.ChangeList(uid, v.Id, mapRankData)
objID = v.Id
bFind = true
break
}
}
if !bFind {
new := &pb.DBVikingRank{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Difficulty: difficulty,
Bosstype: boosID,
Nickname: userinfo.Name,
Skin: userinfo.CurSkin,
Lv: userinfo.Lv,
Leadpos: int32(Leadpos),
Line: szLine,
CostTime: costTime,
Sex: userinfo.Gender,
Title: userinfo.Curtitle,
}
objID = new.Id
model.AddList(uid, new.Id, new)
}
var (
pipe *pipe.RedisPipe = conn_.Redis.RedisPipe(context.TODO())
menbers *redis.Z
tableName string
score int64
)
score = int64(difficulty)<<31 + int64(math.MaxInt32-costTime)
tableName = "vikingRank" + strconv.Itoa(int(boosID))
strKey := "vikingrank:" + uid + "-" + objID // 自定义key
menbers = &redis.Z{Score: float64(score), Member: strKey}
if cmd := pipe.ZAdd(tableName, menbers); cmd != nil {
dock, err1 := cmd.Result()
if err1 != nil {
this.Errorln(dock, err1)
}
}
if _, err := pipe.Exec(); err != nil {
this.Errorln(err)
return
}
}
//红点查询
func (this *Viking) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]*pb.ReddotItem) {
reddot = make(map[comm.ReddotType]*pb.ReddotItem)
@ -295,121 +201,3 @@ func (this *Viking) CheckPreSeasonData() (bLocal bool) {
}
return true
}
// 记录数据存在跨服
func (this *Viking) CheckSeasonRank(uid string, boosID int32, difficulty int32, leadpos int32, szLine []*pb.LineUp, huihe int32) {
var (
conn_ *db.DBConn
err error
bcross bool
)
bcross, _ = this.CheckCurSeasonData()
if bcross {
conn_, err = db.Local() // 获取跨服数据库对象
if err != nil {
return
}
} else { //数据记录在本服
conn_, err = db.Cross()
if err != nil {
return
}
}
userinfo, err := this.ModuleUser.GetUser(uid)
if err != nil {
return
}
model := db.NewDBModelByExpired(comm.TableVikingSRank, conn_)
// 写入排行榜
objID := ""
bFind := false
ranks := make([]*pb.DBVSeasonRank, 0)
model.GetList(uid, &ranks)
for _, v := range ranks {
if v.Bosstype == boosID && v.Difficulty <= difficulty {
if v.Difficulty == difficulty { // 难度相等 则回合数少则更新
if v.Huihe != 0 && v.Huihe <= huihe {
break
}
}
mapRankData := make(map[string]interface{}, 0)
mapRankData["difficulty"] = difficulty
mapRankData["bosstype"] = boosID
mapRankData["Leadpos"] = leadpos
mapRankData["line"] = szLine
mapRankData["huihe"] = huihe
model.ChangeList(uid, v.Id, mapRankData)
objID = v.Id
bFind = true
break
}
}
if !bFind {
new := &pb.DBVSeasonRank{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Difficulty: difficulty,
Bosstype: boosID,
Nickname: userinfo.Name,
Skin: userinfo.CurSkin,
Lv: userinfo.Lv,
Leadpos: leadpos,
Line: szLine,
Huihe: huihe,
Sid: userinfo.Sid,
Sex: userinfo.Gender,
Title: userinfo.Curtitle,
}
objID = new.Id
model.AddList(uid, new.Id, new)
}
var (
pipe *pipe.RedisPipe = conn_.Redis.RedisPipe(context.TODO())
menbers *redis.Z
tableName string
score int32
)
score = difficulty<<16 + huihe
tableName = "vSeasonRank" + strconv.Itoa(int(boosID))
strKey := "vikingsrank:" + uid + "-" + objID // 自定义key
menbers = &redis.Z{Score: float64(score), Member: strKey}
if cmd := pipe.ZAdd(tableName, menbers); cmd != nil {
dock, err1 := cmd.Result()
if err1 != nil {
this.Errorln(dock, err1)
}
}
if _, err := pipe.Exec(); err != nil {
this.Errorln(err)
return
}
// 以下是测试
// var (
// szRank []*pb.DBVSeasonRank
// rd *redis.StringSliceCmd
// )
// //dbModel := db.NewDBModel(comm.TableVikingSRank, 0, conn_)
// pipe = conn_.Redis.RedisPipe(context.TODO())
// rd = pipe.ZRevRange("vSeasonRank"+strconv.Itoa(int(boosID)), 0, comm.MaxRankList)
// if _, err := pipe.Exec(); err != nil {
// this.Errorln(err)
// return
// }
// _dataList := rd.Val()
// for _, v := range _dataList {
// result := &pb.DBVSeasonRank{}
// if err := model.Redis.HGetAll(v, result); err == nil {
// szRank = append(szRank, result)
// }
// }
}

View File

@ -41,7 +41,7 @@ type DBFriend struct {
Record []*AssistRecord `protobuf:"bytes,14,rep,name=record,proto3" json:"record" bson:"record"` // 助战记录
Weapplyids []string `protobuf:"bytes,15,rep,name=weapplyids,proto3" json:"weapplyids" bson:"weapplyids"` //我申请的用户ID
CleanTime int64 `protobuf:"varint,16,opt,name=cleanTime,proto3" json:"cleanTime" bson:"cleanTime"` //清理申请列表时间
RefreshNum int32 `protobuf:"varint,17,opt,name=refreshNum,proto3" json:"refreshNum"` // 每日刷新次数
RefreshNum int32 `protobuf:"varint,17,opt,name=refreshNum,proto3" json:"refreshNum" bson:"refreshNum"` // 每日刷新次数
}
func (x *DBFriend) Reset() {

View File

@ -109,29 +109,101 @@ func (x *DBViking) GetRound() map[int32]int32 {
}
// 维京远征排行榜
type DBVikingRank struct {
type DBVikingRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
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" bson:"uid"` //用户ID
Uinfo *BaseUserInfo `protobuf:"bytes,3,opt,name=uinfo,proto3" json:"uinfo"` //用户基础
Data map[int32]*ScoreData `protobuf:"bytes,4,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // key boss 类型
Line *LineData `protobuf:"bytes,5,opt,name=line,proto3" json:"line"` // 阵容信息
}
func (x *DBVikingRecord) Reset() {
*x = DBVikingRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_viking_viking_db_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBVikingRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBVikingRecord) ProtoMessage() {}
func (x *DBVikingRecord) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_db_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 DBVikingRecord.ProtoReflect.Descriptor instead.
func (*DBVikingRecord) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{1}
}
func (x *DBVikingRecord) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBVikingRecord) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBVikingRecord) GetUinfo() *BaseUserInfo {
if x != nil {
return x.Uinfo
}
return nil
}
func (x *DBVikingRecord) GetData() map[int32]*ScoreData {
if x != nil {
return x.Data
}
return nil
}
func (x *DBVikingRecord) GetLine() *LineData {
if x != nil {
return x.Line
}
return nil
}
type DBVikingRank struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uinfo *BaseUserInfo `protobuf:"bytes,21,opt,name=uinfo,proto3" json:"uinfo"` //用户基础
Line *LineData `protobuf:"bytes,2,opt,name=line,proto3" json:"line"` // 阵容信息
Difficulty int32 `protobuf:"varint,3,opt,name=difficulty,proto3" json:"difficulty"` // 难度
Bosstype int32 `protobuf:"varint,4,opt,name=bosstype,proto3" json:"bosstype"` // boss类型塔类型
Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname"` // 昵称
Skin string `protobuf:"bytes,6,opt,name=skin,proto3" json:"skin"` // 玩家头像
Lv int32 `protobuf:"varint,7,opt,name=lv,proto3" json:"lv"` // 玩家等级
Leadpos int32 `protobuf:"varint,8,opt,name=leadpos,proto3" json:"leadpos"` //队长位置
Line []*LineUp `protobuf:"bytes,9,rep,name=line,proto3" json:"line"` // 阵容数据
CostTime int32 `protobuf:"varint,10,opt,name=costTime,proto3" json:"costTime" bson:"costTime"` //闯关耗时 单位s
Sex int32 `protobuf:"varint,11,opt,name=sex,proto3" json:"sex"` //性别
Title string `protobuf:"bytes,12,opt,name=title,proto3" json:"title"` // 称号
Costtime int32 `protobuf:"varint,5,opt,name=costtime,proto3" json:"costtime"` // 耗时
}
func (x *DBVikingRank) Reset() {
*x = DBVikingRank{}
if protoimpl.UnsafeEnabled {
mi := &file_viking_viking_db_proto_msgTypes[1]
mi := &file_viking_viking_db_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -144,7 +216,7 @@ func (x *DBVikingRank) String() string {
func (*DBVikingRank) ProtoMessage() {}
func (x *DBVikingRank) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_db_proto_msgTypes[1]
mi := &file_viking_viking_db_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -157,21 +229,21 @@ func (x *DBVikingRank) ProtoReflect() protoreflect.Message {
// Deprecated: Use DBVikingRank.ProtoReflect.Descriptor instead.
func (*DBVikingRank) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{1}
return file_viking_viking_db_proto_rawDescGZIP(), []int{2}
}
func (x *DBVikingRank) GetId() string {
func (x *DBVikingRank) GetUinfo() *BaseUserInfo {
if x != nil {
return x.Id
return x.Uinfo
}
return ""
return nil
}
func (x *DBVikingRank) GetUid() string {
func (x *DBVikingRank) GetLine() *LineData {
if x != nil {
return x.Uid
return x.Line
}
return ""
return nil
}
func (x *DBVikingRank) GetDifficulty() int32 {
@ -188,100 +260,39 @@ func (x *DBVikingRank) GetBosstype() int32 {
return 0
}
func (x *DBVikingRank) GetNickname() string {
func (x *DBVikingRank) GetCosttime() int32 {
if x != nil {
return x.Nickname
}
return ""
}
func (x *DBVikingRank) GetSkin() string {
if x != nil {
return x.Skin
}
return ""
}
func (x *DBVikingRank) GetLv() int32 {
if x != nil {
return x.Lv
return x.Costtime
}
return 0
}
func (x *DBVikingRank) GetLeadpos() int32 {
if x != nil {
return x.Leadpos
}
return 0
}
func (x *DBVikingRank) GetLine() []*LineUp {
if x != nil {
return x.Line
}
return nil
}
func (x *DBVikingRank) GetCostTime() int32 {
if x != nil {
return x.CostTime
}
return 0
}
func (x *DBVikingRank) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *DBVikingRank) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
// 装备副本DBVSeasonRank
type DBVSeasonRank struct {
type ScoreData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
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" bson:"uid"` //用户ID
Difficulty int32 `protobuf:"varint,3,opt,name=difficulty,proto3" json:"difficulty"` // 难度
Bosstype int32 `protobuf:"varint,4,opt,name=bosstype,proto3" json:"bosstype"` // boss类型塔类型
Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname"` // 昵称
Skin string `protobuf:"bytes,6,opt,name=skin,proto3" json:"skin"` // 玩家头像
Lv int32 `protobuf:"varint,7,opt,name=lv,proto3" json:"lv"` // 玩家等级
Leadpos int32 `protobuf:"varint,8,opt,name=leadpos,proto3" json:"leadpos"` //队长位置
Line []*LineUp `protobuf:"bytes,9,rep,name=line,proto3" json:"line"` // 阵容数据
Huihe int32 `protobuf:"varint,10,opt,name=huihe,proto3" json:"huihe"` // 平均回合数 建议*10
Sid string `protobuf:"bytes,11,opt,name=sid,proto3" json:"sid" bson:"sid"` //区服id
Sex int32 `protobuf:"varint,12,opt,name=sex,proto3" json:"sex"` //性别
Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title"` // 称号
Costime map[int32]int32 `protobuf:"bytes,1,rep,name=costime,proto3" json:"costime" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //key 难度 value 战斗时间
Maxnandu int32 `protobuf:"varint,2,opt,name=maxnandu,proto3" json:"maxnandu"` // 最高难度
}
func (x *DBVSeasonRank) Reset() {
*x = DBVSeasonRank{}
func (x *ScoreData) Reset() {
*x = ScoreData{}
if protoimpl.UnsafeEnabled {
mi := &file_viking_viking_db_proto_msgTypes[2]
mi := &file_viking_viking_db_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBVSeasonRank) String() string {
func (x *ScoreData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBVSeasonRank) ProtoMessage() {}
func (*ScoreData) ProtoMessage() {}
func (x *DBVSeasonRank) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_db_proto_msgTypes[2]
func (x *ScoreData) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_db_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -292,176 +303,353 @@ func (x *DBVSeasonRank) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
// Deprecated: Use DBVSeasonRank.ProtoReflect.Descriptor instead.
func (*DBVSeasonRank) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{2}
// Deprecated: Use ScoreData.ProtoReflect.Descriptor instead.
func (*ScoreData) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{3}
}
func (x *DBVSeasonRank) GetId() string {
func (x *ScoreData) GetCostime() map[int32]int32 {
if x != nil {
return x.Costime
}
return nil
}
func (x *ScoreData) GetMaxnandu() int32 {
if x != nil {
return x.Maxnandu
}
return 0
}
type DBVSeasonRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
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" bson:"uid"` //用户ID
Uinfo *BaseUserInfo `protobuf:"bytes,3,opt,name=uinfo,proto3" json:"uinfo"` //用户基础
Data map[int32]*HuiheData `protobuf:"bytes,4,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // key boss 类型
Line *LineData `protobuf:"bytes,5,opt,name=line,proto3" json:"line"` // 阵容信息
}
func (x *DBVSeasonRecord) Reset() {
*x = DBVSeasonRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_viking_viking_db_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBVSeasonRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBVSeasonRecord) ProtoMessage() {}
func (x *DBVSeasonRecord) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_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 DBVSeasonRecord.ProtoReflect.Descriptor instead.
func (*DBVSeasonRecord) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{4}
}
func (x *DBVSeasonRecord) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBVSeasonRank) GetUid() string {
func (x *DBVSeasonRecord) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBVSeasonRank) GetDifficulty() int32 {
func (x *DBVSeasonRecord) GetUinfo() *BaseUserInfo {
if x != nil {
return x.Difficulty
return x.Uinfo
}
return 0
return nil
}
func (x *DBVSeasonRank) GetBosstype() int32 {
func (x *DBVSeasonRecord) GetData() map[int32]*HuiheData {
if x != nil {
return x.Bosstype
return x.Data
}
return 0
return nil
}
func (x *DBVSeasonRank) GetNickname() string {
if x != nil {
return x.Nickname
}
return ""
}
func (x *DBVSeasonRank) GetSkin() string {
if x != nil {
return x.Skin
}
return ""
}
func (x *DBVSeasonRank) GetLv() int32 {
if x != nil {
return x.Lv
}
return 0
}
func (x *DBVSeasonRank) GetLeadpos() int32 {
if x != nil {
return x.Leadpos
}
return 0
}
func (x *DBVSeasonRank) GetLine() []*LineUp {
func (x *DBVSeasonRecord) GetLine() *LineData {
if x != nil {
return x.Line
}
return nil
}
func (x *DBVSeasonRank) GetHuihe() int32 {
type HuiheData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Huihe map[int32]int32 `protobuf:"bytes,1,rep,name=huihe,proto3" json:"huihe" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //key 难度 value 平均回合数 建议*10
Maxnandu int32 `protobuf:"varint,2,opt,name=maxnandu,proto3" json:"maxnandu"` // 最高难度
}
func (x *HuiheData) Reset() {
*x = HuiheData{}
if protoimpl.UnsafeEnabled {
mi := &file_viking_viking_db_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HuiheData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HuiheData) ProtoMessage() {}
func (x *HuiheData) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_db_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 HuiheData.ProtoReflect.Descriptor instead.
func (*HuiheData) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{5}
}
func (x *HuiheData) GetHuihe() map[int32]int32 {
if x != nil {
return x.Huihe
}
return nil
}
func (x *HuiheData) GetMaxnandu() int32 {
if x != nil {
return x.Maxnandu
}
return 0
}
type DBVikingSRank struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uinfo *BaseUserInfo `protobuf:"bytes,2,opt,name=uinfo,proto3" json:"uinfo"` //用户基础
Line *LineData `protobuf:"bytes,3,opt,name=line,proto3" json:"line"` // 阵容信息
Difficulty int32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty"` // 难度
Bosstype int32 `protobuf:"varint,5,opt,name=bosstype,proto3" json:"bosstype"` // boss类型塔类型
Huihe int32 `protobuf:"varint,6,opt,name=huihe,proto3" json:"huihe"` // 平均回合数 建议*10
}
func (x *DBVikingSRank) Reset() {
*x = DBVikingSRank{}
if protoimpl.UnsafeEnabled {
mi := &file_viking_viking_db_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBVikingSRank) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBVikingSRank) ProtoMessage() {}
func (x *DBVikingSRank) ProtoReflect() protoreflect.Message {
mi := &file_viking_viking_db_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBVikingSRank.ProtoReflect.Descriptor instead.
func (*DBVikingSRank) Descriptor() ([]byte, []int) {
return file_viking_viking_db_proto_rawDescGZIP(), []int{6}
}
func (x *DBVikingSRank) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBVikingSRank) GetUinfo() *BaseUserInfo {
if x != nil {
return x.Uinfo
}
return nil
}
func (x *DBVikingSRank) GetLine() *LineData {
if x != nil {
return x.Line
}
return nil
}
func (x *DBVikingSRank) GetDifficulty() int32 {
if x != nil {
return x.Difficulty
}
return 0
}
func (x *DBVikingSRank) GetBosstype() int32 {
if x != nil {
return x.Bosstype
}
return 0
}
func (x *DBVikingSRank) GetHuihe() int32 {
if x != nil {
return x.Huihe
}
return 0
}
func (x *DBVSeasonRank) GetSid() string {
if x != nil {
return x.Sid
}
return ""
}
func (x *DBVSeasonRank) GetSex() int32 {
if x != nil {
return x.Sex
}
return 0
}
func (x *DBVSeasonRank) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
var File_viking_viking_db_proto protoreflect.FileDescriptor
var file_viking_viking_db_proto_rawDesc = []byte{
0x0a, 0x16, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x5f,
0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x22, 0xc0, 0x03, 0x0a, 0x08, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
0x12, 0x27, 0x0a, 0x04, 0x62, 0x6f, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x6f, 0x73, 0x73, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x62, 0x6f, 0x73,
0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42,
0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x6f, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21,
0x0a, 0x02, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x56,
0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x70,
0x73, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x14, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x6e,
0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x37, 0x0a,
0x09, 0x42, 0x6f, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x2f, 0x69,
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0xc0, 0x03, 0x0a, 0x08, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,
0x27, 0x0a, 0x04, 0x62, 0x6f, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x6f, 0x73, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x62, 0x6f, 0x73, 0x73,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x56,
0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x6f, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a,
0x02, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x56, 0x69,
0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x70, 0x73,
0x12, 0x2a, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x09,
0x42, 0x6f, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x42, 0x6f, 0x73, 0x73, 0x54, 0x69, 0x6d,
0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x1a, 0x35, 0x0a, 0x07, 0x50, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x52, 0x6f, 0x75,
0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x22, 0xea, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x75, 0x69, 0x6e, 0x66,
0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73,
0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a,
0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42,
0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x44, 0x61, 0x74,
0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x04,
0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4c, 0x69, 0x6e,
0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0x43, 0x0a, 0x09, 0x44,
0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x63, 0x6f, 0x72,
0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
0x22, 0xaa, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e,
0x6b, 0x12, 0x23, 0x0a, 0x05, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x05, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52,
0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75,
0x6c, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69,
0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x74, 0x79, 0x70,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x74, 0x79, 0x70,
0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x96, 0x01,
0x0a, 0x09, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x07, 0x63,
0x6f, 0x73, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53,
0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6d, 0x65,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x6d, 0x61, 0x78, 0x6e, 0x61, 0x6e, 0x64, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x6d, 0x61, 0x78, 0x6e, 0x61, 0x6e, 0x64, 0x75, 0x1a, 0x3a, 0x0a, 0x0c, 0x43, 0x6f,
0x73, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x42, 0x6f, 0x73, 0x73, 0x54, 0x69,
0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x1a, 0x35, 0x0a, 0x07, 0x50, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x52, 0x6f,
0x75, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0xa7, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e,
0x67, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69,
0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x66,
0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x74,
0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x74,
0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73,
0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x08,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1b, 0x0a,
0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x4c, 0x69,
0x6e, 0x65, 0x55, 0x70, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f,
0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f,
0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0xb4,
0x02, 0x0a, 0x0d, 0x44, 0x42, 0x56, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x6b,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c,
0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x6f, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b,
0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x0e,
0x0a, 0x02, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x18,
0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65,
0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x70, 0x52,
0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x75, 0x69, 0x68, 0x65, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x75, 0x69, 0x68, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73,
0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12,
0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xec, 0x01, 0x0a, 0x0f, 0x44, 0x42, 0x56, 0x53, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x05,
0x75, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61,
0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x69, 0x6e, 0x66,
0x6f, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x44, 0x42, 0x56, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74,
0x61, 0x12, 0x1d, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x09, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65,
0x1a, 0x43, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a,
0x2e, 0x48, 0x75, 0x69, 0x68, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x48, 0x75, 0x69, 0x68, 0x65, 0x44,
0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x68, 0x75, 0x69, 0x68, 0x65, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x15, 0x2e, 0x48, 0x75, 0x69, 0x68, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x48,
0x75, 0x69, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x68, 0x75, 0x69, 0x68, 0x65,
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x6e, 0x61, 0x6e, 0x64, 0x75, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x6e, 0x61, 0x6e, 0x64, 0x75, 0x1a, 0x38, 0x0a, 0x0a,
0x48, 0x75, 0x69, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x56, 0x69, 0x6b,
0x69, 0x6e, 0x67, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x75, 0x69, 0x6e, 0x66,
0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73,
0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a,
0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x4c, 0x69,
0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08,
0x62, 0x6f, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x62, 0x6f, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x75, 0x69, 0x68,
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x68, 0x75, 0x69, 0x68, 0x65, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -476,29 +664,50 @@ func file_viking_viking_db_proto_rawDescGZIP() []byte {
return file_viking_viking_db_proto_rawDescData
}
var file_viking_viking_db_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_viking_viking_db_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_viking_viking_db_proto_goTypes = []interface{}{
(*DBViking)(nil), // 0: DBViking
(*DBVikingRank)(nil), // 1: DBVikingRank
(*DBVSeasonRank)(nil), // 2: DBVSeasonRank
nil, // 3: DBViking.BossEntry
nil, // 4: DBViking.BossTimeEntry
nil, // 5: DBViking.PsEntry
nil, // 6: DBViking.RoundEntry
(*LineUp)(nil), // 7: LineUp
(*DBVikingRecord)(nil), // 1: DBVikingRecord
(*DBVikingRank)(nil), // 2: DBVikingRank
(*ScoreData)(nil), // 3: ScoreData
(*DBVSeasonRecord)(nil), // 4: DBVSeasonRecord
(*HuiheData)(nil), // 5: HuiheData
(*DBVikingSRank)(nil), // 6: DBVikingSRank
nil, // 7: DBViking.BossEntry
nil, // 8: DBViking.BossTimeEntry
nil, // 9: DBViking.PsEntry
nil, // 10: DBViking.RoundEntry
nil, // 11: DBVikingRecord.DataEntry
nil, // 12: ScoreData.CostimeEntry
nil, // 13: DBVSeasonRecord.DataEntry
nil, // 14: HuiheData.HuiheEntry
(*BaseUserInfo)(nil), // 15: BaseUserInfo
(*LineData)(nil), // 16: LineData
}
var file_viking_viking_db_proto_depIdxs = []int32{
3, // 0: DBViking.boss:type_name -> DBViking.BossEntry
4, // 1: DBViking.bossTime:type_name -> DBViking.BossTimeEntry
5, // 2: DBViking.ps:type_name -> DBViking.PsEntry
6, // 3: DBViking.round:type_name -> DBViking.RoundEntry
7, // 4: DBVikingRank.line:type_name -> LineUp
7, // 5: DBVSeasonRank.line:type_name -> LineUp
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
7, // 0: DBViking.boss:type_name -> DBViking.BossEntry
8, // 1: DBViking.bossTime:type_name -> DBViking.BossTimeEntry
9, // 2: DBViking.ps:type_name -> DBViking.PsEntry
10, // 3: DBViking.round:type_name -> DBViking.RoundEntry
15, // 4: DBVikingRecord.uinfo:type_name -> BaseUserInfo
11, // 5: DBVikingRecord.data:type_name -> DBVikingRecord.DataEntry
16, // 6: DBVikingRecord.line:type_name -> LineData
15, // 7: DBVikingRank.uinfo:type_name -> BaseUserInfo
16, // 8: DBVikingRank.line:type_name -> LineData
12, // 9: ScoreData.costime:type_name -> ScoreData.CostimeEntry
15, // 10: DBVSeasonRecord.uinfo:type_name -> BaseUserInfo
13, // 11: DBVSeasonRecord.data:type_name -> DBVSeasonRecord.DataEntry
16, // 12: DBVSeasonRecord.line:type_name -> LineData
14, // 13: HuiheData.huihe:type_name -> HuiheData.HuiheEntry
15, // 14: DBVikingSRank.uinfo:type_name -> BaseUserInfo
16, // 15: DBVikingSRank.line:type_name -> LineData
3, // 16: DBVikingRecord.DataEntry.value:type_name -> ScoreData
5, // 17: DBVSeasonRecord.DataEntry.value:type_name -> HuiheData
18, // [18:18] is the sub-list for method output_type
18, // [18:18] is the sub-list for method input_type
18, // [18:18] is the sub-list for extension type_name
18, // [18:18] is the sub-list for extension extendee
0, // [0:18] is the sub-list for field type_name
}
func init() { file_viking_viking_db_proto_init() }
@ -506,7 +715,8 @@ func file_viking_viking_db_proto_init() {
if File_viking_viking_db_proto != nil {
return
}
file_battle_battle_msg_proto_init()
file_comm_proto_init()
file_integral_integral_db_proto_init()
if !protoimpl.UnsafeEnabled {
file_viking_viking_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBViking); i {
@ -521,7 +731,7 @@ func file_viking_viking_db_proto_init() {
}
}
file_viking_viking_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBVikingRank); i {
switch v := v.(*DBVikingRecord); i {
case 0:
return &v.state
case 1:
@ -533,7 +743,55 @@ func file_viking_viking_db_proto_init() {
}
}
file_viking_viking_db_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBVSeasonRank); i {
switch v := v.(*DBVikingRank); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_viking_viking_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScoreData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_viking_viking_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBVSeasonRecord); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_viking_viking_db_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HuiheData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_viking_viking_db_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBVikingSRank); i {
case 0:
return &v.state
case 1:
@ -551,7 +809,7 @@ func file_viking_viking_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_viking_viking_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 7,
NumMessages: 15,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -493,7 +493,6 @@ type VikingRankListReq struct {
unknownFields protoimpl.UnknownFields
BoosType int32 `protobuf:"varint,1,opt,name=boosType,proto3" json:"boosType"` // boss 类型
Friend bool `protobuf:"varint,2,opt,name=friend,proto3" json:"friend"` // 是否是好友榜
}
func (x *VikingRankListReq) Reset() {
@ -535,19 +534,13 @@ func (x *VikingRankListReq) GetBoosType() int32 {
return 0
}
func (x *VikingRankListReq) GetFriend() bool {
if x != nil {
return x.Friend
}
return false
}
type VikingRankListResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ranks []*DBVikingRank `protobuf:"bytes,1,rep,name=ranks,proto3" json:"ranks"` // 排行数据 有序的 注意boss类型
Franks []*DBVikingRank `protobuf:"bytes,2,rep,name=franks,proto3" json:"franks"` // 好友排行数据 无序的
}
func (x *VikingRankListResp) Reset() {
@ -589,6 +582,13 @@ func (x *VikingRankListResp) GetRanks() []*DBVikingRank {
return nil
}
func (x *VikingRankListResp) GetFranks() []*DBVikingRank {
if x != nil {
return x.Franks
}
return nil
}
// 排行榜
type VikingSeasonRankReq struct {
state protoimpl.MessageState
@ -642,7 +642,7 @@ type VikingSeasonRankResp struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ranks []*DBVSeasonRank `protobuf:"bytes,1,rep,name=ranks,proto3" json:"ranks"` // 排行数据 有序的 注意boss类型
Ranks []*DBVikingSRank `protobuf:"bytes,1,rep,name=ranks,proto3" json:"ranks"` // 排行数据 有序的 注意boss类型
Etime int64 `protobuf:"varint,2,opt,name=etime,proto3" json:"etime"`
}
@ -678,7 +678,7 @@ func (*VikingSeasonRankResp) Descriptor() ([]byte, []int) {
return file_viking_viking_msg_proto_rawDescGZIP(), []int{11}
}
func (x *VikingSeasonRankResp) GetRanks() []*DBVSeasonRank {
func (x *VikingSeasonRankResp) GetRanks() []*DBVikingSRank {
if x != nil {
return x.Ranks
}
@ -751,25 +751,25 @@ var file_viking_viking_msg_proto_rawDesc = []byte{
0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x2e, 0x0a, 0x0d, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62,
0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62,
0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22,
0x39, 0x0a, 0x12, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52,
0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x31, 0x0a, 0x13, 0x56, 0x69,
0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65,
0x71, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a,
0x14, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x61, 0x6e,
0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x56, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d,
0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x12, 0x56, 0x69, 0x6b, 0x69, 0x6e,
0x67, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a,
0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44,
0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e,
0x6b, 0x73, 0x12, 0x25, 0x0a, 0x06, 0x66, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e,
0x6b, 0x52, 0x06, 0x66, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x22, 0x31, 0x0a, 0x13, 0x56, 0x69, 0x6b,
0x69, 0x6e, 0x67, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71,
0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x14,
0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x6b,
0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x52,
0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74,
0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65,
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -805,7 +805,7 @@ var file_viking_viking_msg_proto_goTypes = []interface{}{
(*BattleReport)(nil), // 16: BattleReport
(*UserAtno)(nil), // 17: UserAtno
(*DBVikingRank)(nil), // 18: DBVikingRank
(*DBVSeasonRank)(nil), // 19: DBVSeasonRank
(*DBVikingSRank)(nil), // 19: DBVikingSRank
}
var file_viking_viking_msg_proto_depIdxs = []int32{
13, // 0: VikingGetListResp.data:type_name -> DBViking
@ -817,12 +817,13 @@ var file_viking_viking_msg_proto_depIdxs = []int32{
12, // 6: VikingChallengeOverResp.heroexp:type_name -> VikingChallengeOverResp.HeroexpEntry
13, // 7: VikingBuyResp.data:type_name -> DBViking
18, // 8: VikingRankListResp.ranks:type_name -> DBVikingRank
19, // 9: VikingSeasonRankResp.ranks:type_name -> DBVSeasonRank
10, // [10:10] is the sub-list for method output_type
10, // [10:10] is the sub-list for method input_type
10, // [10:10] is the sub-list for extension type_name
10, // [10:10] is the sub-list for extension extendee
0, // [0:10] is the sub-list for field type_name
18, // 9: VikingRankListResp.franks:type_name -> DBVikingRank
19, // 10: VikingSeasonRankResp.ranks:type_name -> DBVikingSRank
11, // [11:11] is the sub-list for method output_type
11, // [11:11] is the sub-list for method input_type
11, // [11:11] is the sub-list for extension type_name
11, // [11:11] is the sub-list for extension extendee
0, // [0:11] is the sub-list for field type_name
}
func init() { file_viking_viking_msg_proto_init() }