卡牌交换
This commit is contained in:
parent
891d9f40c1
commit
10c0d7bea9
@ -949,6 +949,8 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqAgreeCardExchange", ReqAgreeCardExchange) // 完成交换卡牌
|
||||
RegisterMsgProcessFunc("ReqRefuseCardSelect", ReqRefuseCardSelect) // 拒绝选择卡牌进行交换
|
||||
RegisterMsgProcessFunc("ReqRefuseCardExchange", ReqRefuseCardExchange) // 拒绝卡牌交换
|
||||
RegisterMsgProcessFunc("ReqCardSend", ReqCardSend) // 直接赠送卡牌
|
||||
RegisterMsgProcessFunc("ReqGetFriendCard", ReqGetFriendCard) // 领取好友赠送的卡牌
|
||||
|
||||
// 日常任务
|
||||
RegisterMsgProcessFunc("ReqGetDailyTaskReward", ReqGetDailyTaskReward) // 领取日常任务奖励
|
||||
|
||||
@ -56,7 +56,9 @@ func ReqGmCommand(args []interface{}) error {
|
||||
CardMod.ExCard = make(map[int]*card.CardInfo)
|
||||
CardMod.ExTimes = 10
|
||||
CardMod.ReqTimes = 10
|
||||
|
||||
CardMod.AddCard(1)
|
||||
CardMod.AddCard(2)
|
||||
CardMod.AddCard(3)
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
FriendMod.Card = make(map[string]*card.CardInfo)
|
||||
|
||||
|
||||
@ -78,7 +78,7 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
// p.PushClientRes(CardMod.BackData())
|
||||
case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
@ -95,7 +95,6 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
FriendCardBackData(p)
|
||||
case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
@ -106,7 +105,6 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
FriendCardBackData(p)
|
||||
case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
@ -123,8 +121,10 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
CardMod.AddExTimes()
|
||||
CardMod.AddCard(CardInfo.CardId)
|
||||
CardMod.DelExCard(CardInfo)
|
||||
p.PushClientRes(&proto.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): 1},
|
||||
})
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
case msg.HANDLE_TYPE_REFUSE_EX_CARD: // B收到A拒绝置换卡牌
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
@ -132,7 +132,9 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.DelCardInfo(CardInfo.Id)
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(CardMod.BackData())
|
||||
p.PushClientRes(&proto.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.ExId): 1},
|
||||
})
|
||||
case msg.HANDLE_TYPE_MAIL: // 邮件操作
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
if m.Extra == nil {
|
||||
@ -198,6 +200,11 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error {
|
||||
case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请
|
||||
CardInfo := m.Extra.(*card.CardInfo)
|
||||
FriendMod.SetCardInfo(CardInfo)
|
||||
p.PushClientRes(
|
||||
&proto.NotifyFriendCard{
|
||||
Info: GetCardInfoMsg(CardInfo),
|
||||
},
|
||||
)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -96,13 +96,14 @@ func (p *PlayerModData) Reconnect(b bool) []byte {
|
||||
|
||||
func (p *PlayerModData) InitMod() (bool, error) {
|
||||
playerModList := PlayerModList{}
|
||||
buf := bytes.NewBuffer(p.Data.ModData)
|
||||
decoder := gob.NewDecoder(buf)
|
||||
err := decoder.Decode(&playerModList)
|
||||
// err := json.Unmarshal([]byte(p.Data.ModData), &playerModList)
|
||||
if err != nil {
|
||||
log.Debug("playmod get data failed, err:%v\n", err)
|
||||
return false, fmt.Errorf("playmod get data failed, err:%v\n", err)
|
||||
if len(p.Data.ModData) > 0 {
|
||||
buf := bytes.NewBuffer(p.Data.ModData)
|
||||
decoder := gob.NewDecoder(buf)
|
||||
err := decoder.Decode(&playerModList)
|
||||
if err != nil {
|
||||
log.Debug("playmod get data failed, err:%v\n", err)
|
||||
return false, fmt.Errorf("playmod get data failed, err:%v", err)
|
||||
}
|
||||
}
|
||||
p.ModList = playerModList
|
||||
is_update := false
|
||||
|
||||
@ -2852,6 +2852,13 @@ func ReqCardGive(args []interface{}) error {
|
||||
})
|
||||
return fmt.Errorf("card id empty")
|
||||
}
|
||||
err = CardMod.SubCard(CardId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResCardGive{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
}
|
||||
Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId))
|
||||
for _, v := range req.Uid {
|
||||
Uid := int(v)
|
||||
@ -2935,7 +2942,6 @@ func ReqAgreeCardGive(args []interface{}) error {
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): -1},
|
||||
})
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResAgreeCardGive{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
@ -2976,13 +2982,13 @@ func ReqRefuseCardGive(args []interface{}) error {
|
||||
// 赠送卡牌
|
||||
func ReqCardSend(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqCardExchange{}
|
||||
req := &msg.ReqCardSend{}
|
||||
proto.Unmarshal(buf, req)
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
CardId := int(req.CardId)
|
||||
CardInfo, err := CardMod.SendCard(int(player.M_DwUin), int(req.Uid), CardId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResCardExchange{
|
||||
player.SendErrClienRes(&msg.ResCardSend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
@ -2997,8 +3003,7 @@ func ReqCardSend(args []interface{}) error {
|
||||
Extra: CardInfo,
|
||||
}
|
||||
setRedisLock(CardInfo.Id, "", time.Second*86400)
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResCardExchange{
|
||||
player.PushClientRes(&msg.ResCardSend{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
@ -3210,27 +3215,21 @@ func ReqGetFriendCard(args []interface{}) error {
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
CardInfo := FriendMod.GetCardInfo(req.Id)
|
||||
if CardInfo == nil || CardInfo.EndTime != 0 {
|
||||
player.SendErrClienRes(&msg.ResRefuseCardExchange{
|
||||
player.SendErrClienRes(&msg.ResGetFriendCard{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: "exchange time out",
|
||||
})
|
||||
return fmt.Errorf("exchange time out")
|
||||
}
|
||||
CardId := 0
|
||||
if CardInfo.Type == card.TYPE_CARD_EX {
|
||||
CardId = CardInfo.ExId
|
||||
} else {
|
||||
CardId = CardInfo.CardId
|
||||
}
|
||||
FriendMod.DelCardInfo(req.Id)
|
||||
CardMod.AddCard(CardId)
|
||||
CardMod.AddCard(CardInfo.CardId)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResRefuseCardExchange{
|
||||
// player.PushClientRes(CardMod.BackData())
|
||||
player.PushClientRes(&msg.ResGetFriendCard{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(&msg.ResNotifyCard{
|
||||
Card: map[int32]int32{int32(CardId): 1},
|
||||
Card: map[int32]int32{int32(CardInfo.CardId): 1},
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -334,7 +334,7 @@ func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) {
|
||||
AUid: From,
|
||||
BUid: To,
|
||||
CardId: CardId,
|
||||
Type: TYPE_CARD_EX,
|
||||
Type: TYPE_CARD_SEND,
|
||||
StartTime: Now,
|
||||
Status: STATUS_CARD_SEND_1,
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user