Compare commits

..

No commits in common. "5e283880abad4a023d6b90cdf5538b13e0196243" and "2bd4411420fb6b9d132b45f74fe64dd8836f9706" have entirely different histories.

86 changed files with 3269 additions and 8822 deletions

View File

@ -1,105 +0,0 @@
package main
import (
"encoding/json"
"fmt"
"math/rand"
"mongo.games.com/game/protocol/activity"
"mongo.games.com/goserver/core/timer"
"time"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/game/model"
"mongo.games.com/game/proto"
loginproto "mongo.games.com/game/protocol/login"
playerproto "mongo.games.com/game/protocol/player"
)
func init() {
// 心跳
netlib.Register(int(loginproto.GatePacketID_PACKET_SC_PONG), loginproto.SCPong{}, SCPong)
// 登录
netlib.Register(int(loginproto.LoginPacketID_PACKET_SC_LOGIN), loginproto.SCLogin{}, SCLogin)
// 玩家信息
netlib.Register(int(playerproto.PlayerPacketID_PACKET_SC_PLAYERDATA), playerproto.SCPlayerData{}, SCPlayerData)
netlib.Register(int(activity.PushCoinPacketID_PACKET_SCPushCoinInfo), activity.SCPushCoinInfo{}, SCPrint)
}
func SCPong(s *netlib.Session, packetid int, data interface{}) error {
accountID := s.GetAttribute(SessionAttributeClientAccountId)
logger.Logger.Tracef("SCPong username:%v %v", accountID, data)
return nil
}
func SCLogin(s *netlib.Session, packetid int, data interface{}) error {
logger.Logger.Trace("SCLogin ", data)
msg, ok := data.(*loginproto.SCLogin)
if !ok {
return nil
}
if msg.GetOpRetCode() != loginproto.OpResultCode_OPRC_Sucess {
accountID := s.GetAttribute(SessionAttributeClientAccountId)
logger.Logger.Error("登录失败 ", accountID)
s.Close()
return nil
}
csPlayerData := &playerproto.CSPlayerData{
AccId: msg.GetAccId(),
}
pp := &model.PlayerParams{
Platform: 1,
Ip: fmt.Sprintf("%v.%v.%v.%v", 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255)),
City: "北京",
Logininmodel: "app",
}
d, err := json.Marshal(pp)
if err == nil {
csPlayerData.Params = proto.String(string(d))
}
s.Send(int(playerproto.PlayerPacketID_PACKET_CS_PLAYERDATA), csPlayerData)
logger.Logger.Info("登录成功 ", msg.GetAccId())
return nil
}
func SCPlayerData(s *netlib.Session, packetid int, data interface{}) error {
logger.Logger.Trace("SCPlayerData ", data)
msg, ok := data.(*playerproto.SCPlayerData)
if !ok {
return nil
}
if msg.GetOpRetCode() != playerproto.OpResultCode_OPRC_Sucess {
accountID := s.GetAttribute(SessionAttributeClientAccountId)
logger.Logger.Errorf("获取玩家信息失败 %v", accountID)
s.Close()
return nil
}
s.SetAttribute(SessionAttributeUser, msg)
StartSessionPingTimer(s, timer.TimerActionWrapper(func(h timer.TimerHandle, ud interface{}) bool {
if !s.IsConned() {
StopSessionPingTimer(s)
return false
}
pack := &loginproto.CSPing{}
s.Send(int(loginproto.GatePacketID_PACKET_CS_PING), pack)
return true
}), nil, time.Second*time.Duration(60+rand.Int31n(100)), -1)
s.Send(int(activity.PushCoinPacketID_PACKET_CSPushCoinInfo), &activity.CSPushCoinInfo{})
return nil
}
func SCPrint(s *netlib.Session, packetid int, data interface{}) error {
logger.Logger.Info("SCPrint ", data)
return nil
}

View File

@ -1,35 +0,0 @@
package main
import (
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
)
var Config = &Configuration{}
type Configuration struct {
Count int // 机器人总数
AppId string // appID
Connects netlib.SessionConfig // 网络连接配置
}
func (this *Configuration) Name() string {
return "benchmark"
}
func (this *Configuration) Init() error {
logger.Logger.Tracef("%+v", *this)
if this.Count == 0 {
this.Count = 20
}
return nil
}
func (this *Configuration) Close() error {
return nil
}
func init() {
core.RegistePackage(Config)
}

View File

@ -1,67 +0,0 @@
netlib:
SrvInfo:
Name: BenchmarkServer
Type: 9
Id: 902
AreaID: 1
Banner:
- =================
- benchmark server
- =================
IoServices: []
module:
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 100
executor:
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 0
Worker:
WorkerCnt: 8
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 0
timer:
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 100
signal:
SupportSignal: true
cmdline:
SupportCmdline: true
benchmark:
Count: 1
AppId: 5c56d1644966f078bfb90c71
Connects:
Id: 402
Type: 4
AreaId: 1
Name: ClientService
Ip: 127.0.0.1
Port: 11001
Protocol: tcp
Path: /
MaxDone: 200
MaxPend: 200
MaxPacket: 65535
MaxConn: 2000
RcvBuff: 4096
SndBuff: 4096
WriteTimeout: 3600
ReadTimeout: 3600
SoLinger: 10
IsInnerLink: true
NoDelay: true
SupportFragment: true
AuthKey: www.jxjy.games.cn
IsClient: true
AllowMultiConn: true
FilterChain:
- session-filter-auth
HandlerChain:
- handler-gate-session

View File

@ -1,69 +0,0 @@
package main
import (
"time"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/module"
"mongo.games.com/goserver/core/netlib"
)
const (
// RobotSessionStartId 机器人session开始id
RobotSessionStartId = 100000000
)
var (
BenchMarkModule = &BenchMark{}
WaitConnectSessions []*netlib.SessionConfig
)
// NewSession 新建session
// id 连接id, 默认自动分配
func NewSession(id ...int) {
cfg := Config.Connects
if len(id) > 0 && id[0] > 0 {
cfg.Id = id[0]
} else {
BenchMarkModule.idx++
cfg.Id = BenchMarkModule.idx
}
cfg.Init()
logger.Logger.Info("waite connect session id=", cfg.Id)
WaitConnectSessions = append(WaitConnectSessions, &cfg)
}
type BenchMark struct {
idx int
}
func (m *BenchMark) ModuleName() string {
return "benchmark-module"
}
func (m *BenchMark) Init() {
m.idx = RobotSessionStartId
for i := 0; i < Config.Count; i++ {
NewSession()
}
}
// Update 机器开始连接游戏服务器
func (m *BenchMark) Update() {
n := len(WaitConnectSessions)
if n > 0 {
config := WaitConnectSessions[n-1]
WaitConnectSessions = WaitConnectSessions[:n-1]
if err := netlib.Connect(config); err != nil {
logger.Logger.Error("netlib.Connect error", err)
}
}
}
func (m *BenchMark) Shutdown() {
module.UnregisteModule(m)
}
func init() {
module.RegisteModule(BenchMarkModule, time.Millisecond, 1)
}

View File

@ -1,31 +0,0 @@
package main
import (
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/goserver/core/timer"
"time"
)
const (
SessionAttributeClientAccountId int = iota // 账号
SessionAttributeUser
SessionAttributePingTimer
)
func StartSessionPingTimer(s *netlib.Session, act timer.TimerAction, ud interface{}, interval time.Duration, times int) bool {
StopSessionPingTimer(s)
if hTimer, ok := timer.StartTimer(act, ud, interval, times); ok {
s.SetAttribute(SessionAttributePingTimer, hTimer)
return true
}
return false
}
func StopSessionPingTimer(s *netlib.Session) {
if h, ok := s.GetAttribute(SessionAttributePingTimer).(timer.TimerHandle); ok {
if h != timer.TimerHandle(0) {
timer.StopTimer(h)
s.RemoveAttribute(SessionAttributePingTimer)
}
}
}

View File

@ -1,97 +0,0 @@
package main
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"io"
"math/rand"
"mongo.games.com/game/common"
"mongo.games.com/game/model"
loginproto "mongo.games.com/game/protocol/login"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"strconv"
"sync/atomic"
"time"
)
/*
添加到客户端管理器管理器负责登录
当连接断开时从管理器中移除判断是否需要重连
*/
const (
GateSessionHandlerName = "handler-gate-session"
)
type GateSessionHandler struct {
netlib.BasicSessionHandler
}
func (g *GateSessionHandler) GetName() string {
return GateSessionHandlerName
}
func (g *GateSessionHandler) GetInterestOps() uint {
return 1<<netlib.InterestOps_Opened |
1<<netlib.InterestOps_Closed
}
func (g *GateSessionHandler) OnSessionOpened(s *netlib.Session) {
// 登录账号
StartLogin(s)
return
}
func (g *GateSessionHandler) OnSessionClosed(s *netlib.Session) {
}
func init() {
netlib.RegisteSessionHandlerCreator(GateSessionHandlerName, func() netlib.SessionHandler {
return &GateSessionHandler{}
})
}
var UserNameIndex int64
func StartLogin(s *netlib.Session) {
ts := time.Now().UnixNano()
username := fmt.Sprintf("benchmark-%v", atomic.AddInt64(&UserNameIndex, 1))
s.SetAttribute(SessionAttributeClientAccountId, username)
csLogin := &loginproto.CSLogin{
Username: username,
TimeStamp: ts,
Platform: "1",
Channel: "",
PlatformTag: "test.win88.yy_android",
}
params := &model.PlayerParams{
Ip: fmt.Sprintf("%v.%v.%v.%v", 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255)),
City: "北京",
Platform: 1,
Logininmodel: "app",
}
data, err := json.Marshal(params)
if err == nil {
csLogin.Params = string(data[:])
}
h := md5.New()
io.WriteString(h, fmt.Sprintf("%v%v", username, Config.AppId))
pwd := hex.EncodeToString(h.Sum(nil))
h.Reset()
io.WriteString(h, fmt.Sprintf("%v%v%v", pwd, Config.AppId, ts))
pwd = hex.EncodeToString(h.Sum(nil))
csLogin.Password = pwd
csLogin.LoginType = 0
csLogin.Sign = common.MakeMd5String(csLogin.GetUsername(), csLogin.GetPassword(),
strconv.Itoa(int(csLogin.GetTimeStamp())), csLogin.GetParams(), Config.AppId)
s.Send(int(loginproto.LoginPacketID_PACKET_CS_LOGIN), csLogin)
logger.Logger.Infof("账号 [%v] 开始登录", username)
}

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<seelog type="adaptive" mininterval="2000000" maxinterval="100000000" critmsgcount="500" minlevel="trace">
<exceptions>
<exception filepattern="test*" minlevel="error"/>
</exceptions>
<outputs formatid="all">
<rollingfile formatid="all" type="size" filename="./all.log" maxsize="50000000" maxrolls="5" />
<filter levels="info,trace,warn,error">
<console formatid="fmtinfo"/>
</filter>
<filter levels="error,critical" formatid="fmterror">
<console/>
<file path="errors.log"/>
</filter>
</outputs>
<formats>
<format id="fmtinfo" format="[%Date][%Time] [%Level] %Msg%n"/>
<format id="fmterror" format="[%Date][%Time] [%LEVEL] [%FuncShort @ %File.%Line] %Msg%n"/>
<format id="all" format="[%Date][%Time] [%Level] [@ %File.%Line] %Msg%n"/>
<format id="criticalemail" format="Critical error on our server!\n %Time %Date %RelFile %Func %Msg \nSent by Seelog"/>
</formats>
</seelog>

View File

@ -1,24 +0,0 @@
package main
import (
_ "mongo.games.com/game"
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/module"
)
func main() {
defer core.ClosePackages()
core.LoadPackages("config.yaml")
// core hook
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
return nil
})
core.RegisteHook(core.HOOK_AFTER_STOP, func() error {
return nil
})
// module模块
waiter := module.Start()
waiter.Wait("main()")
}

View File

