万能卡
This commit is contained in:
parent
10c0d7bea9
commit
6c05584404
@ -158,6 +158,14 @@ func GetAllCardId() []int {
|
||||
return r
|
||||
}
|
||||
|
||||
func CheckCardIsGold(Id int) bool {
|
||||
data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, Id)
|
||||
if err != nil {
|
||||
log.Debug("CheckCardIsGold data not found")
|
||||
}
|
||||
return gamedata.GetIntValue(data, "IsGold") == 1
|
||||
}
|
||||
|
||||
func GetCardDuration() int64 {
|
||||
data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "duration")
|
||||
if err != nil {
|
||||
|
||||
@ -951,6 +951,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqRefuseCardExchange", ReqRefuseCardExchange) // 拒绝卡牌交换
|
||||
RegisterMsgProcessFunc("ReqCardSend", ReqCardSend) // 直接赠送卡牌
|
||||
RegisterMsgProcessFunc("ReqGetFriendCard", ReqGetFriendCard) // 领取好友赠送的卡牌
|
||||
RegisterMsgProcessFunc("ReqMasterCard", ReqMasterCard) // 万能卡兑换
|
||||
|
||||
// 日常任务
|
||||
RegisterMsgProcessFunc("ReqGetDailyTaskReward", ReqGetDailyTaskReward) // 领取日常任务奖励
|
||||
|
||||
@ -50,6 +50,15 @@ func ReqGmCommand(args []interface{}) error {
|
||||
case "pay":
|
||||
ChargeId, _ := strconv.Atoi(arg[1])
|
||||
Charge(player, ChargeId)
|
||||
case "resetFace":
|
||||
FaceMod := player.PlayMod.getFaceMod()
|
||||
FaceMod.List = nil
|
||||
FaceMod.InitData()
|
||||
|
||||
AvatarMod := player.PlayMod.getAvatarMod()
|
||||
AvatarMod.List = nil
|
||||
AvatarMod.InitData()
|
||||
|
||||
case "resetCardReq":
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
CardMod.ReqFriend = make(map[int]*card.CardInfo)
|
||||
|
||||
@ -519,6 +519,12 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
}
|
||||
ResCard = append(ResCard, &msg.CardPack{Id: int32(v.Id), Card: GoUtil.SliceIntToInt32(NewCard)})
|
||||
}
|
||||
case item.ITEM_TYPE_MASTER_CARD: // 万能卡
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
Effect := itemCfg.GetItemEffect(v.Id)
|
||||
for i := 0; i < v.Num; i++ {
|
||||
CardMod.AddMasterCard(Effect)
|
||||
}
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
case item.ITEM_TYPE_CHESS: // 棋子
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
|
||||
@ -3701,3 +3701,26 @@ func ReqUserInfo(args []interface{}) error {
|
||||
BackUserInfo(player)
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqMasterCard(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqMasterCard{}
|
||||
proto.Unmarshal(buf, req)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
err := CardMod.MasterCardEx(int(req.Id), int(req.CardId))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResMasterCard{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResMasterCard{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(req.CardId): 1},
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -344,3 +344,19 @@ func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) {
|
||||
func (c *CardMod) DelExCard(CardInfo *CardInfo) {
|
||||
delete(c.ExCard, CardInfo.BUid)
|
||||
}
|
||||
|
||||
func (c *CardMod) AddMasterCard(Id int) {
|
||||
c.AllCard[Id]++
|
||||
}
|
||||
|
||||
func (c *CardMod) MasterCardEx(Id, CardId int) error {
|
||||
if c.AllCard[Id] <= 0 {
|
||||
return fmt.Errorf("MasterCardEx card not enough")
|
||||
}
|
||||
if Id == MASTER_CARD_NORMAL && cardCfg.CheckCardIsGold(CardId) {
|
||||
return fmt.Errorf("MasterCardEx card type err")
|
||||
}
|
||||
c.AllCard[Id]--
|
||||
c.AddCard(CardId)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@ const (
|
||||
ITEM_TYPE_CARD_PACK = 101 // 卡包
|
||||
ITEM_TYPE_LIMIED_TIME_EVENT = 102 //限时事件
|
||||
ITEM_TYPE_PIGGY_BANK = 103 // 猪猪银行
|
||||
ITEM_TYPE_MASTER_CARD = 104 // 万能卡
|
||||
)
|
||||
|
||||
// 新建item
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user