获取娃娃机标识
This commit is contained in:
parent
c665fd4816
commit
b8765251cc
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package clawdoll
|
||||
|
||||
import (
|
||||
"mongo.games.com/game/gamesrv/action"
|
||||
"mongo.games.com/game/protocol/clawdoll"
|
||||
"time"
|
||||
|
||||
|
@ -61,6 +62,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) {
|
||||
|
|
Loading…
Reference in New Issue