Compare commits
3 Commits
83cfbe6381
...
1f8b7e1d70
Author | SHA1 | Date |
---|---|---|
|
1f8b7e1d70 | |
|
8117f1af54 | |
|
2e34c33768 |
|
@ -287,8 +287,8 @@ const (
|
|||
GainWaySign7Add = 91 // 累计签到进阶奖励获得
|
||||
GainWayItemChange = 92 //背包内使用道具兑换话费
|
||||
GainWayPetSkillLevelUp = 93 //宠物技能升级
|
||||
GainWayPermitAward = 94 // 赛季通行证普通奖励
|
||||
GainWayPermitAwardSupper = 95 // 赛季通行证典藏奖励
|
||||
GainWayPermitAward = 94 // 赛季通行证奖励
|
||||
GainWayItemPermitRank = 95 // 赛季通行证排行奖励
|
||||
GainWayPermitExchangeCost = 96 // 赛季通行证兑换消耗
|
||||
GainWayPermitExchangeGain = 97 // 赛季通行证兑换获得
|
||||
GainWayItemTaskPermit = 98 // 赛季通行证任务
|
||||
|
|
|
@ -38,6 +38,7 @@ const (
|
|||
MSGTYPE_ITEM //获取道具
|
||||
MSGTYPE_RANK_REWARD //排行榜奖励
|
||||
MSGTYPE_ITEM_CHANGE //背包使用兑换
|
||||
MSGTYPE_RANK_PermitReward // 通行证排行奖励
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package model
|
||||
|
||||
// BackendPermitCycle 赛季周期
|
||||
type BackendPermitCycle struct {
|
||||
Platform string // 平台
|
||||
StartTs, EndTs int64 // 活动开始时间
|
||||
}
|
||||
|
||||
type AwardItem struct {
|
||||
Id int32 // 道具id
|
||||
Num int64
|
||||
}
|
||||
|
||||
// BackendPermitRank 玩家排名奖励
|
||||
type BackendPermitRank struct {
|
||||
Platform string // 平台
|
||||
StartTs int64 // 活动开始时间
|
||||
SnId int32 // 玩家id
|
||||
Rank int32 // 排名 1~100
|
||||
Awards []AwardItem // 奖励
|
||||
}
|
||||
|
||||
// BackendPermitExchange 玩家兑换
|
||||
type BackendPermitExchange struct {
|
||||
Platform string // 平台
|
||||
StartTs int64 // 活动开始时间
|
||||
SnId int32 // 玩家id
|
||||
Cost []AwardItem // 消耗
|
||||
Gain []AwardItem // 获得
|
||||
Ts int64 // 时间戳
|
||||
}
|
||||
|
||||
// BackendPermitJoin 玩家参与活动
|
||||
type BackendPermitJoin struct {
|
||||
Platform string // 平台
|
||||
StartTs int64 // 活动开始时间
|
||||
SnId int32 // 玩家id
|
||||
}
|
|
@ -110,8 +110,7 @@ const (
|
|||
SystemFreeGive_GiveType_TaskAchievement // 成就任务
|
||||
SystemFreeGive_GiveType_TaskEveryDay // 每日任务
|
||||
SystemFreeGive_GiveType_TaskWeekActive // 周活跃奖励
|
||||
SystemFreeGive_GiveType_PermitAward // 赛季通行证普通奖励
|
||||
SystemFreeGive_GiveType_PermitAwardSupper // 赛季通行证典藏奖励
|
||||
SystemFreeGive_GiveType_PermitAward // 赛季通行证奖励
|
||||
SystemFreeGive_GiveType_TaskPermit // 赛季通行证任务
|
||||
)
|
||||
const (
|
||||
|
|
|
@ -2,14 +2,18 @@ package mq
|
|||
|
||||
// 后台消息
|
||||
const (
|
||||
BackBankrupt = "log_bankrupt"
|
||||
BackClientLog = "log_clientlog_mysql"
|
||||
BackGameRecord = "evt_gamerec"
|
||||
BackLogin = "evt_login"
|
||||
BackOnline = "evt_online"
|
||||
BackPhoneLottery = "evt_phonelottery"
|
||||
BackReliefund = "log_relieffund"
|
||||
BackSystemFreeGive = "evt_systemfreegive"
|
||||
BackBankrupt = "log_bankrupt"
|
||||
BackClientLog = "log_clientlog_mysql"
|
||||
BackGameRecord = "evt_gamerec"
|
||||
BackLogin = "evt_login"
|
||||
BackOnline = "evt_online"
|
||||
BackPhoneLottery = "evt_phonelottery"
|
||||
BackReliefund = "log_relieffund"
|
||||
BackSystemFreeGive = "evt_systemfreegive"
|
||||
BackSystemPermitCycle = "back_permitcycle"
|
||||
BackSystemPermitRank = "back_permitrank"
|
||||
BackSystemPermitExchange = "back_permitexchange"
|
||||
BackSystemPermitJoin = "back_permitjoin"
|
||||
)
|
||||
|
||||
// dbproxy 消息
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -318,7 +318,6 @@ message PlayerData {
|
|||
int32 Age = 47; // 年龄
|
||||
repeated WeekInfo WeekCard = 48;//周卡
|
||||
repeated int32 RequestAddFriend = 49;//请求添加好友信息
|
||||
int64 Long = 50; // 龙币
|
||||
}
|
||||
|
||||
//周卡数据
|
||||
|
@ -361,7 +360,6 @@ message SCPlayerDataUpdate {
|
|||
map<int32,int64> RankScore = 12; // 排位积分
|
||||
int64 PhoneScore = 13; //手机积分
|
||||
int64 InviteScore = 14; // 邀请积分
|
||||
int64 Long = 15; // 龙币
|
||||
}
|
||||
|
||||
//获取第三方玩家信息
|
||||
|
|
2
public
2
public
|
@ -1 +1 @@
|
|||
Subproject commit 63eadb869736b9d3e16c993cd99675c0e0de638c
|
||||
Subproject commit 3f6ae474769f33050525f59aed42321b93a788cc
|
|
@ -539,8 +539,8 @@ func SendPermitReward(p *Player, m map[int64]int64, tp int32) {
|
|||
gain = common.GainWayPermitAward
|
||||
giveType = model.SystemFreeGive_GiveType_PermitAward
|
||||
case 2:
|
||||
gain = common.GainWayPermitAwardSupper
|
||||
giveType = model.SystemFreeGive_GiveType_PermitAwardSupper
|
||||
gain = common.GainWayPermitAward
|
||||
giveType = model.SystemFreeGive_GiveType_PermitAward
|
||||
}
|
||||
BagMgrSingleton.AddItems(p, items, 0, gain, "system", "通行证奖励", 0, 0, false)
|
||||
for _, v := range items {
|
||||
|
@ -940,11 +940,15 @@ func CSPermitExchangeList(s *netlib.Session, packetid int, data interface{}, sid
|
|||
|
||||
times := int32(v.GetTimes()) - int32(GetPermitExchangeNum(p, v.GetId()))
|
||||
|
||||
exchangeTimes := v.GetTimes()
|
||||
if exchangeTimes == 0 {
|
||||
exchangeTimes = -1
|
||||
}
|
||||
pack.List = append(pack.List, &welfare.ShopInfo{
|
||||
Id: v.GetId(),
|
||||
Gain: gain,
|
||||
Cost: cost,
|
||||
ExchangeTimes: int32(v.GetTimes()),
|
||||
ExchangeTimes: int32(exchangeTimes),
|
||||
RemainTimes: times,
|
||||
Level: v.GetLevel(),
|
||||
NeedPermit: v.GetIsPermit(),
|
||||
|
@ -1018,6 +1022,7 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
// 检查背包是否足够
|
||||
var items []*Item
|
||||
var costItems []*Item
|
||||
var cost, gain []model.AwardItem
|
||||
for _, v := range exchangeConfig.GetCost() {
|
||||
item := BagMgrSingleton.GetItem(p.SnId, v.GetItemId())
|
||||
if item == nil || item.ItemNum < v.GetItemNum() {
|
||||
|
@ -1031,6 +1036,10 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
ItemNum: v.GetItemNum(),
|
||||
Name: info.Name,
|
||||
})
|
||||
cost = append(cost, model.AwardItem{
|
||||
Id: v.GetItemId(),
|
||||
Num: v.GetItemNum(),
|
||||
})
|
||||
}
|
||||
}
|
||||
for _, v := range exchangeConfig.GetGain() {
|
||||
|
@ -1041,6 +1050,10 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
ItemNum: v.GetItemNum(),
|
||||
Name: info.Name,
|
||||
})
|
||||
gain = append(gain, model.AwardItem{
|
||||
Id: v.GetItemId(),
|
||||
Num: v.GetItemNum(),
|
||||
})
|
||||
}
|
||||
}
|
||||
// 扣除背包物品
|
||||
|
@ -1050,6 +1063,15 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
// 增加背包物品
|
||||
BagMgrSingleton.AddItems(p, items, 0, common.GainWayPermitExchangeGain, "system", "赛季通行证兑换获得", 0, 0, false)
|
||||
p.WelfData.PermitExchange[msg.GetId()] = append(p.WelfData.PermitExchange[msg.GetId()], now.Unix())
|
||||
// 兑换记录
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitExchange{
|
||||
Platform: p.Platform,
|
||||
StartTs: startTs,
|
||||
SnId: p.SnId,
|
||||
Cost: cost,
|
||||
Gain: gain,
|
||||
Ts: now.Unix(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -149,6 +149,7 @@ func (this *BagMgr) GetItem(snid, itemId int32) *Item {
|
|||
// noLog 是否不记录日志
|
||||
func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int32, operator, remark string,
|
||||
gameId, gameFreeId int64, noLog bool) (*BagInfo, bag.OpResultCode, bool) {
|
||||
longItem := this.GetItem(p.SnId, common.ItemIDPermit)
|
||||
var items []*Item
|
||||
for _, v := range addItems {
|
||||
if v == nil || v.ItemNum == 0 {
|
||||
|
@ -312,6 +313,14 @@ func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int
|
|||
ModId: p.Roles.ModId,
|
||||
StartTs: startTs,
|
||||
})
|
||||
// 参与赛季通行证活动
|
||||
if longItem == nil || longItem.ItemNum == 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
Platform: p.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs,
|
||||
SnId: p.SnId,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
if v == common.ItemIDLong {
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"go.etcd.io/etcd/client/v3"
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/task"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
|
@ -17,7 +18,6 @@ import (
|
|||
loginproto "mongo.games.com/game/protocol/login"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -308,6 +308,11 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
|
|||
if err != nil {
|
||||
logger.Logger.Errorf("permit startts update error:%v", err)
|
||||
}
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
Platform: config.Platform,
|
||||
StartTs: common.GetDayStartTs(1719646575),
|
||||
EndTs: common.GetDayStartTs(1719646575) + int64(actConfig.GetDays()*24*3600),
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}), nil).StartByExecutor("permit_start_ts")
|
||||
|
@ -352,7 +357,15 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
|
|||
}
|
||||
}
|
||||
return nil
|
||||
}), nil).StartByExecutor("permit_start_ts")
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if st.StartTs > 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
Platform: config.Platform,
|
||||
StartTs: st.StartTs,
|
||||
EndTs: st.EndTs,
|
||||
})
|
||||
}
|
||||
})).StartByExecutor("permit_start_ts")
|
||||
|
||||
default:
|
||||
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
|
||||
|
|
|
@ -3,6 +3,8 @@ package main
|
|||
import (
|
||||
"reflect"
|
||||
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
@ -39,6 +41,7 @@ func (c *LogChannel) WriteLog(log interface{}) {
|
|||
if cname == "" {
|
||||
cname = "_null_"
|
||||
}
|
||||
logger.Logger.Tracef("==> RabbitMQ(%v): %#v", cname, log)
|
||||
mq.Send(cname, log)
|
||||
}
|
||||
|
||||
|
@ -61,4 +64,8 @@ func init() {
|
|||
LogChannelSingleton.RegisterLogCName(model.EvtInvite, &model.EvtInviteMsg{})
|
||||
LogChannelSingleton.RegisterLogCName(model.MQRankPlayerLevel, &model.PlayerLevelInfo{})
|
||||
LogChannelSingleton.RegisterLogCName(model.MQRankPlayerPermit, &model.PermitScore{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitCycle, &model.BackendPermitCycle{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitRank, &model.BackendPermitRank{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitExchange, &model.BackendPermitExchange{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitJoin, &model.BackendPermitJoin{})
|
||||
}
|
||||
|
|
|
@ -95,20 +95,33 @@ func (r *PermitMgr) OnDayTimer() {
|
|||
for r := rankInfo.GetStart(); r <= rankInfo.GetEnd(); r++ {
|
||||
if rank == int(r) {
|
||||
has = true
|
||||
var awards []model.AwardItem
|
||||
for _, item := range rankInfo.GetItemId() {
|
||||
items = append(items, item.GetItemId())
|
||||
items = append(items, int32(item.GetItemNum()))
|
||||
awards = append(awards, model.AwardItem{
|
||||
Id: item.GetItemId(),
|
||||
Num: item.GetItemNum(),
|
||||
})
|
||||
}
|
||||
if len(items) == 0 {
|
||||
break
|
||||
}
|
||||
logger.Logger.Infof("PermitMgr rank award snid:%v rank:%v", player.SnId, rank)
|
||||
// 领奖记录
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitRank{
|
||||
Platform: platform,
|
||||
StartTs: startTs,
|
||||
SnId: curPlayer.SnId,
|
||||
Rank: int32(rank),
|
||||
Awards: awards,
|
||||
})
|
||||
// 发邮件
|
||||
var newMsg *model.Message
|
||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
title := i18n.Tr("languages", "PermitAwardTitle")
|
||||
content := i18n.Tr("languages", "PermitAward", []int{rank, rank, rank, rank})
|
||||
newMsg = model.NewMessage("", 0, "", curPlayer.SnId, model.MSGTYPE_RANK_REWARD,
|
||||
newMsg = model.NewMessage("", 0, "", curPlayer.SnId, model.MSGTYPE_RANK_PermitReward,
|
||||
title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil)
|
||||
err := model.InsertMessage(platform, newMsg)
|
||||
if err != nil {
|
||||
|
@ -149,7 +162,15 @@ func (r *PermitMgr) OnDayTimer() {
|
|||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
model.UptStrKVGameData(common.PermitStartTsKey+platform, string(b))
|
||||
return nil
|
||||
}), nil).StartByExecutor("permit_start_ts")
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if se.StartTs > 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
Platform: platform,
|
||||
StartTs: se.StartTs,
|
||||
EndTs: se.EndTs,
|
||||
})
|
||||
}
|
||||
})).StartByExecutor("permit_start_ts")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,6 @@ const (
|
|||
UpdateField_RankScore
|
||||
UpdateField_PhoneScore
|
||||
UpdateField_InviteScore
|
||||
UpdateField_Long
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -1216,6 +1215,10 @@ func (this *Player) GetMessageAttach(id string) {
|
|||
remark = "排位赛段位奖励"
|
||||
gainWay = common.GainWay_RankMatch
|
||||
addItem()
|
||||
case model.MSGTYPE_RANK_PermitReward:
|
||||
remark = "通行证排行奖励"
|
||||
gainWay = common.GainWayItemPermitRank
|
||||
addItem()
|
||||
}
|
||||
if msg.Coin > 0 {
|
||||
this.AddCoin(msg.Coin, 0, gainWay, msg.Id.Hex(), remark)
|
||||
|
@ -2559,14 +2562,6 @@ func (this *Player) SendDiffData() {
|
|||
if len(pack.RankScore) == 0 {
|
||||
pack.RankScore = nil
|
||||
}
|
||||
// 龙币
|
||||
itemLong := BagMgrSingleton.GetItem(this.SnId, common.ItemIDLong)
|
||||
if itemLong != nil && this.diffData.Long != itemLong.ItemNum {
|
||||
dirty = true
|
||||
pack.Long = proto.Int64(itemLong.ItemNum)
|
||||
this.diffData.Long = itemLong.ItemNum
|
||||
pack.UpdateField += UpdateField_Long
|
||||
}
|
||||
|
||||
if dirty {
|
||||
FriendMgrSington.UpdateInfo(this.Platform, this.SnId)
|
||||
|
@ -3008,10 +3003,6 @@ func (this *Player) SendPlayerInfo() {
|
|||
if item := BagMgrSingleton.GetItem(this.SnId, VCard); item != nil {
|
||||
scPlayerData.Data.VCoin = item.ItemNum //V卡
|
||||
}
|
||||
// 龙币
|
||||
if item := BagMgrSingleton.GetItem(this.SnId, common.ItemIDLong); item != nil {
|
||||
scPlayerData.Data.Long = item.ItemNum
|
||||
}
|
||||
// 排位积分
|
||||
scPlayerData.Data.RankScore = RankMgrSingleton.GetPlayerRankScore(this.SnId)
|
||||
|
||||
|
@ -3931,6 +3922,11 @@ func (this *Player) GetPayGoodsInfo() {
|
|||
}
|
||||
if info.PageId == ShopPagePermit {
|
||||
this.Permit = info.CreateTs.Local()
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
Platform: this.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(this.Platform).PermitStartTs,
|
||||
SnId: this.SnId,
|
||||
})
|
||||
}
|
||||
switch info.Remark {
|
||||
case "BlindBox":
|
||||
|
|
|
@ -4126,6 +4126,11 @@ func init() {
|
|||
}
|
||||
if info.PageId == ShopPagePermit {
|
||||
player.Permit = info.CreateTs.Local()
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
Platform: player.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(player.Platform).PermitStartTs,
|
||||
SnId: player.SnId,
|
||||
})
|
||||
}
|
||||
switch info.Remark {
|
||||
case "BlindBox":
|
||||
|
|
Loading…
Reference in New Issue