修复好友卡牌消息bug
This commit is contained in:
parent
91f6d8d9a1
commit
00321f9016
@ -18,6 +18,10 @@ const (
|
||||
onehour = 3600
|
||||
oneday = 24 * onehour
|
||||
sevendays = 7 * oneday
|
||||
month = 30 * oneday
|
||||
halfyear = 6 * month
|
||||
oneyear = 365 * oneday
|
||||
tenyear = 10 * oneyear
|
||||
)
|
||||
|
||||
// 解析参数
|
||||
|
||||
@ -119,16 +119,22 @@ func (p *Player) LimitedTimeCardTrigger() {
|
||||
case card.STATUS_CARD_EX_1:
|
||||
delete(FriendMod.Card, k)
|
||||
FriendMgrSend(&MsgMod.Msg{
|
||||
From: v.BUid,
|
||||
To: v.AUid,
|
||||
Type: MsgMod.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT,
|
||||
From: v.BUid,
|
||||
To: v.AUid,
|
||||
Type: MsgMod.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT,
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + tenyear,
|
||||
Extra: *v,
|
||||
})
|
||||
case card.STATUS_CARD_EX_2:
|
||||
delete(FriendMod.Card, k)
|
||||
FriendMgrSend(&MsgMod.Msg{
|
||||
From: v.AUid,
|
||||
To: v.BUid,
|
||||
Type: MsgMod.HANDLE_TYPE_EX_CARD_TIMEOUT,
|
||||
From: v.AUid,
|
||||
To: v.BUid,
|
||||
Type: MsgMod.HANDLE_TYPE_EX_CARD_TIMEOUT,
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + tenyear,
|
||||
Extra: *v,
|
||||
})
|
||||
p.AddCard(v.CardId)
|
||||
CardMod.DelExCard(v)
|
||||
|
||||
@ -98,7 +98,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
||||
case msg.HANDLE_TYPE_DEL: // 删除好友
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.DelFriend(m.From)
|
||||
p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT)
|
||||
//p.AddLog(m.From, friend.LOG_TYPE_FRIEND_DELETE, "", m.SendT)
|
||||
playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
p.PushClientRes(&proto.ResFriendApplyNotify{
|
||||
Player: playerSimpleData,
|
||||
@ -156,7 +156,11 @@ func (p *Player) handle(m *msg.Msg) error {
|
||||
p.PlayMod.save()
|
||||
p.PushClientRes(InviteMod.NotifySuccess())
|
||||
case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌
|
||||
cardInfo := m.Extra.(card.CardInfo)
|
||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
||||
if !ok {
|
||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
||||
return nil
|
||||
}
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.SetCardInfo(&cardInfo)
|
||||
FriendMod.Interact(cardInfo.AUid, friend.INTERACT_TYPE_CARD, m.SendT)
|
||||
@ -167,7 +171,11 @@ func (p *Player) handle(m *msg.Msg) error {
|
||||
)
|
||||
p.PlayMod.save()
|
||||
case msg.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT: // A收到B置换卡牌选择超时
|
||||
cardInfo := m.Extra.(card.CardInfo)
|
||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
||||
if !ok {
|
||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
||||
return nil
|
||||
}
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
p.AddCard(cardInfo.CardId)
|
||||
CardMod.DelExCard(&cardInfo)
|
||||
@ -176,6 +184,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
||||
case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时
|
||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
||||
if !ok {
|
||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
||||
return nil
|
||||
}
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
@ -185,6 +194,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
||||
case msg.HANDLE_TYPE_REG_CARD_FINISH, msg.HANDLE_TYPE_AGREE_CARD_FAIL: // B收到A的请求已结束
|
||||
cardInfo, ok := m.Extra.(card.CardInfo)
|
||||
if !ok {
|
||||
log.Error("Failed to cast m.Extra to card.CardInfo")
|
||||
return nil
|
||||
}
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
|
||||
@ -46,6 +46,22 @@ const (
|
||||
HANDBOOK_STATUS_GET = 2 // 已领取
|
||||
)
|
||||
|
||||
/*
|
||||
请求卡牌
|
||||
AUid: 请求者
|
||||
BUid: 被请求者
|
||||
cardId: 请求的卡牌id
|
||||
赠送卡牌
|
||||
AUid: 赠送者
|
||||
BUid: 接收者
|
||||
CardId: 卡牌id
|
||||
卡牌交换
|
||||
AUid: 发起者
|
||||
BUid: 接收者
|
||||
CardId: 发起者提供的卡牌id
|
||||
ExId: 接收者提供的卡牌id
|
||||
*/
|
||||
|
||||
const (
|
||||
TYPE_CARD_GIVE = 1 // 请求卡牌
|
||||
TYPE_CARD_SEND = 2 // 赠送卡牌
|
||||
|
||||
@ -225,16 +225,6 @@ func (f *FriendMod) InitData(m_DwUin int64) {
|
||||
if f.NewApplyList == nil {
|
||||
f.NewApplyList = make(map[int]*ApplyInfo)
|
||||
}
|
||||
for k, v := range f.Card {
|
||||
if v.AUid != 0 && !f.CheckFriend(v.AUid) && v.AUid != int(m_DwUin) {
|
||||
delete(f.Card, k)
|
||||
continue
|
||||
}
|
||||
if v.BUid != 0 && !f.CheckFriend(v.BUid) && v.BUid != int(m_DwUin) {
|
||||
delete(f.Card, k)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if len(f.ReplyList) > 0 {
|
||||
validReplyList := make([]*ReplyInfo, 0, len(f.ReplyList))
|
||||
@ -387,6 +377,12 @@ func (f *FriendMod) DelFriend(id int) {
|
||||
v.Status = 1
|
||||
}
|
||||
}
|
||||
// 删除好友后清除卡牌交换
|
||||
for k, v := range f.Card {
|
||||
if v.Type == card.TYPE_CARD_GIVE && id == v.AUid {
|
||||
delete(f.Card, k)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否好友
|
||||
@ -760,3 +756,7 @@ func (f *FriendMod) CheckGreeting(uid int) bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetCardList() map[string]*card.CardInfo {
|
||||
return f.Card
|
||||
}
|
||||
|
||||
@ -461,6 +461,7 @@ func (p *Player) Login() {
|
||||
// 添加定时器
|
||||
// 限时事件触发
|
||||
p.LimitedTimeEventTrigger(0)
|
||||
p.LimitedTimeCardTrigger()
|
||||
// 猪猪银行触发
|
||||
p.LimitedTimePiggyBankTrigger()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
|
||||
@ -1659,7 +1659,7 @@ func ReqGetGoldCard(player *Player, req *msg.ReqGetGoldCard) error {
|
||||
// 向好友请求卡牌
|
||||
func ReqCardGive(player *Player, req *msg.ReqCardGive) error {
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
endTime := GoUtil.Now() + 86400
|
||||
endTime := GoUtil.Now() + oneday
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
err := CardMod.RequestCard()
|
||||
if err != nil {
|
||||
@ -1764,6 +1764,7 @@ func ReqAgreeCardGive(player *Player, req *msg.ReqAgreeCardGive) error {
|
||||
From: int(player.M_DwUin),
|
||||
To: cardInfo.AUid,
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + tenyear,
|
||||
Extra: *cardInfo,
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
@ -1808,7 +1809,7 @@ func ReqRefuseCardGive(player *Player, req *msg.ReqRefuseCardGive) error {
|
||||
From: int(player.M_DwUin),
|
||||
To: cardInfo.AUid,
|
||||
SendT: now,
|
||||
End: now + 86400,
|
||||
End: now + oneday,
|
||||
Extra: *cardInfo,
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
@ -1833,7 +1834,7 @@ func ReqCardSend(player *Player, req *msg.ReqCardSend) error {
|
||||
From: int(player.M_DwUin),
|
||||
To: int(req.Uid),
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + 86400,
|
||||
End: GoUtil.Now() + tenyear,
|
||||
Extra: *cardInfo,
|
||||
}
|
||||
player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_SEND, strconv.Itoa(cardId), GoUtil.Now())
|
||||
@ -1871,11 +1872,10 @@ func ReqCardExchange(player *Player, req *msg.ReqCardExchange) error {
|
||||
From: int(player.M_DwUin),
|
||||
To: int(req.Uid),
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + 86400,
|
||||
End: GoUtil.Now() + oneday,
|
||||
Extra: *cardInfo,
|
||||
}
|
||||
player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_EX_SEND, fmt.Sprintf("%d", cardId), GoUtil.Now())
|
||||
|
||||
player.PushClientRes(&msg.ResCardExchange{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
@ -1945,6 +1945,7 @@ func ReqSelectCardExchange(player *Player, req *msg.ReqSelectCardExchange) error
|
||||
From: int(player.M_DwUin),
|
||||
To: cardInfo.AUid,
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + oneday,
|
||||
Extra: *cardInfo,
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
@ -1998,6 +1999,7 @@ func ReqAgreeCardExchange(player *Player, req *msg.ReqAgreeCardExchange) error {
|
||||
To: cardInfo.BUid,
|
||||
Extra: *cardInfo,
|
||||
SendT: GoUtil.Now(),
|
||||
End: GoUtil.Now() + tenyear,
|
||||
}
|
||||
player.PushClientRes(CardMod.NotifyCard())
|
||||
player.PushClientRes(CardMod.NotifyTimes())
|
||||
|
||||
@ -4,6 +4,6 @@ import "server/game"
|
||||
|
||||
func getTestPlayer() *game.Player {
|
||||
p := new(game.Player)
|
||||
p.InitPlayer("mwh035")
|
||||
p.InitPlayerByUid(100100162)
|
||||
return p
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user