猫咪戏法配置优化

This commit is contained in:
hahwu 2026-03-27 14:44:46 +08:00
parent 4c966b46c4
commit ae558370d5
4 changed files with 35 additions and 49 deletions

View File

@ -24,7 +24,6 @@ const (
CFG_LIMITED_TIME_EVENT_BONUS = "LimitedTimeEventBonus"
CFG_LIMITED_TIME_EVENT_MONEY = "LimitedTimeEventMoney"
CFG_LIMITED_TIME_EVENT_LUCKY = "LimitedTimeEventLucky"
CFG_LIMITED_TIME_EVENT_CAT_TRICK = "LimitedTimeEventCatTrick"
CFG_LIMTTED_TIME_EVENT_DECORATE_OFF = "LimitedTimeEventDecorateOff"
)
@ -42,7 +41,6 @@ func init() {
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CHEST_JACKPOT)
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_MONEY)
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_LUCKY)
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CAT_TRICK)
gamedata.InitCfg(CFG_LIMTTED_TIME_EVENT_DECORATE_OFF)
}
@ -421,28 +419,22 @@ func GetLuckyCatMaxEarning(Remain int) int {
return 0
}
func GetCatTrickType(Duartion int) int {
data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_CAT_TRICK)
func GetCatTrickEnergy() int {
data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "CatTrick_ConsumeEnergy")
if err != nil {
log.Debug("GetCatTrickType err:%v, Duartion=%d", err, Duartion)
return 1
log.Debug("GetCatTrickEnergy err:%v", err)
return 0
}
for k, v := range data {
D := gamedata.GetIntValue(v, "Duration")
if Duartion == D {
return GoUtil.Int(k)
}
}
return gamedata.GetIntValue(data, "Type")
return gamedata.GetIntValue(data, "Value")
}
func GetCatTrickDiamond(Type int) (int, int) {
data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_CAT_TRICK, Type)
func GetCatTrickDiamond() int {
data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "CatTrick_RewardDiamond")
if err != nil {
log.Debug("GetCatTrickDiamond err:%v, Type=%d", err, Type)
return 0, 0
log.Debug("GetCatTrickDiamond err:%v", err)
return 0
}
return gamedata.GetIntValue(data, "Diamond"), gamedata.GetIntValue(data, "Energy")
return gamedata.GetIntValue(data, "Value")
}
func GetDecorateOffDiscount(AreaId, StepId int) int {

View File

@ -1251,8 +1251,7 @@ func (p *Player) GetPetThiefReward(target int) error {
}
/*
高级产物订单
高级产物订单
当玩家完成一个订单时扫描棋盘上的产物剔除1)刚完成的订单的最后一个棋子所属发射器的所有产物链产物2)下一个订单的第一个棋子所属发射器的所有产物链产物
剩下的棋盘产物中是否有棋子等级等级>pLvmax适配翻倍和动态难度如有则生成一个订单将等级最高的那个收走
注意当现有订单无论是自动或固定订单中有此棋子则不执行此逻辑

View File

@ -453,14 +453,16 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) {
if !ok {
return nil, fmt.Errorf("CatTrick event data error")
}
if d.Energy < 100 {
energy := limitedTimeEventCfg.GetCatTrickEnergy()
diamond := limitedTimeEventCfg.GetCatTrickDiamond()
if d.Energy < energy {
return nil, fmt.Errorf("CatTrick energy not enough")
}
count := d.Energy / 100
d.Energy = d.Energy % 100
count := d.Energy / energy
d.Energy = d.Energy % energy
// TODO 放到配置中
return []*item.Item{
{Id: item.ITEM_DIAMOND_ID, Num: 5 * count},
{Id: item.ITEM_DIAMOND_ID, Num: diamond * count},
}, nil
}
@ -491,29 +493,12 @@ func initEventInfo(event *LTEInfo, eventType int) {
Count: limitedTimeEventCfg.GetPaybackDay(),
}
case EVENT_TYPE_CAT_TRICK:
Type := limitedTimeEventCfg.GetCatTrickType(int(event.Remian))
event.D = &CatTrick{
List: []CatTrickInfo{
{
Id: 1,
Type: Type,
},
},
}
event.D = &CatTrick{}
}
}
func addEventInfo(event *LTEInfo, eventType, duration int) {
switch eventType {
case EVENT_TYPE_CAT_TRICK:
d, ok := event.D.(*CatTrick)
if !ok {
return
}
d.List = append(d.List, CatTrickInfo{
Id: len(d.List) + 1,
Type: limitedTimeEventCfg.GetCatTrickType(duration),
})
case EVENT_TYPE_LUCKY_CAT:
MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(duration)
d, ok := event.D.(*LuckyCat)
@ -560,13 +545,6 @@ func getLimitEventMsg(eType int, event *LTEInfo) *msg.LimitEvent {
}
energy := d.Energy
param[msg.LimitEventParam_CAT_TRICK_ENERGY.String()] = int32(energy)
info := d.List[0]
param[msg.LimitEventParam_CAT_TRICK_TYPE.String()] = int32(info.Type)
diamond1, energy1 := limitedTimeEventCfg.GetCatTrickDiamond(info.Type)
if d.Energy >= diamond1*energy1 {
// 进度条已满
endTime += 5 * 60 // 5分钟
}
case EVENT_TYPE_PAYBACK_DAY:
d, ok := event.D.(*PaybackDay)
if !ok {

View File

@ -2,7 +2,9 @@ package test
import (
"fmt"
limitedTimeEventCfg "server/conf/limited_time_event"
"server/game"
"server/game/mod/item"
limitedTimeEvent "server/game/mod/limited_time_event"
"testing"
)
@ -44,3 +46,18 @@ func TestProgressReward(t *testing.T) {
fmt.Printf("Current progress reward list: %v\n", res)
}
}
func TestCatTrick(t *testing.T) {
p := new(game.Player)
p.InitPlayer("3625212")
items := []*item.Item{
{Id: 101191, Num: 1},
}
err := p.HandleItem(items, "")
if err != nil {
t.Fatal(err)
}
energy := limitedTimeEventCfg.GetCatTrickEnergy()
diamond := limitedTimeEventCfg.GetCatTrickDiamond()
t.Log(energy, diamond)
}