获取娃娃机标识
This commit is contained in:
parent
c665fd4816
commit
b8765251cc
|
@ -4,22 +4,48 @@ import (
|
||||||
"mongo.games.com/game/protocol/machine"
|
"mongo.games.com/game/protocol/machine"
|
||||||
"mongo.games.com/goserver/core/logger"
|
"mongo.games.com/goserver/core/logger"
|
||||||
"mongo.games.com/goserver/core/netlib"
|
"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 {
|
func MSDollMachineList(session *netlib.Session, packetId int, data interface{}) error {
|
||||||
logger.Logger.Tracef("TestHandler %v", data)
|
logger.Logger.Tracef("TestHandler %v", data)
|
||||||
MachineMap = make(map[int]string)
|
MachineMap = make(map[int]*DollMachine)
|
||||||
if msg, ok := data.(*machine.MSDollMachineList); ok {
|
if msg, ok := data.(*machine.MSDollMachineList); ok {
|
||||||
for i, info := range msg.Data {
|
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)
|
logger.Logger.Tracef("MachineMap[%v] = %v", i, info.VideoAddr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
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() {
|
func init() {
|
||||||
netlib.Register(int(machine.DollMachinePacketID_PACKET_MSDollMachineList), &machine.MSDollMachineList{}, MSDollMachineList)
|
netlib.Register(int(machine.DollMachinePacketID_PACKET_MSDollMachineList), &machine.MSDollMachineList{}, MSDollMachineList)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package clawdoll
|
package clawdoll
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"mongo.games.com/game/gamesrv/action"
|
||||||
"mongo.games.com/game/protocol/clawdoll"
|
"mongo.games.com/game/protocol/clawdoll"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -61,6 +62,14 @@ func (this *PolicyClawdoll) OnTick(s *base.Scene) {
|
||||||
if s.SceneState != nil {
|
if s.SceneState != nil {
|
||||||
s.SceneState.OnTick(s)
|
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) {
|
func (this *PolicyClawdoll) OnPlayerEnter(s *base.Scene, p *base.Player) {
|
||||||
|
|
Loading…
Reference in New Issue