@ -99,7 +99,6 @@ const (
GameId_AngerUncle = 606 // 愤怒大叔 GameId_AngerUncle = 606 // 愤怒大叔
GameId_SmallRoket = 607 // 小火箭 GameId_SmallRoket = 607 // 小火箭
GameId_Clawdoll = 608 // 娃娃机 GameId_Clawdoll = 608 // 娃娃机
GameId_PushCoin = 609 // 推币机
__GameId_ThrGame_Min__ = 700 //################三方类################ __GameId_ThrGame_Min__ = 700 //################三方类################
GameId_Thr_Dg = 701 //DG Game GameId_Thr_Dg = 701 //DG Game
GameId_Thr_XHJ = 901 ///DG Game GameId_Thr_XHJ = 901 ///DG Game
@ -119,7 +118,6 @@ const (
GameDifFruits = "306" // 水果机 GameDifFruits = "306" // 水果机
GameDifRichblessed = "307" // 多彩多福 GameDifRichblessed = "307" // 多彩多福
GameDifClawdoll = "608" // 娃娃机 GameDifClawdoll = "608" // 娃娃机
GameDifPushCoin = "609" // 推币机
) )
// IsTienLenYuLe TienLen娱乐 // IsTienLenYuLe TienLen娱乐
@ -345,10 +343,6 @@ const (
GainWayNianGain_EveryDayTask = 132 //年兽活动每日任务 GainWayNianGain_EveryDayTask = 132 //年兽活动每日任务
GainWayNianGain_Task = 133 //年兽活动任务 GainWayNianGain_Task = 133 //年兽活动任务
GainWayConsume = 134 //累消活动获得 GainWayConsume = 134 //累消活动获得
GainWayPushCoinExchangeCost = 135 // 推币机兑换消耗
GainWatPushCoinExchangeGain = 136 // 推币机兑换获得
GainWayPushCoinGain = 137 // 推币机掉落获得
GainWayPushCoinCost = 138 // 推币机消耗
) )
// 后台选择 金币变化类型 的充值 类型id号起始 // 后台选择 金币变化类型 的充值 类型id号起始
@ -604,12 +598,6 @@ const (
ItemIDRoomCard = 40002 // 房卡 ItemIDRoomCard = 40002 // 房卡
ItemIDLittleGuaranteed = 50014 //小爆竹 ItemIDLittleGuaranteed = 50014 //小爆竹
ItemIDBigGuaranteed = 50015 //大爆竹 ItemIDBigGuaranteed = 50015 //大爆竹
ItemIDPlum = 50016 //梅花(推币机)
ItemIDBigCoin = 50017 //大金币
ItemIDCoin1 = 50018 //金币1
ItemIDCoin2 = 50019 //金币2
ItemIDCoin3 = 50020 //金币3
ItemIDShake = 50021 //震动效果
) )
func ToItemId(id int32) int32 { func ToItemId(id int32) int32 {

View File

@ -43,9 +43,9 @@ type RedPacketColumns struct {
var redPacketColumns = &RedPacketColumns{ var redPacketColumns = &RedPacketColumns{
ID: "_id", ID: "_id",
Cid: "cid", // 红包活动id Cid: "Cid", // 红包活动id
Use: "use", // 已发红包 红包奖励数量:已发个数 Use: "Use", // 已发红包 红包奖励数量:已发个数
Ts: "ts", // 更新时间戳 Ts: "Ts", // 更新时间戳
} }
func NewRedPacket() *RedPacket { func NewRedPacket() *RedPacket {

View File

@ -1,283 +0,0 @@
// --------------------------------------------------------------------------------------------
// The following code is automatically generated by the mongo-dao-generator tool.
// Please do not modify this code manually to avoid being overwritten in the next generation.
// For more tool details, please click the link to view https://github.com/dobyte/mongo-dao-generator
// --------------------------------------------------------------------------------------------
package internal
import (
"context"
"errors"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
modelpkg "mongo.games.com/game/model"
)
type RedPacketHistoryFilterFunc func(cols *RedPacketHistoryColumns) interface{}
type RedPacketHistoryUpdateFunc func(cols *RedPacketHistoryColumns) interface{}
type RedPacketHistoryPipelineFunc func(cols *RedPacketHistoryColumns) interface{}
type RedPacketHistoryCountOptionsFunc func(cols *RedPacketHistoryColumns) *options.CountOptions
type RedPacketHistoryAggregateOptionsFunc func(cols *RedPacketHistoryColumns) *options.AggregateOptions
type RedPacketHistoryFindOneOptionsFunc func(cols *RedPacketHistoryColumns) *options.FindOneOptions
type RedPacketHistoryFindManyOptionsFunc func(cols *RedPacketHistoryColumns) *options.FindOptions
type RedPacketHistoryUpdateOptionsFunc func(cols *RedPacketHistoryColumns) *options.UpdateOptions
type RedPacketHistoryDeleteOptionsFunc func(cols *RedPacketHistoryColumns) *options.DeleteOptions
type RedPacketHistoryInsertOneOptionsFunc func(cols *RedPacketHistoryColumns) *options.InsertOneOptions
type RedPacketHistoryInsertManyOptionsFunc func(cols *RedPacketHistoryColumns) *options.InsertManyOptions
type RedPacketHistory struct {
Columns *RedPacketHistoryColumns
Database *mongo.Database
Collection *mongo.Collection
}
type RedPacketHistoryColumns struct {
Platform string // 平台
ID string
Cid string // 红包活动id
Snid string // 玩家id
Ts string // 时间戳
ItemId string // 道具id
ItemNum string // 道具数量
}
var redPacketHistoryColumns = &RedPacketHistoryColumns{
Platform: "-", // 平台
ID: "_id",
Cid: "cid", // 红包活动id
Snid: "snid", // 玩家id
Ts: "ts", // 时间戳
ItemId: "itemid", // 道具id
ItemNum: "itemnum",// 道具数量
}
func NewRedPacketHistory() *RedPacketHistory {
return &RedPacketHistory{
Columns: redPacketHistoryColumns,
}
}
// Count returns the number of documents in the collection.
func (dao *RedPacketHistory) Count(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryCountOptionsFunc) (int64, error) {
var (
opts *options.CountOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.CountDocuments(ctx, filter, opts)
}
// Aggregate executes an aggregate command against the collection and returns a cursor over the resulting documents.
func (dao *RedPacketHistory) Aggregate(ctx context.Context, pipelineFunc RedPacketHistoryPipelineFunc, optionsFunc ...RedPacketHistoryAggregateOptionsFunc) (*mongo.Cursor, error) {
var (
opts *options.AggregateOptions
pipeline = pipelineFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.Aggregate(ctx, pipeline, opts)
}
// InsertOne executes an insert command to insert a single document into the collection.
func (dao *RedPacketHistory) InsertOne(ctx context.Context, model *modelpkg.RedPacketHistory, optionsFunc ...RedPacketHistoryInsertOneOptionsFunc) (*mongo.InsertOneResult, error) {
if model == nil {
return nil, errors.New("model is nil")
}
if err := dao.autofill(ctx, model); err != nil {
return nil, err
}
var opts *options.InsertOneOptions
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.InsertOne(ctx, model, opts)
}
// InsertMany executes an insert command to insert multiple documents into the collection.
func (dao *RedPacketHistory) InsertMany(ctx context.Context, models []*modelpkg.RedPacketHistory, optionsFunc ...RedPacketHistoryInsertManyOptionsFunc) (*mongo.InsertManyResult, error) {
if len(models) == 0 {
return nil, errors.New("models is empty")
}
documents := make([]interface{}, 0, len(models))
for i := range models {
model := models[i]
if err := dao.autofill(ctx, model); err != nil {
return nil, err
}
documents = append(documents, model)
}
var opts *options.InsertManyOptions
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.InsertMany(ctx, documents, opts)
}
// UpdateOne executes an update command to update at most one document in the collection.
func (dao *RedPacketHistory) UpdateOne(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, updateFunc RedPacketHistoryUpdateFunc, optionsFunc ...RedPacketHistoryUpdateOptionsFunc) (*mongo.UpdateResult, error) {
var (
opts *options.UpdateOptions
filter = filterFunc(dao.Columns)
update = updateFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.UpdateOne(ctx, filter, update, opts)
}
// UpdateOneByID executes an update command to update at most one document in the collection.
func (dao *RedPacketHistory) UpdateOneByID(ctx context.Context, id string, updateFunc RedPacketHistoryUpdateFunc, optionsFunc ...RedPacketHistoryUpdateOptionsFunc) (*mongo.UpdateResult, error) {
objectID, err := primitive.ObjectIDFromHex(id)
if err != nil {
return nil, err
}
return dao.UpdateOne(ctx, func(cols *RedPacketHistoryColumns) interface{} {
return bson.M{"_id": objectID}
}, updateFunc, optionsFunc...)
}
// UpdateMany executes an update command to update documents in the collection.
func (dao *RedPacketHistory) UpdateMany(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, updateFunc RedPacketHistoryUpdateFunc, optionsFunc ...RedPacketHistoryUpdateOptionsFunc) (*mongo.UpdateResult, error) {
var (
opts *options.UpdateOptions
filter = filterFunc(dao.Columns)
update = updateFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.UpdateMany(ctx, filter, update, opts)
}
// FindOne executes a find command and returns a model for one document in the collection.
func (dao *RedPacketHistory) FindOne(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryFindOneOptionsFunc) (*modelpkg.RedPacketHistory, error) {
var (
opts *options.FindOneOptions
model = &modelpkg.RedPacketHistory{}
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
err := dao.Collection.FindOne(ctx, filter, opts).Decode(model)
if err != nil {
if err == mongo.ErrNoDocuments {
return nil, nil
}
return nil, err
}
return model, nil
}
// FindOneByID executes a find command and returns a model for one document in the collection.
func (dao *RedPacketHistory) FindOneByID(ctx context.Context, id string, optionsFunc ...RedPacketHistoryFindOneOptionsFunc) (*modelpkg.RedPacketHistory, error) {
objectID, err := primitive.ObjectIDFromHex(id)
if err != nil {
return nil, err
}
return dao.FindOne(ctx, func(cols *RedPacketHistoryColumns) interface{} {
return bson.M{"_id": objectID}
}, optionsFunc...)
}
// FindMany executes a find command and returns many models the matching documents in the collection.
func (dao *RedPacketHistory) FindMany(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryFindManyOptionsFunc) ([]*modelpkg.RedPacketHistory, error) {
var (
opts *options.FindOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
cur, err := dao.Collection.Find(ctx, filter, opts)
if err != nil {
return nil, err
}
models := make([]*modelpkg.RedPacketHistory, 0)
if err = cur.All(ctx, &models); err != nil {
return nil, err
}
return models, nil
}
// DeleteOne executes a delete command to delete at most one document from the collection.
func (dao *RedPacketHistory) DeleteOne(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryDeleteOptionsFunc) (*mongo.DeleteResult, error) {
var (
opts *options.DeleteOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.DeleteOne(ctx, filter, opts)
}
// DeleteOneByID executes a delete command to delete at most one document from the collection.
func (dao *RedPacketHistory) DeleteOneByID(ctx context.Context, id string, optionsFunc ...RedPacketHistoryDeleteOptionsFunc) (*mongo.DeleteResult, error) {
objectID, err := primitive.ObjectIDFromHex(id)
if err != nil {
return nil, err
}
return dao.DeleteOne(ctx, func(cols *RedPacketHistoryColumns) interface{} {
return bson.M{"_id": objectID}
}, optionsFunc...)
}
// DeleteMany executes a delete command to delete documents from the collection.
func (dao *RedPacketHistory) DeleteMany(ctx context.Context, filterFunc RedPacketHistoryFilterFunc, optionsFunc ...RedPacketHistoryDeleteOptionsFunc) (*mongo.DeleteResult, error) {
var (
opts *options.DeleteOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.DeleteMany(ctx, filter, opts)
}
// autofill when inserting data
func (dao *RedPacketHistory) autofill(ctx context.Context, model *modelpkg.RedPacketHistory) error {
if model.ID.IsZero() {
model.ID = primitive.NewObjectID()
}
return nil
}

View File

@ -1,95 +0,0 @@
package dao
import (
"context"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/mongox"
"mongo.games.com/game/dao/internal"
modelpkg "mongo.games.com/game/model"
)
var (
_ = context.Background()
_ = logger.Logger
_ = bson.M{}
_ = mongo.Database{}
)
type RedPacketHistoryColumns = internal.RedPacketHistoryColumns
type RedPacketHistory struct {
*internal.RedPacketHistory
}
func GetRedPacketHistory(key string) (*RedPacketHistory, error) {
return mongox.GetDao(key, NewRedPacketHistory)
}
func NewRedPacketHistory(db *mongo.Database, c *mongo.Collection) (*RedPacketHistory, any) {
if db == nil || c == nil {
return &RedPacketHistory{}, &modelpkg.RedPacketHistory{}
}
v := internal.NewRedPacketHistory()
v.Database = db
v.Collection = c
c.Indexes().CreateMany(context.Background(), []mongo.IndexModel{
{
Keys: bson.D{{"snid", 1}, {"cid", 1}, {"ts", -1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
{
Keys: bson.D{{"snid", 1}, {"ts", -1}},
Options: options.Index().SetBackground(true).SetSparse(true),
},
{
Keys: bson.D{{"cid", 1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
{
Keys: bson.D{{"ts", 1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
{
Keys: bson.D{{"itemid", -1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
{
Keys: bson.D{{"itemnum", -1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
})
return &RedPacketHistory{RedPacketHistory: v}, &modelpkg.RedPacketHistory{}
}
func (r *RedPacketHistory) GetHistory(snid int32, cid int64) ([]*modelpkg.RedPacketHistory, error) {
res, err := r.FindMany(context.Background(), func(cols *internal.RedPacketHistoryColumns) interface{} {
if cid > 0 {
return bson.M{cols.Snid: snid, cols.Cid: cid}
}
return bson.M{cols.Snid: snid}
}, func(cols *internal.RedPacketHistoryColumns) *options.FindOptions {
return options.Find().SetSort(bson.D{{cols.Ts, -1}}).SetLimit(30)
})
if err != nil {
logger.Logger.Error("RedPacketHistory.GetHistory ", err)
return nil, err
}
return res, err
}
func (r *RedPacketHistory) Save(history *modelpkg.RedPacketHistory) error {
_, err := r.InsertOne(context.Background(), history)
if err != nil {
logger.Logger.Error("RedPacketHistory.Insert ", err)
return err
}
return nil
}

View File

@ -1,11 +0,0 @@
 в† ЁГ
ив†
Р†
Вв†  Ќ
Ь ±к ђN
о±к Р†
ъўЌ  Ќ
иб† Р†
а† °к
 d»к ЂВЧ/

View File

@ -1,76 +0,0 @@
{
"Arr": [
{
"Id": 1,
"Rate": 4000,
"Gain": {
"50018": 5
},
"Value": 25000
},
{
"Id": 2,
"Rate": 1000,
"Gain": {
"50018": 10
},
"Value": 50000
},
{
"Id": 3,
"Rate": 450,
"Gain": {
"50018": 20
},
"Value": 100000
},
{
"Id": 4,
"Rate": 1500,
"Gain": {
"30001": 1
},
"Value": 10000
},
{
"Id": 5,
"Rate": 750,
"Gain": {
"30001": 5
},
"Value": 50000
},
{
"Id": 6,
"Rate": 250,
"Gain": {
"100002": 1
},
"Value": 100000
},
{
"Id": 7,
"Rate": 1000,
"Gain": {
"50017": 1
},
"Value": 50000
},
{
"Id": 8,
"Rate": 950,
"Gain": {
"50016": 1
},
"Value": 30000
},
{
"Id": 9,
"Rate": 100,
"Gain": {
"30011": 1
},
"Value": 100000000
}
]
}

Binary file not shown.

View File

@ -4520,7 +4520,7 @@
{ {
"Id": 2110001, "Id": 2110001,
"Name": "十三张四人", "Name": "十三张四人",
"Title": "新手场", "Title": "1",
"GameId": 211, "GameId": 211,
"GameRule": 21100, "GameRule": 21100,
"GameType": 2, "GameType": 2,
@ -4574,7 +4574,7 @@
{ {
"Id": 2110002, "Id": 2110002,
"Name": "十三张四人", "Name": "十三张四人",
"Title": "中级场", "Title": "2",
"GameId": 211, "GameId": 211,
"GameRule": 21100, "GameRule": 21100,
"GameType": 2, "GameType": 2,
@ -4628,7 +4628,7 @@
{ {
"Id": 2110003, "Id": 2110003,
"Name": "十三张四人", "Name": "十三张四人",
"Title": "高级场", "Title": "3",
"GameId": 211, "GameId": 211,
"GameRule": 21100, "GameRule": 21100,
"GameType": 2, "GameType": 2,
@ -4682,7 +4682,7 @@
{ {
"Id": 2110004, "Id": 2110004,
"Name": "十三张四人", "Name": "十三张四人",
"Title": "富豪场", "Title": "4",
"GameId": 211, "GameId": 211,
"GameRule": 21100, "GameRule": 21100,
"GameType": 2, "GameType": 2,
@ -4736,7 +4736,7 @@
{ {
"Id": 2110005, "Id": 2110005,
"Name": "十三张四人", "Name": "十三张四人",
"Title": "至尊场", "Title": "5",
"GameId": 211, "GameId": 211,
"GameRule": 21100, "GameRule": 21100,
"GameType": 2, "GameType": 2,
@ -4790,7 +4790,7 @@
{ {
"Id": 2110006, "Id": 2110006,
"Name": "十三张四人", "Name": "十三张四人",
"Title": "大神场", "Title": "6",
"GameId": 211, "GameId": 211,
"GameRule": 21100, "GameRule": 21100,
"GameType": 2, "GameType": 2,
@ -4843,7 +4843,7 @@
{ {
"Id": 2120001, "Id": 2120001,
"Name": "十三张八人", "Name": "十三张八人",
"Title": "新手场", "Title": "1",
"GameId": 212, "GameId": 212,
"GameRule": 21200, "GameRule": 21200,
"GameType": 2, "GameType": 2,
@ -4897,7 +4897,7 @@
{ {
"Id": 2120002, "Id": 2120002,
"Name": "十三张八人", "Name": "十三张八人",
"Title": "中级场", "Title": "2",
"GameId": 212, "GameId": 212,
"GameRule": 21200, "GameRule": 21200,
"GameType": 2, "GameType": 2,
@ -4951,7 +4951,7 @@
{ {
"Id": 2120003, "Id": 2120003,
"Name": "十三张八人", "Name": "十三张八人",
"Title": "高级场", "Title": "3",
"GameId": 212, "GameId": 212,
"GameRule": 21200, "GameRule": 21200,
"GameType": 2, "GameType": 2,
@ -5005,7 +5005,7 @@
{ {
"Id": 2120004, "Id": 2120004,
"Name": "十三张八人", "Name": "十三张八人",
"Title": "富豪场", "Title": "4",
"GameId": 212, "GameId": 212,
"GameRule": 21200, "GameRule": 21200,
"GameType": 2, "GameType": 2,
@ -5059,7 +5059,7 @@
{ {
"Id": 2120005, "Id": 2120005,
"Name": "十三张八人", "Name": "十三张八人",
"Title": "至尊场", "Title": "5",
"GameId": 212, "GameId": 212,
"GameRule": 21200, "GameRule": 21200,
"GameType": 2, "GameType": 2,
@ -5113,7 +5113,7 @@
{ {
"Id": 2120006, "Id": 2120006,
"Name": "十三张八人", "Name": "十三张八人",
"Title": "大神场", "Title": "6",
"GameId": 212, "GameId": 212,
"GameRule": 21200, "GameRule": 21200,
"GameType": 2, "GameType": 2,
@ -7019,41 +7019,6 @@
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100,
"GameName": "娃娃机" "GameName": "娃娃机"
},
{
"Id": 6090001,
"Name": "推币机",
"Title": "推币机",
"GameId": 609,
"GameRule": 60900,
"GameType": 5,
"SceneType": 1,
"Desc": "0",
"ShowType": 3,
"ShowId": 60900,
"Turn": 60900,
"BetDec": "0",
"Ai": [
0
],
"OtherIntParams": [
5000,
10000,
15000
],
"RobotNumRng": [
0
],
"SameIpLimit": 1,
"GameDif": "609",
"GameClass": 2,
"PlatformName": "越南棋牌",
"MaxBetCoin": [
0
],
"PlayerWaterRate": 100,
"BetWaterRate": 100,
"GameName": "推币机"
} }
] ]
} }

Binary file not shown.

View File

@ -7300,228 +7300,6 @@
"CompositionMax": 9999, "CompositionMax": 9999,
"Location": "0", "Location": "0",
"Describe": "可在年兽活动中击退年兽,获得奖品" "Describe": "可在年兽活动中击退年兽,获得奖品"
},
{
"Id": 50016,
"Name": "梅花",
"ShowLocation": [
0,
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 29,
"Effect0": [
0,
0,
0,
0,
0,
0
],
"Effect": [
0,
0,
0,
0,
0,
0
],
"SaleType": 1,
"SaleGold": 5000,
"Composition": 1,
"CompositionMax": 9999,
"Location": "0",
"Describe": "可在推币机活动兑换道具"
},
{
"Id": 50017,
"Name": "大金币",
"ShowLocation": [
0,
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 29,
"Effect0": [
0,
0,
0,
0,
0,
0
],
"Effect": [
0,
0,
0,
0,
0,
0
],
"SaleType": 1,
"SaleGold": 5000,
"Composition": 1,
"CompositionMax": 9999,
"Location": "0",
"Describe": "推币机活动中掉落的3D道具",
"Num": 50000
},
{
"Id": 50018,
"Name": "3D金币5K",
"ShowLocation": [
0,
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 29,
"Effect0": [
0,
0,
0,
0,
0,
0
],
"Effect": [
0,
0,
0,
0,
0,
0
],
"SaleType": 1,
"SaleGold": 5000,
"Composition": 1,
"CompositionMax": 9999,
"Location": "0",
"Describe": "推币机活动中掉落的3D道具",
"Num": 5000
},
{
"Id": 50019,
"Name": "3D金币10K",
"ShowLocation": [
0,
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 29,
"Effect0": [
0,
0,
0,
0,
0,
0
],
"Effect": [
0,
0,
0,
0,
0,
0
],
"SaleType": 1,
"SaleGold": 5000,
"Composition": 1,
"CompositionMax": 9999,
"Location": "0",
"Describe": "推币机活动中掉落的3D道具",
"Num": 10000
},
{
"Id": 50020,
"Name": "3D金币15K",
"ShowLocation": [
0,
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 29,
"Effect0": [
0,
0,
0,
0,
0,
0
],
"Effect": [
0,
0,
0,
0,
0,
0
],
"SaleType": 1,
"SaleGold": 5000,
"Composition": 1,
"CompositionMax": 9999,
"Location": "0",
"Describe": "推币机活动中掉落的3D道具",
"Num": 15000
},
{
"Id": 50021,
"Name": "震动效果",
"ShowLocation": [
0,
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 29,
"Effect0": [
0,
0,
0,
0,
0,
0
],
"Effect": [
0,
0,
0,
0,
0,
0
],
"Location": "0",
"Describe": "推币机震动次数"
} }
] ]
} }

Binary file not shown.

View File

@ -267,12 +267,6 @@
"Name": "娃娃机", "Name": "娃娃机",
"GameId": 608, "GameId": 608,
"GameDif": "608" "GameDif": "608"
},
{
"Id": 60900,
"Name": "推币机",
"GameId": 609,
"GameDif": "609"
} }
] ]
} }

View File

@ -4,10 +4,10 @@ SignReward50014,10;100001,100000" 签到奖励
. SignExcReward50015,1"签到额外奖励 . SignExcReward50015,1"签到额外奖励
=SignExcRewardMax2"$签到额外奖励赠送次数上限 =SignExcRewardMax2"$签到额外奖励赠送次数上限
9SignExcRewardProp30"签到额外奖励赠送概率 9SignExcRewardProp30"签到额外奖励赠送概率
BossExp6800000" BossExp6000000"
BOSS血量 BOSS血量
: 9
BossReward100001,1000000;100002,10"BOSS击杀奖励 BossReward100001,100000;100002,10"BOSS击杀奖励
/ LuckyRankNeed10000"幸运榜上榜条件 / LuckyRankNeed10000"幸运榜上榜条件
/RankNeed7000000"总伤害榜上榜条件 /RankNeed7000000"总伤害榜上榜条件
> LittleHurtGold > LittleHurtGold
@ -26,4 +26,4 @@ GiftShopID991001,991002,991003"礼包ID
@ GiftShopLimit3,0,0"&礼包每日限购次数,0为不限购 @ GiftShopLimit3,0,0"&礼包每日限购次数,0为不限购
4 BossExcLimit30"年兽死亡额外掉落要求 4 BossExcLimit30"年兽死亡额外掉落要求
" BuffCount1"Buff生效次数 " BuffCount1"Buff生效次数
oExchangeDiamond 30,5,1500000"L单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量 oExchangeDiamond 30,5,1000000"L单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量

View File

@ -27,13 +27,13 @@
{ {
"Id": 5, "Id": 5,
"PorpName": "BossExp", "PorpName": "BossExp",
"PropValue": "6800000", "PropValue": "6000000",
"PropDec": "BOSS血量" "PropDec": "BOSS血量"
}, },
{ {
"Id": 6, "Id": 6,
"PorpName": "BossReward", "PorpName": "BossReward",
"PropValue": "100001,1000000;100002,10", "PropValue": "100001,100000;100002,10",
"PropDec": "BOSS击杀奖励" "PropDec": "BOSS击杀奖励"
}, },
{ {
@ -123,7 +123,7 @@
{ {
"Id": 21, "Id": 21,
"PorpName": "ExchangeDiamond", "PorpName": "ExchangeDiamond",
"PropValue": "30,5,1500000", "PropValue": "30,5,1000000",
"PropDec": "单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量" "PropDec": "单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量"
} }
] ]

View File

@ -1,84 +0,0 @@
"¹ê"¡<>"¢<>d
"¡<>"¢<>d"¸ê
"¡<>"¢<>d"¸ê
"¡<>"¢<>d
"¡<>"¢<>c
"¡<>"¢<>b
"¡<>"¢<>a
"¡<>"¢<>`
  "¡<>"¢<>_


"¡<>"¢<>^
  "¡<>"¢<>]
  "¢<>\"¡<>
  "¡<>"¢<>[
"¢<>Z"¡<>
"¡<>"¢<>Y
"¡<>"¢<>X
"¡<>"¢<>W
"¡<>"¢<>V
"¡<>"¢<>U
"¡<>"¢<>T
"¡<>"¢<>S
"¡<>"¢<>R
"¡<>"¢<>Q
"¡<>"¢<>P
"¡<>"¢<>O
"¡<>"¢<>N
"¢<>M"¡<>
"¢<>L"¡<>
"¡<>"¢<>K
"¡<>"¢<>J
"¡<>"¢<>I
  "¢<>H"¡<>
!!"¡<>"¢<>G
"""¡<>"¢<>F
##"¡<>"¢<>E
$$"¡<>"¢<>D
%%"¡<>"¢<>C
&&"¡<>"¢<>B
''"¡<>"¢<>A
(("¡<>"¢<>@
)"¡<>"¢<>d"¹ê
*"¡<>"¢<>d"¸ê
+"¡<>"¢<>d"¸ê
,"¡<>"¢<>d
-"¡<>"¢<>c
."¡<>"¢<>b
/"¢<>a"¡<>
0"¡<>"¢<>`
1 "¢<>_"¡<>
2
"¡<>"¢<>^
3 "¡<>"¢<>]
4 "¡<>"¢<>\
5 "¡<>"¢<>[
6"¢<>Z"¡<>
7"¡<>"¢<>Y
8"¢<>X"¡<>
9"¡<>"¢<>W
:"¡<>"¢<>V
;"¡<>"¢<>U
<"¡<>"¢<>T
="¡<>"¢<>S
>"¡<>"¢<>R
?"¢<>Q"¡<>
@"¡<>"¢<>P
A"¡<>"¢<>O
B"¡<>"¢<>N
C"¡<>"¢<>M
D"¡<>"¢<>L
E"¡<>"¢<>K
F"¡<>"¢<>J
G"¡<>"¢<>I
H "¡<>"¢<>H
I!"¢<>G"¡<>
J""¡<>"¢<>F
K#"¡<>"¢<>E
L$"¡<>"¢<>D
M%"¡<>"¢<>C
N&"¡<>"¢<>B
O'"¡<>"¢<>A
P("¡<>"¢<>@

Binary file not shown.

View File

@ -64,70 +64,12 @@
"100002": 500 "100002": 500
} }
}, },
{ {},
"Id": 5, {},
"Group": 2, {},
"Cost": { {},
"50016": 30 {},
}, {},
"Gain": {
"40002": 1
},
"Times": 5
},
{
"Id": 6,
"Group": 2,
"Cost": {
"50016": 10
},
"Gain": {
"100002": 3
},
"Times": 10
},
{
"Id": 7,
"Group": 2,
"Cost": {
"50016": 5
},
"Gain": {
"30001": 15
},
"Times": 15
},
{
"Id": 8,
"Group": 2,
"Cost": {
"50016": 1
},
"Gain": {
"20003": 1
},
"Times": 20
},
{
"Id": 9,
"Group": 2,
"Cost": {
"50016": 1
},
"Gain": {
"100001": 30000
}
},
{
"Id": 10,
"Group": 2,
"Cost": {
"50016": 1
},
"Gain": {
"50021": 1
}
},
{}, {},
{}, {},
{}, {},

Binary file not shown.

View File

@ -1245,8 +1245,7 @@
"TargetTimes": 1, "TargetTimes": 1,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50001": 5, "50014": 10
"50014": 1
} }
}, },
{ {
@ -1259,7 +1258,6 @@
"TargetTimes": 3600, "TargetTimes": 3600,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 100000,
"50014": 10 "50014": 10
} }
}, },
@ -1273,8 +1271,7 @@
"TargetTimes": 1, "TargetTimes": 1,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50001": 5, "50014": 10
"50014": 5
} }
}, },
{ {
@ -1287,8 +1284,7 @@
"TargetTimes": 1, "TargetTimes": 1,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100002": 5, "50014": 10
"50014": 5
}, },
"GameType": 1 "GameType": 1
}, },
@ -1302,8 +1298,7 @@
"TargetTimes": 10, "TargetTimes": 10,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 30000, "50014": 10
"50014": 5
}, },
"GameType": 2 "GameType": 2
}, },
@ -1317,7 +1312,7 @@
"TargetTimes": 1000000, "TargetTimes": 1000000,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50014": 5 "50014": 10
} }
}, },
{ {
@ -1330,7 +1325,7 @@
"TargetTimes": 100, "TargetTimes": 100,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50014": 20 "50014": 10
} }
}, },
{ {
@ -1356,7 +1351,7 @@
"TargetTimes": 10000000, "TargetTimes": 10000000,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50014": 15 "50014": 10
} }
}, },
{ {
@ -1369,7 +1364,7 @@
"TargetTimes": 20000000, "TargetTimes": 20000000,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50014": 20 "50014": 10
} }
}, },
{ {
@ -1395,7 +1390,7 @@
"TargetTimes": 500, "TargetTimes": 500,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 5 "50014": 10
} }
}, },
{ {
@ -1408,7 +1403,7 @@
"TargetTimes": 199, "TargetTimes": 199,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 3 "50015": 10
} }
}, },
{ {
@ -1421,7 +1416,7 @@
"TargetTimes": 1, "TargetTimes": 1,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50014": 5 "50015": 10
} }
}, },
{ {
@ -1434,7 +1429,7 @@
"TargetTimes": 1000000, "TargetTimes": 1000000,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 500000 "50015": 10
} }
}, },
{ {
@ -1447,7 +1442,7 @@
"TargetTimes": 10000000, "TargetTimes": 10000000,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100002": 5 "50015": 10
} }
}, },
{ {
@ -1460,8 +1455,7 @@
"TargetTimes": 999, "TargetTimes": 999,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 1000000, "50015": 10
"50015": 5
} }
}, },
{ {
@ -1474,7 +1468,6 @@
"TargetTimes": 1999, "TargetTimes": 1999,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 10000000,
"50015": 10 "50015": 10
} }
}, },
@ -1488,8 +1481,7 @@
"TargetTimes": 5999, "TargetTimes": 5999,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 30000000, "50014": 10
"50015": 20
} }
}, },
{ {
@ -1502,8 +1494,7 @@
"TargetTimes": 9999, "TargetTimes": 9999,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 50000000, "50014": 10
"50015": 45
} }
}, },
{ {
@ -1516,72 +1507,72 @@
"TargetTimes": 1, "TargetTimes": 1,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 2 "50014": 10
} }
}, },
{ {
"Id": 13022, "Id": 13022,
"Order": 22, "Order": 22,
"Name": "年兽活动", "Name": "年兽活动",
"Des": "成功击杀2只年兽",
"ActivityType": 9,
"TaskType": 33,
"TargetTimes": 2,
"FinishTimes": 1,
"Award": {
"50014": 10
}
},
{
"Id": 13023,
"Order": 23,
"Name": "年兽活动",
"Des": "成功击杀3只年兽", "Des": "成功击杀3只年兽",
"ActivityType": 9, "ActivityType": 9,
"TaskType": 33, "TaskType": 33,
"TargetTimes": 3, "TargetTimes": 3,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 5 "50014": 10
}
},
{
"Id": 13023,
"Order": 23,
"Name": "年兽活动",
"Des": "成功击杀6只年兽",
"ActivityType": 9,
"TaskType": 33,
"TargetTimes": 6,
"FinishTimes": 1,
"Award": {
"50015": 10
} }
}, },
{ {
"Id": 13024, "Id": 13024,
"Order": 24, "Order": 24,
"Name": "年兽活动", "Name": "年兽活动",
"Des": "成功击杀9只年兽", "Des": "成功击杀5只年兽",
"ActivityType": 9, "ActivityType": 9,
"TaskType": 33, "TaskType": 33,
"TargetTimes": 9, "TargetTimes": 5,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 15 "50014": 10
} }
}, },
{ {
"Id": 13025, "Id": 13025,
"Order": 25, "Order": 25,
"Name": "年兽活动", "Name": "年兽活动",
"Des": "成功击杀12只年兽", "Des": "成功击杀8只年兽",
"ActivityType": 9, "ActivityType": 9,
"TaskType": 33, "TaskType": 33,
"TargetTimes": 12, "TargetTimes": 8,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 20 "50014": 10
} }
}, },
{ {
"Id": 13026, "Id": 13026,
"Order": 26, "Order": 26,
"Name": "年兽活动", "Name": "年兽活动",
"Des": "成功击杀20只年兽", "Des": "成功击杀10只年兽",
"ActivityType": 9, "ActivityType": 9,
"TaskType": 33, "TaskType": 33,
"TargetTimes": 20, "TargetTimes": 10,
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"50015": 45 "50014": 10
} }
}, },
{ {
@ -1595,7 +1586,7 @@
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 100000, "100001": 100000,
"50014": 2 "100002": 1
} }
}, },
{ {
@ -1609,7 +1600,7 @@
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 200000, "100001": 200000,
"50015": 2 "100002": 2
} }
}, },
{ {
@ -1623,7 +1614,7 @@
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 300000, "100001": 300000,
"50015": 5 "100002": 3
} }
}, },
{ {
@ -1637,7 +1628,7 @@
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 500000, "100001": 500000,
"50015": 10 "100002": 5
} }
}, },
{ {
@ -1651,7 +1642,7 @@
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 1000000, "100001": 1000000,
"50015": 15 "100002": 10
} }
}, },
{ {
@ -1665,7 +1656,7 @@
"FinishTimes": 1, "FinishTimes": 1,
"Award": { "Award": {
"100001": 2000000, "100001": 2000000,
"50015": 25 "100002": 20
} }
} }
] ]

