mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 16:02:26 +08:00
无果的远征,多人世界放技能该卡还是得卡
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
package net
|
package net
|
||||||
|
|
||||||
import "hk4e/pkg/logger"
|
import (
|
||||||
|
"hk4e/pkg/logger"
|
||||||
|
"reflect"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
KcpXorKeyChange = iota
|
KcpXorKeyChange = iota
|
||||||
@@ -28,7 +31,7 @@ func (k *KcpConnectManager) eventHandle() {
|
|||||||
// 事件处理
|
// 事件处理
|
||||||
for {
|
for {
|
||||||
event := <-k.kcpEventInput
|
event := <-k.kcpEventInput
|
||||||
logger.LOG.Info("kcp manager recv event, ConvId: %v, EventId: %v, EventMessage: %v", event.ConvId, event.EventId, event.EventMessage)
|
logger.LOG.Info("kcp manager recv event, ConvId: %v, EventId: %v, EventMessage Type: %v", event.ConvId, event.EventId, reflect.TypeOf(event.EventMessage))
|
||||||
switch event.EventId {
|
switch event.EventId {
|
||||||
case KcpXorKeyChange:
|
case KcpXorKeyChange:
|
||||||
// XOR密钥切换
|
// XOR密钥切换
|
||||||
|
|||||||
@@ -63,15 +63,22 @@ func (p *ProtoEnDecode) protoDecode(kcpMsg *KcpMsg) (protoMsgList []*ProtoMsg) {
|
|||||||
msg.PayloadMessage = protoMessage.message
|
msg.PayloadMessage = protoMessage.message
|
||||||
protoMsgList = append(protoMsgList, msg)
|
protoMsgList = append(protoMsgList, msg)
|
||||||
}
|
}
|
||||||
|
for _, msg := range protoMsgList {
|
||||||
|
cmdName := "???"
|
||||||
|
if msg.PayloadMessage != nil {
|
||||||
|
cmdName = string(msg.PayloadMessage.ProtoReflect().Descriptor().FullName())
|
||||||
|
}
|
||||||
|
logger.LOG.Debug("[RECV UNION CMD], cmdId: %v, cmdName: %v, convId: %v, headMsg: %v", msg.CmdId, cmdName, msg.ConvId, msg.HeadMessage)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
protoMsg.PayloadMessage = protoMessageList[0].message
|
protoMsg.PayloadMessage = protoMessageList[0].message
|
||||||
protoMsgList = append(protoMsgList, protoMsg)
|
protoMsgList = append(protoMsgList, protoMsg)
|
||||||
|
cmdName := ""
|
||||||
|
if protoMsg.PayloadMessage != nil {
|
||||||
|
cmdName = string(protoMsg.PayloadMessage.ProtoReflect().Descriptor().FullName())
|
||||||
|
}
|
||||||
|
logger.LOG.Debug("[RECV], cmdId: %v, cmdName: %v, convId: %v, headMsg: %v", protoMsg.CmdId, cmdName, protoMsg.ConvId, protoMsg.HeadMessage)
|
||||||
}
|
}
|
||||||
cmdName := ""
|
|
||||||
if protoMsg.PayloadMessage != nil {
|
|
||||||
cmdName = string(protoMsg.PayloadMessage.ProtoReflect().Descriptor().FullName())
|
|
||||||
}
|
|
||||||
logger.LOG.Debug("[recv], cmdId: %v, cmdName: %v, convId: %v, headMsg: %v", protoMsg.CmdId, cmdName, protoMsg.ConvId, protoMsg.HeadMessage)
|
|
||||||
return protoMsgList
|
return protoMsgList
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +110,7 @@ func (p *ProtoEnDecode) protoEncode(protoMsg *ProtoMsg) (kcpMsg *KcpMsg) {
|
|||||||
if protoMsg.PayloadMessage != nil {
|
if protoMsg.PayloadMessage != nil {
|
||||||
cmdName = string(protoMsg.PayloadMessage.ProtoReflect().Descriptor().FullName())
|
cmdName = string(protoMsg.PayloadMessage.ProtoReflect().Descriptor().FullName())
|
||||||
}
|
}
|
||||||
logger.LOG.Debug("[send], cmdId: %v, cmdName: %v, convId: %v, headMsg: %v", protoMsg.CmdId, cmdName, protoMsg.ConvId, protoMsg.HeadMessage)
|
logger.LOG.Debug("[SEND], cmdId: %v, cmdName: %v, convId: %v, headMsg: %v", protoMsg.CmdId, cmdName, protoMsg.ConvId, protoMsg.HeadMessage)
|
||||||
kcpMsg = new(KcpMsg)
|
kcpMsg = new(KcpMsg)
|
||||||
kcpMsg.ConvId = protoMsg.ConvId
|
kcpMsg.ConvId = protoMsg.ConvId
|
||||||
kcpMsg.CmdId = protoMsg.CmdId
|
kcpMsg.CmdId = protoMsg.CmdId
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ type AvatarData struct {
|
|||||||
QualityType int32 `csv:"QualityType,omitempty"` // 角色品质
|
QualityType int32 `csv:"QualityType,omitempty"` // 角色品质
|
||||||
ConfigJson string `csv:"ConfigJson,omitempty"` // 战斗config
|
ConfigJson string `csv:"ConfigJson,omitempty"` // 战斗config
|
||||||
InitialWeapon int32 `csv:"InitialWeapon,omitempty"` // 初始武器
|
InitialWeapon int32 `csv:"InitialWeapon,omitempty"` // 初始武器
|
||||||
WeaponType int32 `csv:"WeaponType"` // 武器种类
|
WeaponType int32 `csv:"WeaponType,omitempty"` // 武器种类
|
||||||
SkillDepotId int32 `csv:"SkillDepotId,omitempty"` // 技能库ID
|
SkillDepotId int32 `csv:"SkillDepotId,omitempty"` // 技能库ID
|
||||||
|
|
||||||
AbilityHashCodeList []int32
|
AbilityHashCodeList []int32
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ func (r *RouteManager) doRoute(cmdId uint16, userId uint32, clientSeq uint32, pa
|
|||||||
func (r *RouteManager) InitRoute() {
|
func (r *RouteManager) InitRoute() {
|
||||||
r.registerRouter(cmd.UnionCmdNotify, r.gameManager.UnionCmdNotify)
|
r.registerRouter(cmd.UnionCmdNotify, r.gameManager.UnionCmdNotify)
|
||||||
r.registerRouter(cmd.MassiveEntityElementOpBatchNotify, r.gameManager.MassiveEntityElementOpBatchNotify)
|
r.registerRouter(cmd.MassiveEntityElementOpBatchNotify, r.gameManager.MassiveEntityElementOpBatchNotify)
|
||||||
|
r.registerRouter(cmd.ToTheMoonEnterSceneReq, r.gameManager.ToTheMoonEnterSceneReq)
|
||||||
r.registerRouter(cmd.PlayerSetPauseReq, r.gameManager.PlayerSetPauseReq)
|
r.registerRouter(cmd.PlayerSetPauseReq, r.gameManager.PlayerSetPauseReq)
|
||||||
r.registerRouter(cmd.EnterSceneReadyReq, r.gameManager.EnterSceneReadyReq)
|
r.registerRouter(cmd.EnterSceneReadyReq, r.gameManager.EnterSceneReadyReq)
|
||||||
r.registerRouter(cmd.PathfindingEnterSceneReq, r.gameManager.PathfindingEnterSceneReq)
|
r.registerRouter(cmd.PathfindingEnterSceneReq, r.gameManager.PathfindingEnterSceneReq)
|
||||||
|
|||||||
@@ -117,6 +117,15 @@ func (t *TickManager) onTickMinute(now int64) {
|
|||||||
|
|
||||||
func (t *TickManager) onTick10Second(now int64) {
|
func (t *TickManager) onTick10Second(now int64) {
|
||||||
for _, world := range t.gameManager.worldManager.worldMap {
|
for _, world := range t.gameManager.worldManager.worldMap {
|
||||||
|
for _, scene := range world.sceneMap {
|
||||||
|
for _, player := range scene.playerMap {
|
||||||
|
// PacketSceneTimeNotify
|
||||||
|
sceneTimeNotify := new(proto.SceneTimeNotify)
|
||||||
|
sceneTimeNotify.SceneId = player.SceneId
|
||||||
|
sceneTimeNotify.SceneTime = uint64(scene.GetSceneTime())
|
||||||
|
GAME.SendMsg(cmd.SceneTimeNotify, player.PlayerID, player.ClientSeq, sceneTimeNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
if !world.IsBigWorld() && (world.multiplayer || !world.owner.Pause) {
|
if !world.IsBigWorld() && (world.multiplayer || !world.owner.Pause) {
|
||||||
// 刷怪
|
// 刷怪
|
||||||
scene := world.GetSceneById(3)
|
scene := world.GetSceneById(3)
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ func (g *GameManager) UnionCmdNotify(player *model.Player, payloadMsg pb.Message
|
|||||||
//logger.LOG.Debug("user send union cmd, uid: %v", player.PlayerID)
|
//logger.LOG.Debug("user send union cmd, uid: %v", player.PlayerID)
|
||||||
req := payloadMsg.(*proto.UnionCmdNotify)
|
req := payloadMsg.(*proto.UnionCmdNotify)
|
||||||
_ = req
|
_ = req
|
||||||
|
|
||||||
world := g.worldManager.GetWorldByID(player.WorldId)
|
world := g.worldManager.GetWorldByID(player.WorldId)
|
||||||
if world == nil {
|
if world == nil {
|
||||||
return
|
return
|
||||||
@@ -84,34 +83,8 @@ func (g *GameManager) UnionCmdNotify(player *model.Player, payloadMsg pb.Message
|
|||||||
g.SendMsg(cmd.AbilityInvocationsNotify, world.owner.PlayerID, player.ClientSeq, abilityInvocationsNotify)
|
g.SendMsg(cmd.AbilityInvocationsNotify, world.owner.PlayerID, player.ClientSeq, abilityInvocationsNotify)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClientAbilityInitFinishNotify转发
|
|
||||||
// PacketClientAbilityInitFinishNotify
|
|
||||||
if player.ClientAbilityInvokeHandler.AllLen() > 0 {
|
|
||||||
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
|
||||||
clientAbilityInitFinishNotify.Invokes = player.ClientAbilityInvokeHandler.EntryListForwardAll
|
|
||||||
for _, v := range surrPlayerList {
|
|
||||||
g.SendMsg(cmd.ClientAbilityInitFinishNotify, v.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if player.ClientAbilityInvokeHandler.AllExceptCurLen() > 0 {
|
|
||||||
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
|
||||||
clientAbilityInitFinishNotify.Invokes = player.ClientAbilityInvokeHandler.EntryListForwardAllExceptCur
|
|
||||||
for _, v := range surrPlayerList {
|
|
||||||
if player.PlayerID == v.PlayerID {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
g.SendMsg(cmd.ClientAbilityInitFinishNotify, v.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if player.ClientAbilityInvokeHandler.HostLen() > 0 {
|
|
||||||
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
|
||||||
clientAbilityInitFinishNotify.Invokes = player.ClientAbilityInvokeHandler.EntryListForwardHost
|
|
||||||
g.SendMsg(cmd.ClientAbilityInitFinishNotify, world.owner.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
|
||||||
}
|
|
||||||
|
|
||||||
player.CombatInvokeHandler.Clear()
|
player.CombatInvokeHandler.Clear()
|
||||||
player.AbilityInvokeHandler.Clear()
|
player.AbilityInvokeHandler.Clear()
|
||||||
player.ClientAbilityInvokeHandler.Clear()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GameManager) MassiveEntityElementOpBatchNotify(player *model.Player, payloadMsg pb.Message) {
|
func (g *GameManager) MassiveEntityElementOpBatchNotify(player *model.Player, payloadMsg pb.Message) {
|
||||||
@@ -125,6 +98,7 @@ func (g *GameManager) MassiveEntityElementOpBatchNotify(player *model.Player, pa
|
|||||||
scene := world.GetSceneById(player.SceneId)
|
scene := world.GetSceneById(player.SceneId)
|
||||||
ntf.OpIdx = scene.meeoIndex
|
ntf.OpIdx = scene.meeoIndex
|
||||||
scene.meeoIndex++
|
scene.meeoIndex++
|
||||||
|
|
||||||
// 只给附近aoi区域的玩家广播消息
|
// 只给附近aoi区域的玩家广播消息
|
||||||
surrPlayerList := make([]*model.Player, 0)
|
surrPlayerList := make([]*model.Player, 0)
|
||||||
entityIdList := world.aoiManager.GetEntityIdListByPos(float32(player.Pos.X), float32(player.Pos.Y), float32(player.Pos.Z))
|
entityIdList := world.aoiManager.GetEntityIdListByPos(float32(player.Pos.X), float32(player.Pos.Y), float32(player.Pos.Z))
|
||||||
@@ -146,6 +120,7 @@ func (g *GameManager) MassiveEntityElementOpBatchNotify(player *model.Player, pa
|
|||||||
func (g *GameManager) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Message) {
|
func (g *GameManager) CombatInvocationsNotify(player *model.Player, payloadMsg pb.Message) {
|
||||||
//logger.LOG.Debug("user combat invocations, uid: %v", player.PlayerID)
|
//logger.LOG.Debug("user combat invocations, uid: %v", player.PlayerID)
|
||||||
req := payloadMsg.(*proto.CombatInvocationsNotify)
|
req := payloadMsg.(*proto.CombatInvocationsNotify)
|
||||||
|
|
||||||
world := g.worldManager.GetWorldByID(player.WorldId)
|
world := g.worldManager.GetWorldByID(player.WorldId)
|
||||||
if world == nil {
|
if world == nil {
|
||||||
return
|
return
|
||||||
@@ -160,6 +135,9 @@ func (g *GameManager) CombatInvocationsNotify(player *model.Player, payloadMsg p
|
|||||||
// uid: player.PlayerID,
|
// uid: player.PlayerID,
|
||||||
// })
|
// })
|
||||||
case proto.CombatTypeArgument_COMBAT_TYPE_ARGUMENT_ENTITY_MOVE:
|
case proto.CombatTypeArgument_COMBAT_TYPE_ARGUMENT_ENTITY_MOVE:
|
||||||
|
if player.SceneLoadState != model.SceneEnterDone {
|
||||||
|
continue
|
||||||
|
}
|
||||||
entityMoveInfo := new(proto.EntityMoveInfo)
|
entityMoveInfo := new(proto.EntityMoveInfo)
|
||||||
err := pb.Unmarshal(entry.CombatData, entityMoveInfo)
|
err := pb.Unmarshal(entry.CombatData, entityMoveInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -348,6 +326,7 @@ func (g *GameManager) CombatInvocationsNotify(player *model.Player, payloadMsg p
|
|||||||
func (g *GameManager) AbilityInvocationsNotify(player *model.Player, payloadMsg pb.Message) {
|
func (g *GameManager) AbilityInvocationsNotify(player *model.Player, payloadMsg pb.Message) {
|
||||||
//logger.LOG.Debug("user ability invocations, uid: %v", player.PlayerID)
|
//logger.LOG.Debug("user ability invocations, uid: %v", player.PlayerID)
|
||||||
req := payloadMsg.(*proto.AbilityInvocationsNotify)
|
req := payloadMsg.(*proto.AbilityInvocationsNotify)
|
||||||
|
|
||||||
for _, entry := range req.Invokes {
|
for _, entry := range req.Invokes {
|
||||||
//logger.LOG.Debug("AT: %v, FT: %v, UID: %v", entry.ArgumentType, entry.ForwardType, player.PlayerID)
|
//logger.LOG.Debug("AT: %v, FT: %v, UID: %v", entry.ArgumentType, entry.ForwardType, player.PlayerID)
|
||||||
|
|
||||||
@@ -361,13 +340,141 @@ func (g *GameManager) AbilityInvocationsNotify(player *model.Player, payloadMsg
|
|||||||
func (g *GameManager) ClientAbilityInitFinishNotify(player *model.Player, payloadMsg pb.Message) {
|
func (g *GameManager) ClientAbilityInitFinishNotify(player *model.Player, payloadMsg pb.Message) {
|
||||||
//logger.LOG.Debug("user client ability init finish, uid: %v", player.PlayerID)
|
//logger.LOG.Debug("user client ability init finish, uid: %v", player.PlayerID)
|
||||||
req := payloadMsg.(*proto.ClientAbilityInitFinishNotify)
|
req := payloadMsg.(*proto.ClientAbilityInitFinishNotify)
|
||||||
|
invokeHandler := model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
||||||
for _, entry := range req.Invokes {
|
for _, entry := range req.Invokes {
|
||||||
//logger.LOG.Debug("AT: %v, FT: %v, UID: %v", entry.ArgumentType, entry.ForwardType, player.PlayerID)
|
//logger.LOG.Debug("AT: %v, FT: %v, UID: %v", entry.ArgumentType, entry.ForwardType, player.PlayerID)
|
||||||
|
|
||||||
// 处理能力调用
|
// 处理能力调用
|
||||||
g.HandleAbilityInvoke(player, entry)
|
g.HandleAbilityInvoke(player, entry)
|
||||||
|
|
||||||
player.ClientAbilityInvokeHandler.AddEntry(entry.ForwardType, entry)
|
invokeHandler.AddEntry(entry.ForwardType, entry)
|
||||||
|
}
|
||||||
|
world := g.worldManager.GetWorldByID(player.WorldId)
|
||||||
|
if world == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
scene := world.GetSceneById(player.SceneId)
|
||||||
|
|
||||||
|
// 只给附近aoi区域的玩家广播消息
|
||||||
|
surrPlayerList := make([]*model.Player, 0)
|
||||||
|
entityIdList := world.aoiManager.GetEntityIdListByPos(float32(player.Pos.X), float32(player.Pos.Y), float32(player.Pos.Z))
|
||||||
|
for _, entityId := range entityIdList {
|
||||||
|
entity := scene.GetEntity(entityId)
|
||||||
|
if entity == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if entity.avatarEntity != nil {
|
||||||
|
otherPlayer := g.userManager.GetOnlineUser(entity.avatarEntity.uid)
|
||||||
|
surrPlayerList = append(surrPlayerList, otherPlayer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClientAbilityInitFinishNotify转发
|
||||||
|
// PacketClientAbilityInitFinishNotify
|
||||||
|
if invokeHandler.AllLen() == 0 && invokeHandler.AllExceptCurLen() == 0 && invokeHandler.HostLen() == 0 {
|
||||||
|
for _, v := range surrPlayerList {
|
||||||
|
if player.PlayerID == v.PlayerID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
||||||
|
clientAbilityInitFinishNotify.EntityId = req.EntityId
|
||||||
|
g.SendMsg(cmd.ClientAbilityInitFinishNotify, v.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if invokeHandler.AllLen() > 0 {
|
||||||
|
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
||||||
|
clientAbilityInitFinishNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityInitFinishNotify.Invokes = invokeHandler.EntryListForwardAll
|
||||||
|
for _, v := range surrPlayerList {
|
||||||
|
g.SendMsg(cmd.ClientAbilityInitFinishNotify, v.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if invokeHandler.AllExceptCurLen() > 0 {
|
||||||
|
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
||||||
|
clientAbilityInitFinishNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityInitFinishNotify.Invokes = invokeHandler.EntryListForwardAllExceptCur
|
||||||
|
for _, v := range surrPlayerList {
|
||||||
|
if player.PlayerID == v.PlayerID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
g.SendMsg(cmd.ClientAbilityInitFinishNotify, v.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if invokeHandler.HostLen() > 0 {
|
||||||
|
clientAbilityInitFinishNotify := new(proto.ClientAbilityInitFinishNotify)
|
||||||
|
clientAbilityInitFinishNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityInitFinishNotify.Invokes = invokeHandler.EntryListForwardHost
|
||||||
|
g.SendMsg(cmd.ClientAbilityInitFinishNotify, world.owner.PlayerID, player.ClientSeq, clientAbilityInitFinishNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg pb.Message) {
|
||||||
|
//logger.LOG.Debug("user client ability change, uid: %v", player.PlayerID)
|
||||||
|
req := payloadMsg.(*proto.ClientAbilityChangeNotify)
|
||||||
|
invokeHandler := model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
||||||
|
for _, entry := range req.Invokes {
|
||||||
|
invokeHandler.AddEntry(entry.ForwardType, entry)
|
||||||
|
}
|
||||||
|
world := g.worldManager.GetWorldByID(player.WorldId)
|
||||||
|
if world == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
scene := world.GetSceneById(player.SceneId)
|
||||||
|
|
||||||
|
// 只给附近aoi区域的玩家广播消息
|
||||||
|
surrPlayerList := make([]*model.Player, 0)
|
||||||
|
entityIdList := world.aoiManager.GetEntityIdListByPos(float32(player.Pos.X), float32(player.Pos.Y), float32(player.Pos.Z))
|
||||||
|
for _, entityId := range entityIdList {
|
||||||
|
entity := scene.GetEntity(entityId)
|
||||||
|
if entity == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if entity.avatarEntity != nil {
|
||||||
|
otherPlayer := g.userManager.GetOnlineUser(entity.avatarEntity.uid)
|
||||||
|
surrPlayerList = append(surrPlayerList, otherPlayer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClientAbilityChangeNotify转发
|
||||||
|
// PacketClientAbilityChangeNotify
|
||||||
|
if invokeHandler.AllLen() == 0 && invokeHandler.AllExceptCurLen() == 0 && invokeHandler.HostLen() == 0 {
|
||||||
|
clientAbilityChangeNotify := new(proto.ClientAbilityChangeNotify)
|
||||||
|
clientAbilityChangeNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityChangeNotify.IsInitHash = req.IsInitHash
|
||||||
|
for _, v := range surrPlayerList {
|
||||||
|
if player.PlayerID == v.PlayerID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
g.SendMsg(cmd.ClientAbilityChangeNotify, v.PlayerID, player.ClientSeq, clientAbilityChangeNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if invokeHandler.AllLen() > 0 {
|
||||||
|
clientAbilityChangeNotify := new(proto.ClientAbilityChangeNotify)
|
||||||
|
clientAbilityChangeNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityChangeNotify.IsInitHash = req.IsInitHash
|
||||||
|
clientAbilityChangeNotify.Invokes = invokeHandler.EntryListForwardAll
|
||||||
|
for _, v := range surrPlayerList {
|
||||||
|
g.SendMsg(cmd.ClientAbilityChangeNotify, v.PlayerID, player.ClientSeq, clientAbilityChangeNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if invokeHandler.AllExceptCurLen() > 0 {
|
||||||
|
clientAbilityChangeNotify := new(proto.ClientAbilityChangeNotify)
|
||||||
|
clientAbilityChangeNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityChangeNotify.IsInitHash = req.IsInitHash
|
||||||
|
clientAbilityChangeNotify.Invokes = invokeHandler.EntryListForwardAllExceptCur
|
||||||
|
for _, v := range surrPlayerList {
|
||||||
|
if player.PlayerID == v.PlayerID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
g.SendMsg(cmd.ClientAbilityChangeNotify, v.PlayerID, player.ClientSeq, clientAbilityChangeNotify)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if invokeHandler.HostLen() > 0 {
|
||||||
|
clientAbilityChangeNotify := new(proto.ClientAbilityChangeNotify)
|
||||||
|
clientAbilityChangeNotify.EntityId = req.EntityId
|
||||||
|
clientAbilityChangeNotify.IsInitHash = req.IsInitHash
|
||||||
|
clientAbilityChangeNotify.Invokes = invokeHandler.EntryListForwardHost
|
||||||
|
g.SendMsg(cmd.ClientAbilityChangeNotify, world.owner.PlayerID, player.ClientSeq, clientAbilityChangeNotify)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -379,9 +486,3 @@ func (g *GameManager) EvtDoSkillSuccNotify(player *model.Player, payloadMsg pb.M
|
|||||||
// 处理技能开始时的耐力消耗
|
// 处理技能开始时的耐力消耗
|
||||||
g.HandleSkillStartStamina(player, req.SkillId)
|
g.HandleSkillStartStamina(player, req.SkillId)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg pb.Message) {
|
|
||||||
logger.LOG.Debug("user client ability change, uid: %v", player.PlayerID)
|
|
||||||
req := payloadMsg.(*proto.ClientAbilityChangeNotify)
|
|
||||||
logger.LOG.Debug("ClientAbilityChangeNotify: %v", req)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -100,3 +100,16 @@ func (g *GameManager) ServerAnnounceRevokeNotify(announceId uint32) {
|
|||||||
g.SendMsg(cmd.ServerAnnounceRevokeNotify, onlinePlayer.PlayerID, 0, serverAnnounceRevokeNotify)
|
g.SendMsg(cmd.ServerAnnounceRevokeNotify, onlinePlayer.PlayerID, 0, serverAnnounceRevokeNotify)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *GameManager) ToTheMoonEnterSceneReq(player *model.Player, payloadMsg pb.Message) {
|
||||||
|
logger.LOG.Debug("user ttm enter scene, uid: %v", player.PlayerID)
|
||||||
|
req := payloadMsg.(*proto.ToTheMoonEnterSceneReq)
|
||||||
|
_ = req
|
||||||
|
g.SendMsg(cmd.ServerAnnounceRevokeNotify, player.PlayerID, player.ClientSeq, new(proto.ToTheMoonEnterSceneRsp))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GameManager) SetEntityClientDataNotify(player *model.Player, payloadMsg pb.Message) {
|
||||||
|
logger.LOG.Debug("user set entity client data, uid: %v", player.PlayerID)
|
||||||
|
ntf := payloadMsg.(*proto.SetEntityClientDataNotify)
|
||||||
|
g.SendMsg(cmd.SetEntityClientDataNotify, player.PlayerID, player.ClientSeq, ntf)
|
||||||
|
}
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ func (g *GameManager) OnLoginOk(userId uint32, player *model.Player, clientSeq u
|
|||||||
|
|
||||||
player.CombatInvokeHandler = model.NewInvokeHandler[proto.CombatInvokeEntry]()
|
player.CombatInvokeHandler = model.NewInvokeHandler[proto.CombatInvokeEntry]()
|
||||||
player.AbilityInvokeHandler = model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
player.AbilityInvokeHandler = model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
||||||
player.ClientAbilityInvokeHandler = model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
|
||||||
|
|
||||||
//// TODO 薄荷标记
|
//// TODO 薄荷标记
|
||||||
//if world.IsBigWorld() {
|
//if world.IsBigWorld() {
|
||||||
|
|||||||
@@ -138,17 +138,21 @@ func (g *GameManager) GetScenePointReq(player *model.Player, payloadMsg pb.Messa
|
|||||||
logger.LOG.Debug("user get scene point, uid: %v", player.PlayerID)
|
logger.LOG.Debug("user get scene point, uid: %v", player.PlayerID)
|
||||||
req := payloadMsg.(*proto.GetScenePointReq)
|
req := payloadMsg.(*proto.GetScenePointReq)
|
||||||
|
|
||||||
|
if req.SceneId != 3 {
|
||||||
|
getScenePointRsp := new(proto.GetScenePointRsp)
|
||||||
|
getScenePointRsp.SceneId = req.SceneId
|
||||||
|
g.SendMsg(cmd.GetScenePointRsp, player.PlayerID, player.ClientSeq, getScenePointRsp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// PacketGetScenePointRsp
|
// PacketGetScenePointRsp
|
||||||
getScenePointRsp := new(proto.GetScenePointRsp)
|
getScenePointRsp := new(proto.GetScenePointRsp)
|
||||||
getScenePointRsp.SceneId = req.SceneId
|
getScenePointRsp.SceneId = 3
|
||||||
getScenePointRsp.UnlockedPointList = make([]uint32, 0)
|
getScenePointRsp.UnlockAreaList = []uint32{12, 11, 19, 28, 5, 1, 24, 10, 21, 2, 7, 18, 3, 26, 6, 17, 22, 20, 9, 14, 16, 8, 13, 4, 27, 23}
|
||||||
for i := uint32(1); i < 1000; i++ {
|
getScenePointRsp.UnlockedPointList = []uint32{553, 155, 58, 257, 38, 135, 528, 329, 13, 212, 401, 3, 600, 545, 589, 180, 416, 7, 615, 206, 400, 599, 114, 12, 211, 104, 502, 93, 325, 540, 131, 320, 519, 121, 616, 218, 606, 197, 208, 703, 305, 499, 254, 652, 60, 458, 282, 691, 167, 366, 323, 32, 319, 222, 181, 380, 612, 234, 433, 391, 488, 79, 338, 139, 241, 42, 57, 256, 154, 353, 588, 491, 82, 209, 10, 500, 91, 301, 489, 4, 392, 536, 127, 337, 605, 8, 487, 78, 228, 626, 598, 1, 200, 137, 336, 535, 382, 310, 509, 100, 498, 14, 213, 625, 361, 471, 674, 475, 603, 6, 205, 485, 76, 77, 486, 359, 165, 364, 317, 271, 384, 72, 481, 253, 156, 350, 45, 244, 516, 107, 306, 296, 97, 162, 571, 495, 86, 44, 248, 646, 539, 221, 22, 318, 706, 308, 507, 103, 302, 258, 442, 33, 324, 393, 61, 255, 655, 246, 385, 73, 482, 551, 153, 363, 35, 444, 245, 439, 251, 445, 36, 235, 15, 424, 225, 214, 623, 327, 537, 128, 542, 133, 332, 322, 31, 20, 429, 432, 443, 34, 59, 468, 604, 405, 515, 316, 117, 321, 122, 249, 459, 50, 29, 438, 40, 330, 116, 326, 503, 304, 514, 105, 550, 351, 152, 586, 387, 250, 541, 328, 236, 435, 247, 48, 37, 446, 538, 339, 11, 210, 476, 379, 671, 477, 676, 242, 168, 577, 378, 383, 81, 490, 501, 92, 331, 543, 252, 87, 496, 463, 307, 484, 75, 505, 96, 534, 555, 146, 462, 365, 381, 182, 166, 575, 69, 478, 494, 85, 74, 483, 368, 465, 386, 95, 84, 493, 396, 587, 5, 602, 204, 99, 497, 298, 492, 702, 293}
|
||||||
getScenePointRsp.UnlockedPointList = append(getScenePointRsp.UnlockedPointList, i)
|
getScenePointRsp.LockedPointList = []uint32{173, 398, 627, 223, 417, 419, 231, 278, 699, 408, 276, 229, 520, 512, 415, 113, 274, 565, 344, 436, 394, 403, 262, 430, 195, 412, 315, 233, 440, 52, 409, 334, 193, 240, 566, 469, 187, 704, 413, 346, 259, 447, 286, 102, 345, 580, 411, 129, 578, 202, 682, 294, 570, 414, 511, 622, 428, 449, 426, 238, 265, 273, 564, 467, 563, 175, 269, 457, 574, 89, 388, 291, 707, 125, 559, 268, 656, 183, 280, 267, 357, 260, 354, 451, 410, 119, 216}
|
||||||
}
|
getScenePointRsp.HidePointList = []uint32{458, 515, 459, 514}
|
||||||
getScenePointRsp.UnlockAreaList = make([]uint32, 0)
|
getScenePointRsp.GroupUnlimitPointList = []uint32{221, 131, 107, 350, 50, 424, 359}
|
||||||
for i := uint32(1); i < 9; i++ {
|
|
||||||
getScenePointRsp.UnlockAreaList = append(getScenePointRsp.UnlockAreaList, i)
|
|
||||||
}
|
|
||||||
g.SendMsg(cmd.GetScenePointRsp, player.PlayerID, player.ClientSeq, getScenePointRsp)
|
g.SendMsg(cmd.GetScenePointRsp, player.PlayerID, player.ClientSeq, getScenePointRsp)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,13 +160,25 @@ func (g *GameManager) GetSceneAreaReq(player *model.Player, payloadMsg pb.Messag
|
|||||||
logger.LOG.Debug("user get scene area, uid: %v", player.PlayerID)
|
logger.LOG.Debug("user get scene area, uid: %v", player.PlayerID)
|
||||||
req := payloadMsg.(*proto.GetSceneAreaReq)
|
req := payloadMsg.(*proto.GetSceneAreaReq)
|
||||||
|
|
||||||
|
if req.SceneId != 3 {
|
||||||
|
getSceneAreaRsp := new(proto.GetSceneAreaRsp)
|
||||||
|
getSceneAreaRsp.SceneId = req.SceneId
|
||||||
|
g.SendMsg(cmd.GetSceneAreaRsp, player.PlayerID, player.ClientSeq, getSceneAreaRsp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// PacketGetSceneAreaRsp
|
// PacketGetSceneAreaRsp
|
||||||
getSceneAreaRsp := new(proto.GetSceneAreaRsp)
|
getSceneAreaRsp := new(proto.GetSceneAreaRsp)
|
||||||
getSceneAreaRsp.SceneId = req.SceneId
|
getSceneAreaRsp.SceneId = 3
|
||||||
getSceneAreaRsp.AreaIdList = []uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 100, 101, 102, 103, 200, 210, 300, 400, 401, 402, 403}
|
getSceneAreaRsp.AreaIdList = []uint32{12, 11, 19, 28, 5, 1, 24, 10, 21, 2, 7, 18, 3, 26, 6, 17, 22, 20, 9, 14, 16, 8, 13, 4, 27, 23}
|
||||||
getSceneAreaRsp.CityInfoList = make([]*proto.CityInfo, 0)
|
getSceneAreaRsp.CityInfoList = make([]*proto.CityInfo, 0)
|
||||||
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 1, Level: 1})
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 1, Level: 10})
|
||||||
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 2, Level: 1})
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 2, Level: 10})
|
||||||
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 3, Level: 1})
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 3, Level: 10})
|
||||||
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 4, Level: 10})
|
||||||
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 99, Level: 1})
|
||||||
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 100, Level: 1})
|
||||||
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 101, Level: 1})
|
||||||
|
getSceneAreaRsp.CityInfoList = append(getSceneAreaRsp.CityInfoList, &proto.CityInfo{CityId: 102, Level: 1})
|
||||||
g.SendMsg(cmd.GetSceneAreaRsp, player.PlayerID, player.ClientSeq, getSceneAreaRsp)
|
g.SendMsg(cmd.GetSceneAreaRsp, player.PlayerID, player.ClientSeq, getSceneAreaRsp)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -194,8 +194,9 @@ func (g *GameManager) UserDealEnterWorld(hostPlayer *model.Player, otherUid uint
|
|||||||
if hostWorld.multiplayer == false {
|
if hostWorld.multiplayer == false {
|
||||||
g.UserWorldRemovePlayer(hostWorld, hostPlayer)
|
g.UserWorldRemovePlayer(hostWorld, hostPlayer)
|
||||||
|
|
||||||
hostPlayer.TeamConfig.CurrTeamIndex = 0
|
hostWorld = g.worldManager.CreateWorld(hostPlayer, true)
|
||||||
hostPlayer.TeamConfig.CurrAvatarIndex = 0
|
g.UserWorldAddPlayer(hostWorld, hostPlayer)
|
||||||
|
hostPlayer.SceneLoadState = model.SceneNone
|
||||||
|
|
||||||
// PacketPlayerEnterSceneNotify
|
// PacketPlayerEnterSceneNotify
|
||||||
hostPlayerEnterSceneNotify := g.PacketPlayerEnterSceneNotifyMp(
|
hostPlayerEnterSceneNotify := g.PacketPlayerEnterSceneNotifyMp(
|
||||||
@@ -207,10 +208,6 @@ func (g *GameManager) UserDealEnterWorld(hostPlayer *model.Player, otherUid uint
|
|||||||
hostPlayer.Pos,
|
hostPlayer.Pos,
|
||||||
)
|
)
|
||||||
g.SendMsg(cmd.PlayerEnterSceneNotify, hostPlayer.PlayerID, hostPlayer.ClientSeq, hostPlayerEnterSceneNotify)
|
g.SendMsg(cmd.PlayerEnterSceneNotify, hostPlayer.PlayerID, hostPlayer.ClientSeq, hostPlayerEnterSceneNotify)
|
||||||
|
|
||||||
hostWorld = g.worldManager.CreateWorld(hostPlayer, true)
|
|
||||||
g.UserWorldAddPlayer(hostWorld, hostPlayer)
|
|
||||||
hostPlayer.SceneLoadState = model.SceneNone
|
|
||||||
}
|
}
|
||||||
|
|
||||||
otherWorld := g.worldManager.GetWorldByID(otherPlayer.WorldId)
|
otherWorld := g.worldManager.GetWorldByID(otherPlayer.WorldId)
|
||||||
@@ -234,8 +231,9 @@ func (g *GameManager) UserDealEnterWorld(hostPlayer *model.Player, otherUid uint
|
|||||||
Z: hostPlayer.Rot.Z,
|
Z: hostPlayer.Rot.Z,
|
||||||
}
|
}
|
||||||
otherPlayer.SceneId = hostPlayer.SceneId
|
otherPlayer.SceneId = hostPlayer.SceneId
|
||||||
otherPlayer.TeamConfig.CurrTeamIndex = 0
|
|
||||||
otherPlayer.TeamConfig.CurrAvatarIndex = 0
|
g.UserWorldAddPlayer(hostWorld, otherPlayer)
|
||||||
|
otherPlayer.SceneLoadState = model.SceneNone
|
||||||
|
|
||||||
// PacketPlayerEnterSceneNotify
|
// PacketPlayerEnterSceneNotify
|
||||||
playerEnterSceneNotify := g.PacketPlayerEnterSceneNotifyMp(
|
playerEnterSceneNotify := g.PacketPlayerEnterSceneNotifyMp(
|
||||||
@@ -247,9 +245,6 @@ func (g *GameManager) UserDealEnterWorld(hostPlayer *model.Player, otherUid uint
|
|||||||
otherPlayerOldPos,
|
otherPlayerOldPos,
|
||||||
)
|
)
|
||||||
g.SendMsg(cmd.PlayerEnterSceneNotify, otherPlayer.PlayerID, otherPlayer.ClientSeq, playerEnterSceneNotify)
|
g.SendMsg(cmd.PlayerEnterSceneNotify, otherPlayer.PlayerID, otherPlayer.ClientSeq, playerEnterSceneNotify)
|
||||||
|
|
||||||
g.UserWorldAddPlayer(hostWorld, otherPlayer)
|
|
||||||
otherPlayer.SceneLoadState = model.SceneNone
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GameManager) UserLeaveWorld(player *model.Player) bool {
|
func (g *GameManager) UserLeaveWorld(player *model.Player) bool {
|
||||||
|
|||||||
@@ -81,22 +81,14 @@ func (g *GameManager) SceneInitFinishReq(player *model.Player, payloadMsg pb.Mes
|
|||||||
// PacketPlayerWorldSceneInfoListNotify
|
// PacketPlayerWorldSceneInfoListNotify
|
||||||
playerWorldSceneInfoListNotify := new(proto.PlayerWorldSceneInfoListNotify)
|
playerWorldSceneInfoListNotify := new(proto.PlayerWorldSceneInfoListNotify)
|
||||||
playerWorldSceneInfoListNotify.InfoList = []*proto.PlayerWorldSceneInfo{
|
playerWorldSceneInfoListNotify.InfoList = []*proto.PlayerWorldSceneInfo{
|
||||||
{SceneId: 1, IsLocked: false, SceneTagIdList: []uint32{}},
|
{SceneId: 1, IsLocked: true, SceneTagIdList: []uint32{}},
|
||||||
{SceneId: 3, IsLocked: false, SceneTagIdList: []uint32{102, 113, 117}},
|
{SceneId: 3, IsLocked: false, SceneTagIdList: []uint32{102, 111, 112, 116, 118, 126, 135, 140, 142, 149, 1091, 1094, 1095, 1099, 1101, 1103, 1105, 1110, 1120, 1122, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1138, 1140, 1143, 1146, 1165, 1168}},
|
||||||
{SceneId: 4, IsLocked: false, SceneTagIdList: []uint32{106, 109, 117}},
|
{SceneId: 4, IsLocked: true, SceneTagIdList: []uint32{}},
|
||||||
{SceneId: 5, IsLocked: false, SceneTagIdList: []uint32{}},
|
{SceneId: 5, IsLocked: false, SceneTagIdList: []uint32{121, 1031}},
|
||||||
{SceneId: 6, IsLocked: false, SceneTagIdList: []uint32{}},
|
{SceneId: 6, IsLocked: false, SceneTagIdList: []uint32{144, 146, 1062, 1063}},
|
||||||
{SceneId: 7, IsLocked: false, SceneTagIdList: []uint32{}},
|
{SceneId: 7, IsLocked: true, SceneTagIdList: []uint32{136, 137, 138, 148, 1034}},
|
||||||
|
{SceneId: 9, IsLocked: true, SceneTagIdList: []uint32{1012, 1016, 1021, 1022, 1060, 1077}},
|
||||||
}
|
}
|
||||||
xumi := &proto.PlayerWorldSceneInfo{
|
|
||||||
SceneId: 9,
|
|
||||||
IsLocked: false,
|
|
||||||
SceneTagIdList: []uint32{},
|
|
||||||
}
|
|
||||||
for i := 0; i < 3000; i++ {
|
|
||||||
xumi.SceneTagIdList = append(xumi.SceneTagIdList, uint32(i))
|
|
||||||
}
|
|
||||||
playerWorldSceneInfoListNotify.InfoList = append(playerWorldSceneInfoListNotify.InfoList, xumi)
|
|
||||||
g.SendMsg(cmd.PlayerWorldSceneInfoListNotify, player.PlayerID, player.ClientSeq, playerWorldSceneInfoListNotify)
|
g.SendMsg(cmd.PlayerWorldSceneInfoListNotify, player.PlayerID, player.ClientSeq, playerWorldSceneInfoListNotify)
|
||||||
|
|
||||||
// SceneForceUnlockNotify
|
// SceneForceUnlockNotify
|
||||||
@@ -291,11 +283,13 @@ func (g *GameManager) ChangeGameTimeReq(player *model.Player, payloadMsg pb.Mess
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *GameManager) PacketPlayerEnterSceneNotify(player *model.Player) *proto.PlayerEnterSceneNotify {
|
func (g *GameManager) PacketPlayerEnterSceneNotify(player *model.Player) *proto.PlayerEnterSceneNotify {
|
||||||
player.EnterSceneToken = uint32(random.GetRandomInt32(1000, 99999))
|
world := g.worldManager.GetWorldByID(player.WorldId)
|
||||||
|
scene := world.GetSceneById(player.SceneId)
|
||||||
|
player.EnterSceneToken = uint32(random.GetRandomInt32(5000, 50000))
|
||||||
playerEnterSceneNotify := new(proto.PlayerEnterSceneNotify)
|
playerEnterSceneNotify := new(proto.PlayerEnterSceneNotify)
|
||||||
playerEnterSceneNotify.SceneId = player.SceneId
|
playerEnterSceneNotify.SceneId = player.SceneId
|
||||||
playerEnterSceneNotify.Pos = &proto.Vector{X: float32(player.Pos.X), Y: float32(player.Pos.Y), Z: float32(player.Pos.Z)}
|
playerEnterSceneNotify.Pos = &proto.Vector{X: float32(player.Pos.X), Y: float32(player.Pos.Y), Z: float32(player.Pos.Z)}
|
||||||
playerEnterSceneNotify.SceneBeginTime = uint64(time.Now().UnixMilli())
|
playerEnterSceneNotify.SceneBeginTime = uint64(scene.GetSceneCreateTime())
|
||||||
playerEnterSceneNotify.Type = proto.EnterType_ENTER_TYPE_SELF
|
playerEnterSceneNotify.Type = proto.EnterType_ENTER_TYPE_SELF
|
||||||
playerEnterSceneNotify.TargetUid = player.PlayerID
|
playerEnterSceneNotify.TargetUid = player.PlayerID
|
||||||
playerEnterSceneNotify.EnterSceneToken = player.EnterSceneToken
|
playerEnterSceneNotify.EnterSceneToken = player.EnterSceneToken
|
||||||
@@ -307,7 +301,8 @@ func (g *GameManager) PacketPlayerEnterSceneNotify(player *model.Player) *proto.
|
|||||||
playerEnterSceneNotify.SceneTransaction = strconv.Itoa(int(player.SceneId)) + "-" +
|
playerEnterSceneNotify.SceneTransaction = strconv.Itoa(int(player.SceneId)) + "-" +
|
||||||
strconv.Itoa(int(player.PlayerID)) + "-" +
|
strconv.Itoa(int(player.PlayerID)) + "-" +
|
||||||
strconv.Itoa(int(time.Now().Unix())) + "-" +
|
strconv.Itoa(int(time.Now().Unix())) + "-" +
|
||||||
"18402"
|
"296359"
|
||||||
|
playerEnterSceneNotify.SceneTagIdList = []uint32{102, 111, 112, 116, 118, 126, 135, 140, 142, 149, 1091, 1094, 1095, 1099, 1101, 1103, 1105, 1110, 1120, 1122, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1138, 1140, 1143, 1146, 1165, 1168}
|
||||||
return playerEnterSceneNotify
|
return playerEnterSceneNotify
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,13 +324,15 @@ func (g *GameManager) PacketPlayerEnterSceneNotifyMp(
|
|||||||
prevSceneId uint32,
|
prevSceneId uint32,
|
||||||
prevPos *model.Vector,
|
prevPos *model.Vector,
|
||||||
) *proto.PlayerEnterSceneNotify {
|
) *proto.PlayerEnterSceneNotify {
|
||||||
player.EnterSceneToken = uint32(random.GetRandomInt32(1000, 99999))
|
world := g.worldManager.GetWorldByID(player.WorldId)
|
||||||
|
scene := world.GetSceneById(player.SceneId)
|
||||||
|
player.EnterSceneToken = uint32(random.GetRandomInt32(5000, 50000))
|
||||||
playerEnterSceneNotify := new(proto.PlayerEnterSceneNotify)
|
playerEnterSceneNotify := new(proto.PlayerEnterSceneNotify)
|
||||||
playerEnterSceneNotify.PrevSceneId = prevSceneId
|
playerEnterSceneNotify.PrevSceneId = prevSceneId
|
||||||
playerEnterSceneNotify.PrevPos = &proto.Vector{X: float32(prevPos.X), Y: float32(prevPos.Y), Z: float32(prevPos.Z)}
|
playerEnterSceneNotify.PrevPos = &proto.Vector{X: float32(prevPos.X), Y: float32(prevPos.Y), Z: float32(prevPos.Z)}
|
||||||
playerEnterSceneNotify.SceneId = player.SceneId
|
playerEnterSceneNotify.SceneId = player.SceneId
|
||||||
playerEnterSceneNotify.Pos = &proto.Vector{X: float32(player.Pos.X), Y: float32(player.Pos.Y), Z: float32(player.Pos.Z)}
|
playerEnterSceneNotify.Pos = &proto.Vector{X: float32(player.Pos.X), Y: float32(player.Pos.Y), Z: float32(player.Pos.Z)}
|
||||||
playerEnterSceneNotify.SceneBeginTime = uint64(time.Now().UnixMilli())
|
playerEnterSceneNotify.SceneBeginTime = uint64(scene.GetSceneCreateTime())
|
||||||
playerEnterSceneNotify.Type = enterType
|
playerEnterSceneNotify.Type = enterType
|
||||||
playerEnterSceneNotify.TargetUid = targetPlayer.PlayerID
|
playerEnterSceneNotify.TargetUid = targetPlayer.PlayerID
|
||||||
playerEnterSceneNotify.EnterSceneToken = player.EnterSceneToken
|
playerEnterSceneNotify.EnterSceneToken = player.EnterSceneToken
|
||||||
@@ -345,14 +342,8 @@ func (g *GameManager) PacketPlayerEnterSceneNotifyMp(
|
|||||||
playerEnterSceneNotify.SceneTransaction = strconv.Itoa(int(player.SceneId)) + "-" +
|
playerEnterSceneNotify.SceneTransaction = strconv.Itoa(int(player.SceneId)) + "-" +
|
||||||
strconv.Itoa(int(targetPlayer.PlayerID)) + "-" +
|
strconv.Itoa(int(targetPlayer.PlayerID)) + "-" +
|
||||||
strconv.Itoa(int(time.Now().Unix())) + "-" +
|
strconv.Itoa(int(time.Now().Unix())) + "-" +
|
||||||
"18402"
|
"296359"
|
||||||
|
playerEnterSceneNotify.SceneTagIdList = []uint32{102, 111, 112, 116, 118, 126, 135, 140, 142, 149, 1091, 1094, 1095, 1099, 1101, 1103, 1105, 1110, 1120, 1122, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1138, 1140, 1143, 1146, 1165, 1168}
|
||||||
//playerEnterSceneNotify.SceneTagIdList = []uint32{102, 107, 109, 113, 117}
|
|
||||||
playerEnterSceneNotify.SceneTagIdList = make([]uint32, 0)
|
|
||||||
for sceneTagId := uint32(0); sceneTagId < 3000; sceneTagId++ {
|
|
||||||
playerEnterSceneNotify.SceneTagIdList = append(playerEnterSceneNotify.SceneTagIdList, sceneTagId)
|
|
||||||
}
|
|
||||||
|
|
||||||
return playerEnterSceneNotify
|
return playerEnterSceneNotify
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -216,6 +216,10 @@ func (s *Scene) ChangeGameTime(time uint32) {
|
|||||||
s.gameTime = time % 1440
|
s.gameTime = time % 1440
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Scene) GetSceneCreateTime() int64 {
|
||||||
|
return s.createTime
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Scene) GetSceneTime() int64 {
|
func (s *Scene) GetSceneTime() int64 {
|
||||||
now := time.Now().UnixMilli()
|
now := time.Now().UnixMilli()
|
||||||
return now - s.createTime
|
return now - s.createTime
|
||||||
|
|||||||
@@ -53,23 +53,22 @@ type Player struct {
|
|||||||
ChatMsgMap map[uint32][]*ChatMsg `bson:"chatMsgMap"` // 聊天信息
|
ChatMsgMap map[uint32][]*ChatMsg `bson:"chatMsgMap"` // 聊天信息
|
||||||
IsGM uint8 `bson:"isGM"` // 管理员权限等级
|
IsGM uint8 `bson:"isGM"` // 管理员权限等级
|
||||||
// 在线数据
|
// 在线数据
|
||||||
EnterSceneToken uint32 `bson:"-"` // 玩家的世界进入令牌
|
EnterSceneToken uint32 `bson:"-"` // 玩家的世界进入令牌
|
||||||
DbState int `bson:"-"` // 数据库存档状态
|
DbState int `bson:"-"` // 数据库存档状态
|
||||||
WorldId uint32 `bson:"-"` // 所在的世界id
|
WorldId uint32 `bson:"-"` // 所在的世界id
|
||||||
PeerId uint32 `bson:"-"` // 多人世界的玩家编号
|
PeerId uint32 `bson:"-"` // 多人世界的玩家编号
|
||||||
GameObjectGuidCounter uint64 `bson:"-"` // 游戏对象guid计数器
|
GameObjectGuidCounter uint64 `bson:"-"` // 游戏对象guid计数器
|
||||||
ClientTime uint32 `bson:"-"` // 玩家客户端的本地时钟
|
ClientTime uint32 `bson:"-"` // 玩家客户端的本地时钟
|
||||||
ClientRTT uint32 `bson:"-"` // 玩家客户端往返时延
|
ClientRTT uint32 `bson:"-"` // 玩家客户端往返时延
|
||||||
GameObjectGuidMap map[uint64]GameObject `bson:"-"` // 游戏对象guid映射表
|
GameObjectGuidMap map[uint64]GameObject `bson:"-"` // 游戏对象guid映射表
|
||||||
Online bool `bson:"-"` // 在线状态
|
Online bool `bson:"-"` // 在线状态
|
||||||
Pause bool `bson:"-"` // 暂停状态
|
Pause bool `bson:"-"` // 暂停状态
|
||||||
SceneLoadState int `bson:"-"` // 场景加载状态
|
SceneLoadState int `bson:"-"` // 场景加载状态
|
||||||
CoopApplyMap map[uint32]int64 `bson:"-"` // 敲门申请的玩家uid及时间
|
CoopApplyMap map[uint32]int64 `bson:"-"` // 敲门申请的玩家uid及时间
|
||||||
StaminaInfo *StaminaInfo `bson:"-"` // 耐力临时数据
|
StaminaInfo *StaminaInfo `bson:"-"` // 耐力临时数据
|
||||||
ClientSeq uint32 `bson:"-"` // 客户端发包请求的序号
|
ClientSeq uint32 `bson:"-"` // 客户端发包请求的序号
|
||||||
CombatInvokeHandler *InvokeHandler[proto.CombatInvokeEntry]
|
CombatInvokeHandler *InvokeHandler[proto.CombatInvokeEntry]
|
||||||
AbilityInvokeHandler *InvokeHandler[proto.AbilityInvokeEntry]
|
AbilityInvokeHandler *InvokeHandler[proto.AbilityInvokeEntry]
|
||||||
ClientAbilityInvokeHandler *InvokeHandler[proto.AbilityInvokeEntry]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Player) GetNextGameObjectGuid() uint64 {
|
func (p *Player) GetNextGameObjectGuid() uint64 {
|
||||||
|
|||||||
@@ -24,236 +24,239 @@ func NewCmdProtoMap() (r *CmdProtoMap) {
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *CmdProtoMap) registerAllMessage() {
|
func (c *CmdProtoMap) registerAllMessage() {
|
||||||
// 登录
|
// 登录
|
||||||
a.registerMessage(DoSetPlayerBornDataNotify, &proto.DoSetPlayerBornDataNotify{}) // 注册账号通知 新号播放开场动画
|
c.registerMessage(DoSetPlayerBornDataNotify, &proto.DoSetPlayerBornDataNotify{}) // 注册账号通知 新号播放开场动画
|
||||||
a.registerMessage(SetPlayerBornDataReq, &proto.SetPlayerBornDataReq{}) // 注册账号请求
|
c.registerMessage(SetPlayerBornDataReq, &proto.SetPlayerBornDataReq{}) // 注册账号请求
|
||||||
a.registerMessage(SetPlayerBornDataRsp, &proto.SetPlayerBornDataRsp{}) // 注册账号响应
|
c.registerMessage(SetPlayerBornDataRsp, &proto.SetPlayerBornDataRsp{}) // 注册账号响应
|
||||||
a.registerMessage(GetPlayerTokenReq, &proto.GetPlayerTokenReq{}) // 获取玩家token请求 第一个登录包
|
c.registerMessage(GetPlayerTokenReq, &proto.GetPlayerTokenReq{}) // 获取玩家token请求 第一个登录包
|
||||||
a.registerMessage(GetPlayerTokenRsp, &proto.GetPlayerTokenRsp{}) // 获取玩家token响应
|
c.registerMessage(GetPlayerTokenRsp, &proto.GetPlayerTokenRsp{}) // 获取玩家token响应
|
||||||
a.registerMessage(PlayerLoginReq, &proto.PlayerLoginReq{}) // 玩家登录请求 第二个登录包
|
c.registerMessage(PlayerLoginReq, &proto.PlayerLoginReq{}) // 玩家登录请求 第二个登录包
|
||||||
a.registerMessage(PlayerLoginRsp, &proto.PlayerLoginRsp{}) // 玩家登录响应
|
c.registerMessage(PlayerLoginRsp, &proto.PlayerLoginRsp{}) // 玩家登录响应
|
||||||
a.registerMessage(PlayerForceExitReq, &proto.PlayerForceExitReq{}) // 退出游戏请求
|
c.registerMessage(PlayerForceExitReq, &proto.PlayerForceExitReq{}) // 退出游戏请求
|
||||||
a.registerMessage(PlayerForceExitRsp, &proto.PlayerForceExitRsp{}) // 退出游戏响应
|
c.registerMessage(PlayerForceExitRsp, &proto.PlayerForceExitRsp{}) // 退出游戏响应
|
||||||
a.registerMessage(ServerDisconnectClientNotify, &proto.ServerDisconnectClientNotify{}) // 服务器断开连接通知
|
c.registerMessage(ServerDisconnectClientNotify, &proto.ServerDisconnectClientNotify{}) // 服务器断开连接通知
|
||||||
a.registerMessage(ClientReconnectNotify, &proto.ClientReconnectNotify{}) // 在线重连通知
|
c.registerMessage(ClientReconnectNotify, &proto.ClientReconnectNotify{}) // 在线重连通知
|
||||||
|
|
||||||
// 基础相关
|
// 基础相关
|
||||||
a.registerMessage(UnionCmdNotify, &proto.UnionCmdNotify{}) // 聚合消息
|
c.registerMessage(UnionCmdNotify, &proto.UnionCmdNotify{}) // 聚合消息
|
||||||
a.registerMessage(PingReq, &proto.PingReq{}) // ping请求
|
c.registerMessage(PingReq, &proto.PingReq{}) // ping请求
|
||||||
a.registerMessage(PingRsp, &proto.PingRsp{}) // ping响应
|
c.registerMessage(PingRsp, &proto.PingRsp{}) // ping响应
|
||||||
a.registerMessage(WorldPlayerRTTNotify, &proto.WorldPlayerRTTNotify{}) // 世界玩家RTT时延
|
c.registerMessage(WorldPlayerRTTNotify, &proto.WorldPlayerRTTNotify{}) // 世界玩家RTT时延
|
||||||
a.registerMessage(PlayerDataNotify, &proto.PlayerDataNotify{}) // 玩家信息通知 昵称、属性表等
|
c.registerMessage(PlayerDataNotify, &proto.PlayerDataNotify{}) // 玩家信息通知 昵称、属性表等
|
||||||
a.registerMessage(PlayerPropNotify, &proto.PlayerPropNotify{}) // 玩家属性表通知
|
c.registerMessage(PlayerPropNotify, &proto.PlayerPropNotify{}) // 玩家属性表通知
|
||||||
a.registerMessage(OpenStateUpdateNotify, &proto.OpenStateUpdateNotify{}) // 游戏功能模块开放状态更新通知
|
c.registerMessage(OpenStateUpdateNotify, &proto.OpenStateUpdateNotify{}) // 游戏功能模块开放状态更新通知
|
||||||
a.registerMessage(PlayerTimeNotify, &proto.PlayerTimeNotify{}) // 玩家累计在线时长通知
|
c.registerMessage(PlayerTimeNotify, &proto.PlayerTimeNotify{}) // 玩家累计在线时长通知
|
||||||
a.registerMessage(ServerTimeNotify, &proto.ServerTimeNotify{}) // 服务器时间通知
|
c.registerMessage(ServerTimeNotify, &proto.ServerTimeNotify{}) // 服务器时间通知
|
||||||
|
|
||||||
// 场景
|
// 场景
|
||||||
a.registerMessage(PlayerSetPauseReq, &proto.PlayerSetPauseReq{}) // 玩家暂停请求
|
c.registerMessage(PlayerSetPauseReq, &proto.PlayerSetPauseReq{}) // 玩家暂停请求
|
||||||
a.registerMessage(PlayerSetPauseRsp, &proto.PlayerSetPauseRsp{}) // 玩家暂停响应
|
c.registerMessage(PlayerSetPauseRsp, &proto.PlayerSetPauseRsp{}) // 玩家暂停响应
|
||||||
a.registerMessage(EnterSceneReadyReq, &proto.EnterSceneReadyReq{}) // 进入场景准备就绪请求
|
c.registerMessage(EnterSceneReadyReq, &proto.EnterSceneReadyReq{}) // 进入场景准备就绪请求
|
||||||
a.registerMessage(EnterSceneReadyRsp, &proto.EnterSceneReadyRsp{}) // 进入场景准备就绪响应
|
c.registerMessage(EnterSceneReadyRsp, &proto.EnterSceneReadyRsp{}) // 进入场景准备就绪响应
|
||||||
a.registerMessage(SceneInitFinishReq, &proto.SceneInitFinishReq{}) // 场景初始化完成请求
|
c.registerMessage(SceneInitFinishReq, &proto.SceneInitFinishReq{}) // 场景初始化完成请求
|
||||||
a.registerMessage(SceneInitFinishRsp, &proto.SceneInitFinishRsp{}) // 场景初始化完成响应
|
c.registerMessage(SceneInitFinishRsp, &proto.SceneInitFinishRsp{}) // 场景初始化完成响应
|
||||||
a.registerMessage(EnterSceneDoneReq, &proto.EnterSceneDoneReq{}) // 进入场景完成请求
|
c.registerMessage(EnterSceneDoneReq, &proto.EnterSceneDoneReq{}) // 进入场景完成请求
|
||||||
a.registerMessage(EnterSceneDoneRsp, &proto.EnterSceneDoneRsp{}) // 进入场景完成响应
|
c.registerMessage(EnterSceneDoneRsp, &proto.EnterSceneDoneRsp{}) // 进入场景完成响应
|
||||||
a.registerMessage(PostEnterSceneReq, &proto.PostEnterSceneReq{}) // 进入场景完成后请求
|
c.registerMessage(PostEnterSceneReq, &proto.PostEnterSceneReq{}) // 进入场景完成后请求
|
||||||
a.registerMessage(PostEnterSceneRsp, &proto.PostEnterSceneRsp{}) // 进入场景完成后响应
|
c.registerMessage(PostEnterSceneRsp, &proto.PostEnterSceneRsp{}) // 进入场景完成后响应
|
||||||
a.registerMessage(EnterWorldAreaReq, &proto.EnterWorldAreaReq{}) // 进入世界区域请求
|
c.registerMessage(EnterWorldAreaReq, &proto.EnterWorldAreaReq{}) // 进入世界区域请求
|
||||||
a.registerMessage(EnterWorldAreaRsp, &proto.EnterWorldAreaRsp{}) // 进入世界区域响应
|
c.registerMessage(EnterWorldAreaRsp, &proto.EnterWorldAreaRsp{}) // 进入世界区域响应
|
||||||
a.registerMessage(SceneTransToPointReq, &proto.SceneTransToPointReq{}) // 场景传送点传送请求
|
c.registerMessage(SceneTransToPointReq, &proto.SceneTransToPointReq{}) // 场景传送点传送请求
|
||||||
a.registerMessage(SceneTransToPointRsp, &proto.SceneTransToPointRsp{}) // 场景传送点传送响应
|
c.registerMessage(SceneTransToPointRsp, &proto.SceneTransToPointRsp{}) // 场景传送点传送响应
|
||||||
a.registerMessage(PathfindingEnterSceneReq, &proto.PathfindingEnterSceneReq{}) // 寻路进入场景请求
|
c.registerMessage(PathfindingEnterSceneReq, &proto.PathfindingEnterSceneReq{}) // 寻路进入场景请求
|
||||||
a.registerMessage(PathfindingEnterSceneRsp, &proto.PathfindingEnterSceneRsp{}) // 寻路进入场景响应
|
c.registerMessage(PathfindingEnterSceneRsp, &proto.PathfindingEnterSceneRsp{}) // 寻路进入场景响应
|
||||||
a.registerMessage(QueryPathReq, &proto.QueryPathReq{}) // 寻路请求
|
c.registerMessage(QueryPathReq, &proto.QueryPathReq{}) // 寻路请求
|
||||||
a.registerMessage(QueryPathRsp, &proto.QueryPathRsp{}) // 寻路响应
|
c.registerMessage(QueryPathRsp, &proto.QueryPathRsp{}) // 寻路响应
|
||||||
a.registerMessage(GetScenePointReq, &proto.GetScenePointReq{}) // 获取场景传送点请求
|
c.registerMessage(GetScenePointReq, &proto.GetScenePointReq{}) // 获取场景传送点请求
|
||||||
a.registerMessage(GetScenePointRsp, &proto.GetScenePointRsp{}) // 获取场景传送点响应
|
c.registerMessage(GetScenePointRsp, &proto.GetScenePointRsp{}) // 获取场景传送点响应
|
||||||
a.registerMessage(GetSceneAreaReq, &proto.GetSceneAreaReq{}) // 获取场景区域请求
|
c.registerMessage(GetSceneAreaReq, &proto.GetSceneAreaReq{}) // 获取场景区域请求
|
||||||
a.registerMessage(GetSceneAreaRsp, &proto.GetSceneAreaRsp{}) // 获取场景区域响应
|
c.registerMessage(GetSceneAreaRsp, &proto.GetSceneAreaRsp{}) // 获取场景区域响应
|
||||||
a.registerMessage(ChangeGameTimeReq, &proto.ChangeGameTimeReq{}) // 改变游戏内时间请求
|
c.registerMessage(ChangeGameTimeReq, &proto.ChangeGameTimeReq{}) // 改变游戏内时间请求
|
||||||
a.registerMessage(ChangeGameTimeRsp, &proto.ChangeGameTimeRsp{}) // 改变游戏内时间响应
|
c.registerMessage(ChangeGameTimeRsp, &proto.ChangeGameTimeRsp{}) // 改变游戏内时间响应
|
||||||
a.registerMessage(SceneTimeNotify, &proto.SceneTimeNotify{}) // 场景时间通知
|
c.registerMessage(SceneTimeNotify, &proto.SceneTimeNotify{}) // 场景时间通知
|
||||||
a.registerMessage(PlayerGameTimeNotify, &proto.PlayerGameTimeNotify{}) // 玩家游戏内时间通知
|
c.registerMessage(PlayerGameTimeNotify, &proto.PlayerGameTimeNotify{}) // 玩家游戏内时间通知
|
||||||
a.registerMessage(SceneEntityAppearNotify, &proto.SceneEntityAppearNotify{}) // 场景实体出现通知
|
c.registerMessage(SceneEntityAppearNotify, &proto.SceneEntityAppearNotify{}) // 场景实体出现通知
|
||||||
a.registerMessage(SceneEntityDisappearNotify, &proto.SceneEntityDisappearNotify{}) // 场景实体消失通知
|
c.registerMessage(SceneEntityDisappearNotify, &proto.SceneEntityDisappearNotify{}) // 场景实体消失通知
|
||||||
a.registerMessage(SceneAreaWeatherNotify, &proto.SceneAreaWeatherNotify{}) // 场景区域天气通知
|
c.registerMessage(SceneAreaWeatherNotify, &proto.SceneAreaWeatherNotify{}) // 场景区域天气通知
|
||||||
a.registerMessage(WorldPlayerLocationNotify, &proto.WorldPlayerLocationNotify{}) // 世界玩家位置通知
|
c.registerMessage(WorldPlayerLocationNotify, &proto.WorldPlayerLocationNotify{}) // 世界玩家位置通知
|
||||||
a.registerMessage(ScenePlayerLocationNotify, &proto.ScenePlayerLocationNotify{}) // 场景玩家位置通知
|
c.registerMessage(ScenePlayerLocationNotify, &proto.ScenePlayerLocationNotify{}) // 场景玩家位置通知
|
||||||
a.registerMessage(SceneForceUnlockNotify, &proto.SceneForceUnlockNotify{}) // 场景强制解锁通知
|
c.registerMessage(SceneForceUnlockNotify, &proto.SceneForceUnlockNotify{}) // 场景强制解锁通知
|
||||||
a.registerMessage(PlayerWorldSceneInfoListNotify, &proto.PlayerWorldSceneInfoListNotify{}) // 玩家世界场景信息列表通知 地图上已解锁点亮的区域
|
c.registerMessage(PlayerWorldSceneInfoListNotify, &proto.PlayerWorldSceneInfoListNotify{}) // 玩家世界场景信息列表通知 地图上已解锁点亮的区域
|
||||||
a.registerMessage(PlayerEnterSceneNotify, &proto.PlayerEnterSceneNotify{}) // 玩家进入场景通知 通知客户端进入某个场景
|
c.registerMessage(PlayerEnterSceneNotify, &proto.PlayerEnterSceneNotify{}) // 玩家进入场景通知 通知客户端进入某个场景
|
||||||
a.registerMessage(PlayerEnterSceneInfoNotify, &proto.PlayerEnterSceneInfoNotify{}) // 玩家进入场景信息通知 角色、队伍、武器等实体相关信息
|
c.registerMessage(PlayerEnterSceneInfoNotify, &proto.PlayerEnterSceneInfoNotify{}) // 玩家进入场景信息通知 角色、队伍、武器等实体相关信息
|
||||||
a.registerMessage(ScenePlayerInfoNotify, &proto.ScenePlayerInfoNotify{}) // 场景玩家信息通知 玩家uid、昵称、多人世界玩家编号等
|
c.registerMessage(ScenePlayerInfoNotify, &proto.ScenePlayerInfoNotify{}) // 场景玩家信息通知 玩家uid、昵称、多人世界玩家编号等
|
||||||
a.registerMessage(EnterScenePeerNotify, &proto.EnterScenePeerNotify{}) // 进入场景多人世界玩家编号通知
|
c.registerMessage(EnterScenePeerNotify, &proto.EnterScenePeerNotify{}) // 进入场景多人世界玩家编号通知
|
||||||
a.registerMessage(EntityAiSyncNotify, &proto.EntityAiSyncNotify{}) // 实体AI怪物同步通知
|
c.registerMessage(EntityAiSyncNotify, &proto.EntityAiSyncNotify{}) // 实体AI怪物同步通知
|
||||||
a.registerMessage(WorldDataNotify, &proto.WorldDataNotify{}) // 世界数据通知 世界等级、是否多人世界等
|
c.registerMessage(WorldDataNotify, &proto.WorldDataNotify{}) // 世界数据通知 世界等级、是否多人世界等
|
||||||
a.registerMessage(WorldPlayerInfoNotify, &proto.WorldPlayerInfoNotify{}) // 世界玩家信息通知
|
c.registerMessage(WorldPlayerInfoNotify, &proto.WorldPlayerInfoNotify{}) // 世界玩家信息通知
|
||||||
a.registerMessage(HostPlayerNotify, &proto.HostPlayerNotify{}) // 世界房主玩家信息通知
|
c.registerMessage(HostPlayerNotify, &proto.HostPlayerNotify{}) // 世界房主玩家信息通知
|
||||||
|
c.registerMessage(ToTheMoonEnterSceneReq, &proto.ToTheMoonEnterSceneReq{}) // 进入场景请求
|
||||||
|
c.registerMessage(ToTheMoonEnterSceneRsp, &proto.ToTheMoonEnterSceneRsp{}) // 进入场景响应
|
||||||
|
c.registerMessage(SetEntityClientDataNotify, &proto.SetEntityClientDataNotify{}) // 通知
|
||||||
|
|
||||||
// 战斗与技能
|
// 战斗与技能
|
||||||
a.registerMessage(AvatarFightPropNotify, &proto.AvatarFightPropNotify{}) // 角色战斗属性通知
|
c.registerMessage(AvatarFightPropNotify, &proto.AvatarFightPropNotify{}) // 角色战斗属性通知
|
||||||
a.registerMessage(EntityFightPropUpdateNotify, &proto.EntityFightPropUpdateNotify{}) // 实体战斗属性更新通知
|
c.registerMessage(EntityFightPropUpdateNotify, &proto.EntityFightPropUpdateNotify{}) // 实体战斗属性更新通知
|
||||||
a.registerMessage(CombatInvocationsNotify, &proto.CombatInvocationsNotify{}) // 战斗通知 包含场景中实体的移动数据和伤害数据,多人游戏服务器转发
|
c.registerMessage(CombatInvocationsNotify, &proto.CombatInvocationsNotify{}) // 战斗通知 包含场景中实体的移动数据和伤害数据,多人游戏服务器转发
|
||||||
a.registerMessage(AbilityInvocationsNotify, &proto.AbilityInvocationsNotify{}) // 技能通知 多人游戏服务器转发
|
c.registerMessage(AbilityInvocationsNotify, &proto.AbilityInvocationsNotify{}) // 技能通知 多人游戏服务器转发
|
||||||
a.registerMessage(ClientAbilityInitFinishNotify, &proto.ClientAbilityInitFinishNotify{}) // 客户端技能初始化完成通知 多人游戏服务器转发
|
c.registerMessage(ClientAbilityInitFinishNotify, &proto.ClientAbilityInitFinishNotify{}) // 客户端技能初始化完成通知 多人游戏服务器转发
|
||||||
a.registerMessage(EvtDoSkillSuccNotify, &proto.EvtDoSkillSuccNotify{}) // 释放技能成功事件通知
|
c.registerMessage(EvtDoSkillSuccNotify, &proto.EvtDoSkillSuccNotify{}) // 释放技能成功事件通知
|
||||||
a.registerMessage(ClientAbilityChangeNotify, &proto.ClientAbilityChangeNotify{}) // 客户端技能改变通知
|
c.registerMessage(ClientAbilityChangeNotify, &proto.ClientAbilityChangeNotify{}) // 客户端技能改变通知
|
||||||
a.registerMessage(MassiveEntityElementOpBatchNotify, &proto.MassiveEntityElementOpBatchNotify{}) // MEEO通知
|
c.registerMessage(MassiveEntityElementOpBatchNotify, &proto.MassiveEntityElementOpBatchNotify{}) // MEEO通知 风元素染色
|
||||||
|
|
||||||
// 队伍
|
// 队伍
|
||||||
a.registerMessage(ChangeAvatarReq, &proto.ChangeAvatarReq{}) // 更换角色请求 切人
|
c.registerMessage(ChangeAvatarReq, &proto.ChangeAvatarReq{}) // 更换角色请求 切人
|
||||||
a.registerMessage(ChangeAvatarRsp, &proto.ChangeAvatarRsp{}) // 更换角色响应
|
c.registerMessage(ChangeAvatarRsp, &proto.ChangeAvatarRsp{}) // 更换角色响应
|
||||||
a.registerMessage(SetUpAvatarTeamReq, &proto.SetUpAvatarTeamReq{}) // 配置队伍请求 队伍换人
|
c.registerMessage(SetUpAvatarTeamReq, &proto.SetUpAvatarTeamReq{}) // 配置队伍请求 队伍换人
|
||||||
a.registerMessage(SetUpAvatarTeamRsp, &proto.SetUpAvatarTeamRsp{}) // 配置队伍响应
|
c.registerMessage(SetUpAvatarTeamRsp, &proto.SetUpAvatarTeamRsp{}) // 配置队伍响应
|
||||||
a.registerMessage(ChooseCurAvatarTeamReq, &proto.ChooseCurAvatarTeamReq{}) // 切换队伍请求 切队伍
|
c.registerMessage(ChooseCurAvatarTeamReq, &proto.ChooseCurAvatarTeamReq{}) // 切换队伍请求 切队伍
|
||||||
a.registerMessage(ChooseCurAvatarTeamRsp, &proto.ChooseCurAvatarTeamRsp{}) // 切换队伍响应
|
c.registerMessage(ChooseCurAvatarTeamRsp, &proto.ChooseCurAvatarTeamRsp{}) // 切换队伍响应
|
||||||
a.registerMessage(ChangeMpTeamAvatarReq, &proto.ChangeMpTeamAvatarReq{}) // 配置多人游戏队伍请求 多人游戏队伍换人
|
c.registerMessage(ChangeMpTeamAvatarReq, &proto.ChangeMpTeamAvatarReq{}) // 配置多人游戏队伍请求 多人游戏队伍换人
|
||||||
a.registerMessage(ChangeMpTeamAvatarRsp, &proto.ChangeMpTeamAvatarRsp{}) // 配置多人游戏队伍响应
|
c.registerMessage(ChangeMpTeamAvatarRsp, &proto.ChangeMpTeamAvatarRsp{}) // 配置多人游戏队伍响应
|
||||||
a.registerMessage(AvatarTeamUpdateNotify, &proto.AvatarTeamUpdateNotify{}) // 角色队伍更新通知 全部队伍的名字和其中中包含了哪些角色
|
c.registerMessage(AvatarTeamUpdateNotify, &proto.AvatarTeamUpdateNotify{}) // 角色队伍更新通知 全部队伍的名字和其中中包含了哪些角色
|
||||||
a.registerMessage(SceneTeamUpdateNotify, &proto.SceneTeamUpdateNotify{}) // 场景队伍更新通知
|
c.registerMessage(SceneTeamUpdateNotify, &proto.SceneTeamUpdateNotify{}) // 场景队伍更新通知
|
||||||
a.registerMessage(SyncTeamEntityNotify, &proto.SyncTeamEntityNotify{}) // 同步队伍实体通知
|
c.registerMessage(SyncTeamEntityNotify, &proto.SyncTeamEntityNotify{}) // 同步队伍实体通知
|
||||||
a.registerMessage(DelTeamEntityNotify, &proto.DelTeamEntityNotify{}) // 删除队伍实体通知
|
c.registerMessage(DelTeamEntityNotify, &proto.DelTeamEntityNotify{}) // 删除队伍实体通知
|
||||||
a.registerMessage(SyncScenePlayTeamEntityNotify, &proto.SyncScenePlayTeamEntityNotify{}) // 同步场景玩家队伍实体通知
|
c.registerMessage(SyncScenePlayTeamEntityNotify, &proto.SyncScenePlayTeamEntityNotify{}) // 同步场景玩家队伍实体通知
|
||||||
|
|
||||||
// 多人世界
|
// 多人世界
|
||||||
a.registerMessage(PlayerApplyEnterMpReq, &proto.PlayerApplyEnterMpReq{}) // 世界敲门请求
|
c.registerMessage(PlayerApplyEnterMpReq, &proto.PlayerApplyEnterMpReq{}) // 世界敲门请求
|
||||||
a.registerMessage(PlayerApplyEnterMpRsp, &proto.PlayerApplyEnterMpRsp{}) // 世界敲门响应
|
c.registerMessage(PlayerApplyEnterMpRsp, &proto.PlayerApplyEnterMpRsp{}) // 世界敲门响应
|
||||||
a.registerMessage(PlayerApplyEnterMpNotify, &proto.PlayerApplyEnterMpNotify{}) // 世界敲门通知
|
c.registerMessage(PlayerApplyEnterMpNotify, &proto.PlayerApplyEnterMpNotify{}) // 世界敲门通知
|
||||||
a.registerMessage(PlayerApplyEnterMpResultReq, &proto.PlayerApplyEnterMpResultReq{}) // 世界敲门处理请求
|
c.registerMessage(PlayerApplyEnterMpResultReq, &proto.PlayerApplyEnterMpResultReq{}) // 世界敲门处理请求
|
||||||
a.registerMessage(PlayerApplyEnterMpResultRsp, &proto.PlayerApplyEnterMpResultRsp{}) // 世界敲门处理响应
|
c.registerMessage(PlayerApplyEnterMpResultRsp, &proto.PlayerApplyEnterMpResultRsp{}) // 世界敲门处理响应
|
||||||
a.registerMessage(PlayerApplyEnterMpResultNotify, &proto.PlayerApplyEnterMpResultNotify{}) // 世界敲门处理通知
|
c.registerMessage(PlayerApplyEnterMpResultNotify, &proto.PlayerApplyEnterMpResultNotify{}) // 世界敲门处理通知
|
||||||
a.registerMessage(PlayerGetForceQuitBanInfoReq, &proto.PlayerGetForceQuitBanInfoReq{}) // 获取强退禁令信息请求
|
c.registerMessage(PlayerGetForceQuitBanInfoReq, &proto.PlayerGetForceQuitBanInfoReq{}) // 获取强退禁令信息请求
|
||||||
a.registerMessage(PlayerGetForceQuitBanInfoRsp, &proto.PlayerGetForceQuitBanInfoRsp{}) // 获取强退禁令信息响应
|
c.registerMessage(PlayerGetForceQuitBanInfoRsp, &proto.PlayerGetForceQuitBanInfoRsp{}) // 获取强退禁令信息响应
|
||||||
a.registerMessage(BackMyWorldReq, &proto.BackMyWorldReq{}) // 返回单人世界请求
|
c.registerMessage(BackMyWorldReq, &proto.BackMyWorldReq{}) // 返回单人世界请求
|
||||||
a.registerMessage(BackMyWorldRsp, &proto.BackMyWorldRsp{}) // 返回单人世界响应
|
c.registerMessage(BackMyWorldRsp, &proto.BackMyWorldRsp{}) // 返回单人世界响应
|
||||||
a.registerMessage(ChangeWorldToSingleModeReq, &proto.ChangeWorldToSingleModeReq{}) // 转换单人模式请求
|
c.registerMessage(ChangeWorldToSingleModeReq, &proto.ChangeWorldToSingleModeReq{}) // 转换单人模式请求
|
||||||
a.registerMessage(ChangeWorldToSingleModeRsp, &proto.ChangeWorldToSingleModeRsp{}) // 转换单人模式响应
|
c.registerMessage(ChangeWorldToSingleModeRsp, &proto.ChangeWorldToSingleModeRsp{}) // 转换单人模式响应
|
||||||
a.registerMessage(SceneKickPlayerReq, &proto.SceneKickPlayerReq{}) // 剔除玩家请求
|
c.registerMessage(SceneKickPlayerReq, &proto.SceneKickPlayerReq{}) // 剔除玩家请求
|
||||||
a.registerMessage(SceneKickPlayerRsp, &proto.SceneKickPlayerRsp{}) // 剔除玩家响应
|
c.registerMessage(SceneKickPlayerRsp, &proto.SceneKickPlayerRsp{}) // 剔除玩家响应
|
||||||
a.registerMessage(SceneKickPlayerNotify, &proto.SceneKickPlayerNotify{}) // 剔除玩家通知
|
c.registerMessage(SceneKickPlayerNotify, &proto.SceneKickPlayerNotify{}) // 剔除玩家通知
|
||||||
a.registerMessage(PlayerQuitFromMpNotify, &proto.PlayerQuitFromMpNotify{}) // 退出多人游戏通知
|
c.registerMessage(PlayerQuitFromMpNotify, &proto.PlayerQuitFromMpNotify{}) // 退出多人游戏通知
|
||||||
|
|
||||||
// 社交
|
// 社交
|
||||||
a.registerMessage(SetPlayerBirthdayReq, &proto.SetPlayerBirthdayReq{}) // 设置生日请求
|
c.registerMessage(SetPlayerBirthdayReq, &proto.SetPlayerBirthdayReq{}) // 设置生日请求
|
||||||
a.registerMessage(SetPlayerBirthdayRsp, &proto.SetPlayerBirthdayRsp{}) // 设置生日响应
|
c.registerMessage(SetPlayerBirthdayRsp, &proto.SetPlayerBirthdayRsp{}) // 设置生日响应
|
||||||
a.registerMessage(SetNameCardReq, &proto.SetNameCardReq{}) // 修改名片请求
|
c.registerMessage(SetNameCardReq, &proto.SetNameCardReq{}) // 修改名片请求
|
||||||
a.registerMessage(SetNameCardRsp, &proto.SetNameCardRsp{}) // 修改名片响应
|
c.registerMessage(SetNameCardRsp, &proto.SetNameCardRsp{}) // 修改名片响应
|
||||||
a.registerMessage(GetAllUnlockNameCardReq, &proto.GetAllUnlockNameCardReq{}) // 获取全部已解锁名片请求
|
c.registerMessage(GetAllUnlockNameCardReq, &proto.GetAllUnlockNameCardReq{}) // 获取全部已解锁名片请求
|
||||||
a.registerMessage(GetAllUnlockNameCardRsp, &proto.GetAllUnlockNameCardRsp{}) // 获取全部已解锁名片响应
|
c.registerMessage(GetAllUnlockNameCardRsp, &proto.GetAllUnlockNameCardRsp{}) // 获取全部已解锁名片响应
|
||||||
a.registerMessage(UnlockNameCardNotify, &proto.UnlockNameCardNotify{}) // 名片解锁通知
|
c.registerMessage(UnlockNameCardNotify, &proto.UnlockNameCardNotify{}) // 名片解锁通知
|
||||||
a.registerMessage(SetPlayerSignatureReq, &proto.SetPlayerSignatureReq{}) // 修改签名请求
|
c.registerMessage(SetPlayerSignatureReq, &proto.SetPlayerSignatureReq{}) // 修改签名请求
|
||||||
a.registerMessage(SetPlayerSignatureRsp, &proto.SetPlayerSignatureRsp{}) // 修改签名响应
|
c.registerMessage(SetPlayerSignatureRsp, &proto.SetPlayerSignatureRsp{}) // 修改签名响应
|
||||||
a.registerMessage(SetPlayerNameReq, &proto.SetPlayerNameReq{}) // 修改昵称请求
|
c.registerMessage(SetPlayerNameReq, &proto.SetPlayerNameReq{}) // 修改昵称请求
|
||||||
a.registerMessage(SetPlayerNameRsp, &proto.SetPlayerNameRsp{}) // 修改昵称响应
|
c.registerMessage(SetPlayerNameRsp, &proto.SetPlayerNameRsp{}) // 修改昵称响应
|
||||||
a.registerMessage(SetPlayerHeadImageReq, &proto.SetPlayerHeadImageReq{}) // 修改头像请求
|
c.registerMessage(SetPlayerHeadImageReq, &proto.SetPlayerHeadImageReq{}) // 修改头像请求
|
||||||
a.registerMessage(SetPlayerHeadImageRsp, &proto.SetPlayerHeadImageRsp{}) // 修改头像响应
|
c.registerMessage(SetPlayerHeadImageRsp, &proto.SetPlayerHeadImageRsp{}) // 修改头像响应
|
||||||
a.registerMessage(GetPlayerFriendListReq, &proto.GetPlayerFriendListReq{}) // 好友列表请求
|
c.registerMessage(GetPlayerFriendListReq, &proto.GetPlayerFriendListReq{}) // 好友列表请求
|
||||||
a.registerMessage(GetPlayerFriendListRsp, &proto.GetPlayerFriendListRsp{}) // 好友列表响应
|
c.registerMessage(GetPlayerFriendListRsp, &proto.GetPlayerFriendListRsp{}) // 好友列表响应
|
||||||
a.registerMessage(GetPlayerAskFriendListReq, &proto.GetPlayerAskFriendListReq{}) // 好友申请列表请求
|
c.registerMessage(GetPlayerAskFriendListReq, &proto.GetPlayerAskFriendListReq{}) // 好友申请列表请求
|
||||||
a.registerMessage(GetPlayerAskFriendListRsp, &proto.GetPlayerAskFriendListRsp{}) // 好友申请列表响应
|
c.registerMessage(GetPlayerAskFriendListRsp, &proto.GetPlayerAskFriendListRsp{}) // 好友申请列表响应
|
||||||
a.registerMessage(AskAddFriendReq, &proto.AskAddFriendReq{}) // 加好友请求
|
c.registerMessage(AskAddFriendReq, &proto.AskAddFriendReq{}) // 加好友请求
|
||||||
a.registerMessage(AskAddFriendRsp, &proto.AskAddFriendRsp{}) // 加好友响应
|
c.registerMessage(AskAddFriendRsp, &proto.AskAddFriendRsp{}) // 加好友响应
|
||||||
a.registerMessage(AskAddFriendNotify, &proto.AskAddFriendNotify{}) // 加好友通知
|
c.registerMessage(AskAddFriendNotify, &proto.AskAddFriendNotify{}) // 加好友通知
|
||||||
a.registerMessage(DealAddFriendReq, &proto.DealAddFriendReq{}) // 处理好友申请请求
|
c.registerMessage(DealAddFriendReq, &proto.DealAddFriendReq{}) // 处理好友申请请求
|
||||||
a.registerMessage(DealAddFriendRsp, &proto.DealAddFriendRsp{}) // 处理好友申请响应
|
c.registerMessage(DealAddFriendRsp, &proto.DealAddFriendRsp{}) // 处理好友申请响应
|
||||||
a.registerMessage(GetPlayerSocialDetailReq, &proto.GetPlayerSocialDetailReq{}) // 获取玩家社区信息请求
|
c.registerMessage(GetPlayerSocialDetailReq, &proto.GetPlayerSocialDetailReq{}) // 获取玩家社区信息请求
|
||||||
a.registerMessage(GetPlayerSocialDetailRsp, &proto.GetPlayerSocialDetailRsp{}) // 获取玩家社区信息响应
|
c.registerMessage(GetPlayerSocialDetailRsp, &proto.GetPlayerSocialDetailRsp{}) // 获取玩家社区信息响应
|
||||||
a.registerMessage(GetOnlinePlayerListReq, &proto.GetOnlinePlayerListReq{}) // 在线玩家列表请求
|
c.registerMessage(GetOnlinePlayerListReq, &proto.GetOnlinePlayerListReq{}) // 在线玩家列表请求
|
||||||
a.registerMessage(GetOnlinePlayerListRsp, &proto.GetOnlinePlayerListRsp{}) // 在线玩家列表响应
|
c.registerMessage(GetOnlinePlayerListRsp, &proto.GetOnlinePlayerListRsp{}) // 在线玩家列表响应
|
||||||
a.registerMessage(PullRecentChatReq, &proto.PullRecentChatReq{}) // 最近聊天拉取请求
|
c.registerMessage(PullRecentChatReq, &proto.PullRecentChatReq{}) // 最近聊天拉取请求
|
||||||
a.registerMessage(PullRecentChatRsp, &proto.PullRecentChatRsp{}) // 最近聊天拉取响应
|
c.registerMessage(PullRecentChatRsp, &proto.PullRecentChatRsp{}) // 最近聊天拉取响应
|
||||||
a.registerMessage(PullPrivateChatReq, &proto.PullPrivateChatReq{}) // 私聊历史记录请求
|
c.registerMessage(PullPrivateChatReq, &proto.PullPrivateChatReq{}) // 私聊历史记录请求
|
||||||
a.registerMessage(PullPrivateChatRsp, &proto.PullPrivateChatRsp{}) // 私聊历史记录响应
|
c.registerMessage(PullPrivateChatRsp, &proto.PullPrivateChatRsp{}) // 私聊历史记录响应
|
||||||
a.registerMessage(PrivateChatReq, &proto.PrivateChatReq{}) // 私聊消息发送请求
|
c.registerMessage(PrivateChatReq, &proto.PrivateChatReq{}) // 私聊消息发送请求
|
||||||
a.registerMessage(PrivateChatRsp, &proto.PrivateChatRsp{}) // 私聊消息发送响应
|
c.registerMessage(PrivateChatRsp, &proto.PrivateChatRsp{}) // 私聊消息发送响应
|
||||||
a.registerMessage(PrivateChatNotify, &proto.PrivateChatNotify{}) // 私聊消息通知
|
c.registerMessage(PrivateChatNotify, &proto.PrivateChatNotify{}) // 私聊消息通知
|
||||||
a.registerMessage(ReadPrivateChatReq, &proto.ReadPrivateChatReq{}) // 私聊消息已读请求
|
c.registerMessage(ReadPrivateChatReq, &proto.ReadPrivateChatReq{}) // 私聊消息已读请求
|
||||||
a.registerMessage(ReadPrivateChatRsp, &proto.ReadPrivateChatRsp{}) // 私聊消息已读响应
|
c.registerMessage(ReadPrivateChatRsp, &proto.ReadPrivateChatRsp{}) // 私聊消息已读响应
|
||||||
a.registerMessage(PlayerChatReq, &proto.PlayerChatReq{}) // 多人聊天消息发送请求
|
c.registerMessage(PlayerChatReq, &proto.PlayerChatReq{}) // 多人聊天消息发送请求
|
||||||
a.registerMessage(PlayerChatRsp, &proto.PlayerChatRsp{}) // 多人聊天消息发送响应
|
c.registerMessage(PlayerChatRsp, &proto.PlayerChatRsp{}) // 多人聊天消息发送响应
|
||||||
a.registerMessage(PlayerChatNotify, &proto.PlayerChatNotify{}) // 多人聊天消息通知
|
c.registerMessage(PlayerChatNotify, &proto.PlayerChatNotify{}) // 多人聊天消息通知
|
||||||
|
|
||||||
// 卡池
|
// 卡池
|
||||||
a.registerMessage(GetGachaInfoReq, &proto.GetGachaInfoReq{}) // 卡池获取请求
|
c.registerMessage(GetGachaInfoReq, &proto.GetGachaInfoReq{}) // 卡池获取请求
|
||||||
a.registerMessage(GetGachaInfoRsp, &proto.GetGachaInfoRsp{}) // 卡池获取响应
|
c.registerMessage(GetGachaInfoRsp, &proto.GetGachaInfoRsp{}) // 卡池获取响应
|
||||||
a.registerMessage(DoGachaReq, &proto.DoGachaReq{}) // 抽卡请求
|
c.registerMessage(DoGachaReq, &proto.DoGachaReq{}) // 抽卡请求
|
||||||
a.registerMessage(DoGachaRsp, &proto.DoGachaRsp{}) // 抽卡响应
|
c.registerMessage(DoGachaRsp, &proto.DoGachaRsp{}) // 抽卡响应
|
||||||
|
|
||||||
// 角色
|
// 角色
|
||||||
a.registerMessage(AvatarDataNotify, &proto.AvatarDataNotify{}) // 角色信息通知
|
c.registerMessage(AvatarDataNotify, &proto.AvatarDataNotify{}) // 角色信息通知
|
||||||
a.registerMessage(AvatarAddNotify, &proto.AvatarAddNotify{}) // 角色新增通知
|
c.registerMessage(AvatarAddNotify, &proto.AvatarAddNotify{}) // 角色新增通知
|
||||||
a.registerMessage(AvatarChangeCostumeReq, &proto.AvatarChangeCostumeReq{}) // 角色换装请求
|
c.registerMessage(AvatarChangeCostumeReq, &proto.AvatarChangeCostumeReq{}) // 角色换装请求
|
||||||
a.registerMessage(AvatarChangeCostumeRsp, &proto.AvatarChangeCostumeRsp{}) // 角色换装响应
|
c.registerMessage(AvatarChangeCostumeRsp, &proto.AvatarChangeCostumeRsp{}) // 角色换装响应
|
||||||
a.registerMessage(AvatarChangeCostumeNotify, &proto.AvatarChangeCostumeNotify{}) // 角色换装通知
|
c.registerMessage(AvatarChangeCostumeNotify, &proto.AvatarChangeCostumeNotify{}) // 角色换装通知
|
||||||
a.registerMessage(AvatarWearFlycloakReq, &proto.AvatarWearFlycloakReq{}) // 角色换风之翼请求
|
c.registerMessage(AvatarWearFlycloakReq, &proto.AvatarWearFlycloakReq{}) // 角色换风之翼请求
|
||||||
a.registerMessage(AvatarWearFlycloakRsp, &proto.AvatarWearFlycloakRsp{}) // 角色换风之翼响应
|
c.registerMessage(AvatarWearFlycloakRsp, &proto.AvatarWearFlycloakRsp{}) // 角色换风之翼响应
|
||||||
a.registerMessage(AvatarFlycloakChangeNotify, &proto.AvatarFlycloakChangeNotify{}) // 角色换风之翼通知
|
c.registerMessage(AvatarFlycloakChangeNotify, &proto.AvatarFlycloakChangeNotify{}) // 角色换风之翼通知
|
||||||
|
|
||||||
// 背包与道具
|
// 背包与道具
|
||||||
a.registerMessage(PlayerStoreNotify, &proto.PlayerStoreNotify{}) // 玩家背包数据通知
|
c.registerMessage(PlayerStoreNotify, &proto.PlayerStoreNotify{}) // 玩家背包数据通知
|
||||||
a.registerMessage(StoreWeightLimitNotify, &proto.StoreWeightLimitNotify{}) // 背包容量上限通知
|
c.registerMessage(StoreWeightLimitNotify, &proto.StoreWeightLimitNotify{}) // 背包容量上限通知
|
||||||
a.registerMessage(StoreItemChangeNotify, &proto.StoreItemChangeNotify{}) // 背包道具变动通知
|
c.registerMessage(StoreItemChangeNotify, &proto.StoreItemChangeNotify{}) // 背包道具变动通知
|
||||||
a.registerMessage(ItemAddHintNotify, &proto.ItemAddHintNotify{}) // 道具增加提示通知
|
c.registerMessage(ItemAddHintNotify, &proto.ItemAddHintNotify{}) // 道具增加提示通知
|
||||||
a.registerMessage(StoreItemDelNotify, &proto.StoreItemDelNotify{}) // 背包道具删除通知
|
c.registerMessage(StoreItemDelNotify, &proto.StoreItemDelNotify{}) // 背包道具删除通知
|
||||||
|
|
||||||
// 装备
|
// 装备
|
||||||
a.registerMessage(WearEquipReq, &proto.WearEquipReq{}) // 装备穿戴请求
|
c.registerMessage(WearEquipReq, &proto.WearEquipReq{}) // 装备穿戴请求
|
||||||
a.registerMessage(WearEquipRsp, &proto.WearEquipRsp{}) // 装备穿戴响应
|
c.registerMessage(WearEquipRsp, &proto.WearEquipRsp{}) // 装备穿戴响应
|
||||||
a.registerMessage(AvatarEquipChangeNotify, &proto.AvatarEquipChangeNotify{}) // 角色装备改变通知
|
c.registerMessage(AvatarEquipChangeNotify, &proto.AvatarEquipChangeNotify{}) // 角色装备改变通知
|
||||||
|
|
||||||
// 商店
|
// 商店
|
||||||
a.registerMessage(GetShopmallDataReq, &proto.GetShopmallDataReq{}) // 商店信息请求
|
c.registerMessage(GetShopmallDataReq, &proto.GetShopmallDataReq{}) // 商店信息请求
|
||||||
a.registerMessage(GetShopmallDataRsp, &proto.GetShopmallDataRsp{}) // 商店信息响应
|
c.registerMessage(GetShopmallDataRsp, &proto.GetShopmallDataRsp{}) // 商店信息响应
|
||||||
a.registerMessage(GetShopReq, &proto.GetShopReq{}) // 商店详情请求
|
c.registerMessage(GetShopReq, &proto.GetShopReq{}) // 商店详情请求
|
||||||
a.registerMessage(GetShopRsp, &proto.GetShopRsp{}) // 商店详情响应
|
c.registerMessage(GetShopRsp, &proto.GetShopRsp{}) // 商店详情响应
|
||||||
a.registerMessage(BuyGoodsReq, &proto.BuyGoodsReq{}) // 商店货物购买请求
|
c.registerMessage(BuyGoodsReq, &proto.BuyGoodsReq{}) // 商店货物购买请求
|
||||||
a.registerMessage(BuyGoodsRsp, &proto.BuyGoodsRsp{}) // 商店货物购买响应
|
c.registerMessage(BuyGoodsRsp, &proto.BuyGoodsRsp{}) // 商店货物购买响应
|
||||||
a.registerMessage(McoinExchangeHcoinReq, &proto.McoinExchangeHcoinReq{}) // 结晶换原石请求
|
c.registerMessage(McoinExchangeHcoinReq, &proto.McoinExchangeHcoinReq{}) // 结晶换原石请求
|
||||||
a.registerMessage(McoinExchangeHcoinRsp, &proto.McoinExchangeHcoinRsp{}) // 结晶换原石响应
|
c.registerMessage(McoinExchangeHcoinRsp, &proto.McoinExchangeHcoinRsp{}) // 结晶换原石响应
|
||||||
|
|
||||||
// 耐力
|
// 耐力
|
||||||
a.registerMessage(SceneAvatarStaminaStepReq, &proto.SceneAvatarStaminaStepReq{}) // 缓慢游泳或缓慢攀爬时消耗耐力请求
|
c.registerMessage(SceneAvatarStaminaStepReq, &proto.SceneAvatarStaminaStepReq{}) // 缓慢游泳或缓慢攀爬时消耗耐力请求
|
||||||
a.registerMessage(SceneAvatarStaminaStepRsp, &proto.SceneAvatarStaminaStepRsp{}) // 缓慢游泳或缓慢攀爬时消耗耐力响应
|
c.registerMessage(SceneAvatarStaminaStepRsp, &proto.SceneAvatarStaminaStepRsp{}) // 缓慢游泳或缓慢攀爬时消耗耐力响应
|
||||||
|
|
||||||
// 乱七八糟
|
// 乱七八糟
|
||||||
a.registerMessage(MarkMapReq, &proto.MarkMapReq{}) // 标记地图请求
|
c.registerMessage(MarkMapReq, &proto.MarkMapReq{}) // 标记地图请求
|
||||||
a.registerMessage(TowerAllDataReq, &proto.TowerAllDataReq{}) // 深渊数据请求
|
c.registerMessage(TowerAllDataReq, &proto.TowerAllDataReq{}) // 深渊数据请求
|
||||||
a.registerMessage(TowerAllDataRsp, &proto.TowerAllDataRsp{}) // 深渊数据响应
|
c.registerMessage(TowerAllDataRsp, &proto.TowerAllDataRsp{}) // 深渊数据响应
|
||||||
a.registerMessage(ServerAnnounceNotify, &proto.ServerAnnounceNotify{}) // 服务器公告通知
|
c.registerMessage(ServerAnnounceNotify, &proto.ServerAnnounceNotify{}) // 服务器公告通知
|
||||||
a.registerMessage(ServerAnnounceRevokeNotify, &proto.ServerAnnounceRevokeNotify{}) // 服务器公告撤销通知
|
c.registerMessage(ServerAnnounceRevokeNotify, &proto.ServerAnnounceRevokeNotify{}) // 服务器公告撤销通知
|
||||||
|
|
||||||
//// TODO
|
//// TODO
|
||||||
//a.registerMessage(EvtAiSyncSkillCdNotify, &proto.EvtAiSyncSkillCdNotify{})
|
//c.registerMessage(EvtAiSyncSkillCdNotify, &proto.EvtAiSyncSkillCdNotify{})
|
||||||
//a.registerMessage(EvtAiSyncCombatThreatInfoNotify, &proto.EvtAiSyncCombatThreatInfoNotify{})
|
//c.registerMessage(EvtAiSyncCombatThreatInfoNotify, &proto.EvtAiSyncCombatThreatInfoNotify{})
|
||||||
//a.registerMessage(EntityConfigHashNotify, &proto.EntityConfigHashNotify{})
|
//c.registerMessage(EntityConfigHashNotify, &proto.EntityConfigHashNotify{})
|
||||||
//a.registerMessage(MonsterAIConfigHashNotify, &proto.MonsterAIConfigHashNotify{})
|
//c.registerMessage(MonsterAIConfigHashNotify, &proto.MonsterAIConfigHashNotify{})
|
||||||
//a.registerMessage(GetRegionSearchReq, &proto.GetRegionSearchReq{})
|
//c.registerMessage(GetRegionSearchReq, &proto.GetRegionSearchReq{})
|
||||||
//a.registerMessage(ObstacleModifyNotify, &proto.ObstacleModifyNotify{})
|
//c.registerMessage(ObstacleModifyNotify, &proto.ObstacleModifyNotify{})
|
||||||
//a.registerMessage(EvtCreateGadgetNotify, &proto.EvtCreateGadgetNotify{})
|
//c.registerMessage(EvtCreateGadgetNotify, &proto.EvtCreateGadgetNotify{})
|
||||||
//a.registerMessage(EvtDestroyGadgetNotify, &proto.EvtDestroyGadgetNotify{})
|
//c.registerMessage(EvtDestroyGadgetNotify, &proto.EvtDestroyGadgetNotify{})
|
||||||
|
|
||||||
// 空消息
|
// 空消息
|
||||||
a.registerMessage(65535, &proto.NullMsg{})
|
c.registerMessage(65535, &proto.NullMsg{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *CmdProtoMap) registerMessage(cmdId uint16, protoObj pb.Message) {
|
func (c *CmdProtoMap) registerMessage(cmdId uint16, protoObj pb.Message) {
|
||||||
_, exist := a.cmdDeDupMap[cmdId]
|
_, exist := c.cmdDeDupMap[cmdId]
|
||||||
if exist {
|
if exist {
|
||||||
logger.LOG.Error("reg dup msg, cmd id: %v", cmdId)
|
logger.LOG.Error("reg dup msg, cmd id: %v", cmdId)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
a.cmdDeDupMap[cmdId] = true
|
c.cmdDeDupMap[cmdId] = true
|
||||||
}
|
}
|
||||||
// cmdId -> protoObj
|
// cmdId -> protoObj
|
||||||
a.cmdIdProtoObjMap[cmdId] = reflect.TypeOf(protoObj)
|
c.cmdIdProtoObjMap[cmdId] = reflect.TypeOf(protoObj)
|
||||||
// protoObj -> cmdId
|
// protoObj -> cmdId
|
||||||
a.protoObjCmdIdMap[reflect.TypeOf(protoObj)] = cmdId
|
c.protoObjCmdIdMap[reflect.TypeOf(protoObj)] = cmdId
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *CmdProtoMap) GetProtoObjByCmdId(cmdId uint16) (protoObj pb.Message) {
|
func (c *CmdProtoMap) GetProtoObjByCmdId(cmdId uint16) (protoObj pb.Message) {
|
||||||
protoObjTypePointer, ok := a.cmdIdProtoObjMap[cmdId]
|
protoObjTypePointer, ok := c.cmdIdProtoObjMap[cmdId]
|
||||||
if !ok {
|
if !ok {
|
||||||
logger.LOG.Error("unknown cmd id: %v", cmdId)
|
logger.LOG.Error("unknown cmd id: %v", cmdId)
|
||||||
protoObj = nil
|
protoObj = nil
|
||||||
@@ -264,9 +267,9 @@ func (a *CmdProtoMap) GetProtoObjByCmdId(cmdId uint16) (protoObj pb.Message) {
|
|||||||
return protoObj
|
return protoObj
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *CmdProtoMap) GetCmdIdByProtoObj(protoObj pb.Message) (cmdId uint16) {
|
func (c *CmdProtoMap) GetCmdIdByProtoObj(protoObj pb.Message) (cmdId uint16) {
|
||||||
var ok = false
|
var ok = false
|
||||||
cmdId, ok = a.protoObjCmdIdMap[reflect.TypeOf(protoObj)]
|
cmdId, ok = c.protoObjCmdIdMap[reflect.TypeOf(protoObj)]
|
||||||
if !ok {
|
if !ok {
|
||||||
logger.LOG.Error("unknown proto object: %v", protoObj)
|
logger.LOG.Error("unknown proto object: %v", protoObj)
|
||||||
cmdId = 0
|
cmdId = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user