修复数据存储和订单逻辑

This commit is contained in:
hahwu 2024-12-04 15:03:08 +08:00
parent 5134ceb766
commit d3d7e44f2e
17 changed files with 895 additions and 236 deletions

View File

@ -28,7 +28,9 @@ func RandPopSlice(slice []int) ([]int, int) {
return slice, -1
}
Id := GetRand().Intn(slen)
return append(slice[0:Id], slice[Id+1:]...), slice[Id]
Val := slice[Id]
Slice2 := append(slice[0:Id], slice[Id+1:]...)
return Slice2, Val
}
func RandSlice(slice []int) int {

View File

@ -105,6 +105,21 @@ func GetMaxLvById(Id int) int {
return gamedata.ParseInt(data["MaxLv"])
}
func GetMaxLvByColor(Color string) int {
data, err := gamedata.GetData(CFG_NAME)
if err != nil {
log.Debug("GetMaxLvByColor GetOne Color:%v not found", Color)
return 0
}
for _, v := range data {
if gamedata.GetStringValue(v, "Color") == Color {
lv := gamedata.GetIntValue(v, "MaxLv")
return lv
}
}
return 0
}
// 根据Id获取棋子类型
func GetTypeById(Id int) string {
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)

View File

@ -0,0 +1,72 @@
package raceCfg
import (
"server/game/mod/item"
"server/gamedata"
)
const (
CFG_RACE_TEMPLATE = "RaceTemplate"
CFG_RACE_PASS = "RacePass"
)
func init() {
gamedata.InitCfg(CFG_RACE_TEMPLATE)
gamedata.InitCfg(CFG_RACE_PASS)
}
func GetRaceNum(Pass int) int {
data, err := gamedata.GetDataByIntKey(CFG_RACE_PASS, Pass)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "Num")
}
func GetRaceNeed(Pass int) int {
data, err := gamedata.GetDataByIntKey(CFG_RACE_PASS, Pass)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "Need")
}
func GetMaxPass(Id int) int {
data, err := gamedata.GetDataByIntKey(CFG_RACE_TEMPLATE, Id)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "PassNum")
}
func GetCD(Id int) int {
data, err := gamedata.GetDataByIntKey(CFG_RACE_TEMPLATE, Id)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "Cd")
}
func GetCoin(Id int) int {
data, err := gamedata.GetDataByIntKey(CFG_RACE_TEMPLATE, Id)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "ItemId")
}
func GetExtraReward(Id int) []*item.Item {
data, err := gamedata.GetDataByIntKey(CFG_RACE_TEMPLATE, Id)
if err != nil {
return nil
}
return gamedata.GetItemList(data, "ExtraReward")
}
func GetReward(Id int) []*item.Item {
data, err := gamedata.GetDataByIntKey(CFG_RACE_TEMPLATE, Id)
if err != nil {
return nil
}
return gamedata.GetItemList(data, "Reward")
}

View File