View File

@ -1,9 +0,0 @@
{
"GameName":"推币机",
"GameId":609,
"GameMode":[0],
"SceneType":[1],
"CanForceStart":true,
"MinPlayerCnt":1,
"DefaultPlayerCnt":1
}

View File

@ -3,7 +3,6 @@ package mq
import ( import (
"mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/logger"
"mongo.games.com/game/dao"
"mongo.games.com/game/dbproxy/svc" "mongo.games.com/game/dbproxy/svc"
"mongo.games.com/game/model" "mongo.games.com/game/model"
"mongo.games.com/game/mq" "mongo.games.com/game/mq"
@ -28,28 +27,4 @@ func init() {
return return
}, },
}) })
mq.RegisterHandler(&mq.RegisterHandlerParam{
Name: mq.DBRedPacket,
Data: &model.RedPacketHistory{},
Handler: func(data interface{}) (err error) {
log, ok := data.(*model.RedPacketHistory)
if !ok {
return
}
d, err := dao.GetRedPacketHistory(log.Platform)
if err != nil {
logger.Logger.Errorf("get RedPacketHistory failed: %v", err)
return err
}
err = d.Save(log)
if err != nil {
logger.Logger.Errorf("Save RedPacketHistory failed: %v", err)
return err
}
return nil
},
})
} }

View File

@ -36,9 +36,6 @@ func (svc *FriendUnreadSvc) UpsertFriendUnread(args *model.FriendUnreadByKey, re
if cc == nil { if cc == nil {
return FriendUnreadColError return FriendUnreadColError
} }
if ret == nil {
ret = &model.FriendUnreadRet{}
}
err := cc.Find(bson.M{"snid": args.SnId}).One(&ret.FU) err := cc.Find(bson.M{"snid": args.SnId}).One(&ret.FU)
if err != nil && err != mgo.ErrNotFound { if err != nil && err != mgo.ErrNotFound {
logger.Logger.Error("UpsertFriendUnread Find is err: ", err) logger.Logger.Error("UpsertFriendUnread Find is err: ", err)
@ -79,9 +76,6 @@ func (svc *FriendUnreadSvc) UpdateFriendUnread(args *model.FriendUnreadByKey, re
if cc == nil { if cc == nil {
return FriendUnreadColError return FriendUnreadColError
} }
if ret == nil {
ret = &model.FriendUnreadRet{}
}
err := cc.Find(bson.M{"snid": args.SnId}).One(&ret.FU) err := cc.Find(bson.M{"snid": args.SnId}).One(&ret.FU)
if err != nil && err != mgo.ErrNotFound { if err != nil && err != mgo.ErrNotFound {
logger.Logger.Error("UpdateFriendUnread Find is err: ", err) logger.Logger.Error("UpdateFriendUnread Find is err: ", err)
@ -104,9 +98,6 @@ func (svc *FriendUnreadSvc) QueryFriendUnreadByKey(args *model.FriendUnreadByKey
if fc == nil { if fc == nil {
return FriendUnreadColError return FriendUnreadColError
} }
if ret == nil {
ret = &model.FriendUnreadRet{}
}
err := fc.Find(bson.M{"snid": args.SnId}).One(&ret.FU) err := fc.Find(bson.M{"snid": args.SnId}).One(&ret.FU)
if err != nil && err != mgo.ErrNotFound { if err != nil && err != mgo.ErrNotFound {
logger.Logger.Error("QueryFriendUnreadByKey is err: ", err) logger.Logger.Error("QueryFriendUnreadByKey is err: ", err)

View File

@ -52,20 +52,3 @@ func (r *RedPacketService) UpdateAll(req *model.UpdateRedPacketAllReq, res *bool
return nil return nil
} }
func (r *RedPacketService) GetHistory(req *model.GetRedPacketHistoryReq, res *[]*model.RedPacketHistory) error {
d, err := dao.GetRedPacketHistory(req.Plt)
if err != nil {
return err
}
list, err := d.GetHistory(req.Snid, req.Cid)
if err != nil {
logger.Logger.Errorf("RedPacketService.GetHistory error: %v", err)
return err
}
*res = list
return nil
}

View File

@ -54,10 +54,6 @@ func (svc *FriendSvc) QueryFriendByKey(args *model.FriendByKey, ret *model.Frien
if fc == nil { if fc == nil {
return FriendColError return FriendColError
} }
if ret == nil {
ret = &model.FriendRet{}
ret.Fri = &model.Friend{}
}
err := fc.Find(bson.M{"platform": args.Platform, "snid": args.SnId}).One(&ret.Fri) err := fc.Find(bson.M{"platform": args.Platform, "snid": args.SnId}).One(&ret.Fri)
if err != nil && !errors.Is(err, mgo.ErrNotFound) { if err != nil && !errors.Is(err, mgo.ErrNotFound) {
logger.Logger.Error("QueryFriendByKey is err: ", err) logger.Logger.Error("QueryFriendByKey is err: ", err)

View File

@ -9,7 +9,6 @@ import (
"reflect" "reflect"
"strconv" "strconv"
"strings" "strings"
"sync"
"time" "time"
newMongo "go.mongodb.org/mongo-driver/mongo" newMongo "go.mongodb.org/mongo-driver/mongo"
@ -69,7 +68,6 @@ func PlayerDelBackupDataCollection(plt string) *mongo.Collection {
} }
type PlayerDataSvc struct { type PlayerDataSvc struct {
mu sync.Mutex // 互斥锁
} }
func (svc *PlayerDataSvc) InsertPlayerData(args *model.InsertPlayerDataParam, ret *model.PlayerDataRet) (err error) { func (svc *PlayerDataSvc) InsertPlayerData(args *model.InsertPlayerDataParam, ret *model.PlayerDataRet) (err error) {
@ -325,8 +323,6 @@ func SavePlayerData(pd *model.PlayerData) (err error) {
* 保存玩家的全部信息 * 保存玩家的全部信息
*/ */
func (svc *PlayerDataSvc) SavePlayerData(pd *model.PlayerData, ret *bool) (err error) { func (svc *PlayerDataSvc) SavePlayerData(pd *model.PlayerData, ret *bool) (err error) {
svc.mu.Lock()
defer svc.mu.Unlock()
err = SavePlayerData(pd) err = SavePlayerData(pd)
*ret = err == nil *ret = err == nil
return return

View File

@ -34,7 +34,7 @@ const (
ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置
ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置
ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置
ETCDKEY_Item = "/game/item/" // 道具列表 ETCDKEY_Item = "/game/item" // 道具列表
ETCDKEY_SKin = "/game/skin_config" // 皮肤配置 ETCDKEY_SKin = "/game/skin_config" // 皮肤配置
ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置 ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置
ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录 ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录
@ -53,7 +53,6 @@ const (
ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性 ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性
ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置 ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置
ETCDKEY_NianRankConfig = "/game/activity_nian_rank" //年兽排行榜配置 ETCDKEY_NianRankConfig = "/game/activity_nian_rank" //年兽排行榜配置
KeyRedPacket = "/game/act_redpacket" //红包配置 KeyRedPacket = "/game/act_redpacket" //红包配置
KeyActConsume = "/game/act_consume" //累计消耗活动配置 KeyActConsume = "/game/act_consume" //累计消耗活动配置
KeyActPushCoin = "/game/act_pushcoin" //推金币活动配置
) )

View File

@ -1,11 +0,0 @@
package pushcoin
const (
GameStatePlay = iota
GameStateMax
)
const (
PowerMax = 700000
PowerInit = 400000
)

View File

@ -62,14 +62,6 @@ func (nsa *NpcServerAgent) SyncDBGameFree(roomId int, DBGameFree *server.DB_Game
} }
} }
func (nsa *NpcServerAgent) DestroyScene(sceneId int) {
pack := &server.GRDestroyScene{
SceneId: proto.Int(sceneId),
}
nsa.sendPacket(int(server.SSPacketID_PACKET_GR_DESTROYSCENE), pack)
}
// Invite 邀请机器人 // Invite 邀请机器人
func (nsa *NpcServerAgent) Invite(roomId, cnt int, gameFreeId int32) bool { func (nsa *NpcServerAgent) Invite(roomId, cnt int, gameFreeId int32) bool {
//logger.Logger.Trace("(nsa *NpcServerAgent) Invite", roomId, cnt, isAgent, gameFreeId) //logger.Logger.Trace("(nsa *NpcServerAgent) Invite", roomId, cnt, isAgent, gameFreeId)

View File

@ -908,9 +908,6 @@ func (this *Scene) Destroy(force bool) {
} }
proto.SetDefaults(pack) proto.SetDefaults(pack)
this.SendToWorld(int(server.SSPacketID_PACKET_GW_DESTROYSCENE), pack) this.SendToWorld(int(server.SSPacketID_PACKET_GW_DESTROYSCENE), pack)
NpcServerAgentSingleton.DestroyScene(int(this.SceneId))
logger.Logger.Trace("(this *Scene) Destroy(force bool) isCompleted", isCompleted) logger.Logger.Trace("(this *Scene) Destroy(force bool) isCompleted", isCompleted)
} }

View File

@ -46,6 +46,13 @@ type ScenePolicy interface {
CanAddCoin(s *Scene, p *Player, val int64) bool CanAddCoin(s *Scene, p *Player, val int64) bool
//当前状态能否换桌 //当前状态能否换桌
CanChangeCoinScene(s *Scene, p *Player) bool CanChangeCoinScene(s *Scene, p *Player) bool
//创建场景扩展数据
CreateSceneExData(s *Scene) interface{}
//创建玩家扩展数据
CreatePlayerExData(s *Scene, p *Player) interface{}
//
PacketGameData(s *Scene) interface{}
InterventionGame(s *Scene, data interface{}) interface{}
//通知分场状态 //通知分场状态
NotifyGameState(s *Scene) NotifyGameState(s *Scene)
@ -230,14 +237,18 @@ func (bsp *BaseScenePolicy) OnAudienceDropLine(s *Scene, p *Player) {
} }
} }
} }
func (bsp *BaseScenePolicy) GetSceneState(s *Scene, stateid int) SceneState { return G_BaseSceneState } func (bsp *BaseScenePolicy) GetSceneState(s *Scene, stateid int) SceneState { return G_BaseSceneState }
func (bsp *BaseScenePolicy) IsCompleted(s *Scene) bool { return false } func (bsp *BaseScenePolicy) IsCompleted(s *Scene) bool { return false }
func (bsp *BaseScenePolicy) IsCanForceStart(s *Scene) bool { return false } func (bsp *BaseScenePolicy) IsCanForceStart(s *Scene) bool { return false }
func (bsp *BaseScenePolicy) ForceStart(s *Scene) {} func (bsp *BaseScenePolicy) ForceStart(s *Scene) {}
func (bsp *BaseScenePolicy) CanAddCoin(s *Scene, p *Player, val int64) bool { return true } /*百人牛牛,百人金华多倍结算,且当前是减币的情况下,需要判断*/ func (bsp *BaseScenePolicy) CanAddCoin(s *Scene, p *Player, val int64) bool { return true } /*百人牛牛,百人金华多倍结算,且当前是减币的情况下,需要判断*/
func (bsp *BaseScenePolicy) CanChangeCoinScene(s *Scene, p *Player) bool { return false } func (bsp *BaseScenePolicy) CanChangeCoinScene(s *Scene, p *Player) bool { return false }
func (bsp *BaseScenePolicy) NotifyGameState(s *Scene) {} func (bsp *BaseScenePolicy) CreateSceneExData(s *Scene) interface{} { return false }
func (bsp *BaseScenePolicy) GetJackPotVal(s *Scene) int64 { return 0 } func (bsp *BaseScenePolicy) CreatePlayerExData(s *Scene, p *Player) interface{} { return false }
func (bsp *BaseScenePolicy) PacketGameData(s *Scene) interface{} { return nil }
func (bsp *BaseScenePolicy) InterventionGame(s *Scene, data interface{}) interface{} { return nil }
func (bsp *BaseScenePolicy) NotifyGameState(s *Scene) {}
func (bsp *BaseScenePolicy) GetJackPotVal(s *Scene) int64 { return 0 }
var G_BaseSceneState = &BaseSceneState{} var G_BaseSceneState = &BaseSceneState{}

View File

@ -1,42 +0,0 @@
package thirteen
import (
"mongo.games.com/game/common"
"mongo.games.com/game/gamesrv/base"
"mongo.games.com/game/protocol/pushcoin"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
)
func init() {
common.Register(int(pushcoin.PushCoinPacketID_PACKET_CSPushCoinPlayerOp), &pushcoin.CSPushCoinPlayerOp{}, CSPushCoinPlayerOp)
}
func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerOpHandler Process recv ", data)
if msg, ok := data.(*pushcoin.CSPushCoinPlayerOp); ok {
p := base.PlayerMgrSington.GetPlayer(sid)
if p == nil {
logger.Logger.Warn("CSPlayerOpHandler p == nil")
return nil
}
scene := p.GetScene()
if scene == nil {
logger.Logger.Warn("CSPlayerOpHandler p.scene == nil")
return nil
}
if scene.KeyGameDif != common.GameDifPushCoin {
logger.Logger.Error("CSPlayerOpHandler gameId Error ", scene.GameId)
return nil
}
if !scene.HasPlayer(p) {
return nil
}
sp := scene.GetScenePolicy()
if sp != nil {
sp.OnPlayerOp(scene, p, int(msg.GetOpCode()), msg.GetOpParam())
}
return nil
}
return nil
}

View File

@ -1,25 +0,0 @@
package thirteen
import (
"mongo.games.com/game/gamesrv/base"
)
type GameData struct {
Shake int32 // 震动次数
Refresh int64 // 刷新次数
Power int64 // 能量值
Base int64 // 底注
}
type PlayerEx struct {
*base.Player //玩家信息
*GameData
}
func NewPushCoinPlayerData(p *base.Player, data *GameData) *PlayerEx {
playerEx := &PlayerEx{
Player: p,
GameData: data,
}
return playerEx
}

View File

@ -1,74 +0,0 @@
package thirteen
import (
"mongo.games.com/game/common"
rule "mongo.games.com/game/gamerule/pushcoin"
"mongo.games.com/game/gamesrv/base"
"mongo.games.com/game/protocol/pushcoin"
"mongo.games.com/game/srvdata"
)
type SceneEx struct {
*base.Scene //场景
}
func NewPushCoinSceneData(s *base.Scene) *SceneEx {
sceneEx := &SceneEx{
Scene: s,
}
return sceneEx
}
func (this *SceneEx) CreateRoomInfoPacket(s *base.Scene, p *base.Player) *pushcoin.SCPushCoinRoomInfo {
playerEx, ok := p.ExtraData.(*PlayerEx)
if !ok {
return nil
}
roomInfo := &pushcoin.SCPushCoinRoomInfo{
RoomId: int32(s.GetSceneId()),
GameId: s.GameId,
RoomMode: int32(s.GetSceneMode()),
Params: common.CopySliceInt64ToInt32(s.GetParams()),
State: int32(s.GetSceneState().GetState()),
TimeOut: int32(s.GetSceneState().GetTimeout(s)),
BetList: s.GetDBGameFree().GetOtherIntParams(),
}
player := pushcoin.PushCoinPlayerData{
Name: p.Name,
SnId: p.SnId,
Head: p.Head,
Sex: p.Sex,
Coin: p.Coin,
Flag: int32(p.Flags),
VIP: p.VIP,
RoleId: p.Roles.ModId,
Level: p.Level,
Exp: p.Exp,
ShakeTimes: playerEx.Shake,
BaseCoin: playerEx.Base,
PowerLine: playerEx.Power,
PowerLineMax: rule.PowerMax,
RefreshTimes: playerEx.Refresh,
}
if p.Roles != nil {
player.RoleId = p.Roles.ModId
}
if p.Skin != nil {
player.SkinId = p.Skin.ModId
}
roomInfo.Players = append(roomInfo.Players, &player)
for _, v := range srvdata.PBDB_PropExchangeMgr.Datas.Arr {
if v.GetGroup() == 2 {
roomInfo.ExchangeList = append(roomInfo.ExchangeList, &pushcoin.ExchangeInfo{
Id: v.GetId(),
})
}
}
return roomInfo
}

View File

@ -1,332 +0,0 @@
package thirteen
import (
"encoding/json"
"time"
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/game/common"
rule "mongo.games.com/game/gamerule/pushcoin"
"mongo.games.com/game/gamesrv/base"
"mongo.games.com/game/model"
"mongo.games.com/game/protocol/pushcoin"
)
var PolicySingleton = &Policy{}
type Policy struct {
base.BaseScenePolicy
states [rule.GameStateMax]base.SceneState
}
func (this *Policy) OnStart(s *base.Scene) {
logger.Logger.Trace("(this *PushCoinPolicy) OnStart, sceneId=", s.GetSceneId())
sceneEx := NewPushCoinSceneData(s)
if sceneEx != nil {
s.ExtraData = sceneEx
s.ChangeSceneState(rule.GameStatePlay)
}
}
func (this *Policy) OnStop(s *base.Scene) {
logger.Logger.Trace("(this *Policy) OnStop , sceneId=", s.GetSceneId())
}
func (this *Policy) OnTick(s *base.Scene) {
if s == nil {
return
}
if s.SceneState != nil {
s.SceneState.OnTick(s)
}
}
func (this *Policy) OnPlayerEnter(s *base.Scene, p *base.Player) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.SnId)
sceneEx, ok := s.ExtraData.(*SceneEx)
if !ok {
return
}
data := p.GDatas[s.KeyGamefreeId]
if data == nil {
data = &model.PlayerGameInfo{}
p.GDatas[s.KeyGamefreeId] = data
}
gamedata := &GameData{}
if data.DataEx != nil {
err := json.Unmarshal(data.DataEx, gamedata)
if err != nil {
logger.Logger.Error("OnPlayerEnter, json.Unmarshal error, err=", err)
return
}
} else {
// 底注
baseCoins := s.GetDBGameFree().GetOtherIntParams()
if len(baseCoins) > 0 {
gamedata.Base = baseCoins[0]
} else {
gamedata.Base = 5000
}
gamedata.Power = rule.PowerInit
}
p.ExtraData = NewPushCoinPlayerData(p, gamedata)
//给自己发送房间信息
this.SendRoomInfo(s, p, sceneEx)
s.FirePlayerEvent(p, base.PlayerEventEnter, nil)
}
func (this *Policy) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId)
playerEx, ok := p.ExtraData.(*PlayerEx)
if !ok {
return
}
data := p.GDatas[s.KeyGamefreeId]
if data == nil {
data = &model.PlayerGameInfo{}
p.GDatas[s.KeyGamefreeId] = data
}
b, err := json.Marshal(playerEx.GameData)
if err != nil {
logger.Logger.Error("OnPlayerLeave, json.Marshal error, err=", err)
return
}
data.DataEx = b
s.FirePlayerEvent(p, base.PlayerEventLeave, nil)
}
func (this *Policy) OnPlayerDropLine(s *base.Scene, p *base.Player) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId)
s.FirePlayerEvent(p, base.PlayerEventDropLine, nil)
}
func (this *Policy) OnPlayerRehold(s *base.Scene, p *base.Player) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId)
sceneEx, ok := s.ExtraData.(*SceneEx)
if !ok {
return
}
this.SendRoomInfo(s, p, sceneEx)
s.FirePlayerEvent(p, base.PlayerEventRehold, nil)
}
func (this *Policy) OnPlayerReturn(s *base.Scene, p *base.Player) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId)
sceneEx, ok := s.ExtraData.(*SceneEx)
if !ok {
return
}
this.SendRoomInfo(s, p, sceneEx)
s.FirePlayerEvent(p, base.PlayerEventReturn, nil)
}
func (this *Policy) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool {
if s == nil || p == nil {
return false
}
logger.Logger.Trace("(this *Policy) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params)
if s.SceneState != nil {
p.LastOPTimer = time.Now()
return s.SceneState.OnPlayerOp(s, p, opcode, params)
}
return true
}
func (this *Policy) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params)
if s.SceneState != nil {
s.SceneState.OnPlayerEvent(s, p, evtcode, params)
}
}
func (this *Policy) OnAudienceEnter(s *base.Scene, p *base.Player) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnAudienceEnter, sceneId=", s.GetSceneId(), " player=", p.SnId)
if sceneEx, ok := s.ExtraData.(*SceneEx); ok {
//给自己发送房间信息
this.SendRoomInfo(s, p, sceneEx)
s.FirePlayerEvent(p, base.AudienceEventEnter, nil)
}
}
func (this *Policy) OnAudienceLeave(s *base.Scene, p *base.Player, reason int) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnAudienceLeave, sceneId=", s.GetSceneId(), " player=", p.SnId)
s.FirePlayerEvent(p, base.AudienceEventLeave, nil)
}
func (this *Policy) OnAudienceDropLine(s *base.Scene, p *base.Player) {
if s == nil || p == nil {
return
}
logger.Logger.Trace("(this *Policy) OnAudienceDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId)
s.AudienceLeave(p, common.PlayerLeaveReason_DropLine)
s.FirePlayerEvent(p, base.AudienceEventDropLine, nil)
}
func (this *Policy) OnAudienceSit(s *base.Scene, p *base.Player) {
}
func (this *Policy) IsCompleted(s *base.Scene) bool {
return true
}
func (this *Policy) IsCanForceStart(s *base.Scene) bool {
return true
}
func (this *Policy) ForceStart(s *base.Scene) {
}
func (this *Policy) CanChangeCoinScene(s *base.Scene, p *base.Player) bool {
if s == nil || p == nil {
return false
}
if s.SceneState != nil {
return s.SceneState.CanChangeCoinScene(s, p)
}
return false
}
func (this *Policy) SendRoomInfo(s *base.Scene, p *base.Player, sceneEx *SceneEx) {
pack := sceneEx.CreateRoomInfoPacket(s, p)
p.SendToClient(int(pushcoin.PushCoinPacketID_PACKET_SCPushCoinRoomInfo), pack)
}
//=====================================
// StateGaming 游戏中
//=====================================
type StateGaming struct {
}
func (this *StateGaming) CanChangeCoinScene(s *base.Scene, p *base.Player) bool {
return true
}
func (this *StateGaming) OnLeave(s *base.Scene) {
}
func (this *StateGaming) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) {
}
func (this *StateGaming) GetState() int {
return rule.GameStatePlay
}
func (this *StateGaming) CanChangeTo(s base.SceneState) bool {
return true
}
func (this *StateGaming) GetTimeout(s *base.Scene) int {
if sceneEx, ok := s.GetExtraData().(*SceneEx); ok {
return int(time.Now().Sub(sceneEx.StateStartTime) / time.Second)
}
return 0
}
func (this *StateGaming) OnEnter(s *base.Scene) {
}
func (this *StateGaming) OnTick(s *base.Scene) {
}
func (this *StateGaming) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool {
logger.Logger.Trace("(this *StateGaming) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params)
_, ok := s.ExtraData.(*SceneEx)
if !ok {
return false
}
_, ok = p.ExtraData.(*PlayerEx)
if !ok {
return false
}
pack := &pushcoin.SCPushCoinPlayerOp{
OpRetCode: pushcoin.OpResultCode_OPRC_Error,
OpCode: pushcoin.OpCodes(opcode),
}
switch pushcoin.OpCodes(opcode) {
case pushcoin.OpCodes_OP_Bet:
case pushcoin.OpCodes_OP_Gain:
case pushcoin.OpCodes_OP_Shake:
case pushcoin.OpCodes_OP_Refresh:
case pushcoin.OpCodes_OP_Exchange:
case pushcoin.OpCodes_OP_Draw:
default:
return true
}
p.SendToClient(int(pushcoin.PushCoinPacketID_PACKET_SCPushCoinPlayerOp), pack)
return true
}
func (this *Policy) RegisteSceneState(state base.SceneState) {
if state == nil {
return
}
id := state.GetState()
if id < 0 || id >= rule.GameStateMax {
return
}
this.states[id] = state
}
func (this *Policy) GetSceneState(s *base.Scene, stateid int) base.SceneState {
if stateid >= 0 && stateid < rule.GameStateMax {
return this.states[stateid]
}
return nil
}
func init() {
PolicySingleton.RegisteSceneState(&StateGaming{})
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
base.RegisteScenePolicy(common.GameId_PushCoin, 0, PolicySingleton)
return nil
})
}

