This commit is contained in:
by 2024-07-04 15:02:02 +08:00
commit 76d95282ca
13 changed files with 97 additions and 45 deletions

View File

@ -793,3 +793,5 @@ const (
) )
const PermitStartTsKey = "permit_start_ts" const PermitStartTsKey = "permit_start_ts"
const PermitAdd = 0.2 // 典藏通行证赛季积分多加,百分比

Binary file not shown.

Binary file not shown.

View File

@ -53,6 +53,16 @@ func (svc *GameKVDataSvc) UptGameKVData(args *model.GameKVData, ret *bool) error
return nil return nil
} }
func (svc *GameKVDataSvc) GetGameKVData(args *model.GameKVData, ret *model.GameKVData) error {
c := GameKVDatasCollection()
if c != nil {
err := c.Find(bson.M{"key": args.Key}).One(ret)
logger.Logger.Tracef("GetGameKVData: %#v %v", ret, err)
return err
}
return nil
}
var _GameKVDataSvc = &GameKVDataSvc{} var _GameKVDataSvc = &GameKVDataSvc{}
func init() { func init() {

View File

@ -63,6 +63,23 @@ func GetStrKVGameData(key string) string {
return "" return ""
} }
func GetStrKVGameDataDB(key string) (string, error) {
if rpcCli == nil {
logger.Logger.Error("model.GetStrKVGameDataDB rpcCli == nil")
return "", ErrRPClientNoConn
}
req := &GameKVData{
Key: key,
}
ret := &GameKVData{}
err := rpcCli.CallWithTimeout("GameKVDataSvc.GetGameKVData", req, ret, time.Second*30)
if err != nil {
logger.Logger.Error("model.GetStrKVGameDataDB err:", err, key)
return "", err
}
return ret.StrVal, err
}
func GetFloatKVGameData(key string) float64 { func GetFloatKVGameData(key string) float64 {
if val, exist := gameKVDatas.Load(key); exist { if val, exist := gameKVDatas.Load(key); exist {
if data, ok := val.(*GameKVData); ok { if data, ok := val.(*GameKVData); ok {

View File

@ -16,7 +16,10 @@ var RankPermitMgrInstance = com.NewListMgr[*model.PermitScore](
func(platform string, index int32) ([]*model.PermitScore, error) { func(platform string, index int32) ([]*model.PermitScore, error) {
logger.Logger.Tracef("load rank permit platform:%s rankType:%d", platform, index) logger.Logger.Tracef("load rank permit platform:%s rankType:%d", platform, index)
se := new(model.PermitStartTs) se := new(model.PermitStartTs)
b := model.GetStrKVGameData(common.PermitStartTsKey + platform) b, err := model.GetStrKVGameDataDB(common.PermitStartTsKey + platform)
if err != nil {
return nil, err
}
json.Unmarshal([]byte(b), se) json.Unmarshal([]byte(b), se)
seasonList, err := model.FindPlayerPermitList(&model.FindPlayerPermitListArgs{ seasonList, err := model.FindPlayerPermitList(&model.FindPlayerPermitListArgs{
Platform: platform, Platform: platform,

View File

@ -532,6 +532,22 @@ func (this *CSInviteFriendOpHandler) Process(s *netlib.Session, packetid int, da
opRetCode = friend.OpResultCode_OPRC_Error //进入房间失败 opRetCode = friend.OpResultCode_OPRC_Error //进入房间失败
send(p) send(p)
return nil return nil
} else {
// 进入成功
for _, v := range scene.players {
if v == nil || len(v.TaskInviteList) == 0 || v.SnId == p.SnId {
continue
}
if v.TaskInviteList[p.SnId] == scene.sceneId {
delete(v.TaskInviteList, p.SnId)
TaskSubjectSingleton.Touch(common.TaskTypeInvitePlay, &TaskData{
SnId: v.SnId,
GameID: scene.gameId,
GameFreeID: scene.dbGameFree.GetId(),
Num: 1,
})
}
}
} }
case Invite_Refuse: case Invite_Refuse:
logger.Logger.Trace("拒绝邀请") logger.Logger.Trace("拒绝邀请")

View File

@ -167,22 +167,6 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in
if !scene.PlayerEnter(p, -1, true) { if !scene.PlayerEnter(p, -1, true) {
code = gamehall.OpResultCode_Game_OPRC_Error_Game code = gamehall.OpResultCode_Game_OPRC_Error_Game
} else {
// 进入成功
for _, v := range scene.players {
if v == nil || len(v.TaskInviteList) == 0 || v.SnId == p.SnId {
continue
}
if v.TaskInviteList[p.SnId] == scene.sceneId {
delete(v.TaskInviteList, p.SnId)
TaskSubjectSingleton.Touch(common.TaskTypeInvitePlay, &TaskData{
SnId: v.SnId,
GameID: scene.gameId,
GameFreeID: scene.dbGameFree.GetId(),
Num: 1,
})
}
}
} }
failed: failed:

View File

@ -432,6 +432,13 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte
return nil return nil
}*/ }*/
} }
if shopInfo.Page == ShopPagePermit {
if p.GetIsPermit() {
logger.Logger.Error("已购买典藏通行证")
SendClient(shop.OpResultCode_OPRC_Error)
return nil
}
}
ShopMgrSington.SendAPICreateOrder(p, msg.ConfigPayId, shopInfo, "shop_goods_xj") ShopMgrSington.SendAPICreateOrder(p, msg.ConfigPayId, shopInfo, "shop_goods_xj")
} else { } else {

View File

@ -77,7 +77,7 @@ func SendReward(p *Player, m map[int64]int64, tp int32) {
var items []*Item var items []*Item
for k, v := range m { for k, v := range m {
if k == common.ItemIDPermit && isPermit { if k == common.ItemIDPermit && isPermit {
v += v / 2 // 增加50% v += int64(float64(v) * common.PermitAdd)
} }
items = append(items, &Item{ items = append(items, &Item{
ItemId: int32(k), ItemId: int32(k),
@ -186,7 +186,7 @@ func CSTaskReward(s *netlib.Session, packetId int, data interface{}, sid int64)
SendReward(p, data.Award, msg.Tp) SendReward(p, data.Award, msg.Tp)
for k, vv := range data.GetAward() { for k, vv := range data.GetAward() {
if k == common.ItemIDPermit && isPermit { if k == common.ItemIDPermit && isPermit {
vv += vv / 2 // 增加50% vv += int64(float64(vv) * common.PermitAdd)
} }
ret.Reward[k] = ret.Reward[k] + vv ret.Reward[k] = ret.Reward[k] + vv
} }

View File

@ -5,6 +5,7 @@ import (
"encoding/json" "encoding/json"
"strconv" "strconv"
"strings" "strings"
"time"
"go.etcd.io/etcd/client/v3" "go.etcd.io/etcd/client/v3"
"mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/basic"
@ -230,30 +231,37 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
PlatformMgrSingleton.GetConfig(config.Platform).PermitStartTs = startTs PlatformMgrSingleton.GetConfig(config.Platform).PermitStartTs = startTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitEndTs = endTs PlatformMgrSingleton.GetConfig(config.Platform).PermitEndTs = endTs
} }
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { f := func() {
if st.StartTs <= 0 || st.EndTs <= 0 { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
return nil if st.StartTs <= 0 || st.EndTs <= 0 {
} return nil
b, err := json.Marshal(st)
if err != nil {
logger.Logger.Errorf("permit startts save error: %v", err)
} else {
logger.Logger.Infof("update permit startts: %v %v", st.StartTs, st.EndTs)
err := model.UptStrKVGameData(common.PermitStartTsKey+config.Platform, string(b))
if err != nil {
logger.Logger.Errorf("permit startts update error:%v", err)
} }
} b, err := json.Marshal(st)
return nil if err != nil {
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { logger.Logger.Errorf("permit startts save error: %v", err)
if st.StartTs > 0 { } else {
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{ logger.Logger.Infof("update permit startts: %v %v", st.StartTs, st.EndTs)
Platform: config.Platform, err := model.UptStrKVGameData(common.PermitStartTsKey+config.Platform, string(b))
StartTs: st.StartTs, if err != nil {
EndTs: st.EndTs, logger.Logger.Errorf("permit startts update error:%v", err)
}) }
} }
})).StartByExecutor("permit_start_ts") return nil
}), 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")
}
if isInit {
time.AfterFunc(time.Second*5, f) //todo 优化
} else {
f()
}
default: default:
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)

View File

@ -155,6 +155,9 @@ func (r *PermitMgr) OnDayTimer() {
} }
PlatformMgrSingleton.GetConfig(platform).PermitStartTs = se.StartTs PlatformMgrSingleton.GetConfig(platform).PermitStartTs = se.StartTs
PlatformMgrSingleton.GetConfig(platform).PermitEndTs = se.EndTs PlatformMgrSingleton.GetConfig(platform).PermitEndTs = se.EndTs
for _, v := range PlayerMgrSington.playerOfPlatform[platform] {
v.ResetPermit()
}
b, err := json.Marshal(se) b, err := json.Marshal(se)
if err != nil { if err != nil {
logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Marshal err:%v", err) logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Marshal err:%v", err)

View File

@ -1546,10 +1546,12 @@ func (this *Tournament) MakeMatchLog(platform string, tmId int32, sortId int64)
Item: items, Item: items,
Rank: rankId, Rank: rankId,
}) })
if rankId >= 10 { if rankId >= 1 && rankId <= 10 {
TaskSubjectSingleton.Touch(common.TaskTypeMatchRank10, &TaskData{ TaskSubjectSingleton.Touch(common.TaskTypeMatchRank10, &TaskData{
SnId: v.p.SnId, GameID: int(v.tm.dbGameFree.GetGameId()),
Num: 1, GameFreeID: v.tm.dbGameFree.GetId(),
SnId: v.p.SnId,
Num: 1,
}) })
} }
} }