package action import ( "fmt" "mongo.games.com/game/machine/machinedoll" "mongo.games.com/game/protocol/machine" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/netlib" "time" ) // 移动 func SMDollMachinePerateHandler(session *netlib.Session, packetId int, data interface{}) error { msg, ok := data.(*machine.SMDollMachineoPerate) if !ok { return nil } conn := machinedoll.ConnMap[int(msg.Id)] if conn == nil { return nil } if msg.Perate == 1 { //向前移动 machinedoll.Backward(conn) time.Sleep(200 * time.Millisecond) machinedoll.BackwardStop(conn) } else if msg.Perate == 2 { //向后移动 machinedoll.Forward(conn) time.Sleep(200 * time.Millisecond) machinedoll.ForwardStop(conn) } else if msg.Perate == 3 { //向左移动 machinedoll.Left(conn) time.Sleep(200 * time.Millisecond) machinedoll.LeftStop(conn) } else if msg.Perate == 4 { //向右移动 machinedoll.Right(conn) time.Sleep(200 * time.Millisecond) machinedoll.RightStop(conn) } else if msg.Perate == 5 { //投币 machinedoll.Coin(conn) machinedoll.Backward(conn) time.Sleep(200 * time.Millisecond) machinedoll.BackwardStop(conn) } return nil } // 下抓 func SMDollMachineGrabHandler(session *netlib.Session, packetId int, data interface{}) error { msg, ok := data.(*machine.SMDollMachineGrab) if !ok { return nil } conn := machinedoll.ConnMap[int(msg.Id)] if conn == nil { return nil } typeId := msg.TypeId if typeId == 1 { //弱抓 machinedoll.WeakGrab(conn) } else if typeId == 2 { //强力抓 machinedoll.Grab(conn) } else if typeId == 3 { //必中抓 machinedoll.SetPower(conn) time.Sleep(200 * time.Millisecond) machinedoll.Grab(conn) } //返回消息 session.Send(int(machine.DollMachinePacketID_PACKET_SMDollMachineGrab), &machine.MSDollMachineGrab{ Snid: msg.Snid, Id: msg.GetId(), Result: 1, }) return nil } // 与游戏服务器连接成功,向游戏服务器推送所有娃娃机连接 func SMGameLinkSucceedHandler(session *netlib.Session, packetId int, data interface{}) error { logger.Logger.Trace("与游戏服务器连接成功!!\n") fmt.Printf("与游戏服务器连接成功!!\n") //开始向游戏服务器发送娃娃机连接信息 msg := &machine.MSDollMachineList{} for i, _ := range machinedoll.ConnMap { info := &machine.DollMachine{} info.Id = int32(i) info.VideoAddr = "www.baidu.com" msg.Data = append(msg.Data, info) } session.Send(int(machine.DollMachinePacketID_PACKET_MSDollMachineList), msg) fmt.Printf("开始向游戏服务器发送娃娃机连接信息!\n", msg) return nil } func init() { netlib.Register(int(machine.DollMachinePacketID_PACKET_SMDollMachinePerate), &machine.SMDollMachineoPerate{}, SMDollMachinePerateHandler) netlib.Register(int(machine.DollMachinePacketID_PACKET_SMDollMachineGrab), &machine.SMDollMachineGrab{}, SMDollMachineGrabHandler) //链接成功 返回消息 netlib.Register(int(machine.DollMachinePacketID_PACKET_SMGameLinkSucceed), &machine.SMGameLinkSucceed{}, SMGameLinkSucceedHandler) }