View File

@ -1257,7 +1257,7 @@ func (this *SceneEx) CountBilled() {
for _, v := range this.players { for _, v := range this.players {
if v != nil && v.IsGameing() { if v != nil && v.IsGameing() {
if v.totalScore > 0 { if v.totalScore > 0 {
v.gainCoin = int64(float64(v.totalScore*totalLoseScore) / float64(totalWinScore)) v.gainCoin = int64(float64(v.totalScore) * float64(totalLoseScore) / float64(totalWinScore))
} else if v.totalScore < 0 { } else if v.totalScore < 0 {
v.gainCoin = v.totalScore v.gainCoin = v.totalScore
} }
@ -1270,7 +1270,7 @@ func (this *SceneEx) CountBilled() {
if v.totalScore > 0 { if v.totalScore > 0 {
v.gainCoin = v.totalScore v.gainCoin = v.totalScore
} else if v.totalScore < 0 { } else if v.totalScore < 0 {
v.gainCoin = int64(float64(v.totalScore*totalWinScore) / float64(totalLoseScore)) v.gainCoin = int64(float64(v.totalScore) * float64(totalLoseScore) / float64(totalWinScore))
} }
} }
} }

View File

@ -26,7 +26,6 @@ const (
OpCollect = 6 OpCollect = 6
OpNian = 7 OpNian = 7
OpConsume = 8 // 累计消耗活动 OpConsume = 8 // 累计消耗活动
OpPushCoin = 9 // 推金币活动
) )
const ( const (
@ -176,8 +175,6 @@ type AllConfig struct {
*webapi.RedPacketConfig *webapi.RedPacketConfig
// 累计消耗活动配置 // 累计消耗活动配置
*webapi.ConsumeConfig *webapi.ConsumeConfig
// 推金币活动配置
*webapi.PushCoinConfig
} }
type GlobalConfig struct { type GlobalConfig struct {

View File

@ -557,15 +557,6 @@ type RedPacketData struct {
JN int32 // 参与次数 JN int32 // 参与次数
} }
type PushCoinData struct {
Shake int32 // 震动次数
Refresh int64 // 刷新次数
Power int64 // 能量值
Exchange map[int32]int32 // 兑换次数 兑换id:兑换次数
Dram int // 抽奖次数
Items map[int32]int64 // 道具
}
type WelfareData struct { type WelfareData struct {
ReliefFundTimes int32 //救济金领取次数 ReliefFundTimes int32 //救济金领取次数
Sign7 *NewSignData //七日签到 Sign7 *NewSignData //七日签到
@ -584,7 +575,6 @@ type WelfareData struct {
PermitExchange map[int32][]int64 // 赛季通行证兑换次数, 多次的兑换时间 PermitExchange map[int32][]int64 // 赛季通行证兑换次数, 多次的兑换时间
NianData *NianData //年兽活动数据 NianData *NianData //年兽活动数据
RedPacket map[int64]*RedPacketData // 红包活动 活动id:领取次数 RedPacket map[int64]*RedPacketData // 红包活动 活动id:领取次数
PushCoin *PushCoinData // 推币机活动
} }
func NewWelfareData() *WelfareData { func NewWelfareData() *WelfareData {
@ -699,21 +689,19 @@ type WebPlayerDataParam struct {
} }
type NianData struct { type NianData struct {
ActivityStartTime int64 //活动开始时间 ActivityStartTime int64 //活动开始时间
ActivityEndTime int64 //活动结束时间 ActivityEndTime int64 //活动结束时间
BossHp int64 //Boss当前血量 BossHp int64 //Boss当前血量
BuffStatus bool //Buff领取状态 BuffStatus bool //Buff领取状态
BuffCount int64 //Buff剩余生效次数 BuffCount int64 //Buff剩余生效次数
SignAwardTime int64 //签到奖励领取时间 SignAwardTime int64 //签到奖励领取时间
SignOtherAwardCount int32 //签到额外奖励掉落数量 BossDieCount int32 //BOSS死亡次数
SignOtherAwardProp int32 //签到额外奖励掉落概率 LittleHurt int32 //小爆竹次数
BossDieCount int32 //BOSS死亡次数 BigHurt int32 //大爆竹次数
LittleHurt int32 //小爆竹次数 OtherAwardNum map[int32]int32 //奖励掉落数量
BigHurt int32 //大爆竹次数 AttackMaxHp int64 //单次攻击最大血量
OtherAwardNum map[int32]int32 //奖励掉落数量 AttackSumHp int64 //攻击总伤害
AttackMaxHp int64 //单次攻击最大血量 GiftShop map[int32]int32 //购买每日礼包记录
AttackSumHp int64 //攻击总伤害
GiftShop map[int32]int32 //购买每日礼包记录
} }
func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData {

View File

@ -11,9 +11,9 @@ import (
//go:generate mongoctl -model-dir=. -model-names=RedPacket -dao-dir=../dao/ //go:generate mongoctl -model-dir=. -model-names=RedPacket -dao-dir=../dao/
type RedPacket struct { type RedPacket struct {
ID primitive.ObjectID `bson:"_id" gen:"autoFill"` ID primitive.ObjectID `bson:"_id" gen:"autoFill"`
Cid int64 `bson:"cid"` // 红包活动id Cid int64 // 红包活动id
Use map[int64]int64 `bson:"use"` // 已发红包 红包奖励数量:已发个数 Use map[int64]int64 // 已发红包 红包奖励数量:已发个数
Ts int64 `bson:"ts"` // 更新时间戳 Ts int64 // 更新时间戳
} }
func (r *RedPacket) DatabaseName() string { func (r *RedPacket) DatabaseName() string {
@ -75,50 +75,3 @@ type BackRedPacket struct {
ItemNum int64 // 道具数量 ItemNum int64 // 道具数量
Ts int64 // 时间戳 Ts int64 // 时间戳
} }
//go:generate mongoctl -model-dir=. -model-names=RedPacketHistory -dao-dir=../dao/
type RedPacketHistory struct {
Platform string `bson:"-"` // 平台
ID primitive.ObjectID `bson:"_id" gen:"autoFill"`
Cid int64 `bson:"cid"` // 红包活动id
Snid int32 `bson:"snid"` // 玩家id
Ts int64 `bson:"ts"` // 时间戳
ItemId int32 `bson:"itemid"` // 道具id
ItemNum int64 `bson:"itemnum"` // 道具数量
}
func (r *RedPacketHistory) DatabaseName() string {
return "log"
}
func (r *RedPacketHistory) CollectionName() string {
return "log_redpackethistory"
}
type GetRedPacketHistoryReq struct {
Plt string
Snid int32
Cid int64
}
func GetRedPacketHistory(plt string, snid int32, cid int64) (res []*RedPacketHistory, err error) {
if rpcCli == nil {
logger.Logger.Error("model.GetRedPacketHistory rpcCli == nil")
return nil, errors.New("rpc client is nil")
}
req := &GetRedPacketHistoryReq{
Plt: plt,
Snid: snid,
Cid: cid,
}
res = make([]*RedPacketHistory, 0)
err = rpcCli.CallWithTimeout("RedPacketService.GetHistory", req, &res, time.Second*30)
if err != nil {
logger.Logger.Errorf("GetRedPacketHistory error: %v", err)
return nil, err
}
return res, nil
}

View File

@ -46,9 +46,8 @@ const (
DBInvite = "db_invite" DBInvite = "db_invite"
DBAPILog = "db_apilog" DBAPILog = "db_apilog"
DBGiveLog = "db_givelog" DBGiveLog = "db_givelog"
DBLotteryCode = "db_lotterycode" // 玩家抽奖码 DBLotteryCode = "db_lotterycode" // 玩家抽奖码
DBLotteryLog = "db_lotterylog" // 中奖记录 DBLotteryLog = "db_lotterylog" // 中奖记录
DBRedPacket = "db_redpackethistory" // 红包记录
) )
// ranksrv 消息 // ranksrv 消息

View File

@ -0,0 +1,515 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1-devel
// protoc v3.19.4
// source: protocol/activity/actsign.proto
package activity
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
//操作结果
type OpResultCode_ActSign int32
const (
OpResultCode_ActSign_OPRC_Activity_Sign_Sucess OpResultCode_ActSign = 0 //成功
OpResultCode_ActSign_OPRC_Activity_Sign_Error OpResultCode_ActSign = 1 //失败
OpResultCode_ActSign_OPRC_Activity_Sign_Close OpResultCode_ActSign = 1001 //活动未开启
OpResultCode_ActSign_OPRC_Activity_Sign_PayNum_Low OpResultCode_ActSign = 1002 //未达到最低充值金额
OpResultCode_ActSign_OPRC_Activity_Sign_Config_Vip_Error OpResultCode_ActSign = 1003 //vip不匹配
OpResultCode_ActSign_OPRC_Activity_Sign_Config_Day_Error OpResultCode_ActSign = 1004 //签到天数不匹配
OpResultCode_ActSign_OPRC_Activity_Sign_Repeat OpResultCode_ActSign = 1005 //重复签到
)
// Enum value maps for OpResultCode_ActSign.
var (
OpResultCode_ActSign_name = map[int32]string{
0: "OPRC_Activity_Sign_Sucess",
1: "OPRC_Activity_Sign_Error",
1001: "OPRC_Activity_Sign_Close",
1002: "OPRC_Activity_Sign_PayNum_Low",
1003: "OPRC_Activity_Sign_Config_Vip_Error",
1004: "OPRC_Activity_Sign_Config_Day_Error",
1005: "OPRC_Activity_Sign_Repeat",
}
OpResultCode_ActSign_value = map[string]int32{
"OPRC_Activity_Sign_Sucess": 0,
"OPRC_Activity_Sign_Error": 1,
"OPRC_Activity_Sign_Close": 1001,
"OPRC_Activity_Sign_PayNum_Low": 1002,
"OPRC_Activity_Sign_Config_Vip_Error": 1003,
"OPRC_Activity_Sign_Config_Day_Error": 1004,
"OPRC_Activity_Sign_Repeat": 1005,
}
)
func (x OpResultCode_ActSign) Enum() *OpResultCode_ActSign {
p := new(OpResultCode_ActSign)
*p = x
return p
}
func (x OpResultCode_ActSign) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (OpResultCode_ActSign) Descriptor() protoreflect.EnumDescriptor {
return file_protocol_activity_actsign_proto_enumTypes[0].Descriptor()
}
func (OpResultCode_ActSign) Type() protoreflect.EnumType {
return &file_protocol_activity_actsign_proto_enumTypes[0]
}
func (x OpResultCode_ActSign) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use OpResultCode_ActSign.Descriptor instead.
func (OpResultCode_ActSign) EnumDescriptor() ([]byte, []int) {
return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{0}
}
// 签到
type ActSignPacketID int32
const (
ActSignPacketID_PACKET_SignZero ActSignPacketID = 0 // 弃用消息号
ActSignPacketID_PACKET_CSSign ActSignPacketID = 2662 // 签到
ActSignPacketID_PACKET_SCSign ActSignPacketID = 2663
ActSignPacketID_PACKET_CSSignData ActSignPacketID = 2664 // 签到数据
ActSignPacketID_PACKET_SCSignData ActSignPacketID = 2665
)
// Enum value maps for ActSignPacketID.
var (
ActSignPacketID_name = map[int32]string{
0: "PACKET_SignZero",
2662: "PACKET_CSSign",
2663: "PACKET_SCSign",
2664: "PACKET_CSSignData",
2665: "PACKET_SCSignData",
}
ActSignPacketID_value = map[string]int32{
"PACKET_SignZero": 0,
"PACKET_CSSign": 2662,
"PACKET_SCSign": 2663,
"PACKET_CSSignData": 2664,
"PACKET_SCSignData": 2665,
}
)
func (x ActSignPacketID) Enum() *ActSignPacketID {
p := new(ActSignPacketID)
*p = x
return p
}
func (x ActSignPacketID) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ActSignPacketID) Descriptor() protoreflect.EnumDescriptor {
return file_protocol_activity_actsign_proto_enumTypes[1].Descriptor()
}
func (ActSignPacketID) Type() protoreflect.EnumType {
return &file_protocol_activity_actsign_proto_enumTypes[1]
}
func (x ActSignPacketID) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ActSignPacketID.Descriptor instead.
func (ActSignPacketID) EnumDescriptor() ([]byte, []int) {
return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{1}
}
//PACKET_CSSign
type CSSign struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SignIndex int32 `protobuf:"varint,1,opt,name=SignIndex,proto3" json:"SignIndex,omitempty"`
SignType int32 `protobuf:"varint,2,opt,name=SignType,proto3" json:"SignType,omitempty"` //0.普通签到 1.双倍签到
}
func (x *CSSign) Reset() {
*x = CSSign{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_activity_actsign_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSSign) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSSign) ProtoMessage() {}
func (x *CSSign) ProtoReflect() protoreflect.Message {
mi := &file_protocol_activity_actsign_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CSSign.ProtoReflect.Descriptor instead.
func (*CSSign) Descriptor() ([]byte, []int) {
return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{0}
}
func (x *CSSign) GetSignIndex() int32 {
if x != nil {
return x.SignIndex
}
return 0
}
func (x *CSSign) GetSignType() int32 {
if x != nil {
return x.SignType
}
return 0
}
//PACKET_SCSign
type SCSign struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SignIndex int32 `protobuf:"varint,1,opt,name=SignIndex,proto3" json:"SignIndex,omitempty"`
SignType int32 `protobuf:"varint,2,opt,name=SignType,proto3" json:"SignType,omitempty"` //0.普通签到 1.双倍签到
OpRetCode OpResultCode_ActSign `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_ActSign" json:"OpRetCode,omitempty"`
}
func (x *SCSign) Reset() {
*x = SCSign{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_activity_actsign_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCSign) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCSign) ProtoMessage() {}
func (x *SCSign) ProtoReflect() protoreflect.Message {
mi := &file_protocol_activity_actsign_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 SCSign.ProtoReflect.Descriptor instead.
func (*SCSign) Descriptor() ([]byte, []int) {
return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{1}
}
func (x *SCSign) GetSignIndex() int32 {
if x != nil {
return x.SignIndex
}
return 0
}
func (x *SCSign) GetSignType() int32 {
if x != nil {
return x.SignType
}
return 0
}
func (x *SCSign) GetOpRetCode() OpResultCode_ActSign {
if x != nil {
return x.OpRetCode
}
return OpResultCode_ActSign_OPRC_Activity_Sign_Sucess
}
//PACKET_CSSignData
type CSSignData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *CSSignData) Reset() {
*x = CSSignData{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_activity_actsign_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSSignData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSSignData) ProtoMessage() {}
func (x *CSSignData) ProtoReflect() protoreflect.Message {
mi := &file_protocol_activity_actsign_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CSSignData.ProtoReflect.Descriptor instead.
func (*CSSignData) Descriptor() ([]byte, []int) {
return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{2}
}
//PACKET_SCSignData
type SCSignData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SignCount int32 `protobuf:"varint,1,opt,name=SignCount,proto3" json:"SignCount,omitempty"`
TodaySign int32 `protobuf:"varint,2,opt,name=TodaySign,proto3" json:"TodaySign,omitempty"` //0.未签到 1.已签到
}
func (x *SCSignData) Reset() {
*x = SCSignData{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_activity_actsign_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCSignData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCSignData) ProtoMessage() {}
func (x *SCSignData) ProtoReflect() protoreflect.Message {
mi := &file_protocol_activity_actsign_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCSignData.ProtoReflect.Descriptor instead.
func (*SCSignData) Descriptor() ([]byte, []int) {
return file_protocol_activity_actsign_proto_rawDescGZIP(), []int{3}
}
func (x *SCSignData) GetSignCount() int32 {
if x != nil {
return x.SignCount
}
return 0
}
func (x *SCSignData) GetTodaySign() int32 {
if x != nil {
return x.TodaySign
}
return 0
}
var File_protocol_activity_actsign_proto protoreflect.FileDescriptor
var file_protocol_activity_actsign_proto_rawDesc = []byte{
0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76,
0x69, 0x74, 0x79, 0x2f, 0x61, 0x63, 0x74, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x42, 0x0a, 0x06, 0x43,
0x53, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x64,
0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e,
0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22,
0x80, 0x01, 0x0a, 0x06, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69,
0x67, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53,
0x69, 0x67, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x69, 0x67, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69,
0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f,
0x41, 0x63, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f,
0x64, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61,
0x22, 0x48, 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c,
0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09,
0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x2a, 0x8a, 0x02, 0x0a, 0x14, 0x4f,
0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x41, 0x63, 0x74, 0x53,
0x69, 0x67, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69,
0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73,
0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76,
0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01,
0x12, 0x1d, 0x0a, 0x18, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x10, 0xe9, 0x07, 0x12,
0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x50, 0x61, 0x79, 0x4e, 0x75, 0x6d, 0x5f, 0x4c, 0x6f, 0x77,
0x10, 0xea, 0x07, 0x12, 0x28, 0x0a, 0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69,
0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x5f, 0x56, 0x69, 0x70, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xeb, 0x07, 0x12, 0x28, 0x0a,
0x23, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x53,
0x69, 0x67, 0x6e, 0x5f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x44, 0x61, 0x79, 0x5f, 0x45,
0x72, 0x72, 0x6f, 0x72, 0x10, 0xec, 0x07, 0x12, 0x1e, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f,
0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5f, 0x52, 0x65,
0x70, 0x65, 0x61, 0x74, 0x10, 0xed, 0x07, 0x2a, 0x7e, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x53, 0x69,
0x67, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x5a, 0x65, 0x72, 0x6f, 0x10, 0x00, 0x12,
0x12, 0x0a, 0x0d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e,
0x10, 0xe6, 0x14, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x53, 0x69, 0x67, 0x6e, 0x10, 0xe7, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12,
0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e,
0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f,
0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_protocol_activity_actsign_proto_rawDescOnce sync.Once
file_protocol_activity_actsign_proto_rawDescData = file_protocol_activity_actsign_proto_rawDesc
)
func file_protocol_activity_actsign_proto_rawDescGZIP() []byte {
file_protocol_activity_actsign_proto_rawDescOnce.Do(func() {
file_protocol_activity_actsign_proto_rawDescData = protoimpl.X.CompressGZIP(file_protocol_activity_actsign_proto_rawDescData)
})
return file_protocol_activity_actsign_proto_rawDescData
}
var file_protocol_activity_actsign_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_protocol_activity_actsign_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_protocol_activity_actsign_proto_goTypes = []interface{}{
(OpResultCode_ActSign)(0), // 0: activity.OpResultCode_ActSign
(ActSignPacketID)(0), // 1: activity.ActSignPacketID
(*CSSign)(nil), // 2: activity.CSSign
(*SCSign)(nil), // 3: activity.SCSign
(*CSSignData)(nil), // 4: activity.CSSignData
(*SCSignData)(nil), // 5: activity.SCSignData
}
var file_protocol_activity_actsign_proto_depIdxs = []int32{
0, // 0: activity.SCSign.OpRetCode:type_name -> activity.OpResultCode_ActSign
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_protocol_activity_actsign_proto_init() }
func file_protocol_activity_actsign_proto_init() {
if File_protocol_activity_actsign_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_protocol_activity_actsign_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSSign); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_activity_actsign_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCSign); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_activity_actsign_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSSignData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_activity_actsign_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCSignData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_protocol_activity_actsign_proto_rawDesc,
NumEnums: 2,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_protocol_activity_actsign_proto_goTypes,
DependencyIndexes: file_protocol_activity_actsign_proto_depIdxs,
EnumInfos: file_protocol_activity_actsign_proto_enumTypes,
MessageInfos: file_protocol_activity_actsign_proto_msgTypes,
}.Build()
File_protocol_activity_actsign_proto = out.File
file_protocol_activity_actsign_proto_rawDesc = nil
file_protocol_activity_actsign_proto_goTypes = nil
file_protocol_activity_actsign_proto_depIdxs = nil
}

View File

@ -0,0 +1,43 @@
syntax = "proto3";
package activity;
option go_package = "mongo.games.com/game/protocol/activity";
//
enum OpResultCode_ActSign {
OPRC_Activity_Sign_Sucess = 0; //
OPRC_Activity_Sign_Error = 1; //
OPRC_Activity_Sign_Close = 1001; //
OPRC_Activity_Sign_PayNum_Low = 1002; //
OPRC_Activity_Sign_Config_Vip_Error = 1003; //vip不匹配
OPRC_Activity_Sign_Config_Day_Error = 1004; //
OPRC_Activity_Sign_Repeat = 1005; //
}
//
enum ActSignPacketID {
PACKET_SignZero = 0;//
PACKET_CSSign = 2662;//
PACKET_SCSign = 2663;
PACKET_CSSignData = 2664;//
PACKET_SCSignData = 2665;
}
//PACKET_CSSign
message CSSign {
int32 SignIndex = 1;
int32 SignType = 2; //0. 1.
}
//PACKET_SCSign
message SCSign {
int32 SignIndex = 1;
int32 SignType = 2; //0. 1.
OpResultCode_ActSign OpRetCode = 3;
}
//PACKET_CSSignData
message CSSignData {
}
//PACKET_SCSignData
message SCSignData {
int32 SignCount = 1;
int32 TodaySign = 2; //0. 1.
}

View File

@ -192,28 +192,22 @@ type SCNianData struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间
ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间
BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量
BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量
RankData []*NianRankData `protobuf:"bytes,5,rep,name=RankData,proto3" json:"RankData,omitempty"` //排行榜奖励配置 RankData []*NianRankData `protobuf:"bytes,5,rep,name=RankData,proto3" json:"RankData,omitempty"` //排行榜奖励配置
AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间
BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数
BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态
SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取
BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间 BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间
BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间
ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量
ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据 ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据
LuckyRankNeed string `protobuf:"bytes,14,opt,name=LuckyRankNeed,proto3" json:"LuckyRankNeed,omitempty"` //幸运榜上榜条件 LuckyRankNeed string `protobuf:"bytes,14,opt,name=LuckyRankNeed,proto3" json:"LuckyRankNeed,omitempty"` //幸运榜上榜条件
RankNeed string `protobuf:"bytes,15,opt,name=RankNeed,proto3" json:"RankNeed,omitempty"` //总伤害榜上榜条件 RankNeed string `protobuf:"bytes,15,opt,name=RankNeed,proto3" json:"RankNeed,omitempty"` //总伤害榜上榜条件
Switch int32 `protobuf:"varint,16,opt,name=Switch,proto3" json:"Switch,omitempty"` //活动开关 1.开启 2.关闭 Switch int32 `protobuf:"varint,16,opt,name=Switch,proto3" json:"Switch,omitempty"` //活动开关 1.开启 2.关闭
OtherSignAwardCount int32 `protobuf:"varint,17,opt,name=OtherSignAwardCount,proto3" json:"OtherSignAwardCount,omitempty"` //额外奖励领取次数
OtherSignAwardProp int32 `protobuf:"varint,18,opt,name=OtherSignAwardProp,proto3" json:"OtherSignAwardProp,omitempty"` //额外奖励概率
OtherSignAward []*RankAwardData `protobuf:"bytes,19,rep,name=OtherSignAward,proto3" json:"OtherSignAward,omitempty"` //签到额外奖励
OtherSignMaxCount int32 `protobuf:"varint,20,opt,name=OtherSignMaxCount,proto3" json:"OtherSignMaxCount,omitempty"` //额外奖励领取次数上限
AttackMaxHp int64 `protobuf:"varint,21,opt,name=AttackMaxHp,proto3" json:"AttackMaxHp,omitempty"` //单次攻击最大血量
AttackSumHp int64 `protobuf:"varint,22,opt,name=AttackSumHp,proto3" json:"AttackSumHp,omitempty"` //攻击总伤害
} }
func (x *SCNianData) Reset() { func (x *SCNianData) Reset() {
@ -360,48 +354,6 @@ func (x *SCNianData) GetSwitch() int32 {
return 0 return 0
} }
func (x *SCNianData) GetOtherSignAwardCount() int32 {
if x != nil {
return x.OtherSignAwardCount
}
return 0
}
func (x *SCNianData) GetOtherSignAwardProp() int32 {
if x != nil {
return x.OtherSignAwardProp
}
return 0
}
func (x *SCNianData) GetOtherSignAward() []*RankAwardData {
if x != nil {
return x.OtherSignAward
}
return nil
}
func (x *SCNianData) GetOtherSignMaxCount() int32 {
if x != nil {
return x.OtherSignMaxCount
}
return 0
}
func (x *SCNianData) GetAttackMaxHp() int64 {
if x != nil {
return x.AttackMaxHp
}
return 0
}
func (x *SCNianData) GetAttackSumHp() int64 {
if x != nil {
return x.AttackSumHp
}
return 0
}
type ShopData struct { type ShopData struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -782,17 +734,15 @@ type SCNianAttackData struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-小爆竹 2-小爆竹*10 3-大爆竹 TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-小爆竹 2-小爆竹*10 3-大爆竹
BossHp int64 `protobuf:"varint,2,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //BOSS当前血量 BossHp int64 `protobuf:"varint,2,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //BOSS当前血量
Award []*RankAwardData `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` //获得道具 Award []*RankAwardData `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` //获得道具
AttackHp int64 `protobuf:"varint,4,opt,name=AttackHp,proto3" json:"AttackHp,omitempty"` // 攻击伤害 AttackHp int64 `protobuf:"varint,4,opt,name=AttackHp,proto3" json:"AttackHp,omitempty"` // 攻击伤害
IsDie bool `protobuf:"varint,5,opt,name=IsDie,proto3" json:"IsDie,omitempty"` //BOSS是否死亡 IsDie bool `protobuf:"varint,5,opt,name=IsDie,proto3" json:"IsDie,omitempty"` //BOSS是否死亡
DieAward []*RankAwardData `protobuf:"bytes,6,rep,name=DieAward,proto3" json:"DieAward,omitempty"` //BOSS死亡奖励 DieAward []*RankAwardData `protobuf:"bytes,6,rep,name=DieAward,proto3" json:"DieAward,omitempty"` //BOSS死亡奖励
BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数
ExtraDrop []*RankAwardData `protobuf:"bytes,8,rep,name=ExtraDrop,proto3" json:"ExtraDrop,omitempty"` //大爆竹额外掉落 ExtraDrop []*RankAwardData `protobuf:"bytes,8,rep,name=ExtraDrop,proto3" json:"ExtraDrop,omitempty"` //大爆竹额外掉落
FloorReward []*RankAwardData `protobuf:"bytes,9,rep,name=FloorReward,proto3" json:"FloorReward,omitempty"` //保底奖励 FloorReward []*RankAwardData `protobuf:"bytes,9,rep,name=FloorReward,proto3" json:"FloorReward,omitempty"` //保底奖励
AttackMaxHp int64 `protobuf:"varint,10,opt,name=AttackMaxHp,proto3" json:"AttackMaxHp,omitempty"` //单次攻击最大血量
AttackSumHp int64 `protobuf:"varint,11,opt,name=AttackSumHp,proto3" json:"AttackSumHp,omitempty"` //攻击总伤害
} }
func (x *SCNianAttackData) Reset() { func (x *SCNianAttackData) Reset() {
@ -890,20 +840,6 @@ func (x *SCNianAttackData) GetFloorReward() []*RankAwardData {
return nil return nil
} }
func (x *SCNianAttackData) GetAttackMaxHp() int64 {
if x != nil {
return x.AttackMaxHp
}
return 0
}
func (x *SCNianAttackData) GetAttackSumHp() int64 {
if x != nil {
return x.AttackSumHp
}
return 0
}
//领取签到奖励 //领取签到奖励
//PACKET_CSNianSignAward //PACKET_CSNianSignAward
type CSNianSignAward struct { type CSNianSignAward struct {
@ -950,12 +886,9 @@ type SCNianSignAward struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"`
SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励
OtherSignAward []*RankAwardData `protobuf:"bytes,3,rep,name=OtherSignAward,proto3" json:"OtherSignAward,omitempty"` //签到额外奖励 OpRetCode OpResultCode_Nian `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码
OtherSignAwardCount int32 `protobuf:"varint,4,opt,name=OtherSignAwardCount,proto3" json:"OtherSignAwardCount,omitempty"` //额外奖励领取次数
OtherSignAwardProp int32 `protobuf:"varint,5,opt,name=OtherSignAwardProp,proto3" json:"OtherSignAwardProp,omitempty"` //额外奖励概率
OpRetCode OpResultCode_Nian `protobuf:"varint,6,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码
} }
func (x *SCNianSignAward) Reset() { func (x *SCNianSignAward) Reset() {
@ -1004,27 +937,6 @@ func (x *SCNianSignAward) GetSignAward() []*RankAwardData {
return nil return nil
} }
func (x *SCNianSignAward) GetOtherSignAward() []*RankAwardData {
if x != nil {
return x.OtherSignAward
}
return nil
}
func (x *SCNianSignAward) GetOtherSignAwardCount() int32 {
if x != nil {
return x.OtherSignAwardCount
}
return 0
}
func (x *SCNianSignAward) GetOtherSignAwardProp() int32 {
if x != nil {
return x.OtherSignAwardProp
}
return 0
}
func (x *SCNianSignAward) GetOpRetCode() OpResultCode_Nian { func (x *SCNianSignAward) GetOpRetCode() OpResultCode_Nian {
if x != nil { if x != nil {
return x.OpRetCode return x.OpRetCode
@ -1151,7 +1063,7 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{
0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76,
0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08,
0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69,
0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd7, 0x06, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc2, 0x04, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61,
0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
@ -1187,144 +1099,113 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{
0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e,
0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e,
0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20,
0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x4f, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x5c, 0x0a, 0x08, 0x53,
0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49,
0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12,
0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78,
0x72, 0x6f, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d,
0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x3f, 0x0a, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e,
0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61,
0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75,
0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f,
0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2c, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65,
0x0a, 0x11, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e,
0x53, 0x69, 0x67, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52,
0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16,
0x03, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x20,
0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70, 0x18, 0x16, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70,
0x22, 0x5c, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06,
0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68,
0x6f, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e,
0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x0c,
0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a,
0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75,
0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42,
0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65,
0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63,
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43,
0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44,
0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44,
0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69,
0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52,
0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12,
0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77,
0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41,
0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12,
0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e,
0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75,
0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63,
0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xac, 0x03, 0x0a, 0x10, 0x53, 0x43,
0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16,
0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02,
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e,
0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61,
0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e,
0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77,
0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69,
0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61,
0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e,
0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74,
0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d,
0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20,
0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c,
0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06,
0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79,
0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41,
0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70,
0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49,
0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61,
0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76,
0x78, 0x48, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63,
0x6b, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b,
0x53, 0x75, 0x6d, 0x48, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x74, 0x74,
0x61, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x48, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69,
0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0xcc, 0x02, 0x0a, 0x0f,
0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12,
0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72,
0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61,
0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76,
0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74,
0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3f, 0x0a, 0x0e, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61,
0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20,
0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x4f, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69,
0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
0x13, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x4f, 0x74, 0x68, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12,
0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
0x2e, 0x0a, 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a,
0x64, 0x50, 0x72, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x4f, 0x74, 0x68, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b,
0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61,
0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77,
0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69,
0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61,
0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22,
0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61,
0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x72, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67,
0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77,
0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53,
0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09,
0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x39, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41,
0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65,
0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20,
0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10,
0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61,
0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61,
0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69,
0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02,
0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14,
0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45,
0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11,
0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74,
0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11,
0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66,
0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x2a, 0x3e, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14,
0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61,
0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13,
0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x28, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74,
0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74,
0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec,
0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69,
0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18,
0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10,
0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f,
0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a,
0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e,
0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65,
0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -1362,24 +1243,22 @@ var file_protocol_activity_nian_proto_goTypes = []interface{}{
var file_protocol_activity_nian_proto_depIdxs = []int32{ var file_protocol_activity_nian_proto_depIdxs = []int32{
7, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData 7, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData
4, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData 4, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData
9, // 2: activity.SCNianData.OtherSignAward:type_name -> activity.RankAwardData 1, // 2: activity.SCNianBuff.OpRetCode:type_name -> activity.OpResultCode_Nian
1, // 3: activity.SCNianBuff.OpRetCode:type_name -> activity.OpResultCode_Nian 8, // 3: activity.NianRankData.Data:type_name -> activity.NianRankInfo
8, // 4: activity.NianRankData.Data:type_name -> activity.NianRankInfo 9, // 4: activity.NianRankInfo.Award:type_name -> activity.RankAwardData
9, // 5: activity.NianRankInfo.Award:type_name -> activity.RankAwardData 9, // 5: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData
9, // 6: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData 9, // 6: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData
9, // 7: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData 9, // 7: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData
9, // 8: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData 9, // 8: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData
9, // 9: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData 9, // 9: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData
9, // 10: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData 1, // 10: activity.SCNianSignAward.OpRetCode:type_name -> activity.OpResultCode_Nian
9, // 11: activity.SCNianSignAward.OtherSignAward:type_name -> activity.RankAwardData 9, // 11: activity.SCNianChange.Award:type_name -> activity.RankAwardData
1, // 12: activity.SCNianSignAward.OpRetCode:type_name -> activity.OpResultCode_Nian 1, // 12: activity.SCNianChange.OpRetCode:type_name -> activity.OpResultCode_Nian
9, // 13: activity.SCNianChange.Award:type_name -> activity.RankAwardData 13, // [13:13] is the sub-list for method output_type
1, // 14: activity.SCNianChange.OpRetCode:type_name -> activity.OpResultCode_Nian 13, // [13:13] is the sub-list for method input_type
15, // [15:15] is the sub-list for method output_type 13, // [13:13] is the sub-list for extension type_name
15, // [15:15] is the sub-list for method input_type 13, // [13:13] is the sub-list for extension extendee
15, // [15:15] is the sub-list for extension type_name 0, // [0:13] is the sub-list for field type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
} }
func init() { file_protocol_activity_nian_proto_init() } func init() { file_protocol_activity_nian_proto_init() }

View File

@ -45,12 +45,6 @@ message SCNianData{
string LuckyRankNeed = 14; // string LuckyRankNeed = 14; //
string RankNeed = 15; // string RankNeed = 15; //
int32 Switch = 16; // 1. 2. int32 Switch = 16; // 1. 2.
int32 OtherSignAwardCount = 17;//
int32 OtherSignAwardProp = 18;//
repeated RankAwardData OtherSignAward = 19;//
int32 OtherSignMaxCount = 20;//
int64 AttackMaxHp =21; //
int64 AttackSumHp = 22; //
} }
message ShopData{ message ShopData{
@ -99,8 +93,6 @@ message SCNianAttackData{
int64 BuffCount = 7; //BUFF剩余次数 int64 BuffCount = 7; //BUFF剩余次数
repeated RankAwardData ExtraDrop = 8;// repeated RankAwardData ExtraDrop = 8;//
repeated RankAwardData FloorReward = 9;// repeated RankAwardData FloorReward = 9;//
int64 AttackMaxHp = 10; //
int64 AttackSumHp = 11; //
} }
// //
//PACKET_CSNianSignAward //PACKET_CSNianSignAward
@ -110,10 +102,7 @@ message CSNianSignAward{
message SCNianSignAward{ message SCNianSignAward{
int64 SignAwardTime = 1; int64 SignAwardTime = 1;
repeated RankAwardData SignAward = 2;// repeated RankAwardData SignAward = 2;//
repeated RankAwardData OtherSignAward = 3;// OpResultCode_Nian OpRetCode = 3; //
int32 OtherSignAwardCount = 4;//
int32 OtherSignAwardProp = 5;//
OpResultCode_Nian OpRetCode = 6; //
} }
// //
//PACKET_CSNianChange //PACKET_CSNianChange

File diff suppressed because it is too large Load Diff

View File

@ -1,90 +0,0 @@
syntax = "proto3";
package activity;
option go_package = "mongo.games.com/game/protocol/activity";
enum PushCoinPacketID {
PACKET_PushCoin_ZERO = 0;//
PACKET_CSPushCoinInfo = 2680; //
PACKET_SCPushCoinInfo = 2681; //
PACKET_CSPushCoinPlayerOp = 2682; //
PACKET_SCPushCoinPlayerOp = 2683; //
PACKET_NotifyPowerLine = 2684; //
PACKET_NotifyDrawInfo = 2685; //
}
//
//PACKET_CSPushCoinInfo
message CSPushCoinInfo {
}
//PACKET_SCPushCoinInfo
message SCPushCoinInfo {
repeated ExchangeInfo ExchangeList = 1; //
repeated DrawInfo DrawList = 2; //
int32 ShakeTimes = 3; //
int64 PowerLine = 4; //
int64 PowerLineMax = 5; //
int64 RefreshTimes = 6; //
}
message ItemInfo{
int32 ItemId = 1; //id
int32 ItemNum = 2; //
}
message ExchangeInfo{
int32 Id = 1; //id
repeated ItemInfo Cost = 2; //
repeated ItemInfo Gain = 3; //
int64 Times = 4; // -1
int64 TotalTimes = 5; // -1
}
//
//PACKET_NotifyDrawInfo
message DrawInfo{
int32 Id = 1; //id
int32 ItemId = 2; //id
int32 ItemNum = 3; //
int64 Coin = 4; //
}
//
//PACKET_CSPushCoinPlayerOp
message CSPushCoinPlayerOp {
OpCodes OpCode = 1;
int64 OpParam = 2;
repeated ItemInfo OpItem = 3;
}
enum OpCodes {
OP_Zero = 0;
OP_Bet = 1; // OpParam id
OP_Gain = 2; // OpParam 1 2 OpItem
OP_Shake = 3; // OpParam
OP_Refresh = 4; // OpParam
OP_Exchange = 5; // OpParam id
}
enum OpResultPushCoinCode {
OPRC_PushCoin_Success = 0; //
OPRC_PushCoin_Error = 1; //
OPRC_PushCoin_BetNotEnough = 2; //
OPRC_PushCoin_ExchangeNotEnough = 3; //
OPRC_PushCoin_ShakeNotEnough = 4; //
OPRC_PushCoin_ItemNotEnough = 5; //
}
//PACKET_SCPushCoinPlayerOp
message SCPushCoinPlayerOp {
OpResultPushCoinCode OpRetCode = 1;
OpCodes OpCode = 2;
ExchangeInfo Exchange = 3; // ,
int32 BetId = 4; // id
}
//
//PACKET_NotifyPowerLine
message NotifyPowerLine {
int64 PowerLine = 1; //
int64 PowerLineMax = 2; //
}

View File

@ -193,9 +193,5 @@
- 5660~5669 - 5660~5669
### pushcoin.proto
- 5670~5679
### game.proto(玩家离开) ### game.proto(玩家离开)
- 8000~8099 - 8000~8099

File diff suppressed because it is too large Load Diff

View File

@ -1,104 +0,0 @@
syntax = "proto3";
package pushcoin;
option go_package = "mongo.games.com/game/protocol/pushcoin";
// 5670~5679
enum PushCoinPacketID {
PACKET_PushCoin_ZERO = 0;//
PACKET_SCPushCoinRoomInfo = 5670; //
PACKET_SCPushCoinRoomState = 5671; //
PACKET_CSPushCoinPlayerOp = 5672; //
PACKET_SCPushCoinPlayerOp = 5673; //
}
//
//PACKET_SCPushCoinRoomInfo
message SCPushCoinRoomInfo {
int32 RoomId = 1; //id
int32 GameId = 2; //id
int32 RoomMode = 3; //
repeated int32 Params = 4; //
int32 State = 5; //
int32 TimeOut = 6; // :
repeated PushCoinPlayerData Players = 7; //
repeated ExchangeInfo ExchangeList = 8; //
repeated DrawInfo DrawList = 9; //
repeated int64 BetList = 10; //
}
message ItemInfo{
int32 ItemId = 1; //id
int32 ItemNum = 2; //
}
message ExchangeInfo{
int32 Id = 1; //id
repeated ItemInfo Cost = 2; //
repeated ItemInfo Gain = 3; //
int32 ShakeTimes = 4; //
}
message DrawInfo{
int32 Id = 1; //id
int32 ItemId = 2; //id
int32 ItemNum = 3; //
int64 Coin = 4; //
}
message PushCoinPlayerData {
string Name = 1; //
int32 SnId = 2; //
int32 Head = 3; //
int32 Sex = 4; //
int64 Coin = 5; //
int32 Flag = 6; // :线(0:线 1:线) :(0: 1:)
repeated string Params = 7; // :ip
int32 VIP = 8;
int32 RoleId = 9; //使id
int64 Level = 10; //
int64 Exp = 11; //
int32 SkinId = 12; //id
int32 ShakeTimes = 13; //
int64 BaseCoin = 14; //()
int64 PowerLine = 15; //
int64 PowerLineMax = 16; //
int64 RefreshTimes = 17; //
}
//
//PACKET_SCPushCoinRoomState
message SCPushCoinRoomState {
int32 State = 1; //
int32 SubState = 2; //
repeated int32 Params = 3; //
}
//
//PACKET_CSPushCoinPlayerOp
message CSPushCoinPlayerOp {
OpCodes OpCode = 1;
repeated int64 OpParam = 2;
}
enum OpCodes {
OP_Zero = 0;
OP_Bet = 1; // []
OP_Gain = 2; // []
OP_Shake = 3; // []
OP_Refresh = 4; // []
OP_Exchange = 5; // [id]
OP_Draw = 6; // [id]
}
enum OpResultCode {
OPRC_Success = 0; //
OPRC_Error = 1; //
}
//PACKET_SCPushCoinPlayerOp
message SCPushCoinPlayerOp {
OpResultCode OpRetCode = 1;
OpCodes OpCode = 2;
ExchangeInfo Exchange = 3; // ,
DrawInfo Draw = 4; //
}

View File

@ -55,9 +55,6 @@ const (
//年兽排行榜 //年兽排行榜
Rank_PACKET_RANK_CSNian Rank = 10019 Rank_PACKET_RANK_CSNian Rank = 10019
Rank_PACKET_RANK_SCNian Rank = 10020 Rank_PACKET_RANK_SCNian Rank = 10020
// 红包抽奖记录
Rank_PACKET_CSRedPacketHistory Rank = 10021
Rank_PACKET_SCRedPacketHistory Rank = 10022
) )
// Enum value maps for Rank. // Enum value maps for Rank.
@ -85,34 +82,30 @@ var (
10018: "PACKET_SCLotteryHistory", 10018: "PACKET_SCLotteryHistory",
10019: "PACKET_RANK_CSNian", 10019: "PACKET_RANK_CSNian",
10020: "PACKET_RANK_SCNian", 10020: "PACKET_RANK_SCNian",
10021: "PACKET_CSRedPacketHistory",
10022: "PACKET_SCRedPacketHistory",
} }
Rank_value = map[string]int32{ Rank_value = map[string]int32{
"PACKET_RANK_ZERO": 0, "PACKET_RANK_ZERO": 0,
"PACKET_RANK_CSRankMatch": 10000, "PACKET_RANK_CSRankMatch": 10000,
"PACKET_RANK_SCRankMatch": 10001, "PACKET_RANK_SCRankMatch": 10001,
"PACKET_RANK_CSCoin": 10002, "PACKET_RANK_CSCoin": 10002,
"PACKET_RANK_SCCoin": 10003, "PACKET_RANK_SCCoin": 10003,
"PACKET_RANK_CSInvite": 10004, "PACKET_RANK_CSInvite": 10004,
"PACKET_RANK_SCInvite": 10005, "PACKET_RANK_SCInvite": 10005,
"PACKET_CSInviteLog": 10006, "PACKET_CSInviteLog": 10006,
"PACKET_SCInviteLog": 10007, "PACKET_SCInviteLog": 10007,
"PACKET_RANK_CSWinCoin": 10008, "PACKET_RANK_CSWinCoin": 10008,
"PACKET_RANK_SCWinCoin": 10009, "PACKET_RANK_SCWinCoin": 10009,
"PACKET_RANK_CSLevel": 10010, "PACKET_RANK_CSLevel": 10010,
"PACKET_RANK_SCLevel": 10011, "PACKET_RANK_SCLevel": 10011,
"PACKET_RANK_CSPermit": 10012, "PACKET_RANK_CSPermit": 10012,
"PACKET_RANK_SCPermit": 10013, "PACKET_RANK_SCPermit": 10013,
"PACKET_CSRoomAward": 10014, "PACKET_CSRoomAward": 10014,
"PACKET_SCRoomAward": 10015, "PACKET_SCRoomAward": 10015,
"PACKET_SCRoomAwardOne": 10016, "PACKET_SCRoomAwardOne": 10016,
"PACKET_CSLotteryHistory": 10017, "PACKET_CSLotteryHistory": 10017,
"PACKET_SCLotteryHistory": 10018, "PACKET_SCLotteryHistory": 10018,
"PACKET_RANK_CSNian": 10019, "PACKET_RANK_CSNian": 10019,
"PACKET_RANK_SCNian": 10020, "PACKET_RANK_SCNian": 10020,
"PACKET_CSRedPacketHistory": 10021,
"PACKET_SCRedPacketHistory": 10022,
} }
) )
@ -2576,165 +2569,6 @@ func (x *SCNian) GetTypeId() int32 {
return 0 return 0
} }
// 红包抽奖记录
// PACKET_CSRedPacketHistory
type CSRedPacketHistory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 红包活动id
}
func (x *CSRedPacketHistory) Reset() {
*x = CSRedPacketHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_rank_rank_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSRedPacketHistory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSRedPacketHistory) ProtoMessage() {}
func (x *CSRedPacketHistory) ProtoReflect() protoreflect.Message {
mi := &file_protocol_rank_rank_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CSRedPacketHistory.ProtoReflect.Descriptor instead.
func (*CSRedPacketHistory) Descriptor() ([]byte, []int) {
return file_protocol_rank_rank_proto_rawDescGZIP(), []int{33}
}
func (x *CSRedPacketHistory) GetId() int64 {
if x != nil {
return x.Id
}
return 0
}
type RedPacketHistory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ts int64 `protobuf:"varint,1,opt,name=Ts,proto3" json:"Ts,omitempty"` // 时间戳
ItemId int32 `protobuf:"varint,5,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id
ItemNum int64 `protobuf:"varint,6,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` // 道具数量
}
func (x *RedPacketHistory) Reset() {
*x = RedPacketHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_rank_rank_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RedPacketHistory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RedPacketHistory) ProtoMessage() {}
func (x *RedPacketHistory) ProtoReflect() protoreflect.Message {
mi := &file_protocol_rank_rank_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RedPacketHistory.ProtoReflect.Descriptor instead.
func (*RedPacketHistory) Descriptor() ([]byte, []int) {
return file_protocol_rank_rank_proto_rawDescGZIP(), []int{34}
}
func (x *RedPacketHistory) GetTs() int64 {
if x != nil {
return x.Ts
}
return 0
}
func (x *RedPacketHistory) GetItemId() int32 {
if x != nil {
return x.ItemId
}
return 0
}
func (x *RedPacketHistory) GetItemNum() int64 {
if x != nil {
return x.ItemNum
}
return 0
}
type SCRedPacketHistory struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
List []*RedPacketHistory `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"`
}
func (x *SCRedPacketHistory) Reset() {
*x = SCRedPacketHistory{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_rank_rank_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCRedPacketHistory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCRedPacketHistory) ProtoMessage() {}
func (x *SCRedPacketHistory) ProtoReflect() protoreflect.Message {
mi := &file_protocol_rank_rank_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCRedPacketHistory.ProtoReflect.Descriptor instead.
func (*SCRedPacketHistory) Descriptor() ([]byte, []int) {
return file_protocol_rank_rank_proto_rawDescGZIP(), []int{35}
}
func (x *SCRedPacketHistory) GetList() []*RedPacketHistory {
if x != nil {
return x.List
}
return nil
}
var File_protocol_rank_rank_proto protoreflect.FileDescriptor var File_protocol_rank_rank_proto protoreflect.FileDescriptor
var file_protocol_rank_rank_proto_rawDesc = []byte{ var file_protocol_rank_rank_proto_rawDesc = []byte{
@ -2971,72 +2805,56 @@ var file_protocol_rank_rank_proto_rawDesc = []byte{
0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74,
0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x12, 0x43, 0x53, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x2a, 0xd0, 0x04, 0x0a, 0x04, 0x52,
0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41,
0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x4e, 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43,
0x22, 0x54, 0x0a, 0x10, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d,
0x74, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x61, 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x52, 0x02, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17,
0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x40, 0x0a, 0x12, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43,
0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x61, 0x6e, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10,
0x6b, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x94, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e,
0x72, 0x79, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x90, 0x05, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x4b, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a,
0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65,
0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x4c, 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12,
0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43,
0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50,
0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e,
0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x43, 0x6f, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a,
0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b,
0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x94, 0x4e, 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50,
0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72,
0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x6d, 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d,
0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f,
0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, 0x1a, 0x0a, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41,
0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x57, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64,
0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x10, 0x9f, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12,
0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74,
0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, 0x12, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a,
0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72,
0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50,
0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61,
0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x6e, 0x10, 0xa3, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52,
0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, 0x4e, 0x12, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0xa4, 0x4e, 0x2a, 0x8d, 0x01,
0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f,
0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9f, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74,
0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, 0x1c, 0x0a, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10,
0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68,
0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76,
0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a,
0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
0xa3, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72,
0x4b, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0xa4, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65,
0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa5, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65,
0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa6, 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a,
0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e,
0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12,
0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f,
0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e,
0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03,
0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55,
0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d,
0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e,
0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -3052,7 +2870,7 @@ func file_protocol_rank_rank_proto_rawDescGZIP() []byte {
} }
var file_protocol_rank_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_protocol_rank_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
var file_protocol_rank_rank_proto_goTypes = []interface{}{ var file_protocol_rank_rank_proto_goTypes = []interface{}{
(Rank)(0), // 0: rank.Rank (Rank)(0), // 0: rank.Rank
(RankInvite)(0), // 1: rank.RankInvite (RankInvite)(0), // 1: rank.RankInvite
@ -3089,9 +2907,6 @@ var file_protocol_rank_rank_proto_goTypes = []interface{}{
(*CSNian)(nil), // 32: rank.CSNian (*CSNian)(nil), // 32: rank.CSNian
(*NianRankData)(nil), // 33: rank.NianRankData (*NianRankData)(nil), // 33: rank.NianRankData
(*SCNian)(nil), // 34: rank.SCNian (*SCNian)(nil), // 34: rank.SCNian
(*CSRedPacketHistory)(nil), // 35: rank.CSRedPacketHistory
(*RedPacketHistory)(nil), // 36: rank.RedPacketHistory
(*SCRedPacketHistory)(nil), // 37: rank.SCRedPacketHistory
} }
var file_protocol_rank_rank_proto_depIdxs = []int32{ var file_protocol_rank_rank_proto_depIdxs = []int32{
3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank 3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank
@ -3114,12 +2929,11 @@ var file_protocol_rank_rank_proto_depIdxs = []int32{
30, // 17: rank.SCLotteryHistory.List:type_name -> rank.LotteryHistory 30, // 17: rank.SCLotteryHistory.List:type_name -> rank.LotteryHistory
33, // 18: rank.SCNian.Ranks:type_name -> rank.NianRankData 33, // 18: rank.SCNian.Ranks:type_name -> rank.NianRankData
33, // 19: rank.SCNian.Me:type_name -> rank.NianRankData 33, // 19: rank.SCNian.Me:type_name -> rank.NianRankData
36, // 20: rank.SCRedPacketHistory.List:type_name -> rank.RedPacketHistory 20, // [20:20] is the sub-list for method output_type
21, // [21:21] is the sub-list for method output_type 20, // [20:20] is the sub-list for method input_type
21, // [21:21] is the sub-list for method input_type 20, // [20:20] is the sub-list for extension type_name
21, // [21:21] is the sub-list for extension type_name 20, // [20:20] is the sub-list for extension extendee
21, // [21:21] is the sub-list for extension extendee 0, // [0:20] is the sub-list for field type_name
0, // [0:21] is the sub-list for field type_name
} }
func init() { file_protocol_rank_rank_proto_init() } func init() { file_protocol_rank_rank_proto_init() }
@ -3524,42 +3338,6 @@ func file_protocol_rank_rank_proto_init() {
return nil return nil
} }
} }
file_protocol_rank_rank_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSRedPacketHistory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_rank_rank_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RedPacketHistory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protocol_rank_rank_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCRedPacketHistory); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -3567,7 +3345,7 @@ func file_protocol_rank_rank_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_protocol_rank_rank_proto_rawDesc, RawDescriptor: file_protocol_rank_rank_proto_rawDesc,
NumEnums: 2, NumEnums: 2,
NumMessages: 36, NumMessages: 33,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -36,9 +36,6 @@ enum Rank{
// //
PACKET_RANK_CSNian = 10019; PACKET_RANK_CSNian = 10019;
PACKET_RANK_SCNian = 10020; PACKET_RANK_SCNian = 10020;
//
PACKET_CSRedPacketHistory = 10021;
PACKET_SCRedPacketHistory = 10022;
} }
// //
@ -302,17 +299,3 @@ message SCNian{
int32 Total = 5; // int32 Total = 5; //
int32 TypeId = 6; int32 TypeId = 6;
} }
//
// PACKET_CSRedPacketHistory
message CSRedPacketHistory{
int64 Id = 1; // id
}
message RedPacketHistory{
int64 Ts = 1; //
int32 ItemId = 5; // id
int64 ItemNum = 6; //
}
message SCRedPacketHistory{
repeated RedPacketHistory List = 1;
}

File diff suppressed because it is too large Load Diff

View File

@ -5,22 +5,6 @@ syntax = "proto3";
package server; package server;
option go_package = "mongo.games.com/game/protocol/server"; option go_package = "mongo.games.com/game/protocol/server";
message DB_ACTPushCoin {
int32 Id = 1;
int32 Rate = 2;
map<int64, int64> Gain = 3;
int64 Value = 4;
}
message DB_ACTPushCoinArray {
repeated DB_ACTPushCoin Arr = 1;
}
message DB_ActSign { message DB_ActSign {
int32 Id = 1; int32 Id = 1;
@ -1497,8 +1481,6 @@ message DB_PropExchange {
map<int64, int64> Gain = 4; map<int64, int64> Gain = 4;
int32 Times = 5;
} }
message DB_PropExchangeArray { message DB_PropExchangeArray {

View File

@ -10575,78 +10575,6 @@ func (x *ConsumeConfig) GetEndTime() string {
return "" return ""
} }
// etcd /game/act_pushcoin
type PushCoinConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台
On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 活动开关 1.开启 2.关闭
StartTime string `protobuf:"bytes,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 活动开始时间
EndTime string `protobuf:"bytes,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 活动结束时间
}
func (x *PushCoinConfig) Reset() {
*x = PushCoinConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protocol_webapi_common_proto_msgTypes[114]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PushCoinConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PushCoinConfig) ProtoMessage() {}
func (x *PushCoinConfig) ProtoReflect() protoreflect.Message {
mi := &file_protocol_webapi_common_proto_msgTypes[114]
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 PushCoinConfig.ProtoReflect.Descriptor instead.
func (*PushCoinConfig) Descriptor() ([]byte, []int) {
return file_protocol_webapi_common_proto_rawDescGZIP(), []int{114}
}
func (x *PushCoinConfig) GetPlatform() string {
if x != nil {
return x.Platform
}
return ""
}
func (x *PushCoinConfig) GetOn() int32 {
if x != nil {
return x.On
}
return 0
}
func (x *PushCoinConfig) GetStartTime() string {
if x != nil {
return x.StartTime
}
return ""
}
func (x *PushCoinConfig) GetEndTime() string {
if x != nil {
return x.EndTime
}
return ""
}
var File_protocol_webapi_common_proto protoreflect.FileDescriptor var File_protocol_webapi_common_proto protoreflect.FileDescriptor
var file_protocol_webapi_common_proto_rawDesc = []byte{ var file_protocol_webapi_common_proto_rawDesc = []byte{
@ -12263,17 +12191,10 @@ var file_protocol_webapi_common_proto_rawDesc = []byte{
0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18,
0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x74, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67,
0x43, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x26,
0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f,
0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -12288,7 +12209,7 @@ func file_protocol_webapi_common_proto_rawDescGZIP() []byte {
return file_protocol_webapi_common_proto_rawDescData return file_protocol_webapi_common_proto_rawDescData
} }
var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 125) var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 124)
var file_protocol_webapi_common_proto_goTypes = []interface{}{ var file_protocol_webapi_common_proto_goTypes = []interface{}{
(*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting
(*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting
@ -12404,33 +12325,32 @@ var file_protocol_webapi_common_proto_goTypes = []interface{}{
(*RedPacketInfo)(nil), // 111: webapi.RedPacketInfo (*RedPacketInfo)(nil), // 111: webapi.RedPacketInfo
(*RedInfo)(nil), // 112: webapi.RedInfo (*RedInfo)(nil), // 112: webapi.RedInfo
(*ConsumeConfig)(nil), // 113: webapi.ConsumeConfig (*ConsumeConfig)(nil), // 113: webapi.ConsumeConfig
(*PushCoinConfig)(nil), // 114: webapi.PushCoinConfig nil, // 114: webapi.Platform.BindTelRewardEntry
nil, // 115: webapi.Platform.BindTelRewardEntry nil, // 115: webapi.PlayerData.RankScoreEntry
nil, // 116: webapi.PlayerData.RankScoreEntry nil, // 116: webapi.ItemShop.AwardEntry
nil, // 117: webapi.ItemShop.AwardEntry nil, // 117: webapi.VIPcfg.AwardEntry
nil, // 118: webapi.VIPcfg.AwardEntry nil, // 118: webapi.VIPcfg.Privilege1Entry
nil, // 119: webapi.VIPcfg.Privilege1Entry nil, // 119: webapi.VIPcfg.Privilege7Entry
nil, // 120: webapi.VIPcfg.Privilege7Entry nil, // 120: webapi.VIPcfg.Privilege9Entry
nil, // 121: webapi.VIPcfg.Privilege9Entry nil, // 121: webapi.ActInviteConfig.PayScoreEntry
nil, // 122: webapi.ActInviteConfig.PayScoreEntry nil, // 122: webapi.SkinLevel.UpItemEntry
nil, // 123: webapi.SkinLevel.UpItemEntry nil, // 123: webapi.SkinItem.UnlockParamEntry
nil, // 124: webapi.SkinItem.UnlockParamEntry (*server.DB_GameFree)(nil), // 124: server.DB_GameFree
(*server.DB_GameFree)(nil), // 125: server.DB_GameFree (*server.DB_GameItem)(nil), // 125: server.DB_GameItem
(*server.DB_GameItem)(nil), // 126: server.DB_GameItem
} }
var file_protocol_webapi_common_proto_depIdxs = []int32{ var file_protocol_webapi_common_proto_depIdxs = []int32{
2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch
3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig
4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame
115, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 114, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry
6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus
125, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 124, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree
8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree
0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting
1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting
1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting
125, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree 124, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree
116, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 115, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry
32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo
14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo 14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo
14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo 14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo
@ -12443,7 +12363,7 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{
32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo 32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo
25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop 25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop
29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight 29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight
117, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 116, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry
30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop 30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop
32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo
33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward 33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward
@ -12464,14 +12384,14 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{
38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate
48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree
48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree 48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree
118, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry 117, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry
119, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry 118, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry
120, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry 119, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry
121, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry 120, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry
51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg
38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate
55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig 55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig
122, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 121, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry
62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward
62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward
62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward 62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward
@ -12488,12 +12408,12 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{
69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo 69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo
70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers 70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers
72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData 72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData
126, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem 125, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem
32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo 32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo
75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo 75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo
76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo 76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo
123, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry 122, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry
124, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry 123, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry
78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel 78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel
79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem 79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem
82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData 82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData
@ -13902,18 +13822,6 @@ func file_protocol_webapi_common_proto_init() {
return nil return nil
} }
} }
file_protocol_webapi_common_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PushCoinConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -13921,7 +13829,7 @@ func file_protocol_webapi_common_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_protocol_webapi_common_proto_rawDesc, RawDescriptor: file_protocol_webapi_common_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 125, NumMessages: 124,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -1166,12 +1166,4 @@ message ConsumeConfig{
int32 On = 2; // 1. 2. int32 On = 2; // 1. 2.
string StartTime = 3; // string StartTime = 3; //
string EndTime = 4; // string EndTime = 4; //
}
// etcd /game/act_pushcoin
message PushCoinConfig{
string Platform = 1; //
int32 On = 2; // 1. 2.
string StartTime = 3; //
string EndTime = 4; //
} }

View File

@ -34,8 +34,6 @@ func init() {
com.Register(int(rankproto.Rank_PACKET_CSLotteryHistory), rankproto.CSLotteryHistory{}, CSLotteryHistory) com.Register(int(rankproto.Rank_PACKET_CSLotteryHistory), rankproto.CSLotteryHistory{}, CSLotteryHistory)
//年兽排行榜 //年兽排行榜
com.Register(int(rankproto.Rank_PACKET_RANK_CSNian), rankproto.CSNian{}, CSNian) com.Register(int(rankproto.Rank_PACKET_RANK_CSNian), rankproto.CSNian{}, CSNian)
// 红包历史记录
com.Register(int(rankproto.Rank_PACKET_CSRedPacketHistory), rankproto.CSRedPacketHistory{}, CSRedPacketHistory)
} }
func CSRankMatch(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { func CSRankMatch(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error {
@ -650,7 +648,6 @@ func CSLotteryHistory(s *netlib.Session, d *rankproto.GateTransmit, packetId int
}) })
return nil return nil
} }
func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error {
logger.Logger.Trace("CSNian data:", data) logger.Logger.Trace("CSNian data:", data)
msg, ok := data.(*rankproto.CSNian) msg, ok := data.(*rankproto.CSNian)
@ -786,36 +783,3 @@ func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data int
} }
return nil return nil
} }
func CSRedPacketHistory(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRedPacketHistory data:", data)
msg, ok := data.(*rankproto.CSRedPacketHistory)
if !ok {
return nil
}
pack := &rankproto.SCRedPacketHistory{}
var list []*model.RedPacketHistory
var err error
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
list, err = model.GetRedPacketHistory(d.Platform, d.Snid, msg.GetId())
if err != nil {
logger.Logger.Errorf("GetRedPacketHistory error: %v", err)
}
return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
if err == nil {
for _, v := range list {
pack.List = append(pack.List, &rankproto.RedPacketHistory{
Ts: v.Ts,
ItemId: v.ItemId,
ItemNum: v.ItemNum,
})
}
}
common.SendToGate(sid, int(rankproto.Rank_PACKET_SCRedPacketHistory), pack, s)
}), "CSRedPacketHistory").Start()
return nil
}

View File

@ -1,77 +0,0 @@
// Code generated by xlsx2proto.
// DO NOT EDIT!
package srvdata
import (
"google.golang.org/protobuf/proto"
"mongo.games.com/game/protocol/server"
)
var PBDB_ACTPushCoinMgr = &DB_ACTPushCoinMgr{
Datas: &server.DB_ACTPushCoinArray{},
pool: make(map[int32]*server.DB_ACTPushCoin),
}
type DB_ACTPushCoinMgr struct {
Datas *server.DB_ACTPushCoinArray
pool map[int32]*server.DB_ACTPushCoin
}
func (this *DB_ACTPushCoinMgr) unmarshal(data []byte) error {
err := proto.Unmarshal(data, this.Datas)
if err == nil {
this.arrangeData()
}
return err
}
func (this *DB_ACTPushCoinMgr) reunmarshal(data []byte) error {
newDatas := &server.DB_ACTPushCoinArray{}
err := proto.Unmarshal(data, newDatas)
if err == nil {
for _, item := range newDatas.Arr {
existItem := this.GetData(item.GetId())
if existItem == nil {
this.pool[item.GetId()] = item
this.Datas.Arr = append(this.Datas.Arr, item)
} else {
*existItem = *item
}
}
}
return err
}
func (this *DB_ACTPushCoinMgr) arrangeData() {
if this.Datas == nil {
return
}
dataArr := this.Datas.GetArr()
if dataArr == nil {
return
}
for _, data := range dataArr {
this.pool[data.GetId()] = data
}
}
func (this *DB_ACTPushCoinMgr) GetData(id int32) *server.DB_ACTPushCoin {
if data, ok := this.pool[id]; ok {
return data
}
return nil
}
func init() {
DataMgr.register("DB_ACTPushCoin.dat", &ProtobufDataLoader{dh: PBDB_ACTPushCoinMgr})
}

View File

@ -1,95 +0,0 @@
package main
import (
"encoding/json"
"fmt"
"math/rand"
"mongo.games.com/goserver/core/timer"
"time"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/game/model"
"mongo.games.com/game/proto"
loginproto "mongo.games.com/game/protocol/login"
playerproto "mongo.games.com/game/protocol/player"
)
func init() {
// 心跳
netlib.Register(int(loginproto.GatePacketID_PACKET_SC_PONG), loginproto.SCPong{}, SCPong)
// 登录
netlib.Register(int(loginproto.LoginPacketID_PACKET_SC_LOGIN), loginproto.SCLogin{}, SCLogin)
// 玩家信息
netlib.Register(int(playerproto.PlayerPacketID_PACKET_SC_PLAYERDATA), playerproto.SCPlayerData{}, SCPlayerData)
}
func SCPong(s *netlib.Session, packetid int, data interface{}) error {
accountID := s.GetAttribute(SessionAttributeClientAccountId)
logger.Logger.Tracef("SCPong username:%v %v", accountID, data)
return nil
}
func SCLogin(s *netlib.Session, packetid int, data interface{}) error {
logger.Logger.Trace("SCLogin ", data)
msg, ok := data.(*loginproto.SCLogin)
if !ok {
return nil
}
if msg.GetOpRetCode() != loginproto.OpResultCode_OPRC_Sucess {
accountID := s.GetAttribute(SessionAttributeClientAccountId)
logger.Logger.Error("登录失败 ", accountID)
s.Close()
return nil
}
csPlayerData := &playerproto.CSPlayerData{
AccId: msg.GetAccId(),
}
pp := &model.PlayerParams{
Platform: 1,
Ip: fmt.Sprintf("%v.%v.%v.%v", 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255)),
City: "北京",
Logininmodel: "app",
}
d, err := json.Marshal(pp)
if err == nil {
csPlayerData.Params = proto.String(string(d))
}
s.Send(int(playerproto.PlayerPacketID_PACKET_CS_PLAYERDATA), csPlayerData)
logger.Logger.Info("登录成功 ", msg.GetAccId())
return nil
}
func SCPlayerData(s *netlib.Session, packetid int, data interface{}) error {
logger.Logger.Trace("SCPlayerData ", data)
msg, ok := data.(*playerproto.SCPlayerData)
if !ok {
return nil
}
if msg.GetOpRetCode() != playerproto.OpResultCode_OPRC_Sucess {
accountID := s.GetAttribute(SessionAttributeClientAccountId)
logger.Logger.Errorf("获取玩家信息失败 %v", accountID)
s.Close()
return nil
}
s.SetAttribute(SessionAttributeUser, msg)
StartSessionPingTimer(s, timer.TimerActionWrapper(func(h timer.TimerHandle, ud interface{}) bool {
if !s.IsConned() {
StopSessionPingTimer(s)
return false
}
pack := &loginproto.CSPing{}
s.Send(int(loginproto.GatePacketID_PACKET_CS_PING), pack)
return true
}), nil, time.Second*time.Duration(60+rand.Int31n(100)), -1)
return nil
}

View File

@ -1,35 +0,0 @@
package main
import (
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
)
var Config = &Configuration{}
type Configuration struct {
Count int // 机器人总数
AppId string // appID
Connects netlib.SessionConfig // 网络连接配置
}
func (this *Configuration) Name() string {
return "benchmark"
}
func (this *Configuration) Init() error {
logger.Logger.Tracef("%+v", *this)
if this.Count == 0 {
this.Count = 20
}
return nil
}
func (this *Configuration) Close() error {
return nil
}
func init() {
core.RegistePackage(Config)
}

View File

@ -1,65 +0,0 @@
netlib:
SrvInfo:
Name: BenchmarkServer
Type: 9
Id: 902
AreaID: 1
Banner:
- =================
- benchmark server
- =================
IoServices: []
module:
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 100
executor:
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 0
Worker:
WorkerCnt: 8
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 0
timer:
Options:
QueueBacklog: 1024
MaxDone: 1024
Interval: 100
signal:
SupportSignal: true
benchmark:
Count: 100
AppId: 5c56d1644966f078bfb90c71
Connects:
Id: 402
Type: 4
AreaId: 1
Name: ClientService
Ip: 127.0.0.1
Port: 11001
Protocol: tcp
Path: /
MaxDone: 200
MaxPend: 200
MaxPacket: 65535
MaxConn: 2000
RcvBuff: 4096
SndBuff: 4096
WriteTimeout: 3600
ReadTimeout: 3600
SoLinger: 10
IsInnerLink: true
NoDelay: true
SupportFragment: true
AuthKey: www.jxjy.games.cn
IsClient: true
AllowMultiConn: true
FilterChain:
- session-filter-auth
HandlerChain:
- handler-gate-session

View File

@ -1,69 +0,0 @@
package main
import (
"time"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/module"
"mongo.games.com/goserver/core/netlib"
)
const (
// RobotSessionStartId 机器人session开始id
RobotSessionStartId = 100000000
)
var (
BenchMarkModule = &BenchMark{}
WaitConnectSessions []*netlib.SessionConfig
)
// NewSession 新建session
// id 连接id, 默认自动分配
func NewSession(id ...int) {
cfg := Config.Connects
if len(id) > 0 && id[0] > 0 {
cfg.Id = id[0]
} else {
BenchMarkModule.idx++
cfg.Id = BenchMarkModule.idx
}
cfg.Init()
logger.Logger.Info("waite connect session id=", cfg.Id)
WaitConnectSessions = append(WaitConnectSessions, &cfg)
}
type BenchMark struct {
idx int
}
func (m *BenchMark) ModuleName() string {
return "benchmark-module"
}
func (m *BenchMark) Init() {
m.idx = RobotSessionStartId
for i := 0; i < Config.Count; i++ {
NewSession()
}
}
// Update 机器开始连接游戏服务器
func (m *BenchMark) Update() {
n := len(WaitConnectSessions)
if n > 0 {
config := WaitConnectSessions[n-1]
WaitConnectSessions = WaitConnectSessions[:n-1]
if err := netlib.Connect(config); err != nil {
logger.Logger.Error("netlib.Connect error", err)
}
}
}
func (m *BenchMark) Shutdown() {
module.UnregisteModule(m)
}
func init() {
module.RegisteModule(BenchMarkModule, time.Millisecond, 1)
}

View File

@ -1,31 +0,0 @@
package main
import (
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/goserver/core/timer"
"time"
)
const (
SessionAttributeClientAccountId int = iota // 账号
SessionAttributeUser
SessionAttributePingTimer
)
func StartSessionPingTimer(s *netlib.Session, act timer.TimerAction, ud interface{}, interval time.Duration, times int) bool {
StopSessionPingTimer(s)
if hTimer, ok := timer.StartTimer(act, ud, interval, times); ok {
s.SetAttribute(SessionAttributePingTimer, hTimer)
return true
}
return false
}
func StopSessionPingTimer(s *netlib.Session) {
if h, ok := s.GetAttribute(SessionAttributePingTimer).(timer.TimerHandle); ok {
if h != timer.TimerHandle(0) {
timer.StopTimer(h)
s.RemoveAttribute(SessionAttributePingTimer)
}
}
}

View File

@ -1,97 +0,0 @@
package main
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"io"
"math/rand"
"mongo.games.com/game/common"
"mongo.games.com/game/model"
loginproto "mongo.games.com/game/protocol/login"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"strconv"
"sync/atomic"
"time"
)
/*
添加到客户端管理器管理器负责登录
当连接断开时从管理器中移除判断是否需要重连
*/
const (
GateSessionHandlerName = "handler-gate-session"
)
type GateSessionHandler struct {
netlib.BasicSessionHandler
}
func (g *GateSessionHandler) GetName() string {
return GateSessionHandlerName
}
func (g *GateSessionHandler) GetInterestOps() uint {
return 1<<netlib.InterestOps_Opened |
1<<netlib.InterestOps_Closed
}
func (g *GateSessionHandler) OnSessionOpened(s *netlib.Session) {
// 登录账号
StartLogin(s)
return
}
func (g *GateSessionHandler) OnSessionClosed(s *netlib.Session) {
}
func init() {
netlib.RegisteSessionHandlerCreator(GateSessionHandlerName, func() netlib.SessionHandler {
return &GateSessionHandler{}
})
}
var UserNameIndex int64
func StartLogin(s *netlib.Session) {
ts := time.Now().UnixNano()
username := fmt.Sprintf("benchmark-%v", atomic.AddInt64(&UserNameIndex, 1))
s.SetAttribute(SessionAttributeClientAccountId, username)
csLogin := &loginproto.CSLogin{
Username: username,
TimeStamp: ts,
Platform: "1",
Channel: "",
PlatformTag: "test.win88.yy_android",
}
params := &model.PlayerParams{
Ip: fmt.Sprintf("%v.%v.%v.%v", 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255), 1+rand.Int31n(255)),
City: "北京",
Platform: 1,
Logininmodel: "app",
}
data, err := json.Marshal(params)
if err == nil {
csLogin.Params = string(data[:])
}
h := md5.New()
io.WriteString(h, fmt.Sprintf("%v%v", username, Config.AppId))
pwd := hex.EncodeToString(h.Sum(nil))
h.Reset()
io.WriteString(h, fmt.Sprintf("%v%v%v", pwd, Config.AppId, ts))
pwd = hex.EncodeToString(h.Sum(nil))
csLogin.Password = pwd
csLogin.LoginType = 0
csLogin.Sign = common.MakeMd5String(csLogin.GetUsername(), csLogin.GetPassword(),
strconv.Itoa(int(csLogin.GetTimeStamp())), csLogin.GetParams(), Config.AppId)
s.Send(int(loginproto.LoginPacketID_PACKET_CS_LOGIN), csLogin)
logger.Logger.Infof("账号 [%v] 开始登录", username)
}

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<seelog type="adaptive" mininterval="2000000" maxinterval="100000000" critmsgcount="500" minlevel="trace">
<exceptions>
<exception filepattern="test*" minlevel="error"/>
</exceptions>
<outputs formatid="all">
<rollingfile formatid="all" type="size" filename="./all.log" maxsize="50000000" maxrolls="5" />
<filter levels="info,trace,warn,error">
<console formatid="fmtinfo"/>
</filter>
<filter levels="error,critical" formatid="fmterror">
<console/>
<file path="errors.log"/>
</filter>
</outputs>
<formats>
<format id="fmtinfo" format="[%Date][%Time] [%Level] %Msg%n"/>
<format id="fmterror" format="[%Date][%Time] [%LEVEL] [%FuncShort @ %File.%Line] %Msg%n"/>
<format id="all" format="[%Date][%Time] [%Level] [@ %File.%Line] %Msg%n"/>
<format id="criticalemail" format="Critical error on our server!\n %Time %Date %RelFile %Func %Msg \nSent by Seelog"/>
</formats>
</seelog>

