娃娃机添加每局日志记录
This commit is contained in:
parent
62981de6cf
commit
81b529d13b
|
@ -73,9 +73,3 @@ const (
|
||||||
Zego_ForbidRTCStream = iota + 1
|
Zego_ForbidRTCStream = iota + 1
|
||||||
Zego_ResumeRTCStream = 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 {
|
if msg.Result == 1 {
|
||||||
logger.Logger.Tracef("上分成功!!!!!!!!!!!!snid = %v", msg.Snid)
|
logger.Logger.Tracef("上分成功!!!!!!!!!!!!snid = %v", msg.Snid)
|
||||||
|
|
||||||
playerEx.CostPlayCoin(2)
|
playerEx.CostPlayCoin()
|
||||||
|
|
||||||
sceneEx.playingSnid = p.SnId
|
sceneEx.playingSnid = p.SnId
|
||||||
|
|
||||||
|
@ -107,11 +107,12 @@ func MSDollMachineoCoinResultHandler(session *netlib.Session, packetId int, data
|
||||||
if msg.Result == 1 {
|
if msg.Result == 1 {
|
||||||
// 获得娃娃卡
|
// 获得娃娃卡
|
||||||
|
|
||||||
playerEx.CatchCardClawdoll(1)
|
playerEx.CatchCardClawdoll()
|
||||||
|
playerEx.IsWin = true
|
||||||
logger.Logger.Tracef("下抓成功!!!!!!!!!!!!snid = %v", msg.Snid)
|
logger.Logger.Tracef("下抓成功!!!!!!!!!!!!snid = %v", msg.Snid)
|
||||||
} else {
|
} else {
|
||||||
logger.Logger.Tracef("下抓失败!!!!!!!!!!!!snid = %v", msg.Snid)
|
logger.Logger.Tracef("下抓失败!!!!!!!!!!!!snid = %v", msg.Snid)
|
||||||
|
playerEx.IsWin = false
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Logger.Tracef("ClawDoll StatePlayGame OnPlayerOp Grab response, SnId= %v", msg.Snid)
|
logger.Logger.Tracef("ClawDoll StatePlayGame OnPlayerOp Grab response, SnId= %v", msg.Snid)
|
||||||
|
|
|
@ -2,7 +2,6 @@ package clawdoll
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"mongo.games.com/game/common"
|
"mongo.games.com/game/common"
|
||||||
rule "mongo.games.com/game/gamerule/clawdoll"
|
|
||||||
"mongo.games.com/game/gamesrv/base"
|
"mongo.games.com/game/gamesrv/base"
|
||||||
"mongo.games.com/game/model"
|
"mongo.games.com/game/model"
|
||||||
"mongo.games.com/game/srvdata"
|
"mongo.games.com/game/srvdata"
|
||||||
|
@ -15,6 +14,8 @@ type PlayerEx struct {
|
||||||
clawDollState int32 // 抓娃娃状态
|
clawDollState int32 // 抓娃娃状态
|
||||||
dollCardsCnt int32 // 娃娃卡数量
|
dollCardsCnt int32 // 娃娃卡数量
|
||||||
|
|
||||||
|
IsWin bool // 是否抓到娃娃
|
||||||
|
|
||||||
winDollCardType int32 // 本局赢取娃娃的类型
|
winDollCardType int32 // 本局赢取娃娃的类型
|
||||||
gainCoin int64 // 本局赢的金币
|
gainCoin int64 // 本局赢的金币
|
||||||
taxCoin int64 // 本局税收
|
taxCoin int64 // 本局税收
|
||||||
|
@ -29,6 +30,7 @@ func (this *PlayerEx) Clear(baseScore int32) {
|
||||||
this.gainCoin = 0
|
this.gainCoin = 0
|
||||||
this.taxCoin = 0
|
this.taxCoin = 0
|
||||||
this.odds = 0
|
this.odds = 0
|
||||||
|
this.IsWin = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *PlayerEx) CanOp(sceneEx *SceneEx) bool {
|
func (this *PlayerEx) CanOp(sceneEx *SceneEx) bool {
|
||||||
|
@ -42,19 +44,31 @@ func (this *PlayerEx) CanOp(sceneEx *SceneEx) bool {
|
||||||
// 能否投币
|
// 能否投币
|
||||||
func (this *PlayerEx) CanPayCoin() bool {
|
func (this *PlayerEx) CanPayCoin() bool {
|
||||||
|
|
||||||
itemID := int32(rule.ClawDollItemID)
|
itemID := int32(common.ItemIDClawdoll)
|
||||||
itemCount := this.GetItemCount(itemID)
|
|
||||||
if itemCount < rule.ClawDollCostItemCount {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
itemData := srvdata.GameItemMgr.Get(this.Platform, itemID)
|
itemData := srvdata.GameItemMgr.Get(this.Platform, itemID)
|
||||||
if itemData == nil {
|
if itemData == nil {
|
||||||
return false
|
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]
|
num, ok := this.Items[itemID]
|
||||||
if !ok || num < 1 {
|
if !ok || num < int64(machineInfo.CostItemNum) {
|
||||||
return false
|
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() {
|
if !this.CanPayCoin() {
|
||||||
return false
|
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()
|
s := this.GetScene()
|
||||||
if s == nil {
|
if s == nil {
|
||||||
logger.Logger.Warn("CostPlayCoin p.scene == nil")
|
logger.Logger.Warn("CostPlayCoin p.scene == nil")
|
||||||
|
@ -89,6 +93,21 @@ func (this *PlayerEx) CostPlayCoin(count int32) bool {
|
||||||
return false
|
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{
|
this.AddItems(&model.AddItemParam{
|
||||||
P: this.PlayerData,
|
P: this.PlayerData,
|
||||||
Change: items,
|
Change: items,
|
||||||
|
@ -103,16 +122,7 @@ func (this *PlayerEx) CostPlayCoin(count int32) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 抓取到娃娃获得娃娃
|
// 抓取到娃娃获得娃娃
|
||||||
func (this *PlayerEx) CatchCardClawdoll(count int32) bool {
|
func (this *PlayerEx) CatchCardClawdoll() 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),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
s := this.GetScene()
|
s := this.GetScene()
|
||||||
if s == nil {
|
if s == nil {
|
||||||
|
@ -120,11 +130,26 @@ func (this *PlayerEx) CatchCardClawdoll(count int32) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
machineId := s.GetDBGameFree().GetId() % 6080000
|
||||||
|
machineInfo := s.GetMachineServerInfo(machineId, this.Platform)
|
||||||
|
if machineInfo == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
sceneEx, ok := s.ExtraData.(*SceneEx)
|
sceneEx, ok := s.ExtraData.(*SceneEx)
|
||||||
if !ok {
|
if !ok {
|
||||||
return false
|
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{
|
this.AddItems(&model.AddItemParam{
|
||||||
P: this.PlayerData,
|
P: this.PlayerData,
|
||||||
Change: items,
|
Change: items,
|
||||||
|
@ -175,6 +200,7 @@ func (this *PlayerEx) ReStartGame() {
|
||||||
this.gainCoin = 0
|
this.gainCoin = 0
|
||||||
this.taxCoin = 0
|
this.taxCoin = 0
|
||||||
this.odds = 0
|
this.odds = 0
|
||||||
|
this.IsWin = false
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化
|
// 初始化
|
||||||
|
|
|
@ -3,6 +3,7 @@ package clawdoll
|
||||||
import (
|
import (
|
||||||
"github.com/zegoim/zego_server_assistant/token/go/src/token04"
|
"github.com/zegoim/zego_server_assistant/token/go/src/token04"
|
||||||
"mongo.games.com/game/gamesrv/action"
|
"mongo.games.com/game/gamesrv/action"
|
||||||
|
"mongo.games.com/game/model"
|
||||||
"mongo.games.com/game/protocol/clawdoll"
|
"mongo.games.com/game/protocol/clawdoll"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"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) {
|
func (this *StateBilled) OnEnter(s *base.Scene) {
|
||||||
logger.Logger.Trace("(this *StateBilled) OnEnter, sceneid=", s.GetSceneId())
|
logger.Logger.Trace("(this *StateBilled) OnEnter, sceneid=", s.GetSceneId())
|
||||||
this.BaseState.OnEnter(s)
|
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) {
|
func (this *StateBilled) OnLeave(s *base.Scene) {
|
||||||
|
|
|
@ -1679,3 +1679,13 @@ type SamLocPerson struct {
|
||||||
CardInfoEnd []int32 //结算时的牌型
|
CardInfoEnd []int32 //结算时的牌型
|
||||||
IsTianHu bool //是否天胡
|
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 {
|
if p == nil {
|
||||||
return 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)
|
msg, ok := data.(*player_proto.CSClawdollItemLog)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue