This commit is contained in:
kxdd 2024-08-13 11:58:29 +08:00
commit 149d896cc8
2 changed files with 38 additions and 3 deletions

View File

@ -4,22 +4,48 @@ import (
"mongo.games.com/game/protocol/machine"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"sync"
)
var MachineMap = make(map[int]string)
var MachineMap = make(map[int]*DollMachine)
var MachineMapLock = sync.Mutex{}
type DollMachine struct {
Id int
Status bool
VideoAddr string
}
func MSDollMachineList(session *netlib.Session, packetId int, data interface{}) error {
logger.Logger.Tracef("TestHandler %v", data)
MachineMap = make(map[int]string)
MachineMap = make(map[int]*DollMachine)
if msg, ok := data.(*machine.MSDollMachineList); ok {
for i, info := range msg.Data {
MachineMap[i+1] = info.VideoAddr
MachineMap[i+1] = &DollMachine{
Id: i + 1,
Status: false,
VideoAddr: info.VideoAddr,
}
logger.Logger.Tracef("MachineMap[%v] = %v", i, info.VideoAddr)
}
}
return nil
}
// 获取空闲娃娃机标识
func GetFreeDollMachineId() int {
// 获取互斥锁
MachineMapLock.Lock()
defer MachineMapLock.Unlock()
for i, v := range MachineMap {
if v.Status == false {
v.Status = true
return i
}
}
return 0
}
func init() {
netlib.Register(int(machine.DollMachinePacketID_PACKET_MSDollMachineList), &machine.MSDollMachineList{}, MSDollMachineList)
}

View File

@ -1,6 +1,7 @@
package clawdoll
import (
"mongo.games.com/game/gamesrv/action"
"mongo.games.com/game/protocol/clawdoll"
"mongo.games.com/game/protocol/dollmachine"
"time"
@ -62,6 +63,14 @@ func (this *PolicyClawdoll) OnTick(s *base.Scene) {
if s.SceneState != nil {
s.SceneState.OnTick(s)
}
sceneEx, ok := s.ExtraData.(*SceneEx)
if ok {
if sceneEx.machineId == 0 {
sceneEx.machineId = action.GetFreeDollMachineId()
}
}
}
func (this *PolicyClawdoll) OnPlayerEnter(s *base.Scene, p *base.Player) {