View File

@ -1,25 +0,0 @@
package main
import (
_ "mongo.games.com/game"
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/module"
)
func main() {
defer core.ClosePackages()
core.LoadPackages("config.yaml")
// core hook
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
return nil
})
core.RegisteHook(core.HOOK_AFTER_STOP, func() error {
return nil
})
// module模块
waiter := module.Start()
waiter.Wait("main()")
}

View File

@ -140,29 +140,6 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er
break break
} }
} }
//签到额外奖励
for _, value := range sData {
if value.Id == 2 {
strSlice := strings.Split(value.PropValue, ",")
itemId, _ := strconv.Atoi(strSlice[0])
itemNum, _ := strconv.Atoi(strSlice[1])
pack.OtherSignAward = append(pack.OtherSignAward, &activity.RankAwardData{
ItemId: int32(itemId),
ItemNum: int64(itemNum),
})
break
}
}
pack.OtherSignAwardCount = p.WelfData.NianData.SignOtherAwardCount
pack.OtherSignAwardProp = p.WelfData.NianData.SignOtherAwardProp
count := int64(0)
for _, value := range sData {
if value.Id == 3 {
count, _ = strconv.ParseInt(value.PropValue, 10, 64)
break
}
}
pack.OtherSignMaxCount = int32(count)
StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix()
EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix()
pack.BuffStartTime = StartTs pack.BuffStartTime = StartTs
@ -177,8 +154,6 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er
pack.SignAwardTime = signTime pack.SignAwardTime = signTime
pack.ChangeData = changeData pack.ChangeData = changeData
pack.Switch = pool.Switch pack.Switch = pool.Switch
pack.AttackMaxHp = p.WelfData.NianData.AttackMaxHp
pack.AttackSumHp = p.WelfData.NianData.AttackSumHp
logger.Logger.Trace("请求年兽活动信息 ", pack) logger.Logger.Trace("请求年兽活动信息 ", pack)
p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack)
} }
@ -333,7 +308,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
for i := 0; i < count; i++ { for i := 0; i < count; i++ {
//随机伤害值 //随机伤害值
randomValue := int64(rand.Intn(intSlice[1]-intSlice[0]+1) + intSlice[0]) randomValue := int64(rand.Intn(intSlice[1]-intSlice[0]+1) + intSlice[0])
logger.Logger.Tracef("snid :%v 随机到的伤害值是:%d", p.SnId, randomValue) logger.Logger.Tracef("随机到的伤害值是:%d", randomValue)
//计算BUFF //计算BUFF
if p.WelfData.NianData.BuffCount > 0 { if p.WelfData.NianData.BuffCount > 0 {
randomValue = randomValue + randomValue/2 randomValue = randomValue + randomValue/2
@ -411,7 +386,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
Change: extraItems, Change: extraItems,
GainWay: common.GainWayNianGain_Attack_BigOther, GainWay: common.GainWayNianGain_Attack_BigOther,
Operator: "system", Operator: "system",
Remark: "年兽活动-爆竹额外活动奖励", Remark: "年兽活动-爆竹额外活动奖励",
}) })
extraDrop := &activity.RankAwardData{} extraDrop := &activity.RankAwardData{}
extraDrop.ItemId = int32(extraItemId) extraDrop.ItemId = int32(extraItemId)
@ -494,7 +469,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
var bossDieOther []*model.Item var bossDieOther []*model.Item
for _, info := range pool.List[0].BossDieOtherReward { for _, info := range pool.List[0].BossDieOtherReward {
if p.WelfData.NianData.OtherAwardNum[info.Id] >= info.DropUp { if p.WelfData.NianData.OtherAwardNum[info.Id] >= info.DropUp {
logger.Logger.Trace("snid:", p.SnId, "BOSS死亡 额外掉落达到上限 id = ", info.Id, "数量:", p.WelfData.NianData.OtherAwardNum[info.Id]) logger.Logger.Trace("BOSS死亡 额外掉落达到上限 id = ", info.Id, "数量:", p.WelfData.NianData.OtherAwardNum[info.Id])
continue continue
} }
//随机 //随机
@ -504,9 +479,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
if int32(otherItemNum)+p.WelfData.NianData.OtherAwardNum[info.Id] > info.DropUp { if int32(otherItemNum)+p.WelfData.NianData.OtherAwardNum[info.Id] > info.DropUp {
otherItemNum = int64(info.DropUp - p.WelfData.NianData.OtherAwardNum[info.Id]) otherItemNum = int64(info.DropUp - p.WelfData.NianData.OtherAwardNum[info.Id])
} }
if p.WelfData.NianData.OtherAwardNum == nil {
p.WelfData.NianData.OtherAwardNum = make(map[int32]int32)
}
p.WelfData.NianData.OtherAwardNum[info.Id] += int32(otherItemNum) p.WelfData.NianData.OtherAwardNum[info.Id] += int32(otherItemNum)
bossDieOther = append(bossDieOther, &model.Item{ bossDieOther = append(bossDieOther, &model.Item{
ItemId: otherItemId, ItemId: otherItemId,
@ -557,8 +529,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
pack.DieAward = append(pack.DieAward, dieInfo) pack.DieAward = append(pack.DieAward, dieInfo)
} }
pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffCount = p.WelfData.NianData.BuffCount
pack.AttackMaxHp = p.WelfData.NianData.AttackMaxHp
pack.AttackSumHp = p.WelfData.NianData.AttackSumHp
p.SendToClient(int(activity.NianPacketID_PACKET_SCNianAttackData), pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianAttackData), pack)
TaskSubjectSingleton.Touch(common.TaskTypeNianBossDamage, &TaskData{SnId: p.SnId, Num: AttackHp}) // 对年兽造成伤害 TaskSubjectSingleton.Touch(common.TaskTypeNianBossDamage, &TaskData{SnId: p.SnId, Num: AttackHp}) // 对年兽造成伤害
//更新年兽排行榜榜 //更新年兽排行榜榜
@ -569,8 +539,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
luckTime = 0 luckTime = 0
} }
damage := p.WelfData.NianData.AttackSumHp damage := p.WelfData.NianData.AttackSumHp
logger.Logger.Tracef("sndi :%v,当前最大幸运值:%v“总榜伤害值:%v", p.SnId, p.WelfData.NianData.AttackMaxHp, p.WelfData.NianData.AttackSumHp) if luckValue < RankNeed {
if damage < RankNeed {
damage = 0 damage = 0
} }
if luckValue > 0 || damage > 0 { if luckValue > 0 || damage > 0 {
@ -587,7 +556,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
log.LuckTime = luckTime log.LuckTime = luckTime
} }
mq.Write(log) mq.Write(log)
logger.Logger.Tracef("更新排行榜数据 snid :%v,log:%v", p.SnId, log)
} }
} }
return nil return nil
@ -702,53 +670,6 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6
award.ItemNum = info.ItemNum award.ItemNum = info.ItemNum
pack.SignAward = append(pack.SignAward, award) pack.SignAward = append(pack.SignAward, award)
} }
//签到额外奖励
sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr()
count := int64(0)
for _, value := range sData {
if value.Id == 3 {
count, _ = strconv.ParseInt(value.PropValue, 10, 64)
break
}
}
var prop int64
if p.WelfData.NianData.SignOtherAwardProp == 0 {
for _, value := range sData {
if value.Id == 4 {
prop, _ = strconv.ParseInt(value.PropValue, 10, 64)
break
}
}
p.WelfData.NianData.SignOtherAwardProp = int32(prop)
}
if p.WelfData.NianData.SignOtherAwardCount < int32(count) {
//概率
if rand.Intn(100)+1 < int(p.WelfData.NianData.SignOtherAwardProp) {
for _, value := range sData {
if value.Id == 2 {
strSlice := strings.Split(value.PropValue, ",")
itemId, _ := strconv.Atoi(strSlice[0])
itemNum, _ := strconv.Atoi(strSlice[1])
items = append(items, &model.Item{
ItemId: int32(itemId),
ItemNum: int64(itemNum),
})
award := &activity.RankAwardData{}
award.ItemId = int32(itemId)
award.ItemNum = int64(itemNum)
pack.OtherSignAward = append(pack.OtherSignAward, award)
break
}
}
p.WelfData.NianData.SignOtherAwardCount += 1
p.WelfData.NianData.SignOtherAwardProp = 60
} else {
p.WelfData.NianData.SignOtherAwardProp += int32(prop)
if p.WelfData.NianData.SignOtherAwardProp > 100 {
p.WelfData.NianData.SignOtherAwardProp = 100
}
}
}
BagMgrSingleton.AddItems(&model.AddItemParam{ BagMgrSingleton.AddItems(&model.AddItemParam{
Platform: p.Platform, Platform: p.Platform,
@ -758,8 +679,6 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6
Operator: "system", Operator: "system",
Remark: "年兽活动-领取签到奖励获得", Remark: "年兽活动-领取签到奖励获得",
}) })
pack.OtherSignAwardCount = p.WelfData.NianData.SignOtherAwardCount
pack.OtherSignAwardProp = p.WelfData.NianData.SignOtherAwardProp
p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack)
TaskSubjectSingleton.Touch(common.TaskTypeNianSign, &TaskData{SnId: p.SnId, Num: 1}) TaskSubjectSingleton.Touch(common.TaskTypeNianSign, &TaskData{SnId: p.SnId, Num: 1})
} }
@ -794,10 +713,7 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64)
return nil return nil
} }
num := msg.Num num := msg.Num
pack := &activity.SCNianChange{}
if num <= 0 || num > 99 { if num <= 0 || num > 99 {
pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian
p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack)
return nil return nil
} }
@ -814,6 +730,7 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64)
break break
} }
} }
pack := &activity.SCNianChange{}
if p.Diamond < int64(diamond*int(num)) { if p.Diamond < int64(diamond*int(num)) {
pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian
p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack)

View File

@ -1,425 +0,0 @@
package main
import (
"sort"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/game/common"
"mongo.games.com/game/gamesrv/base"
"mongo.games.com/game/model"
"mongo.games.com/game/protocol/activity"
"mongo.games.com/game/srvdata"
)
const (
PowerMax = 700000
PowerInit = 400000
)
var PushCoinItemValue = map[int32]int64{
common.ItemIDBigCoin: 50000,
common.ItemIDVCard: 10000,
common.ItemIDPlum: 30000,
30011: 100000000, // 话费卡
common.ItemIDCoin1: 5000,
common.ItemIDCoin2: 10000,
common.ItemIDCoin3: 15000,
}
func init() {
// 推币机活动信息
common.Register(int(activity.PushCoinPacketID_PACKET_CSPushCoinInfo), activity.CSPushCoinInfo{}, CSPushCoinInfo)
// 推币机玩家操作
common.Register(int(activity.PushCoinPacketID_PACKET_CSPushCoinPlayerOp), activity.CSPushCoinPlayerOp{}, CSPushCoinPlayerOp)
}
func CSPushCoinInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error {
_, ok := data.(*activity.CSPushCoinInfo)
if !ok {
return nil
}
p := PlayerMgrSington.GetOnlinePlayer(sid)
if p == nil {
logger.Logger.Warn("CSPushCoinInfo p == nil")
return nil
}
if p.WelfData == nil {
logger.Logger.Warn("CSPushCoinInfo p.WelfData == nil")
return nil
}
if p.WelfData.PushCoin == nil {
InitPlayerPushCoin(p)
}
pack := &activity.SCPushCoinInfo{
ShakeTimes: p.WelfData.PushCoin.Shake,
PowerLine: p.WelfData.PushCoin.Power,
PowerLineMax: PowerMax,
RefreshTimes: p.WelfData.PushCoin.Refresh,
}
for _, v := range srvdata.PBDB_PropExchangeMgr.Datas.Arr {
if v.GetGroup() == 2 {
info := &activity.ExchangeInfo{
Id: v.GetId(),
TotalTimes: int64(v.GetTimes()),
}
for kk, vv := range v.GetCost() {
info.Cost = append(info.Cost, &activity.ItemInfo{
ItemId: int32(kk),
ItemNum: int32(vv),
})
}
sort.Slice(info.Cost, func(i, j int) bool {
return info.Cost[i].ItemId < info.Cost[j].ItemId
})
for kk, vv := range v.GetGain() {
info.Gain = append(info.Gain, &activity.ItemInfo{
ItemId: int32(kk),
ItemNum: int32(vv),
})
}
sort.Slice(info.Gain, func(i, j int) bool {
return info.Gain[i].ItemId < info.Gain[j].ItemId
})
info.Times = int64(v.GetTimes() - p.WelfData.PushCoin.Exchange[v.Id])
if v.GetTimes() == 0 {
info.Times = -1
info.TotalTimes = -1
}
pack.ExchangeList = append(pack.ExchangeList, info)
}
}
// 转盘
for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr {
for kk, vv := range v.GetGain() {
pack.DrawList = append(pack.DrawList, &activity.DrawInfo{
Id: v.GetId(),
ItemId: int32(kk),
ItemNum: int32(vv),
Coin: v.GetValue(),
})
}
}
p.SendToClient(int(activity.PushCoinPacketID_PACKET_SCPushCoinInfo), pack)
logger.Logger.Trace("SCPushCoinInfo: ", pack)
return nil
}
func CSPushCoinPlayerOp(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPushCoinPlayerOpHandler Process recv ", data)
msg, ok := data.(*activity.CSPushCoinPlayerOp)
if !ok {
return nil
}
p := PlayerMgrSington.GetOnlinePlayer(sid)
if p == nil {
logger.Logger.Warn("CSPushCoinPlayerOp p == nil")
return nil
}
if p.WelfData == nil {
logger.Logger.Warn("CSPushCoinPlayerOp p.WelfData == nil")
return nil
}
if p.WelfData.PushCoin == nil {
logger.Logger.Warn("CSPushCoinPlayerOp p.WelfData.PushCoin == nil")
return nil
}
pack := &activity.SCPushCoinPlayerOp{
OpRetCode: activity.OpResultPushCoinCode_OPRC_PushCoin_Error,
OpCode: msg.GetOpCode(),
}
switch msg.GetOpCode() {
case activity.OpCodes_OP_Bet:
if msg.GetOpParam() != common.ItemIDCoin1 && msg.GetOpParam() != common.ItemIDCoin2 && msg.GetOpParam() != common.ItemIDCoin3 {
goto here
}
item := srvdata.GameItemMgr.Get(p.Platform, int32(msg.GetOpParam()))
if item == nil {
goto here
}
if p.GetCoin() < item.GetNum() {
pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_BetNotEnough
goto here
}
pack.BetId = int32(msg.GetOpParam())
p.AddCoin(-item.GetNum(), common.GainWayPushCoinCost, base.SyncFlag_ToClient, "system", "推币机下注")
// 增加桌面道具
AddValue(p, map[int32]int64{common.ItemIDCoin: item.GetNum()})
case activity.OpCodes_OP_Gain:
if msg.GetOpParam() == 1 {
// 有效区
for _, v := range msg.GetOpItem() {
id := v.GetItemId()
val := int64(v.GetItemNum())
switch v.GetItemId() {
case common.ItemIDBigCoin, common.ItemIDCoin1, common.ItemIDCoin2, common.ItemIDCoin3:
val *= srvdata.GameItemMgr.Get(p.Platform, id).GetNum()
id = common.ItemIDCoin
}
if p.WelfData.PushCoin.Items[id] < val {
logger.Logger.Errorf("获得道具太多: %d, %d", p.WelfData.PushCoin.Items[id], val)
// 刷新桌面余额
UpdatePlayerPushCoin(p)
goto here
}
BagMgrSingleton.AddItems(&model.AddItemParam{
Platform: p.Platform,
SnId: p.SnId,
Change: []*model.Item{{ItemId: id, ItemNum: val}},
GainWay: common.GainWayPushCoinGain,
Operator: "system",
Remark: "推币机掉落获得",
})
}
} else {
// 无效区
}
for _, v := range msg.GetOpItem() {
// 增加能量条
AddPower(p, PushCoinItemValue[v.GetItemId()]*int64(v.GetItemNum()))
// 减少桌面道具
AddValue(p, map[int32]int64{v.GetItemId(): -int64(v.GetItemNum())})
}
case activity.OpCodes_OP_Shake:
if p.WelfData.PushCoin.Shake < int32(msg.GetOpParam()) {
pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ShakeNotEnough
goto here
}
p.WelfData.PushCoin.Shake -= int32(msg.GetOpParam())
case activity.OpCodes_OP_Refresh:
UpdatePlayerPushCoin(p)
case activity.OpCodes_OP_Exchange:
d := srvdata.PBDB_PropExchangeMgr.GetData(int32(msg.GetOpParam()))
if d == nil {
goto here
}
// 兑换次数
if d.GetTimes() > 0 && p.WelfData.PushCoin.Exchange[d.Id] >= d.GetTimes() {
pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ExchangeNotEnough
goto here
}
pack.Exchange = &activity.ExchangeInfo{
Id: d.Id,
}
var cost, gain []*model.Item
for k, v := range d.GetCost() {
pack.Exchange.Cost = append(pack.Exchange.Cost, &activity.ItemInfo{
ItemId: int32(k),
ItemNum: int32(v),
})
if k == common.ItemIDCoin && p.GetCoin() < v {
pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ItemNotEnough
goto here
}
cost = append(cost, &model.Item{
ItemId: int32(k),
ItemNum: -v,
})
}
_, _, ok := BagMgrSingleton.AddItems(&model.AddItemParam{
Platform: p.Platform,
SnId: p.SnId,
Change: cost,
Add: 0,
GainWay: common.GainWayPushCoinExchangeCost,
Operator: "system",
Remark: "推币机活动兑换消耗",
})
if !ok {
pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_ItemNotEnough
goto here
}
for k, v := range d.GetGain() {
pack.Exchange.Gain = append(pack.Exchange.Gain, &activity.ItemInfo{
ItemId: int32(k),
ItemNum: int32(v),
})
if k == common.ItemIDShake {
p.WelfData.PushCoin.Shake += int32(v)
continue
}
gain = append(gain, &model.Item{
ItemId: int32(k),
ItemNum: v,
})
}
BagMgrSingleton.AddItems(&model.AddItemParam{
Platform: p.Platform,
SnId: p.SnId,
Change: gain,
Cost: cost,
Add: 0,
GainWay: common.GainWatPushCoinExchangeGain,
Operator: "system",
Remark: "推币机活动兑换获得",
})
if p.WelfData.PushCoin.Exchange == nil {
p.WelfData.PushCoin.Exchange = make(map[int32]int32)
}
p.WelfData.PushCoin.Exchange[d.Id]++
default:
return nil
}
pack.OpRetCode = activity.OpResultPushCoinCode_OPRC_PushCoin_Success
here:
p.SendToClient(int(activity.PushCoinPacketID_PACKET_SCPushCoinPlayerOp), pack)
logger.Logger.Trace("SCPushCoinPlayerOp: ", pack)
return nil
}
func InitPlayerPushCoin(p *Player) {
// 初始化
p.WelfData.PushCoin = &model.PushCoinData{
Power: PowerInit,
Exchange: make(map[int32]int32),
Items: map[int32]int64{
common.ItemIDVCard: 1,
common.ItemIDCoin: 50 * 5000,
common.ItemIDPlum: 1,
},
}
}
func UpdatePlayerPushCoin(p *Player) {
p.WelfData.PushCoin.Refresh++
// 50个金币
p.WelfData.PushCoin.Items = map[int32]int64{
common.ItemIDCoin: 50 * 5000,
}
}
func AddPower(p *Player, value int64) {
if value < 0 {
return
}
p.WelfData.PushCoin.Power += value
if p.WelfData.PushCoin.Power > PowerMax {
p.WelfData.PushCoin.Power = PowerMax
}
p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyPowerLine), &activity.NotifyPowerLine{
PowerLine: p.WelfData.PushCoin.Power,
PowerLineMax: PowerMax,
})
if value <= 0 {
return
}
// 抽奖
Draw(p)
}
func Draw(p *Player) {
if p.WelfData.PushCoin.Power < PowerMax {
return
}
p.WelfData.PushCoin.Power = 0
var index int32 = -1
switch p.WelfData.PushCoin.Dram {
case 0:
// 必中大金币
for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr {
for kk := range v.GetGain() {
if kk == common.ItemIDBigCoin {
index = v.GetId()
break
}
}
}
case 1:
// 必中v卡
for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr {
for kk := range v.GetGain() {
if kk == common.ItemIDVCard {
index = v.GetId()
break
}
}
}
default:
var n int32
rand := common.RandInt(10000)
for _, v := range srvdata.PBDB_ACTPushCoinMgr.Datas.Arr {
if rand < int(n+v.GetRate()) {
index = v.GetId()
break
}
n += v.GetRate()
}
}
p.WelfData.PushCoin.Dram++
if index >= 0 {
d := srvdata.PBDB_ACTPushCoinMgr.GetData(index)
if d != nil {
pack := &activity.DrawInfo{
Id: d.GetId(),
Coin: d.GetValue(),
}
for k, v := range d.GetGain() {
pack.ItemId = int32(k)
pack.ItemNum = int32(v)
}
if pack.Coin > 0 || pack.ItemId > 0 {
p.SendToClient(int(activity.PushCoinPacketID_PACKET_NotifyDrawInfo), pack)
// 增加能量条
AddPower(p, 0)
}
}
}
}
func AddValue(p *Player, item map[int32]int64) {
if item == nil {
return
}
if p.WelfData != nil && p.WelfData.PushCoin != nil {
if p.WelfData.PushCoin.Items == nil {
p.WelfData.PushCoin.Items = make(map[int32]int64)
}
for k, v := range item {
if v > 0 {
switch k {
case common.ItemIDCoin1, common.ItemIDCoin2, common.ItemIDCoin3, common.ItemIDBigCoin:
p.WelfData.PushCoin.Items[common.ItemIDCoin] += v * srvdata.GameItemMgr.Get(p.Platform, k).GetNum()
default:
p.WelfData.PushCoin.Items[k] += v
}
}
}
}
}

View File

@ -117,8 +117,6 @@ func init() {
etcd.Register(etcd.KeyRedPacket, webapi.RedPacketConfig{}, platformConfigEvent) etcd.Register(etcd.KeyRedPacket, webapi.RedPacketConfig{}, platformConfigEvent)
// 累计消耗活动配置 // 累计消耗活动配置
etcd.Register(etcd.KeyActConsume, webapi.ConsumeConfig{}, platformConfigEvent) etcd.Register(etcd.KeyActConsume, webapi.ConsumeConfig{}, platformConfigEvent)
// 推金币活动配置
etcd.Register(etcd.KeyActPushCoin, webapi.PushCoinConfig{}, platformConfigEvent)
} }
func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) {
@ -372,8 +370,6 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
WelfareMgrSington.UpdateRedPacket(config, isInit) WelfareMgrSington.UpdateRedPacket(config, isInit)
case *webapi.ConsumeConfig: case *webapi.ConsumeConfig:
WelfareMgrSington.UpdateConsumeConfig(config) WelfareMgrSington.UpdateConsumeConfig(config)
case *webapi.PushCoinConfig:
WelfareMgrSington.UpdatePushCoinConfig(config)
default: default:
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)

View File

@ -2903,9 +2903,6 @@ func (this *Player) DoShopInfo(info *model.DbShop, isLogin bool) {
} }
//年兽礼包 //年兽礼包
if info.PageId == ShopPageNian { if info.PageId == ShopPageNian {
if this.WelfData.NianData.GiftShop == nil {
this.WelfData.NianData.GiftShop = map[int32]int32{}
}
this.WelfData.NianData.GiftShop[info.ShopId] += 1 this.WelfData.NianData.GiftShop[info.ShopId] += 1
} }

