104 lines
3.0 KiB
Go
104 lines
3.0 KiB
Go
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.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")
|
|
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)
|
|
}
|