小猫戏法
This commit is contained in:
parent
69dc7d638a
commit
5ec5b42430
@ -22,6 +22,7 @@ const (
|
|||||||
CFG_LIMITED_TIME_EVENT_BONUS = "LimitedTimeEventBonus"
|
CFG_LIMITED_TIME_EVENT_BONUS = "LimitedTimeEventBonus"
|
||||||
CFG_LIMITED_TIME_EVENT_MONEY = "LimitedTimeEventMoney"
|
CFG_LIMITED_TIME_EVENT_MONEY = "LimitedTimeEventMoney"
|
||||||
CFG_LIMITED_TIME_EVENT_LUCKY = "LimitedTimeEventLucky"
|
CFG_LIMITED_TIME_EVENT_LUCKY = "LimitedTimeEventLucky"
|
||||||
|
CFG_LIMITED_TIME_EVENT_CAT_TRICK = "LimitedTimeEventCatTrick"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -38,6 +39,7 @@ func init() {
|
|||||||
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CHEST_JACKPOT)
|
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CHEST_JACKPOT)
|
||||||
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_MONEY)
|
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_MONEY)
|
||||||
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_LUCKY)
|
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_LUCKY)
|
||||||
|
gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CAT_TRICK)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取限时事件触发列表
|
// 获取限时事件触发列表
|
||||||
@ -332,3 +334,27 @@ func GetLuckyCatMaxEarning(Remain int) int {
|
|||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetCatTrickType(Duartion int) int {
|
||||||
|
data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_CAT_TRICK)
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("GetCatTrick err:%v", err)
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
for _, v := range data {
|
||||||
|
D := gamedata.GetIntValue(v, "Duration")
|
||||||
|
if Duartion == D {
|
||||||
|
return gamedata.GetIntValue(v, "Type")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return gamedata.GetIntValue(data, "Type")
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetCatTrickDiamond(Type int) (int, int) {
|
||||||
|
data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_CAT_TRICK, Type)
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("GetCatTrickDiamond err:%v", err)
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
|
return gamedata.GetIntValue(data, "Diamond"), gamedata.GetIntValue(data, "Energy")
|
||||||
|
}
|
||||||
|
|||||||
@ -696,6 +696,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
|||||||
RegisterMsgProcessFunc("ReqSelectLimitEvent", ReqSelectLimitEvent) //领取限时事件进度奖励
|
RegisterMsgProcessFunc("ReqSelectLimitEvent", ReqSelectLimitEvent) //领取限时事件进度奖励
|
||||||
RegisterMsgProcessFunc("ReqGetGoldCard", ReqGetGoldCard) //请求金卡交换信息
|
RegisterMsgProcessFunc("ReqGetGoldCard", ReqGetGoldCard) //请求金卡交换信息
|
||||||
RegisterMsgProcessFunc("ReqLimitEventLuckyCat", ReqLimitEventLuckyCat) //幸运猫获取奖励
|
RegisterMsgProcessFunc("ReqLimitEventLuckyCat", ReqLimitEventLuckyCat) //幸运猫获取奖励
|
||||||
|
RegisterMsgProcessFunc("ReqCatTrickReward", ReqCatTrickReward) //小猫戏法获取奖励
|
||||||
|
|
||||||
// #region 好友
|
// #region 好友
|
||||||
RegisterMsgProcessFunc("ReqFriendList", ReqFriendList) // 请求好友列表
|
RegisterMsgProcessFunc("ReqFriendList", ReqFriendList) // 请求好友列表
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import (
|
|||||||
mergeDataCfg "server/conf/mergeData"
|
mergeDataCfg "server/conf/mergeData"
|
||||||
orderCfg "server/conf/order"
|
orderCfg "server/conf/order"
|
||||||
"server/game/mod/item"
|
"server/game/mod/item"
|
||||||
|
"server/game/mod/limitedTimeEvent"
|
||||||
"server/game/mod/quest"
|
"server/game/mod/quest"
|
||||||
"server/msg"
|
"server/msg"
|
||||||
"server/pkg/github.com/name5566/leaf/log"
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
@ -231,6 +232,12 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
|||||||
if Update {
|
if Update {
|
||||||
player.PushClientRes(OrderMod.BackData())
|
player.PushClientRes(OrderMod.BackData())
|
||||||
}
|
}
|
||||||
|
// 限时事件 小猫戏法
|
||||||
|
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CAT_TRICK) {
|
||||||
|
LimitedTimeEventMod.AddCatTrickEnergy(addChessCostEnergy)
|
||||||
|
player.PushClientRes(LimitedTimeEventMod.BackData())
|
||||||
|
}
|
||||||
player.QuestTriggerList(TriggerList)
|
player.QuestTriggerList(TriggerList)
|
||||||
EmitRetireTrigger1(player)
|
EmitRetireTrigger1(player)
|
||||||
player.PushClientRes(ChessMod.BackData())
|
player.PushClientRes(ChessMod.BackData())
|
||||||
|
|||||||
@ -3941,3 +3941,38 @@ func ReqLang(player *Player, buf []byte) error {
|
|||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReqCatTrickReward(player *Player, buf []byte) error {
|
||||||
|
req := &msg.ReqCatTrickReward{}
|
||||||
|
proto.Unmarshal(buf, req)
|
||||||
|
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if !LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CAT_TRICK) {
|
||||||
|
player.SendErrClienRes(&msg.ResCatTrickReward{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: "cat trick event not exist",
|
||||||
|
})
|
||||||
|
return fmt.Errorf("cat trick event not exist")
|
||||||
|
}
|
||||||
|
Items, err := LimitedTimeEventMod.GetCatTrickReward()
|
||||||
|
if err != nil {
|
||||||
|
player.SendErrClienRes(&msg.ResCatTrickReward{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CatTrickReward.String())
|
||||||
|
if err != nil {
|
||||||
|
player.SendErrClienRes(&msg.ResCatTrickReward{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
player.PlayMod.save()
|
||||||
|
player.PushClientRes(LimitedTimeEventMod.BackData())
|
||||||
|
player.PushClientRes(&msg.ResCatTrickReward{
|
||||||
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ const (
|
|||||||
EVENT_TYPE_CAT_CYCLONE = 11 // 猫咪飓风
|
EVENT_TYPE_CAT_CYCLONE = 11 // 猫咪飓风
|
||||||
EVENT_TYPE_MONEY_CAT = 12 // 招财猫
|
EVENT_TYPE_MONEY_CAT = 12 // 招财猫
|
||||||
EVENT_TYPE_LUCKY_CAT = 13 // 幸运猫
|
EVENT_TYPE_LUCKY_CAT = 13 // 幸运猫
|
||||||
|
EVENT_TYPE_CAT_TRICK = 14 // 猫咪戏法
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -61,6 +62,16 @@ type LuckyCat struct {
|
|||||||
Earnings int
|
Earnings int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CatTrick struct {
|
||||||
|
List []CatTrickInfo
|
||||||
|
Energy int
|
||||||
|
}
|
||||||
|
|
||||||
|
type CatTrickInfo struct {
|
||||||
|
Id int
|
||||||
|
Type int
|
||||||
|
}
|
||||||
|
|
||||||
func (l *LimitedTimeEventMod) InitData(Lv int) {
|
func (l *LimitedTimeEventMod) InitData(Lv int) {
|
||||||
if l.EventList == nil {
|
if l.EventList == nil {
|
||||||
l.EventList = make(map[int]*LTEInfo)
|
l.EventList = make(map[int]*LTEInfo)
|
||||||
@ -139,6 +150,7 @@ func (l *LimitedTimeEventMod) Trigger(Lv int) (int, []int, []int) {
|
|||||||
func (l *LimitedTimeEventMod) AddEvent(EventId, Duration int) int64 {
|
func (l *LimitedTimeEventMod) AddEvent(EventId, Duration int) int64 {
|
||||||
if v, ok := l.EventList[EventId]; ok {
|
if v, ok := l.EventList[EventId]; ok {
|
||||||
v.Remian += int64(Duration)
|
v.Remian += int64(Duration)
|
||||||
|
addEventInfo(v, EventId)
|
||||||
} else {
|
} else {
|
||||||
Event := <EInfo{
|
Event := <EInfo{
|
||||||
Remian: int64(Duration),
|
Remian: int64(Duration),
|
||||||
@ -358,6 +370,35 @@ func (l *LimitedTimeEventMod) LuckyCat(ChessId int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *LimitedTimeEventMod) AddCatTrickEnergy(Energy int) {
|
||||||
|
if l.EventList[EVENT_TYPE_CAT_TRICK] == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
d := l.EventList[EVENT_TYPE_CAT_TRICK].D.(*CatTrick)
|
||||||
|
d.Energy += Energy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) {
|
||||||
|
if l.EventList[EVENT_TYPE_CAT_TRICK] == nil {
|
||||||
|
return nil, fmt.Errorf("CatTrick event not exist")
|
||||||
|
}
|
||||||
|
d := l.EventList[EVENT_TYPE_CAT_TRICK].D.(*CatTrick)
|
||||||
|
if len(d.List) == 0 {
|
||||||
|
return nil, fmt.Errorf("CatTrick list is empty")
|
||||||
|
}
|
||||||
|
info := d.List[0]
|
||||||
|
Diamon, Energy := limitedTimeEventCfg.GetCatTrickDiamond(info.Type)
|
||||||
|
d.Energy -= Diamon * Energy
|
||||||
|
if len(d.List) == 1 {
|
||||||
|
delete(l.EventList, EVENT_TYPE_CAT_TRICK)
|
||||||
|
} else {
|
||||||
|
d.List = d.List[1:]
|
||||||
|
}
|
||||||
|
return []*item.Item{
|
||||||
|
{Id: item.ITEM_DIAMOND_ID, Num: -Diamon},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
// 获取超级订单奖励
|
// 获取超级订单奖励
|
||||||
func initEventInfo(E *LTEInfo, EventType int) {
|
func initEventInfo(E *LTEInfo, EventType int) {
|
||||||
switch EventType {
|
switch EventType {
|
||||||
@ -376,13 +417,34 @@ func initEventInfo(E *LTEInfo, EventType int) {
|
|||||||
E.D = &LuckyCat{
|
E.D = &LuckyCat{
|
||||||
Earnings: 0,
|
Earnings: 0,
|
||||||
}
|
}
|
||||||
|
case EVENT_TYPE_CAT_TRICK:
|
||||||
|
Type := limitedTimeEventCfg.GetCatTrickType(int(E.Remian))
|
||||||
|
E.D = &CatTrick{
|
||||||
|
List: []CatTrickInfo{
|
||||||
|
{
|
||||||
|
Id: 1,
|
||||||
|
Type: Type,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func addEventInfo(E *LTEInfo, EventType int) {
|
||||||
|
switch EventType {
|
||||||
|
case EVENT_TYPE_CAT_TRICK:
|
||||||
|
d := E.D.(*CatTrick)
|
||||||
|
d.List = append(d.List, CatTrickInfo{
|
||||||
|
Id: len(d.List) + 1,
|
||||||
|
Type: limitedTimeEventCfg.GetCatTrickType(int(E.Remian)),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
|
func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
|
||||||
Cd := 0
|
Cd := 0
|
||||||
Mul := 0.0
|
Mul := 0.0
|
||||||
|
Param := make(map[string]int32, 0)
|
||||||
switch t {
|
switch t {
|
||||||
case EVENT_TYPE_FAST_PRODUCE:
|
case EVENT_TYPE_FAST_PRODUCE:
|
||||||
NextPlay := GoUtil.Int64(e.Info["NextPlay"])
|
NextPlay := GoUtil.Int64(e.Info["NextPlay"])
|
||||||
@ -391,6 +453,12 @@ func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
|
|||||||
d := e.D.(*MoneyCat)
|
d := e.D.(*MoneyCat)
|
||||||
Cd = int(d.EndTime)
|
Cd = int(d.EndTime)
|
||||||
Mul = d.Mul
|
Mul = d.Mul
|
||||||
|
case EVENT_TYPE_CAT_TRICK:
|
||||||
|
d := e.D.(*CatTrick)
|
||||||
|
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)
|
||||||
}
|
}
|
||||||
return &msg.LimitEvent{
|
return &msg.LimitEvent{
|
||||||
EndTime: int32(e.StartT + e.Remian),
|
EndTime: int32(e.StartT + e.Remian),
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user