playroom破产机制

This commit is contained in:
hahwu 2026-03-24 14:24:23 +08:00
parent 36d0eed502
commit a4efd1bac1
2 changed files with 288 additions and 284 deletions

File diff suppressed because it is too large Load Diff

View File

@ -3839,7 +3839,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
return err return err
} }
PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod := player.PlayMod.getPlayroomMod()
Items, Target, Result, err := PlayroomMod.GetFlipReward() items, target, result, err := PlayroomMod.GetFlipReward()
if err != nil { if err != nil {
player.SendErrClienRes(&msg.ResPlayroomFlipReward{ player.SendErrClienRes(&msg.ResPlayroomFlipReward{
Code: msg.RES_CODE_FAIL, Code: msg.RES_CODE_FAIL,
@ -3847,13 +3847,21 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
}) })
return err return err
} }
Items1 := Items
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) && Result == playroom.FLIP_TYPE_GOLD { if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) && result == playroom.FLIP_TYPE_GOLD {
player.GetPetThiefReward(Target) player.GetPetThiefReward(target)
}
var broken bool
playerSimple := G_GameLogicPtr.GetSimplePlayerByUid(target)
if playerSimple != nil {
if len(items) > 0 {
if playerSimple.Star < items[0].Num {
broken = true
}
}
} }
err = player.HandleItem(Items1, msg.ITEM_POP_LABEL_PlayroomFlip.String()) err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomFlip.String())
if err != nil { if err != nil {
player.SendErrClienRes(&msg.ResPlayroomFlip{ player.SendErrClienRes(&msg.ResPlayroomFlip{
Code: msg.RES_CODE_FAIL, Code: msg.RES_CODE_FAIL,
@ -3861,7 +3869,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
}) })
return err return err
} }
if Result == playroom.FLIP_TYPE_GOLD { if result == playroom.FLIP_TYPE_GOLD {
FriendMod := player.PlayMod.getFriendMod() FriendMod := player.PlayMod.getFriendMod()
FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE, "") FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE, "")
player.UpdateUserInfo() player.UpdateUserInfo()
@ -3869,11 +3877,11 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
now := GoUtil.Now() now := GoUtil.Now()
FriendMgrSend(&MsqMod.Msg{ FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin), From: int(player.M_DwUin),
To: Target, To: target,
Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE,
SendT: now, SendT: now,
End: now + sevendays, End: now + sevendays,
Item: Items, Item: items,
Extra: GameResult{ Extra: GameResult{
T: playroom.GAME_TYPE_FILP, T: playroom.GAME_TYPE_FILP,
Emoji: int(req.EmojiId), Emoji: int(req.EmojiId),
@ -3882,13 +3890,14 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error {
player.TeLog("finish_mini_game", map[string]interface{}{ player.TeLog("finish_mini_game", map[string]interface{}{
"mini_game_type": playroom.GAME_TYPE_FILP, "mini_game_type": playroom.GAME_TYPE_FILP,
"is_chip": false, "is_chip": false,
"item_list": Items, "item_list": items,
}) })
player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_flip_reward") player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_flip_reward")
player.PlayMod.save() player.PlayMod.save()
player.PlayroomBackData() player.PlayroomBackData()
player.PushClientRes(&msg.ResPlayroomFlipReward{ player.PushClientRes(&msg.ResPlayroomFlipReward{
Code: msg.RES_CODE_SUCCESS, Code: msg.RES_CODE_SUCCESS,
Broken: broken,
}) })
return nil return nil
} }