锦标赛奖励配置优化-根据活动类型区分
This commit is contained in:
parent
5e9710d2f3
commit
850cceecaa
@ -90,6 +90,42 @@ func GetActivityList() []*gamedata.ActivityData {
|
||||
}
|
||||
return List
|
||||
}
|
||||
func GetActivityListOrigin() []*gamedata.ActivityData {
|
||||
data, err := gamedata.GetData(CFG_ACTIVITY)
|
||||
if err != nil {
|
||||
log.Debug("GetActivityList err:%v", err)
|
||||
return nil
|
||||
}
|
||||
List := make([]*gamedata.ActivityData, 0, len(data))
|
||||
|
||||
for k, v := range data {
|
||||
StartTimeStr := gamedata.GetStringValue(v, "StartTime")
|
||||
EndTimeStr := gamedata.GetStringValue(v, "EndTime")
|
||||
StartTime := GoUtil.ParseTime(StartTimeStr)
|
||||
EndTime := GoUtil.ParseTime(EndTimeStr)
|
||||
Id, err := strconv.Atoi(k)
|
||||
if err != nil {
|
||||
log.Debug("GetActivityList parse id err:%v, key:%s", err, k)
|
||||
continue
|
||||
}
|
||||
Type := gamedata.GetIntValue(v, "Type")
|
||||
Name := gamedata.GetStringValue(v, "Name")
|
||||
Title := gamedata.GetStringValue(v, "Title")
|
||||
Level := gamedata.GetIntValue(v, "Level")
|
||||
ActivityData := &gamedata.ActivityData{
|
||||
Id: Id,
|
||||
Type: Type,
|
||||
AType: gamedata.GetIntValue(v, "AType"),
|
||||
Name: Name,
|
||||
Title: Title,
|
||||
Level: Level,
|
||||
StartTime: StartTime,
|
||||
EndTime: EndTime,
|
||||
}
|
||||
List = append(List, ActivityData)
|
||||
}
|
||||
return List
|
||||
}
|
||||
|
||||
func GetActivityRewardItems(ActId int) []*item.Item {
|
||||
data, err := gamedata.GetData(CFG_ACTIVITY_GIFT)
|
||||
|
||||
@ -5,6 +5,7 @@ import (
|
||||
GoUtil "server/game_util"
|
||||
"server/gamedata"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -12,6 +13,7 @@ const (
|
||||
CFG_CHAMPSHIP_RANK = "ChampshipRank"
|
||||
CFG_CHAMPSHIP_JACKPOT = "ChampshipJackpot"
|
||||
CFG_CHAMPSHIP_GROUP = "ChampshipGroup"
|
||||
CFG_CHAMPSHIP_CONST = "ChampshipConst"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -19,6 +21,7 @@ func init() {
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_RANK)
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_JACKPOT)
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_GROUP)
|
||||
gamedata.InitCfg(CFG_CHAMPSHIP_CONST)
|
||||
}
|
||||
|
||||
func GetGroupId(N int) int {
|
||||
@ -44,7 +47,7 @@ func GetChessScore(ChessLv int) int {
|
||||
return gamedata.GetIntValue(data, "Score")
|
||||
}
|
||||
|
||||
func GetReward(Reward, Score int) (int, []*item.Item) {
|
||||
func GetReward(Reward, Score, activityId int) (int, []*item.Item) {
|
||||
data, err := gamedata.GetData(CFG_CHAMPSHIP_JACKPOT)
|
||||
if err != nil {
|
||||
log.Debug("GetReward err:%v, Reward=%d, Score=%d", err, Reward, Score)
|
||||
@ -53,6 +56,10 @@ func GetReward(Reward, Score int) (int, []*item.Item) {
|
||||
r := make([]*item.Item, 0, len(data))
|
||||
NewReward := Reward
|
||||
for k, v := range data {
|
||||
rewardGroupType := gamedata.GetIntValue(v, "RewardGroupType")
|
||||
if rewardGroupType != activityId {
|
||||
continue
|
||||
}
|
||||
Id := GoUtil.Int(k)
|
||||
if Reward >= Id {
|
||||
continue
|
||||
@ -84,14 +91,14 @@ func GetRewardTotalScore(Reward int) int {
|
||||
return gamedata.GetIntValue(data, "Total")
|
||||
}
|
||||
|
||||
func GetRankReward(Rank int) []*item.Item {
|
||||
func GetRankReward(Rank, yesterdayActivityId int) []*item.Item {
|
||||
data, err := gamedata.GetData(CFG_CHAMPSHIP_RANK)
|
||||
if err != nil {
|
||||
log.Debug("GetRankReward err:%v, Rank=%d", err, Rank)
|
||||
log.Debug("GetRankReward err:%v, Rank=%d, yesterdayActivityId=%d", err, Rank, yesterdayActivityId)
|
||||
return nil
|
||||
}
|
||||
for _, v := range data {
|
||||
if Rank >= gamedata.GetIntValue(v, "Min") && Rank <= gamedata.GetIntValue(v, "Max") {
|
||||
if Rank >= gamedata.GetIntValue(v, "Min") && Rank <= gamedata.GetIntValue(v, "Max") && yesterdayActivityId == gamedata.GetIntValue(v, "RewardGroupType") {
|
||||
return gamedata.GetItemList(v, "Items")
|
||||
}
|
||||
}
|
||||
@ -113,3 +120,20 @@ func GetMaxRewardId() int {
|
||||
}
|
||||
return MaxId
|
||||
}
|
||||
|
||||
func GetChampshipActivityId() []int {
|
||||
data, err := gamedata.GetDataByKey(CFG_CHAMPSHIP_CONST, "RewardGroupType_const")
|
||||
if err != nil {
|
||||
log.Debug("GetChampshipActivityId err:%v", err)
|
||||
return nil
|
||||
}
|
||||
value := gamedata.GetStringValue(data, "Value")
|
||||
var res []int
|
||||
for _, v := range strings.Split(value, "|") {
|
||||
id := GoUtil.Int(v)
|
||||
if id > 0 {
|
||||
res = append(res, id)
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
activityCfg "server/conf/activity"
|
||||
catnipCfg "server/conf/catnip"
|
||||
champshipCfg "server/conf/champship"
|
||||
guesscolorCfg "server/conf/guess_color"
|
||||
languageCfg "server/conf/language"
|
||||
miningCfg "server/conf/mining"
|
||||
@ -422,3 +423,28 @@ func (p *Player) CatnipBackData() {
|
||||
}
|
||||
p.PushClientRes(res)
|
||||
}
|
||||
|
||||
func (p *Player) GetChampshipActivityId() (int, int) {
|
||||
var todayActivityId int
|
||||
var yesterdayActivityId int
|
||||
activiyCfgList := activityCfg.GetActivityListOrigin()
|
||||
Now := GoUtil.Now()
|
||||
YesterDay := GoUtil.ZeroTimestamp() - 1
|
||||
level := p.GetBaseMod().GetLevel()
|
||||
champshipActivityIds := champshipCfg.GetChampshipActivityId()
|
||||
for _, v := range activiyCfgList {
|
||||
if !GoUtil.InArray(v.Id, champshipActivityIds) {
|
||||
continue
|
||||
}
|
||||
if v.Level > level {
|
||||
continue
|
||||
}
|
||||
if v.StartTime <= Now && v.EndTime >= Now {
|
||||
todayActivityId = v.Id
|
||||
}
|
||||
if v.StartTime <= YesterDay && v.EndTime >= YesterDay {
|
||||
yesterdayActivityId = v.Id
|
||||
}
|
||||
}
|
||||
return todayActivityId, yesterdayActivityId
|
||||
}
|
||||
|
||||
@ -35,12 +35,12 @@ func (c *ChampshipMod) GetScore() int {
|
||||
return c.Score
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) GetRankReward(Rank int) ([]*item.Item, error) {
|
||||
func (c *ChampshipMod) GetRankReward(Rank, yesterdayActivityId int) ([]*item.Item, error) {
|
||||
if c.RankReward {
|
||||
return nil, fmt.Errorf("rank reward has been received")
|
||||
}
|
||||
c.RankReward = true
|
||||
return champshipCfg.GetRankReward(Rank), nil
|
||||
return champshipCfg.GetRankReward(Rank, yesterdayActivityId), nil
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) AddScore(Chess []int) {
|
||||
@ -56,14 +56,14 @@ func (c *ChampshipMod) AddScore(Chess []int) {
|
||||
c.Score += score
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) GetReward() []*item.Item {
|
||||
Reward, Items := champshipCfg.GetReward(c.Reward, c.Score)
|
||||
func (c *ChampshipMod) GetReward(activityId int) []*item.Item {
|
||||
Reward, Items := champshipCfg.GetReward(c.Reward, c.Score, activityId)
|
||||
c.Reward = Reward
|
||||
c.Max = max(c.Max, c.Reward)
|
||||
return Items
|
||||
}
|
||||
|
||||
func (c *ChampshipMod) BackData(MyRank, MyPreRank int) *msg.ResChampship {
|
||||
func (c *ChampshipMod) BackData(MyRank, MyPreRank, todayActivityId, yesterdayActivityId int) *msg.ResChampship {
|
||||
rankReward := 0
|
||||
if c.RankReward {
|
||||
rankReward = 2
|
||||
@ -82,6 +82,8 @@ func (c *ChampshipMod) BackData(MyRank, MyPreRank int) *msg.ResChampship {
|
||||
Rank: int32(MyRank),
|
||||
RankReward: int32(rankReward),
|
||||
Status: int32(status),
|
||||
TodayActivityId: int32(todayActivityId),
|
||||
YesterdayActivityId: int32(yesterdayActivityId),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package game
|
||||
import (
|
||||
"server/game/mod/base"
|
||||
"server/game/mod/card"
|
||||
"server/game/mod/champship"
|
||||
"server/game/mod/charge"
|
||||
"server/game/mod/chess"
|
||||
"server/game/mod/decorate"
|
||||
@ -67,3 +68,7 @@ func (p *Player) GetFurMod() *fur.FurMod {
|
||||
func (p *Player) GetFriendMod() *friend.FriendMod {
|
||||
return p.PlayMod.getFriendMod()
|
||||
}
|
||||
|
||||
func (p *Player) GetChampshipMod() *champship.ChampshipMod {
|
||||
return p.PlayMod.getChampshipMod()
|
||||
}
|
||||
|
||||
@ -308,7 +308,8 @@ func (p *Player) ChargeBackData() {
|
||||
func (p *Player) BackChampship() {
|
||||
ChampshipMod := p.PlayMod.getChampshipMod()
|
||||
rank, preRank := p.GetChampshipRank()
|
||||
p.PushClientRes(ChampshipMod.BackData(rank, preRank))
|
||||
todayActivityId, yesterdayActivityId := p.GetChampshipActivityId()
|
||||
p.PushClientRes(ChampshipMod.BackData(rank, preRank, todayActivityId, yesterdayActivityId))
|
||||
}
|
||||
|
||||
// 获取冠军赛排名 redis缓存
|
||||
|
||||
@ -2737,7 +2737,8 @@ func ReqShippingOrder(player *Player, buf []byte) error {
|
||||
// 锦标赛
|
||||
func ReqChampshipReward(player *Player, buf []byte) error {
|
||||
ChampshipMod := player.PlayMod.getChampshipMod()
|
||||
itemList := ChampshipMod.GetReward()
|
||||
todayActivityId, _ := player.GetChampshipActivityId()
|
||||
itemList := ChampshipMod.GetReward(todayActivityId)
|
||||
err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_ChampshipReward.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResChampshipReward{
|
||||
@ -2789,7 +2790,8 @@ func ReqKv(player *Player, buf []byte) error {
|
||||
func ReqChampshipRankReward(player *Player, buf []byte) error {
|
||||
_, myPreRank := player.GetChampshipRank()
|
||||
ChampshipMod := player.PlayMod.getChampshipMod()
|
||||
itemList, err := ChampshipMod.GetRankReward(myPreRank)
|
||||
_, yesterdayActivityId := player.GetChampshipActivityId()
|
||||
itemList, err := ChampshipMod.GetRankReward(myPreRank, yesterdayActivityId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResChampshipRankReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
### 随机好友推荐
|
||||
|
||||
```golang
|
||||
test function TestFriendRecommendList 2026-3-12
|
||||
test function TestFriendRecommendList 2026-03-04
|
||||
ok server/test 1.033s
|
||||
```
|
||||
|
||||
@ -16,6 +16,13 @@ ok server/test 1.033s
|
||||
3714321 | 100002
|
||||
```
|
||||
|
||||
### 好友申请
|
||||
|
||||
```golang
|
||||
test function TestReqApplyFriend 2026-03-05
|
||||
ok server/test 0.479s
|
||||
```
|
||||
|
||||
## 充值模块
|
||||
|
||||
### 观看广告记录
|
||||
|
||||
29
src/server/test/champship_test.go
Normal file
29
src/server/test/champship_test.go
Normal file
@ -0,0 +1,29 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
champshipCfg "server/conf/champship"
|
||||
"server/game"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestChampshipReward(t *testing.T) {
|
||||
p1 := new(game.Player)
|
||||
p1.InitPlayer("3625212")
|
||||
ChampshipMod := p1.GetChampshipMod()
|
||||
ChampshipMod.Score = 1000
|
||||
game.ReqChampshipReward(p1, nil)
|
||||
}
|
||||
|
||||
func TestChampshipRankReward(t *testing.T) {
|
||||
p1 := new(game.Player)
|
||||
p1.InitPlayer("3625212")
|
||||
ChampshipMod := p1.GetChampshipMod()
|
||||
ChampshipMod.RankReward = false
|
||||
_, yesterdayActivityId := p1.GetChampshipActivityId()
|
||||
ChampshipMod.GetRankReward(1, yesterdayActivityId)
|
||||
}
|
||||
|
||||
func TestGetChampshipActivityId(t *testing.T) {
|
||||
res := champshipCfg.GetChampshipActivityId()
|
||||
t.Logf("res:%v", res)
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user