View File

@ -765,14 +765,13 @@ func (r *RankMatchMgr) RankAward() {
} }
rankId := int32(1) rankId := int32(1)
for k, player := range players { for k, player := range players {
localRankId := rankId
if player == nil { if player == nil {
logger.Logger.Errorf("RankMatchMgr OnDayTimer FindPlayerPermitList player is nil %v", list.List[k].SnId) logger.Logger.Errorf("RankMatchMgr OnDayTimer FindPlayerPermitList player is nil %v", list.List[k].SnId)
continue continue
} }
var items []int64 var items []int64
for _, award := range rankAward { for _, award := range rankAward {
if award.RankLevelId == localRankId { if award.RankLevelId == rankId {
for _, itemInfo := range award.Item { for _, itemInfo := range award.Item {
items = append(items, int64(itemInfo.ItemId)) items = append(items, int64(itemInfo.ItemId))
items = append(items, itemInfo.ItemNum) items = append(items, itemInfo.ItemNum)
@ -787,7 +786,7 @@ func (r *RankMatchMgr) RankAward() {
var newMsg *model.Message var newMsg *model.Message
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
title := i18n.Tr("languages", "PermitAwardTitle") title := i18n.Tr("languages", "PermitAwardTitle")
content := i18n.Tr("languages", "PermitAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) content := i18n.Tr("languages", "PermitAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)})
newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD,
title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil)
err := model.InsertMessage(platform, newMsg) err := model.InsertMessage(platform, newMsg)
@ -838,14 +837,13 @@ func (r *RankMatchMgr) RankAward() {
} }
rankId := int32(1) rankId := int32(1)
for k, player := range players { for k, player := range players {
localRankId := rankId
if player == nil { if player == nil {
logger.Logger.Errorf("RankMatchMgr OnDayTimer FindWinCoinListTienlen player is nil %v", ret.List[k].SnId) logger.Logger.Errorf("RankMatchMgr OnDayTimer FindWinCoinListTienlen player is nil %v", ret.List[k].SnId)
continue continue
} }
var items []int64 var items []int64
for _, award := range rankAward { for _, award := range rankAward {
if award.RankLevelId == localRankId { if award.RankLevelId == rankId {
for _, itemInfo := range award.Item { for _, itemInfo := range award.Item {
items = append(items, int64(itemInfo.ItemId)) items = append(items, int64(itemInfo.ItemId))
items = append(items, itemInfo.ItemNum) items = append(items, itemInfo.ItemNum)
@ -860,7 +858,7 @@ func (r *RankMatchMgr) RankAward() {
var newMsg *model.Message var newMsg *model.Message
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
title := i18n.Tr("languages", "PermitAwardTitle") title := i18n.Tr("languages", "PermitAwardTitle")
content := i18n.Tr("languages", "PermitAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) content := i18n.Tr("languages", "PermitAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)})
newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD,
title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil)
err := model.InsertMessage(platform, newMsg) err := model.InsertMessage(platform, newMsg)
@ -958,7 +956,7 @@ func (r *RankMatchMgr) NianRankAward() {
end, _ := time.Parse(time.DateTime, endTime) end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix() endTimestamp := end.Unix()
nowTime := time.Now().Unix() nowTime := time.Now().Unix()
if nowTime < timestamp || nowTime-86400 > endTimestamp { if nowTime < timestamp || nowTime > endTimestamp {
return return
} }
log := &model.NianPlayerRankLog{} log := &model.NianPlayerRankLog{}
@ -996,19 +994,14 @@ func (r *RankMatchMgr) NianRankAward() {
} }
rankId := int32(1) rankId := int32(1)
for k, player := range players { for k, player := range players {
localRankId := rankId
if player == nil { if player == nil {
logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId)
continue continue
} }
var items []int64 var items []int64
for _, award := range rankAward { for _, award := range rankAward[rankId].Award {
if award.RankId == localRankId { items = append(items, int64(award.ItemId))
for _, itemInfo := range award.Award { items = append(items, award.ItemNum)
items = append(items, int64(itemInfo.ItemId))
items = append(items, itemInfo.ItemNum)
}
}
} }
if len(items) == 0 { if len(items) == 0 {
break break
@ -1017,7 +1010,7 @@ func (r *RankMatchMgr) NianRankAward() {
var newMsg *model.Message var newMsg *model.Message
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
title := i18n.Tr("languages", "NianLuckTitle") title := i18n.Tr("languages", "NianLuckTitle")
content := i18n.Tr("languages", "NianLuckAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) content := i18n.Tr("languages", "NianLuckAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)})
newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD,
title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil)
err := model.InsertMessage(platform, newMsg) err := model.InsertMessage(platform, newMsg)
@ -1034,13 +1027,12 @@ func (r *RankMatchMgr) NianRankAward() {
})).Start() })).Start()
//记录log //记录log
rankData := &model.NianPlayerRankData{ rankData := &model.NianPlayerRankData{
RankId: localRankId, RankId: rankId,
Snid: player.SnId, Snid: player.SnId,
Score: list.List[localRankId-1].Luck, Score: list.List[rankId-1].Luck,
} }
log.RankData = append(log.RankData, rankData) log.RankData = append(log.RankData, rankData)
rankId += 1 rankId += 1
logger.Logger.Infof("发奖 snid:%v rankId:%v", player.SnId, localRankId)
} }
mq.Write(log) mq.Write(log)
//清除幸运榜数值 //清除幸运榜数值
@ -1053,8 +1045,7 @@ func (r *RankMatchMgr) NianRankAward() {
})).StartByExecutor("NianLuck_Award") })).StartByExecutor("NianLuck_Award")
} else if info.TypeId == 2 { } else if info.TypeId == 2 {
yesterday := time.Unix(time.Now().Unix()-86400, 0) if time.Now().Day()-1 != end.Day() {
if yesterday.Day() != end.Day() {
return return
} }
rankAward := info.RankInfo rankAward := info.RankInfo
@ -1087,19 +1078,14 @@ func (r *RankMatchMgr) NianRankAward() {
} }
rankId := int32(1) rankId := int32(1)
for k, player := range players { for k, player := range players {
localRankId := rankId // 将 rankId 复制到局部变量
if player == nil { if player == nil {
logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId)
continue continue
} }
var items []int64 var items []int64
for _, award := range rankAward { for _, award := range rankAward[rankId].Award {
if award.RankId == localRankId { items = append(items, int64(award.ItemId))
for _, itemInfo := range award.Award { items = append(items, award.ItemNum)
items = append(items, int64(itemInfo.ItemId))
items = append(items, itemInfo.ItemNum)
}
}
} }
if len(items) == 0 { if len(items) == 0 {
break break
@ -1108,7 +1094,7 @@ func (r *RankMatchMgr) NianRankAward() {
var newMsg *model.Message var newMsg *model.Message
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
title := i18n.Tr("languages", "NianDamageTitle") title := i18n.Tr("languages", "NianDamageTitle")
content := i18n.Tr("languages", "NianDamageAward", []int{int(localRankId), int(localRankId), int(localRankId), int(localRankId)}) content := i18n.Tr("languages", "NianDamageAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)})
newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD,
title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil)
err := model.InsertMessage(platform, newMsg) err := model.InsertMessage(platform, newMsg)
@ -1124,9 +1110,9 @@ func (r *RankMatchMgr) NianRankAward() {
} }
})).Start() })).Start()
rankData := &model.NianPlayerRankData{ rankData := &model.NianPlayerRankData{
RankId: localRankId, RankId: rankId,
Snid: player.SnId, Snid: player.SnId,
Score: list.List[localRankId-1].Damage, Score: list.List[rankId-1].Damage,
} }
log.RankData = append(log.RankData, rankData) log.RankData = append(log.RankData, rankData)
rankId += 1 rankId += 1