@ -111,6 +111,33 @@ func GuessColorBackData(p *Player) {
})
}
func RaceBackData(p *Player) {
ActivityInfo := GetActivityInfo(p, ACT_TYPE_RACE)
if ActivityInfo == nil {
return
}
Status := GetActivityStatus(p, ACT_TYPE_RACE)
RaceMod := p.PlayMod.getRaceMod()
Opponent := make([]*msg.Raceopponent, 0)
for _, v := range RaceMod.Opponent {
Opponent = append(Opponent, &msg.Raceopponent{
Id: int32(v.Id),
Image: int32(v.Image),
Progress: int32(v.Progress),
})
}
p.PushClientRes(&msg.ResRace{
Id: int32(ActivityInfo.Id),
Status: int32(Status),
EndTime: int32(ActivityInfo.EndT),
Pass: int32(RaceMod.Pass),
GameStartTime: int32(RaceMod.StartTime),
Progress: int32(RaceMod.Progress),
GameEndTime: int32(RaceMod.EndTime),
Opponent: Opponent,
})
}
func RedBackData(p *Player) {
result := make(map[int32]int32)
Now := GoUtil.Now()

View File

@ -89,7 +89,7 @@ func (f *FriendMgr) sync(m *msg.Msg) (interface{}, error) {
// 发送消息给玩家
func sendToPlayer(m *msg.Msg) error {
p := G_GameLogicPtr.GetPlayerByUid(m.To)
p := G_GameLogicPtr.GetPlayer(int32(m.To))
if p == nil || p.stop {
return fmt.Errorf("player %d not online", m.To)
}

View File

@ -10,6 +10,7 @@ import (
"server/MergeConst"
"server/conf"
"strconv"
"sync"
l "log"
"server/db"
@ -64,7 +65,7 @@ type LimitActPeriod struct {
type GameLogic struct {
Db_AccountInfo db.Db_Account
DailyTaskTimestamp int64
M_Players map[int32]*Player
M_Players sync.Map
m_CronEntryIDs map[int]*LimitActPeriod
Mdispatr *timer.Dispatcher
M_LimitActiveList []int
@ -116,11 +117,18 @@ func (gl *GameLogic) NoonFlush() {
}
func (gl *GameLogic) SetPlayer(player *Player) {
gl.M_Players[player.M_DwUin] = player
gl.M_Players.Store(player.M_DwUin, player)
}
func (gl *GameLogic) DelPlayer(player *Player) {
delete(gl.M_Players, player.M_DwUin)
gl.M_Players.Delete(player.M_DwUin)
}
func (gl *GameLogic) GetPlayer(DwUin int32) *Player {
if v, ok := gl.M_Players.Load(DwUin); ok {
return v.(*Player)
}
return nil
}
func (gl *GameLogic) OpenTimestampTick() {
@ -251,8 +259,7 @@ func (ad *GameLogic) CreateNewPlayer(a gate.Agent, UserName string) {
G_GameLogicPtr.PackResInfo(a, "ResLogin", data)
panic(err)
}
ad.M_Players[player.M_DwUin] = player
ad.SetPlayer(player)
}
func (ad *GameLogic) GetPlayerByAgent(gate gate.Agent) *Player {
@ -263,14 +270,6 @@ func (ad *GameLogic) GetPlayerByAgent(gate gate.Agent) *Player {
return nil
}
func (ad *GameLogic) GetPlayerByUid(Uid int) *Player {
p, ok := ad.M_Players[int32(Uid)]
if ok {
return p
}
return nil
}
// 好友管理器
func (ad *GameLogic) CreateFriendMgr() {
ad.FriendMgr = &FriendMgr{
@ -429,7 +428,7 @@ func G_getGameLogic() *GameLogic {
isInitGameLogic = true
G_GameLogicPtr.Mdispatr = timer.NewDispatcher(10)
G_GameLogicPtr.InitServerInfo()
G_GameLogicPtr.M_Players = make(map[int32]*Player)
G_GameLogicPtr.M_Players = sync.Map{}
G_GameLogicPtr.NotInitPlayer = new(Player)
G_GameLogicPtr.M_LimitActiveList = []int{}
G_GameLogicPtr.LoadSvrGlobalData() // 加载服务器全局数据
@ -505,8 +504,8 @@ func (ad *GameLogic) ClearData(args []interface{}) {
player.lock.Lock()
defer player.lock.Unlock()
if player.agent == nil {
delete(ad.M_Players, player.M_DwUin)
player.ClearData()
ad.DelPlayer(player)
log.Debug("player %d 延迟300s关闭", player.M_DwUin)
}
}
@ -594,7 +593,6 @@ func (ad *GameLogic) ReplaceExistPlayerAndAgent(a gate.Agent, player *Player) {
}
internal.AsignPlayerToAgents(a, player)
player.SetAgent(a)
ad.M_Players[player.M_DwUin] = player
player.PushClientRes(&msg.ResLogin{
ResultCode: 0,
DwUin: player.M_DwUin,
@ -603,8 +601,8 @@ func (ad *GameLogic) ReplaceExistPlayerAndAgent(a gate.Agent, player *Player) {
}
func (ad *GameLogic) SendMassage(dwUin int32, Func string, data []byte) bool {
player, ok := ad.M_Players[dwUin]
if ok {
player := ad.GetPlayer(dwUin)
if player != nil {
agent := player.GetAgentByPlayer()
if agent != nil {
G_getGameLogic().PackResInfo(agent, Func, data)
@ -815,13 +813,14 @@ func (ad *GameLogic) AddLog(Log *Log) {
}
func (ad *GameLogic) NotifyAll(m *MsgMod.Msg) {
for _, v := range ad.M_Players {
v.Send(m)
}
ad.M_Players.Range(func(k, v interface{}) bool {
v.(*Player).Send(m)
return true
})
}
func NotifyPlayer(Uid int, m *MsgMod.Msg) {
p := G_GameLogicPtr.GetPlayerByUid(Uid)
p := G_GameLogicPtr.GetPlayer(int32(Uid))
if p == nil || p.stop {
return
}
@ -844,13 +843,13 @@ func unsetRedisLock(key string) {
func Destroy() {
log.Debug("服务器下线")
if G_GameLogicPtr != nil {
for k, v := range G_GameLogicPtr.M_Players {
G_GameLogicPtr.M_Players.Range(func(k, v interface{}) bool {
v.(*Player).ClearData()
log.Debug("palyer %d 断开连接 写入数据", k)
v.ClearData()
}
return true
})
G_GameLogicPtr.FriendMgr.SaveData()
G_GameLogicPtr.RankMgr.SaveData()
G_GameLogicPtr.ChampshipMgr.SaveData()
}
}

View File

@ -492,8 +492,8 @@ func (p *PlayerBaseData) ReqSynGameData(buf []byte) {
if sqlStruck.DwUin == p.M_Player.M_DwUin {
return
}
if OldPlayer, ok := G_GameLogicPtr.M_Players[sqlStruck.DwUin]; ok {
OldPlayer := G_GameLogicPtr.GetPlayer(sqlStruck.DwUin)
if OldPlayer != nil {
agent := OldPlayer.GetAgentByPlayer()
// notify := &msg.ForceKickOut{}
notify := &msg.ResSynGameData{}
@ -502,7 +502,7 @@ func (p *PlayerBaseData) ReqSynGameData(buf []byte) {
G_getGameLogic().PackResInfo(agent, "ResSynGameData", data)
}
OldPlayer.ClearData()
delete(G_GameLogicPtr.M_Players, sqlStruck.DwUin)
G_GameLogicPtr.M_Players.Delete(sqlStruck.DwUin)
}
if isHaveOther {

View File

@ -28,6 +28,7 @@ import (
"server/game/mod/mining"
"server/game/mod/order"
"server/game/mod/piggyBank"
"server/game/mod/race"
"server/game/mod/sevenLogin"
Var "server/game/mod/var"
"server/pkg/github.com/name5566/leaf/log"
@ -42,30 +43,31 @@ type PlayerModData struct {
// PlayerModList 玩家模块列表
type PlayerModList struct {
Base base.Base `json:"base"`
Chess chess.ChessBorad `json:"chess"`
Handbook handbook.Handbook `json:"handbook"`
Order order.OrderMod `json:"order"`
Decorate decorate.Decorate `json:"decorate"`
Card card.CardMod `json:"card"`
Var Var.Var `json:"var"`
Guild guild.Guild `json:"guild"`
DailyTask dailyTask.DailyTaskMod `json:"dailyTask"`
Face face.FaceMod `json:"face"`
Avatar avatar.AvatarMod `json:"avatar"`
SevenLogin sevenLogin.SevenLoginMod `json:"sevenLogin"`
LimitedTimeEvent limitedTimeEvent.LimitedTimeEventMod `json:"limitedTimeEvent"`
Friend friend.FriendMod `json:"friend"`
Mail mail.MailMod `json:"mail"`
Charge charge.ChargeMod `json:"charge"`
Endless endless.EndlessMod `json:"endless"`
PiggyBank piggyBank.PiggyBankMod `json:"piggyBank"`
Champship champship.ChampshipMod `json:"champship"`
Invite invite.InviteMod `json:"invite"`
Kv kv.KvMod `json:"kv"`
Mining mining.MiningMod `json:"mining"`
Item item.ItemMod `json:"item"`
GuessColor guesscolor.GuessColorMod `json:"guessColor"`
Base base.Base
Chess chess.ChessBorad
Handbook handbook.Handbook
Order order.OrderMod
Decorate decorate.Decorate
Card card.CardMod
Var Var.Var
Guild guild.Guild
DailyTask dailyTask.DailyTaskMod
Face face.FaceMod
Avatar avatar.AvatarMod
SevenLogin sevenLogin.SevenLoginMod
LimitedTimeEvent limitedTimeEvent.LimitedTimeEventMod
Friend friend.FriendMod
Mail mail.MailMod
Charge charge.ChargeMod
Endless endless.EndlessMod
PiggyBank piggyBank.PiggyBankMod
Champship champship.ChampshipMod
Invite invite.InviteMod
Kv kv.KvMod
Mining mining.MiningMod
Item item.ItemMod
GuessColor guesscolor.GuessColorMod
Race race.RaceMod
}
func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool {
@ -292,3 +294,7 @@ func (p *PlayerMod) getItemMod() *item.ItemMod {
func (p *PlayerMod) getGuessColorMod() *guesscolor.GuessColorMod {
return &p.mod_list.GuessColor
}
func (p *PlayerMod) getRaceMod() *race.RaceMod {
return &p.mod_list.Race
}

View File

@ -2506,6 +2506,7 @@ func ReqGuessColor(args []interface{}) error {
return nil
}
// 请求猜颜色
func ReqGuessColorTake(args []interface{}) error {
_, player, buf := ParseArgs(args)
req := &msg.ReqGuessColorTake{}
@ -2535,6 +2536,7 @@ func ReqGuessColorTake(args []interface{}) error {
return nil
}
// 请求猜颜色奖励
func ReqGuessColorReward(args []interface{}) error {
_, player, buf := ParseArgs(args)
req := &msg.ReqGuessColorReward{}

View File

@ -27,6 +27,7 @@ const (
const (
ACT_TYPE_MINING = 1 // 挖矿
ACT_TYPE_GUESS_COLOR = 2 // 猜颜色
ACT_TYPE_RACE = 3 // 赛跑
)
type ActivityInfo struct {

View File

@ -44,6 +44,6 @@ func UnitChessShop(p *Player) error {
func UnitOrder(p *Player) error {
OrderMod := p.PlayMod.getOrderMod()
ChessMod := p.PlayMod.getChessMod()
OrderMod.CreateNormalOrder(4, ChessMod.GetEmitList())
return nil
err := OrderMod.CreateOrder(6, ChessMod.GetEmitList())
return err
}

View File

@ -118,12 +118,12 @@ func HandleClientReq(args []interface{}) {
return
}
if ResLogin.DwUin > 0 {
if OldPlayer, ok := G_GameLogicPtr.M_Players[ResLogin.DwUin]; ok {
OldPlayer := G_GameLogicPtr.GetPlayer(ResLogin.DwUin)
if OldPlayer != nil {
G_GameLogicPtr.ReplaceExistPlayerAndAgent(a, OldPlayer)
} else {
G_GameLogicPtr.CreateNewPlayer(a, detail.UserName)
}
}
p, _ := internal.Agents.Load(a)
if p != nil {

View File

@ -34,6 +34,8 @@ const (
ITEM_TYPE_PIGGY_BANK = 103 // 猪猪银行
ITEM_TYPE_MASTER_CARD = 104 // 万能卡
ITEM_TYPE_AVATAR = 105 // 头像框
ITEM_TYPE_ACTIVITY = 106 // 活动道具
ITEM_TYPE_ACTIVITY_RACE = 107 // 竞赛活动道具
)
func (i *ItemMod) InitData() {

View File

@ -208,6 +208,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int) error {
ChessDiff := getChessDiff(ChessNum, OrderDiff, OrderN)
EnergyMul := userCfg.GetEnergyMulByLv(lv)
ColorArr := make([]string, 0)
RandEmit := 0
mergeList := make([]int, 0, len(ChessDiff))
for _, v := range ChessDiff {
@ -219,6 +220,12 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int) error {
ChessMaxLev := orderCfg.GetLvMax(EnergyMul, m)
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
ChessColor := getRandChessColor(RandEmit)
if GoUtil.InStringArray(ChessColor, ColorArr) {
continue
}
ColorArr = append(ColorArr, ChessColor)
ColorMaxLv := mergeDataCfg.GetMaxLvByColor(ChessColor)
NewLev = min(NewLev, ColorMaxLv)
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
Type := mergeDataCfg.GetTypeById(ChessId)
if Type != "Product" {
@ -279,6 +286,8 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int) error {
ChessMaxLev := orderCfg.GetLvMax(EnergyMul, m)
NewLev := getChessLv(ChessMinLev, ChessMaxLev, v)
ChessColor := getRandChessColor(RandEmit)
ColorMaxLv := mergeDataCfg.GetMaxLvByColor(ChessColor)
NewLev = min(NewLev, ColorMaxLv)
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev, ChessColor)
Type := mergeDataCfg.GetTypeById(ChessId)
if Type != "Product" {

View File

@ -143,7 +143,7 @@ func getChessLv(Min, Max, Diff int) int {
}
func getRandChessColor(Emit int) string {
Produce := mergeDataCfg.GetEmitProduceType(Emit)
Produce := mergeDataCfg.GetEmitProduceChessType(Emit)
if len(Produce) == 1 {
return Produce[0]
}

View File

@ -0,0 +1,95 @@
package race
import (
"fmt"
"server/GoUtil"
raceCfg "server/conf/race"
"server/game/mod/item"
)
type RaceMod struct {
Id int
Opponent []*Opponent
Pass int
StartTime int64
EndTime int64
Progress int
Rank int
}
type Opponent struct {
Id int
Type int
Image int
Progress int
}
func (r *RaceMod) Login(Id int) {
if Id == 0 {
return
}
if r.Id == Id {
return
}
r.Id = Id
r.Pass = 1
}
func (r *RaceMod) StartGame() {
MaxPass := raceCfg.GetMaxPass(r.Id)
if r.Rank != 1 || r.Pass == MaxPass {
r.Pass = 1
}
r.StartTime = GoUtil.Now()
Opponent := make([]*Opponent, 0)
OpponentNum := raceCfg.GetRaceNum(r.Pass)
for i := 1; i <= OpponentNum; i++ {
Opponent = append(Opponent, randOpponent(i))
}
r.Opponent = Opponent
}
func (r *RaceMod) AddCoin() {
r.Progress++
Need := raceCfg.GetRaceNeed(r.Pass)
if r.Progress == Need {
r.EndTime = GoUtil.Now()
Rank := 1
for _, v := range r.Opponent {
if v.Progress >= r.Progress {
Rank++
}
}
r.Rank = Rank
}
}
func (r *RaceMod) GetReward() ([]*item.Item, error) {
if r.EndTime == 0 {
return nil, fmt.Errorf("the game is not over")
}
if r.Rank != 1 {
return nil, fmt.Errorf("you are not the first")
}
Cd := raceCfg.GetCD(r.Id)
if r.Rank != 1 {
return nil, fmt.Errorf("you are not the first")
}
Items := make([]*item.Item, 0)
Reward := raceCfg.GetReward(r.Id)
Items = append(Items, Reward...)
if r.EndTime-r.StartTime < int64(Cd) {
ExtraReward := raceCfg.GetExtraReward(r.Id)
Items = append(Items, ExtraReward...)
}
return Items, nil
}
func randOpponent(Id int) *Opponent {
return &Opponent{
Id: Id,
Type: GoUtil.RandNum(1, 3),
Image: GoUtil.RandNum(1, 3),
}
}

View File

@ -33239,6 +33239,390 @@ func (x *ResGuessColorReward) GetMsg() string {
return ""
}
type ReqRace struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ReqRace) Reset() {
*x = ReqRace{}
mi := &file_Gameapi_proto_msgTypes[580]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReqRace) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReqRace) ProtoMessage() {}
func (x *ReqRace) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[580]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReqRace.ProtoReflect.Descriptor instead.
func (*ReqRace) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{580}
}
type ResRace struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id
Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束
EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间
Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板
Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡
GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间
GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间
Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度
Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手
}
func (x *ResRace) Reset() {
*x = ResRace{}
mi := &file_Gameapi_proto_msgTypes[581]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ResRace) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResRace) ProtoMessage() {}
func (x *ResRace) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[581]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResRace.ProtoReflect.Descriptor instead.
func (*ResRace) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{581}
}
func (x *ResRace) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *ResRace) GetStatus() int32 {
if x != nil {
return x.Status
}
return 0
}
func (x *ResRace) GetEndTime() int32 {
if x != nil {
return x.EndTime
}
return 0
}
func (x *ResRace) GetTemplate() int32 {
if x != nil {
return x.Template
}
return 0
}
func (x *ResRace) GetPass() int32 {
if x != nil {
return x.Pass
}
return 0
}
func (x *ResRace) GetGameStartTime() int32 {
if x != nil {
return x.GameStartTime
}
return 0
}
func (x *ResRace) GetGameEndTime() int32 {
if x != nil {
return x.GameEndTime
}
return 0
}
func (x *ResRace) GetProgress() int32 {
if x != nil {
return x.Progress
}
return 0
}
func (x *ResRace) GetOpponent() []*Raceopponent {
if x != nil {
return x.Opponent
}
return nil
}
type Raceopponent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
Image int32 `protobuf:"varint,2,opt,name=Image,proto3" json:"Image,omitempty"`
Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"`
}
func (x *Raceopponent) Reset() {
*x = Raceopponent{}
mi := &file_Gameapi_proto_msgTypes[582]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Raceopponent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Raceopponent) ProtoMessage() {}
func (x *Raceopponent) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[582]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Raceopponent.ProtoReflect.Descriptor instead.
func (*Raceopponent) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{582}
}
func (x *Raceopponent) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Raceopponent) GetImage() int32 {
if x != nil {
return x.Image
}
return 0
}
func (x *Raceopponent) GetProgress() int32 {
if x != nil {
return x.Progress
}
return 0
}
type ReqRaceStart struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ReqRaceStart) Reset() {
*x = ReqRaceStart{}
mi := &file_Gameapi_proto_msgTypes[583]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReqRaceStart) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReqRaceStart) ProtoMessage() {}
func (x *ReqRaceStart) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[583]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReqRaceStart.ProtoReflect.Descriptor instead.
func (*ReqRaceStart) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{583}
}
type ResRaceStart struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}
func (x *ResRaceStart) Reset() {
*x = ResRaceStart{}
mi := &file_Gameapi_proto_msgTypes[584]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ResRaceStart) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResRaceStart) ProtoMessage() {}
func (x *ResRaceStart) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[584]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResRaceStart.ProtoReflect.Descriptor instead.
func (*ResRaceStart) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{584}
}
func (x *ResRaceStart) GetCode() RES_CODE {
if x != nil {
return x.Code
}
return RES_CODE_FAIL
}
func (x *ResRaceStart) GetMsg() string {
if x != nil {
return x.Msg
}
return ""
}
type ReqRaceReward struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ReqRaceReward) Reset() {
*x = ReqRaceReward{}
mi := &file_Gameapi_proto_msgTypes[585]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReqRaceReward) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReqRaceReward) ProtoMessage() {}
func (x *ReqRaceReward) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[585]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReqRaceReward.ProtoReflect.Descriptor instead.
func (*ReqRaceReward) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{585}
}
type ResRaceReward struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"`
Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"`
}
func (x *ResRaceReward) Reset() {
*x = ResRaceReward{}
mi := &file_Gameapi_proto_msgTypes[586]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ResRaceReward) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResRaceReward) ProtoMessage() {}
func (x *ResRaceReward) ProtoReflect() protoreflect.Message {
mi := &file_Gameapi_proto_msgTypes[586]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ResRaceReward.ProtoReflect.Descriptor instead.
func (*ResRaceReward) Descriptor() ([]byte, []int) {
return file_Gameapi_proto_rawDescGZIP(), []int{586}
}
func (x *ResRaceReward) GetCode() RES_CODE {
if x != nil {
return x.Code
}
return RES_CODE_FAIL
}
func (x *ResRaceReward) GetMsg() string {
if x != nil {
return x.Msg
}
return ""
}
var File_Gameapi_proto protoreflect.FileDescriptor
var file_Gameapi_proto_rawDesc = []byte{
@ -37206,17 +37590,52 @@ var file_Gameapi_proto_rawDesc = []byte{
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69,
0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64,
0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x4d, 0x73, 0x67, 0x2a, 0x42, 0x0a, 0x0b, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59,
0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43,
0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10,
0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52,
0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, 0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43,
0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a,
0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54,
0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47,
0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a,
0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e,
0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x4d, 0x73, 0x67, 0x22, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x22, 0x93,
0x02, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73,
0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d,
0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x72, 0x61,
0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f,
0x6e, 0x65, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f,
0x6e, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72,
0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72,
0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63,
0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63,
0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e,
0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72,
0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61,
0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f,
0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x2a, 0x42, 0x0a, 0x0b,
0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41,
0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10,
0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45,
0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04,
0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04,
0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53,
0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45,
0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04,
0x53, 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e,
0x44, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -37232,7 +37651,7 @@ func file_Gameapi_proto_rawDescGZIP() []byte {
}
var file_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 654)
var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 661)
var file_Gameapi_proto_goTypes = []any{
(HANDLE_TYPE)(0), // 0: tutorial.HANDLE_TYPE
(RES_CODE)(0), // 1: tutorial.RES_CODE
@ -37818,147 +38237,154 @@ var file_Gameapi_proto_goTypes = []any{
(*ResGuessColorTake)(nil), // 581: tutorial.ResGuessColorTake
(*ReqGuessColorReward)(nil), // 582: tutorial.ReqGuessColorReward
(*ResGuessColorReward)(nil), // 583: tutorial.ResGuessColorReward
nil, // 584: tutorial.UpdateBaseItemInfo.MUpdateItemEntry
nil, // 585: tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry
nil, // 586: tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry
nil, // 587: tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry
nil, // 588: tutorial.ResPlayerPackData.MPackDataEntry
nil, // 589: tutorial.UpdatePlayerPackData.MPackDataEntry
nil, // 590: tutorial.ResPlayerChessData.MChessDataEntry
nil, // 591: tutorial.UpdatePlayerChessData.MChessDataEntry
nil, // 592: tutorial.ReqGetChessFromBuff.MChessDataEntry
nil, // 593: tutorial.ReqChessEx.MChessDataEntry
nil, // 594: tutorial.ReqPutChessInBag.MChessDataEntry
nil, // 595: tutorial.ReqTakeChessOutBag.MChessDataEntry
nil, // 596: tutorial.ResPlayerGiftData.MGiftDataEntry
nil, // 597: tutorial.UpdatePlayerGiftData.MGiftDataEntry
nil, // 598: tutorial.ResPlayerOrderData.MOrderDataEntry
nil, // 599: tutorial.UpdatePlayerOrderData.MOrderDataEntry
nil, // 600: tutorial.ResChessColorData.MChessColorDataEntry
nil, // 601: tutorial.UpdateChessColorData.MChessColorDataEntry
nil, // 602: tutorial.ResEmitMergeMap.MEmitMergeDataEntry
nil, // 603: tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry
nil, // 604: tutorial.ResEmitCountMap.MEmitCountDataEntry
nil, // 605: tutorial.UpdateEmitCountMap.MEmitCountDataEntry
nil, // 606: tutorial.ResEmitCDStartData.MEmitCDDataEntry
nil, // 607: tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry
nil, // 608: tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry
nil, // 609: tutorial.ResDecorateData.MDecorateDataEntry
nil, // 610: tutorial.UpdateDecorateData.MDecorateDataEntry
nil, // 611: tutorial.ResShopData.MShopTimeBuyDataEntry
nil, // 612: tutorial.ResShopData.MShopSaleBuyDataEntry
nil, // 613: tutorial.ResShopData.MPackBuyDataEntry
nil, // 614: tutorial.ResShopData.MSpecialOfferBuyDataEntry
nil, // 615: tutorial.ResShopData.MUISpecialOfferBuyDataEntry
nil, // 616: tutorial.ResShopData.MFreePackBuyDataEntry
nil, // 617: tutorial.ResShopData.MDiamondFirstBuyDataEntry
nil, // 618: tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry
nil, // 619: tutorial.ResShopBuy.MShopTimeBuyDataEntry
nil, // 620: tutorial.ReqRenewItemBuyCnt.MShopDataEntry
nil, // 621: tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry
nil, // 622: tutorial.ResKeyValueData.KeyValuesEntry
nil, // 623: tutorial.UpdateKeyValueData.KeyValuesEntry
nil, // 624: tutorial.ResAdPackData.PackDataEntry
nil, // 625: tutorial.NotifyAdPackData.PackDataEntry
nil, // 626: tutorial.ResWatchAdPack.PackDataEntry
nil, // 627: tutorial.ResPetHomeData.SelectDecorateMapEntry
nil, // 628: tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry
nil, // 629: tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry
nil, // 630: tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry
nil, // 631: tutorial.ResShiftVisitPet.SelectDecorateMapEntry
nil, // 632: tutorial.UseItemRequest.AttrsEntry
nil, // 633: tutorial.UseItemResponse.AttrsEntry
nil, // 634: tutorial.ReqRewardOrder.MChessDataEntry
nil, // 635: tutorial.ResCardInfo.AllCardEntry
nil, // 636: tutorial.ResGuildInfo.RewardEntry
nil, // 637: tutorial.ResDailyTask.WeekRewardEntry
nil, // 638: tutorial.ResDailyTask.DailyTaskEntry
nil, // 639: tutorial.ResLimitEvent.LimitEventListEntry
nil, // 640: tutorial.ResLimitEventProgress.ProgressRewardEntry
nil, // 641: tutorial.ResKv.KvEntry
nil, // 642: tutorial.ResRank.RankListEntry
nil, // 643: tutorial.ResMailList.MailListEntry
nil, // 644: tutorial.ResCharge.SpecialShopEntry
nil, // 645: tutorial.ResCharge.ChessShopEntry
nil, // 646: tutorial.ResCharge.GiftEntry
nil, // 647: tutorial.ResEndless.EndlessListEntry
nil, // 648: tutorial.ResChampshipRank.RankListEntry
nil, // 649: tutorial.ResChampshipPreRank.RankListEntry
nil, // 650: tutorial.ResNotifyCard.CardEntry
nil, // 651: tutorial.ResNotifyCard.MasterEntry
nil, // 652: tutorial.ResMining.MapEntry
nil, // 653: tutorial.ReqMiningTake.MapEntry
nil, // 654: tutorial.ResActRed.RedEntry
nil, // 655: tutorial.ResItem.ItemEntry
nil, // 656: tutorial.ItemNotify.ItemEntry
nil, // 657: tutorial.ReqGuessColorTake.MapEntry
(*ReqRace)(nil), // 584: tutorial.ReqRace
(*ResRace)(nil), // 585: tutorial.ResRace
(*Raceopponent)(nil), // 586: tutorial.raceopponent
(*ReqRaceStart)(nil), // 587: tutorial.ReqRaceStart
(*ResRaceStart)(nil), // 588: tutorial.ResRaceStart
(*ReqRaceReward)(nil), // 589: tutorial.ReqRaceReward
(*ResRaceReward)(nil), // 590: tutorial.ResRaceReward
nil, // 591: tutorial.UpdateBaseItemInfo.MUpdateItemEntry
nil, // 592: tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry
nil, // 593: tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry
nil, // 594: tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry
nil, // 595: tutorial.ResPlayerPackData.MPackDataEntry
nil, // 596: tutorial.UpdatePlayerPackData.MPackDataEntry
nil, // 597: tutorial.ResPlayerChessData.MChessDataEntry
nil, // 598: tutorial.UpdatePlayerChessData.MChessDataEntry
nil, // 599: tutorial.ReqGetChessFromBuff.MChessDataEntry
nil, // 600: tutorial.ReqChessEx.MChessDataEntry
nil, // 601: tutorial.ReqPutChessInBag.MChessDataEntry
nil, // 602: tutorial.ReqTakeChessOutBag.MChessDataEntry
nil, // 603: tutorial.ResPlayerGiftData.MGiftDataEntry
nil, // 604: tutorial.UpdatePlayerGiftData.MGiftDataEntry
nil, // 605: tutorial.ResPlayerOrderData.MOrderDataEntry
nil, // 606: tutorial.UpdatePlayerOrderData.MOrderDataEntry
nil, // 607: tutorial.ResChessColorData.MChessColorDataEntry
nil, // 608: tutorial.UpdateChessColorData.MChessColorDataEntry
nil, // 609: tutorial.ResEmitMergeMap.MEmitMergeDataEntry
nil, // 610: tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry
nil, // 611: tutorial.ResEmitCountMap.MEmitCountDataEntry
nil, // 612: tutorial.UpdateEmitCountMap.MEmitCountDataEntry
nil, // 613: tutorial.ResEmitCDStartData.MEmitCDDataEntry
nil, // 614: tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry
nil, // 615: tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry
nil, // 616: tutorial.ResDecorateData.MDecorateDataEntry
nil, // 617: tutorial.UpdateDecorateData.MDecorateDataEntry
nil, // 618: tutorial.ResShopData.MShopTimeBuyDataEntry
nil, // 619: tutorial.ResShopData.MShopSaleBuyDataEntry
nil, // 620: tutorial.ResShopData.MPackBuyDataEntry
nil, // 621: tutorial.ResShopData.MSpecialOfferBuyDataEntry
nil, // 622: tutorial.ResShopData.MUISpecialOfferBuyDataEntry
nil, // 623: tutorial.ResShopData.MFreePackBuyDataEntry
nil, // 624: tutorial.ResShopData.MDiamondFirstBuyDataEntry
nil, // 625: tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry
nil, // 626: tutorial.ResShopBuy.MShopTimeBuyDataEntry
nil, // 627: tutorial.ReqRenewItemBuyCnt.MShopDataEntry
nil, // 628: tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry
nil, // 629: tutorial.ResKeyValueData.KeyValuesEntry
nil, // 630: tutorial.UpdateKeyValueData.KeyValuesEntry
nil, // 631: tutorial.ResAdPackData.PackDataEntry
nil, // 632: tutorial.NotifyAdPackData.PackDataEntry
nil, // 633: tutorial.ResWatchAdPack.PackDataEntry
nil, // 634: tutorial.ResPetHomeData.SelectDecorateMapEntry
nil, // 635: tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry
nil, // 636: tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry
nil, // 637: tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry
nil, // 638: tutorial.ResShiftVisitPet.SelectDecorateMapEntry
nil, // 639: tutorial.UseItemRequest.AttrsEntry
nil, // 640: tutorial.UseItemResponse.AttrsEntry
nil, // 641: tutorial.ReqRewardOrder.MChessDataEntry
nil, // 642: tutorial.ResCardInfo.AllCardEntry
nil, // 643: tutorial.ResGuildInfo.RewardEntry
nil, // 644: tutorial.ResDailyTask.WeekRewardEntry
nil, // 645: tutorial.ResDailyTask.DailyTaskEntry
nil, // 646: tutorial.ResLimitEvent.LimitEventListEntry
nil, // 647: tutorial.ResLimitEventProgress.ProgressRewardEntry
nil, // 648: tutorial.ResKv.KvEntry
nil, // 649: tutorial.ResRank.RankListEntry
nil, // 650: tutorial.ResMailList.MailListEntry
nil, // 651: tutorial.ResCharge.SpecialShopEntry
nil, // 652: tutorial.ResCharge.ChessShopEntry
nil, // 653: tutorial.ResCharge.GiftEntry
nil, // 654: tutorial.ResEndless.EndlessListEntry
nil, // 655: tutorial.ResChampshipRank.RankListEntry
nil, // 656: tutorial.ResChampshipPreRank.RankListEntry
nil, // 657: tutorial.ResNotifyCard.CardEntry
nil, // 658: tutorial.ResNotifyCard.MasterEntry
nil, // 659: tutorial.ResMining.MapEntry
nil, // 660: tutorial.ReqMiningTake.MapEntry
nil, // 661: tutorial.ResActRed.RedEntry
nil, // 662: tutorial.ResItem.ItemEntry
nil, // 663: tutorial.ItemNotify.ItemEntry
nil, // 664: tutorial.ReqGuessColorTake.MapEntry
}
var file_Gameapi_proto_depIdxs = []int32{
584, // 0: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry
585, // 1: tutorial.ResPlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry
586, // 2: tutorial.NotifyDailyRenewEmitUnlock.mEmitUnlockData:type_name -> tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry
587, // 3: tutorial.UpdatePlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry
588, // 4: tutorial.ResPlayerPackData.mPackData:type_name -> tutorial.ResPlayerPackData.MPackDataEntry
589, // 5: tutorial.UpdatePlayerPackData.mPackData:type_name -> tutorial.UpdatePlayerPackData.MPackDataEntry
590, // 6: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry
591, // 0: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry
592, // 1: tutorial.ResPlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry
593, // 2: tutorial.NotifyDailyRenewEmitUnlock.mEmitUnlockData:type_name -> tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry
594, // 3: tutorial.UpdatePlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry
595, // 4: tutorial.ResPlayerPackData.mPackData:type_name -> tutorial.ResPlayerPackData.MPackDataEntry
596, // 5: tutorial.UpdatePlayerPackData.mPackData:type_name -> tutorial.UpdatePlayerPackData.MPackDataEntry
597, // 6: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry
37, // 7: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag
0, // 8: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE
591, // 9: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry
598, // 9: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry
30, // 10: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle
1, // 11: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE
592, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry
599, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry
1, // 13: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE
593, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry
600, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry
1, // 15: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE
38, // 16: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid
594, // 17: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry
601, // 17: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry
1, // 18: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE
595, // 19: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry
602, // 19: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry
1, // 20: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE
1, // 21: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE
596, // 22: tutorial.ResPlayerGiftData.mGiftData:type_name -> tutorial.ResPlayerGiftData.MGiftDataEntry
597, // 23: tutorial.UpdatePlayerGiftData.mGiftData:type_name -> tutorial.UpdatePlayerGiftData.MGiftDataEntry
598, // 24: tutorial.ResPlayerOrderData.mOrderData:type_name -> tutorial.ResPlayerOrderData.MOrderDataEntry
599, // 25: tutorial.UpdatePlayerOrderData.mOrderData:type_name -> tutorial.UpdatePlayerOrderData.MOrderDataEntry
600, // 26: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry
601, // 27: tutorial.UpdateChessColorData.mChessColorData:type_name -> tutorial.UpdateChessColorData.MChessColorDataEntry
602, // 28: tutorial.ResEmitMergeMap.mEmitMergeData:type_name -> tutorial.ResEmitMergeMap.MEmitMergeDataEntry
603, // 29: tutorial.UpdateEmitMergeMap.mEmitMergeData:type_name -> tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry
604, // 30: tutorial.ResEmitCountMap.mEmitCountData:type_name -> tutorial.ResEmitCountMap.MEmitCountDataEntry
605, // 31: tutorial.UpdateEmitCountMap.mEmitCountData:type_name -> tutorial.UpdateEmitCountMap.MEmitCountDataEntry
606, // 32: tutorial.ResEmitCDStartData.mEmitCDData:type_name -> tutorial.ResEmitCDStartData.MEmitCDDataEntry
607, // 33: tutorial.NotifyInitEmitCDTimeData.mEmitCDData:type_name -> tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry
608, // 34: tutorial.NotifyEmitCDTimeEndData.mEmitCDData:type_name -> tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry
609, // 35: tutorial.ResDecorateData.mDecorateData:type_name -> tutorial.ResDecorateData.MDecorateDataEntry
610, // 36: tutorial.UpdateDecorateData.mDecorateData:type_name -> tutorial.UpdateDecorateData.MDecorateDataEntry
611, // 37: tutorial.ResShopData.mShopTimeBuyData:type_name -> tutorial.ResShopData.MShopTimeBuyDataEntry
612, // 38: tutorial.ResShopData.mShopSaleBuyData:type_name -> tutorial.ResShopData.MShopSaleBuyDataEntry
613, // 39: tutorial.ResShopData.mPackBuyData:type_name -> tutorial.ResShopData.MPackBuyDataEntry
614, // 40: tutorial.ResShopData.mSpecialOfferBuyData:type_name -> tutorial.ResShopData.MSpecialOfferBuyDataEntry
615, // 41: tutorial.ResShopData.mUISpecialOfferBuyData:type_name -> tutorial.ResShopData.MUISpecialOfferBuyDataEntry
616, // 42: tutorial.ResShopData.mFreePackBuyData:type_name -> tutorial.ResShopData.MFreePackBuyDataEntry
617, // 43: tutorial.ResShopData.mDiamondFirstBuyData:type_name -> tutorial.ResShopData.MDiamondFirstBuyDataEntry
618, // 44: tutorial.NotifyShopStatusChange.mShopTimeBuyData:type_name -> tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry
619, // 45: tutorial.ResShopBuy.mShopTimeBuyData:type_name -> tutorial.ResShopBuy.MShopTimeBuyDataEntry
620, // 46: tutorial.ReqRenewItemBuyCnt.mShopData:type_name -> tutorial.ReqRenewItemBuyCnt.MShopDataEntry
621, // 47: tutorial.ResRenewItemBuyCnt.mShopTimeBuyData:type_name -> tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry
603, // 22: tutorial.ResPlayerGiftData.mGiftData:type_name -> tutorial.ResPlayerGiftData.MGiftDataEntry
604, // 23: tutorial.UpdatePlayerGiftData.mGiftData:type_name -> tutorial.UpdatePlayerGiftData.MGiftDataEntry
605, // 24: tutorial.ResPlayerOrderData.mOrderData:type_name -> tutorial.ResPlayerOrderData.MOrderDataEntry
606, // 25: tutorial.UpdatePlayerOrderData.mOrderData:type_name -> tutorial.UpdatePlayerOrderData.MOrderDataEntry
607, // 26: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry
608, // 27: tutorial.UpdateChessColorData.mChessColorData:type_name -> tutorial.UpdateChessColorData.MChessColorDataEntry
609, // 28: tutorial.ResEmitMergeMap.mEmitMergeData:type_name -> tutorial.ResEmitMergeMap.MEmitMergeDataEntry
610, // 29: tutorial.UpdateEmitMergeMap.mEmitMergeData:type_name -> tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry
611, // 30: tutorial.ResEmitCountMap.mEmitCountData:type_name -> tutorial.ResEmitCountMap.MEmitCountDataEntry
612, // 31: tutorial.UpdateEmitCountMap.mEmitCountData:type_name -> tutorial.UpdateEmitCountMap.MEmitCountDataEntry
613, // 32: tutorial.ResEmitCDStartData.mEmitCDData:type_name -> tutorial.ResEmitCDStartData.MEmitCDDataEntry
614, // 33: tutorial.NotifyInitEmitCDTimeData.mEmitCDData:type_name -> tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry
615, // 34: tutorial.NotifyEmitCDTimeEndData.mEmitCDData:type_name -> tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry
616, // 35: tutorial.ResDecorateData.mDecorateData:type_name -> tutorial.ResDecorateData.MDecorateDataEntry
617, // 36: tutorial.UpdateDecorateData.mDecorateData:type_name -> tutorial.UpdateDecorateData.MDecorateDataEntry
618, // 37: tutorial.ResShopData.mShopTimeBuyData:type_name -> tutorial.ResShopData.MShopTimeBuyDataEntry
619, // 38: tutorial.ResShopData.mShopSaleBuyData:type_name -> tutorial.ResShopData.MShopSaleBuyDataEntry
620, // 39: tutorial.ResShopData.mPackBuyData:type_name -> tutorial.ResShopData.MPackBuyDataEntry
621, // 40: tutorial.ResShopData.mSpecialOfferBuyData:type_name -> tutorial.ResShopData.MSpecialOfferBuyDataEntry
622, // 41: tutorial.ResShopData.mUISpecialOfferBuyData:type_name -> tutorial.ResShopData.MUISpecialOfferBuyDataEntry
623, // 42: tutorial.ResShopData.mFreePackBuyData:type_name -> tutorial.ResShopData.MFreePackBuyDataEntry
624, // 43: tutorial.ResShopData.mDiamondFirstBuyData:type_name -> tutorial.ResShopData.MDiamondFirstBuyDataEntry
625, // 44: tutorial.NotifyShopStatusChange.mShopTimeBuyData:type_name -> tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry
626, // 45: tutorial.ResShopBuy.mShopTimeBuyData:type_name -> tutorial.ResShopBuy.MShopTimeBuyDataEntry
627, // 46: tutorial.ReqRenewItemBuyCnt.mShopData:type_name -> tutorial.ReqRenewItemBuyCnt.MShopDataEntry
628, // 47: tutorial.ResRenewItemBuyCnt.mShopTimeBuyData:type_name -> tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry
89, // 48: tutorial.ResBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct
89, // 49: tutorial.NotifyNewBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct
99, // 50: tutorial.NotifyLimitedTimeActiveData.mActiveList:type_name -> tutorial.LimitedTimeActiveStruct
100, // 51: tutorial.NotifyLimitedTimeActiveEnd.mActiveList:type_name -> tutorial.LimitedTimeEndStruct
154, // 52: tutorial.CategoryIllustratedData.Items:type_name -> tutorial.SingleIllustratedItem
155, // 53: tutorial.ResIllustratedInfo.Datas:type_name -> tutorial.CategoryIllustratedData
622, // 54: tutorial.ResKeyValueData.KeyValues:type_name -> tutorial.ResKeyValueData.KeyValuesEntry
623, // 55: tutorial.UpdateKeyValueData.KeyValues:type_name -> tutorial.UpdateKeyValueData.KeyValuesEntry
629, // 54: tutorial.ResKeyValueData.KeyValues:type_name -> tutorial.ResKeyValueData.KeyValuesEntry
630, // 55: tutorial.UpdateKeyValueData.KeyValues:type_name -> tutorial.UpdateKeyValueData.KeyValuesEntry
203, // 56: tutorial.ResChampshipData.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo
203, // 57: tutorial.NotifyNewChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo
203, // 58: tutorial.NotifyUpdateChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo
203, // 59: tutorial.ResChampshipAddScore.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo
203, // 60: tutorial.ResChampshipAddTime.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo
217, // 61: tutorial.ResPlayerPayData.PlayerPayData:type_name -> tutorial.PlayerPayItem
624, // 62: tutorial.ResAdPackData.PackData:type_name -> tutorial.ResAdPackData.PackDataEntry
625, // 63: tutorial.NotifyAdPackData.PackData:type_name -> tutorial.NotifyAdPackData.PackDataEntry
626, // 64: tutorial.ResWatchAdPack.PackData:type_name -> tutorial.ResWatchAdPack.PackDataEntry
631, // 62: tutorial.ResAdPackData.PackData:type_name -> tutorial.ResAdPackData.PackDataEntry
632, // 63: tutorial.NotifyAdPackData.PackData:type_name -> tutorial.NotifyAdPackData.PackDataEntry
633, // 64: tutorial.ResWatchAdPack.PackData:type_name -> tutorial.ResWatchAdPack.PackDataEntry
262, // 65: tutorial.ResFriendData.FriendInfos:type_name -> tutorial.FriendInfo
262, // 66: tutorial.AddFriendData.Finfo:type_name -> tutorial.FriendInfo
262, // 67: tutorial.ResWillPlayerDetail.PlayerInfos:type_name -> tutorial.FriendInfo
@ -38006,21 +38432,21 @@ var file_Gameapi_proto_depIdxs = []int32{
341, // 109: tutorial.ResFriendEventData.MFriendEventData:type_name -> tutorial.FriendEventData
341, // 110: tutorial.NotifyNewFriendEvent.NewEvent:type_name -> tutorial.FriendEventData
257, // 111: tutorial.PetHomeInterActST.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData
627, // 112: tutorial.ResPetHomeData.SelectDecorateMap:type_name -> tutorial.ResPetHomeData.SelectDecorateMapEntry
628, // 113: tutorial.ReqSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry
629, // 114: tutorial.ResSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry
634, // 112: tutorial.ResPetHomeData.SelectDecorateMap:type_name -> tutorial.ResPetHomeData.SelectDecorateMapEntry
635, // 113: tutorial.ReqSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry
636, // 114: tutorial.ResSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry
257, // 115: tutorial.ResOpenOtherPetHome.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData
630, // 116: tutorial.ResOpenOtherPetHome.SelectDecorateMap:type_name -> tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry
637, // 116: tutorial.ResOpenOtherPetHome.SelectDecorateMap:type_name -> tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry
349, // 117: tutorial.ResPetHomeInterActST.mPetHomeInterActSTs:type_name -> tutorial.PetHomeInterActST
257, // 118: tutorial.ResShiftVisitPet.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData
631, // 119: tutorial.ResShiftVisitPet.SelectDecorateMap:type_name -> tutorial.ResShiftVisitPet.SelectDecorateMapEntry
638, // 119: tutorial.ResShiftVisitPet.SelectDecorateMap:type_name -> tutorial.ResShiftVisitPet.SelectDecorateMapEntry
372, // 120: tutorial.UseItemRequest.items:type_name -> tutorial.Item
371, // 121: tutorial.UseItemRequest.price:type_name -> tutorial.IntPack
632, // 122: tutorial.UseItemRequest.attrs:type_name -> tutorial.UseItemRequest.AttrsEntry
639, // 122: tutorial.UseItemRequest.attrs:type_name -> tutorial.UseItemRequest.AttrsEntry
3, // 123: tutorial.UseItemResponse.code:type_name -> tutorial.UseItemResponse.CODE
372, // 124: tutorial.UseItemResponse.items:type_name -> tutorial.Item
371, // 125: tutorial.UseItemResponse.price:type_name -> tutorial.IntPack
633, // 126: tutorial.UseItemResponse.attrs:type_name -> tutorial.UseItemResponse.AttrsEntry
640, // 126: tutorial.UseItemResponse.attrs:type_name -> tutorial.UseItemResponse.AttrsEntry
1, // 127: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE
454, // 128: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo
450, // 129: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo
@ -38028,13 +38454,13 @@ var file_Gameapi_proto_depIdxs = []int32{
1, // 131: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE
386, // 132: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo
1, // 133: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE
634, // 134: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry
641, // 134: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry
1, // 135: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE
391, // 136: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order
1, // 137: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE
1, // 138: tutorial.ResDecorateAll.Code:type_name -> tutorial.RES_CODE
399, // 139: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card
635, // 140: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry
642, // 140: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry
1, // 141: tutorial.ResMasterCard.Code:type_name -> tutorial.RES_CODE
1, // 142: tutorial.ResCardCollectReward.Code:type_name -> tutorial.RES_CODE
1, // 143: tutorial.ResExStarReward.Code:type_name -> tutorial.RES_CODE
@ -38050,11 +38476,11 @@ var file_Gameapi_proto_depIdxs = []int32{
1, // 153: tutorial.ResRefuseCardExchange.Code:type_name -> tutorial.RES_CODE
1, // 154: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE
1, // 155: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE
636, // 156: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry
643, // 156: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry
437, // 157: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo
438, // 158: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack
637, // 159: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry
638, // 160: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry
644, // 159: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry
645, // 160: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry
437, // 161: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo
442, // 162: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress
437, // 163: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo
@ -38073,8 +38499,8 @@ var file_Gameapi_proto_depIdxs = []int32{
1, // 176: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE
1, // 177: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE
464, // 178: tutorial.ResActivity.ActiveList:type_name -> tutorial.ActivityInfo
639, // 179: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry
640, // 180: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry
646, // 179: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry
647, // 180: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry
1, // 181: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE
1, // 182: tutorial.ResSelectLimitEvent.Code:type_name -> tutorial.RES_CODE
1, // 183: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE
@ -38083,7 +38509,7 @@ var file_Gameapi_proto_depIdxs = []int32{
481, // 186: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple
483, // 187: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog
486, // 188: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard
641, // 189: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry
648, // 189: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry
481, // 190: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple
1, // 191: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE
481, // 192: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple
@ -38097,58 +38523,61 @@ var file_Gameapi_proto_depIdxs = []int32{
481, // 200: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple
1, // 201: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE
1, // 202: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE
642, // 203: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry
643, // 204: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry
649, // 203: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry
650, // 204: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry
437, // 205: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo
515, // 206: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo
1, // 207: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE
1, // 208: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE
1, // 209: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE
644, // 210: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry
645, // 211: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry
646, // 212: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry
651, // 210: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry
652, // 211: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry
653, // 212: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry
1, // 213: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE
1, // 214: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE
1, // 215: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE
647, // 216: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry
654, // 216: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry
437, // 217: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo
1, // 218: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE
1, // 219: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE
1, // 220: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE
1, // 221: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE
1, // 222: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE
648, // 223: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry
649, // 224: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry
650, // 225: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry
651, // 226: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry
655, // 223: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry
656, // 224: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry
657, // 225: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry
658, // 226: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry
1, // 227: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE
652, // 228: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry
653, // 229: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry
659, // 228: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry
660, // 229: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry
1, // 230: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE
1, // 231: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE
654, // 232: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry
661, // 232: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry
464, // 233: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo
655, // 234: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry
656, // 235: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry
662, // 234: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry
663, // 235: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry
579, // 236: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent
657, // 237: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.ReqGuessColorTake.MapEntry
664, // 237: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.ReqGuessColorTake.MapEntry
1, // 238: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE
1, // 239: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE
440, // 240: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek
441, // 241: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask
472, // 242: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent
481, // 243: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple
515, // 244: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo
524, // 245: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop
525, // 246: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop
534, // 247: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo
482, // 248: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
482, // 249: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
250, // [250:250] is the sub-list for method output_type
250, // [250:250] is the sub-list for method input_type
250, // [250:250] is the sub-list for extension type_name
250, // [250:250] is the sub-list for extension extendee
0, // [0:250] is the sub-list for field type_name
586, // 240: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent
1, // 241: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE
1, // 242: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE
440, // 243: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek
441, // 244: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask
472, // 245: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent
481, // 246: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple
515, // 247: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo
524, // 248: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop
525, // 249: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop
534, // 250: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo
482, // 251: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
482, // 252: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
253, // [253:253] is the sub-list for method output_type
253, // [253:253] is the sub-list for method input_type
253, // [253:253] is the sub-list for extension type_name
253, // [253:253] is the sub-list for extension extendee
0, // [0:253] is the sub-list for field type_name
}
func init() { file_Gameapi_proto_init() }
@ -38162,7 +38591,7 @@ func file_Gameapi_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_Gameapi_proto_rawDesc,
NumEnums: 4,
NumMessages: 654,
NumMessages: 661,
NumExtensions: 0,
NumServices: 0,
},