娃娃机添加每局日志记录
This commit is contained in:
parent
62981de6cf
commit
81b529d13b
|
@ -73,9 +73,3 @@ const (
|
|||
Zego_ForbidRTCStream = iota + 1
|
||||
Zego_ResumeRTCStream = iota + 1
|
||||
)
|
||||
|
||||
const (
|
||||
ClawDollItemID = 40003
|
||||
ClawDollGiveItemID = 74004
|
||||
ClawDollCostItemCount = 2
|
||||
)
|
||||
|
|
|
@ -84,7 +84,7 @@ func MSDollMachineoCoinResultHandler(session *netlib.Session, packetId int, data
|
|||
if msg.Result == 1 {
|
||||
logger.Logger.Tracef("上分成功!!!!!!!!!!!!snid = %v", msg.Snid)
|
||||
|
||||
playerEx.CostPlayCoin(2)
|
||||
playerEx.CostPlayCoin()
|
||||
|
||||
sceneEx.playingSnid = p.SnId
|
||||
|
||||
|
@ -107,11 +107,12 @@ func MSDollMachineoCoinResultHandler(session *netlib.Session, packetId int, data
|
|||
if msg.Result == 1 {
|
||||
// 获得娃娃卡
|
||||
|
||||
playerEx.CatchCardClawdoll(1)
|
||||
|
||||
playerEx.CatchCardClawdoll()
|
||||
playerEx.IsWin = true
|
||||
logger.Logger.Tracef("下抓成功!!!!!!!!!!!!snid = %v", msg.Snid)
|
||||
} else {
|
||||
logger.Logger.Tracef("下抓失败!!!!!!!!!!!!snid = %v", msg.Snid)
|
||||
playerEx.IsWin = false
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("ClawDoll StatePlayGame OnPlayerOp Grab response, SnId= %v", msg.Snid)
|
||||
|
|
|
@ -2,7 +2,6 @@ package clawdoll
|
|||
|
||||
import (
|
||||
"mongo.games.com/game/common"
|
||||
rule "mongo.games.com/game/gamerule/clawdoll"
|
||||
"mongo.games.com/game/gamesrv/base"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/srvdata"
|
||||
|
@ -15,6 +14,8 @@ type PlayerEx struct {
|
|||
clawDollState int32 // 抓娃娃状态
|
||||
dollCardsCnt int32 // 娃娃卡数量
|
||||
|
||||
IsWin bool // 是否抓到娃娃
|
||||
|
||||
winDollCardType int32 // 本局赢取娃娃的类型
|
||||
gainCoin int64 // 本局赢的金币
|
||||
taxCoin int64 // 本局税收
|
||||
|
@ -29,6 +30,7 @@ func (this *PlayerEx) Clear(baseScore int32) {
|
|||
this.gainCoin = 0
|
||||
this.taxCoin = 0
|
||||
this.odds = 0
|
||||
this.IsWin = false
|
||||
}
|
||||
|
||||
func (this *PlayerEx) CanOp(sceneEx *SceneEx) bool {
|
||||
|
@ -42,19 +44,31 @@ func (this *PlayerEx) CanOp(sceneEx *SceneEx) bool {
|
|||
// 能否投币
|
||||
func (this *PlayerEx) CanPayCoin() bool {
|
||||
|
||||
itemID := int32(rule.ClawDollItemID)
|
||||
itemCount := this.GetItemCount(itemID)
|
||||
if itemCount < rule.ClawDollCostItemCount {
|
||||
return false
|
||||
}
|
||||
|
||||
itemID := int32(common.ItemIDClawdoll)
|
||||
itemData := srvdata.GameItemMgr.Get(this.Platform, itemID)
|
||||
if itemData == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
s := this.GetScene()
|
||||
if s == nil {
|
||||
logger.Logger.Warn("CostPlayCoin p.scene == nil")
|
||||
return false
|
||||
}
|
||||
|
||||
machineId := s.GetDBGameFree().GetId() % 6080000
|
||||
machineInfo := s.GetMachineServerInfo(machineId, this.Platform)
|
||||
if machineInfo == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
itemCount := this.GetItemCount(itemID)
|
||||
if itemCount < int64(machineInfo.CostItemNum) {
|
||||
return false
|
||||
}
|
||||
|
||||
num, ok := this.Items[itemID]
|
||||
if !ok || num < 1 {
|
||||
if !ok || num < int64(machineInfo.CostItemNum) {
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -62,22 +76,12 @@ func (this *PlayerEx) CanPayCoin() bool {
|
|||
}
|
||||
|
||||
// 投币消耗
|
||||
func (this *PlayerEx) CostPlayCoin(count int32) bool {
|
||||
func (this *PlayerEx) CostPlayCoin() bool {
|
||||
|
||||
if !this.CanPayCoin() {
|
||||
return false
|
||||
}
|
||||
|
||||
var items []*model.Item
|
||||
|
||||
itemData := srvdata.GameItemMgr.Get(this.Platform, rule.ClawDollItemID)
|
||||
if itemData != nil {
|
||||
items = append(items, &model.Item{
|
||||
ItemId: rule.ClawDollItemID,
|
||||
ItemNum: int64(count),
|
||||
})
|
||||
}
|
||||
|
||||
s := this.GetScene()
|
||||
if s == nil {
|
||||
logger.Logger.Warn("CostPlayCoin p.scene == nil")
|
||||
|
@ -89,6 +93,21 @@ func (this *PlayerEx) CostPlayCoin(count int32) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
machineId := s.GetDBGameFree().GetId() % 6080000
|
||||
machineInfo := s.GetMachineServerInfo(machineId, this.Platform)
|
||||
if machineInfo == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
var items []*model.Item
|
||||
itemData := srvdata.GameItemMgr.Get(this.Platform, common.ItemIDClawdoll)
|
||||
if itemData != nil {
|
||||
items = append(items, &model.Item{
|
||||
ItemId: common.ItemIDClawdoll,
|
||||
ItemNum: int64(-machineInfo.CostItemNum),
|
||||
})
|
||||
}
|
||||
|
||||
this.AddItems(&model.AddItemParam{
|
||||
P: this.PlayerData,
|
||||
Change: items,
|
||||
|
@ -103,16 +122,7 @@ func (this *PlayerEx) CostPlayCoin(count int32) bool {
|
|||
}
|
||||
|
||||
// 抓取到娃娃获得娃娃
|
||||
func (this *PlayerEx) CatchCardClawdoll(count int32) bool {
|
||||
var items []*model.Item
|
||||
|
||||
itemData := srvdata.GameItemMgr.Get(this.Platform, rule.ClawDollGiveItemID)
|
||||
if itemData != nil {
|
||||
items = append(items, &model.Item{
|
||||
ItemId: rule.ClawDollGiveItemID,
|
||||
ItemNum: int64(count),
|
||||
})
|
||||
}
|
||||
func (this *PlayerEx) CatchCardClawdoll() bool {
|
||||
|
||||
s := this.GetScene()
|
||||
if s == nil {
|
||||
|
@ -120,11 +130,26 @@ func (this *PlayerEx) CatchCardClawdoll(count int32) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
machineId := s.GetDBGameFree().GetId() % 6080000
|
||||
machineInfo := s.GetMachineServerInfo(machineId, this.Platform)
|
||||
if machineInfo == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
sceneEx, ok := s.ExtraData.(*SceneEx)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
var items []*model.Item
|
||||
itemData := srvdata.GameItemMgr.Get(this.Platform, machineInfo.ItemId)
|
||||
if itemData != nil {
|
||||
items = append(items, &model.Item{
|
||||
ItemId: machineInfo.ItemId,
|
||||
ItemNum: int64(machineInfo.ItemNum),
|
||||
})
|
||||
}
|
||||
|
||||
this.AddItems(&model.AddItemParam{
|
||||
P: this.PlayerData,
|
||||
Change: items,
|
||||
|
@ -175,6 +200,7 @@ func (this *PlayerEx) ReStartGame() {
|
|||
this.gainCoin = 0
|
||||
this.taxCoin = 0
|
||||
this.odds = 0
|
||||
this.IsWin = false
|
||||
}
|
||||
|
||||
// 初始化
|
||||
|
|
|
@ -3,6 +3,7 @@ package clawdoll
|
|||
import (
|
||||
"github.com/zegoim/zego_server_assistant/token/go/src/token04"
|
||||
"mongo.games.com/game/gamesrv/action"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/protocol/clawdoll"
|
||||
"strconv"
|
||||
"time"
|
||||
|
@ -739,6 +740,70 @@ func (this *StateBilled) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, p
|
|||
func (this *StateBilled) OnEnter(s *base.Scene) {
|
||||
logger.Logger.Trace("(this *StateBilled) OnEnter, sceneid=", s.GetSceneId())
|
||||
this.BaseState.OnEnter(s)
|
||||
|
||||
sceneEx, ok := s.ExtraData.(*SceneEx)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
playerEx := sceneEx.GetPlayingEx()
|
||||
if playerEx != nil {
|
||||
logger.Logger.Trace("ClawdollSaveLog Save Snid : ", playerEx.SnId)
|
||||
|
||||
machineId := s.GetDBGameFree().GetId() % 6080000
|
||||
machineInfo := s.GetMachineServerInfo(machineId, playerEx.Platform)
|
||||
if machineInfo == nil {
|
||||
return
|
||||
}
|
||||
|
||||
curClawdollItemNum, ok := playerEx.Items[int32(common.ItemIDClawdoll)]
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
LogBaseResult := model.ClawdollResultType{}
|
||||
LogBaseResult.RoomId = int32(sceneEx.GetSceneId())
|
||||
LogBaseResult.PlayerSnid = playerEx.SnId
|
||||
LogBaseResult.BeforeClawdollItemNum = curClawdollItemNum + int64(machineInfo.CostItemNum)
|
||||
LogBaseResult.AfterClawdollItemNum = curClawdollItemNum
|
||||
LogBaseResult.IsWin = playerEx.IsWin
|
||||
|
||||
if !playerEx.IsRob {
|
||||
sceneEx.logid, _ = model.AutoIncGameLogId()
|
||||
info, err := model.MarshalGameNoteByHUNDRED(LogBaseResult)
|
||||
if err == nil {
|
||||
sceneEx.SaveGameDetailedLog(sceneEx.logid, info, &base.GameDetailedParam{})
|
||||
}
|
||||
|
||||
TotalBetValue := 0
|
||||
totalin := int64(TotalBetValue)
|
||||
totalout := playerEx.gainCoin
|
||||
validFlow := totalin + totalout
|
||||
validBet := common.AbsI64(totalin - totalout)
|
||||
logParam := &base.SaveGamePlayerListLogParam{
|
||||
Platform: playerEx.Platform,
|
||||
Channel: playerEx.Channel,
|
||||
Promoter: playerEx.BeUnderAgentCode,
|
||||
PackageTag: playerEx.PackageID,
|
||||
InviterId: playerEx.InviterId,
|
||||
LogId: sceneEx.logid,
|
||||
TotalIn: totalin,
|
||||
TotalOut: totalout,
|
||||
TaxCoin: playerEx.taxCoin,
|
||||
BetAmount: int64(TotalBetValue),
|
||||
WinAmountNoAnyTax: playerEx.gainCoin,
|
||||
ValidBet: validBet,
|
||||
ValidFlow: validFlow,
|
||||
IsFirstGame: sceneEx.IsPlayerFirst(playerEx.Player),
|
||||
IsFree: false,
|
||||
WinSmallGame: 0,
|
||||
WinTotal: 0,
|
||||
}
|
||||
sceneEx.SaveGamePlayerListLog(playerEx.SnId, logParam)
|
||||
}
|
||||
|
||||
playerEx.ReStartGame()
|
||||
}
|
||||
}
|
||||
|
||||
func (this *StateBilled) OnLeave(s *base.Scene) {
|
||||
|
|
|
@ -1679,3 +1679,13 @@ type SamLocPerson struct {
|
|||
CardInfoEnd []int32 //结算时的牌型
|
||||
IsTianHu bool //是否天胡
|
||||
}
|
||||
|
||||
// 娃娃机 每局记录
|
||||
type ClawdollResultType struct {
|
||||
//all
|
||||
RoomId int32 //房间Id
|
||||
PlayerSnid int32 //玩家id
|
||||
BeforeClawdollItemNum int64 //变化前娃娃币
|
||||
AfterClawdollItemNum int64 //变化后娃娃币
|
||||
IsWin bool //是否成功
|
||||
}
|
||||
|
|
|
@ -3169,6 +3169,25 @@ func CSClawdollItemLog(s *netlib.Session, packetId int, data interface{}, sid in
|
|||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
var change []*model.Item
|
||||
change = append(change, &model.Item{
|
||||
ItemId: common.ItemIDClawdoll,
|
||||
ItemNum: 3,
|
||||
})
|
||||
|
||||
BagMgrSingleton.AddItemsV2(&model.AddItemParam{
|
||||
P: p.PlayerData,
|
||||
Change: change,
|
||||
Add: 0,
|
||||
GainWay: common.GainWayItemShopChangeDoll,
|
||||
Operator: "system",
|
||||
Remark: "商城兑换娃娃",
|
||||
GameId: 0,
|
||||
GameFreeId: 0,
|
||||
NoLog: false,
|
||||
})
|
||||
|
||||
msg, ok := data.(*player_proto.CSClawdollItemLog)
|
||||
if !ok {
|
||||
return nil
|
||||
|
|
Loading…
Reference in New Issue