View File

@ -2291,7 +2291,7 @@ func init() {
retFail("购买记录状态修改失败") retFail("购买记录状态修改失败")
return return
} }
if player != nil && !player.IsOffline() { if player != nil || (player != nil && player.IsOffline()) {
player.DoShopInfo(info, false) player.DoShopInfo(info, false)
// 邀请积分 // 邀请积分
InviteTask(msg.Platform, player.PSnId, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) InviteTask(msg.Platform, player.PSnId, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum))

View File

@ -5,10 +5,8 @@ import (
"math" "math"
"math/rand" "math/rand"
"slices" "slices"
"sort"
"time" "time"
"go.mongodb.org/mongo-driver/bson/primitive"
"mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/module" "mongo.games.com/goserver/core/module"
@ -931,7 +929,6 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) {
// WelfareSwitch 通知活动开关状态 // WelfareSwitch 通知活动开关状态
func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) {
pack := &player_proto.SCEasyWelfaredInfo{} pack := &player_proto.SCEasyWelfaredInfo{}
now := time.Now()
// 0转盘1盲盒2首冲3连续充值 // 0转盘1盲盒2首冲3连续充值
info := this.GetConfig(platform) info := this.GetConfig(platform)
@ -1022,18 +1019,11 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) {
} }
// 累消活动 // 累消活动
consumeConfig := info.ConsumeConfig consumeConfig := info.ConsumeConfig
if consumeConfig != nil && now.Unix() >= common.StrTimeToTs(consumeConfig.StartTime) && now.Unix() < common.StrTimeToTs(consumeConfig.EndTime) { if consumeConfig != nil {
pack.WelfareSwitch = append(pack.WelfareSwitch, consumeConfig.On) //累消活动开关 pack.WelfareSwitch = append(pack.WelfareSwitch, consumeConfig.On) //累消活动开关
} else { } else {
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose)
} }
// 推币机活动
coinConfig := info.PushCoinConfig
if coinConfig != nil && now.Unix() >= common.StrTimeToTs(coinConfig.StartTime) && now.Unix() < common.StrTimeToTs(coinConfig.EndTime) {
pack.WelfareSwitch = append(pack.WelfareSwitch, coinConfig.On) //推币机活动开关
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose)
}
if model.GameParamData.TestActSwitch { if model.GameParamData.TestActSwitch {
for k := range pack.WelfareSwitch { for k := range pack.WelfareSwitch {
@ -2323,10 +2313,6 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo {
} }
} }
sort.Slice(pack.Info, func(i, j int) bool {
return pack.Info[i].StartTs < pack.Info[j].StartTs
})
p.SendToClient(int(welfare.SPacketID_PACKET_SCRedPacketInfo), pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCRedPacketInfo), pack)
return pack return pack
} }
@ -2415,7 +2401,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr
f := func() { f := func() {
// 概率抽奖 // 概率抽奖
rate := 0 rate := 0
n := rand.Int63n(10000) n := rand.Int63n(100)
for _, v := range cfg.GetRedList() { for _, v := range cfg.GetRedList() {
rate += int(v.GetRate()) rate += int(v.GetRate())
if n < int64(rate) { if n < int64(rate) {
@ -2475,18 +2461,6 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr
Ts: now, Ts: now,
}, mq.BackRedPacket) }, mq.BackRedPacket)
mq.Write(&model.RedPacketHistory{
Platform: p.Platform,
ID: primitive.NewObjectID(),
Cid: id,
Snid: p.SnId,
Ts: time.Now().Unix(),
ItemId: cfg.GetItemId(),
ItemNum: reward,
}, mq.DBRedPacket)
TaskSubjectSingleton.Touch(common.TaskTypeBuyRedBag, &TaskData{SnId: p.SnId, Num: 1})
_, pack.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, cfg) _, pack.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, cfg)
Send(welfare.OpResultCode_OPRC_Sucess) Send(welfare.OpResultCode_OPRC_Sucess)
return pack return pack
@ -2509,23 +2483,6 @@ func (this *WelfareMgr) UpdateConsumeConfig(conf *webapi_proto.ConsumeConfig) {
} }
} }
func (this *WelfareMgr) UpdatePushCoinConfig(conf *webapi_proto.PushCoinConfig) {
if model.GameParamData.TestActSwitch {
conf.On = model.WelfareOpen
}
s := int32(0)
info := this.GetConfig(conf.Platform)
if info.PushCoinConfig != nil {
s = info.PushCoinConfig.On
}
this.GetConfig(conf.Platform).PushCoinConfig = conf
//更新活动时间
// 打开关闭要广播给客户端
if s != 0 && s != conf.On {
this.WelfareSwitch(nil, conf.Platform, model.OpPushCoin)
}
}
func (this *WelfareMgr) Update() { func (this *WelfareMgr) Update() {
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.