mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 16:02:26 +08:00
添加任务
This commit is contained in:
@@ -236,27 +236,41 @@ func (g *GameManager) CombatInvocationsNotify(player *model.Player, payloadMsg p
|
||||
sceneEntity.SetLastMoveSceneTimeMs(entityMoveInfo.SceneTime)
|
||||
sceneEntity.SetLastMoveReliableSeq(entityMoveInfo.ReliableSeq)
|
||||
|
||||
if motionInfo.State == proto.MotionState_MOTION_NOTIFY {
|
||||
continue
|
||||
}
|
||||
|
||||
player.CombatInvokeHandler.AddEntry(entry.ForwardType, entry)
|
||||
case proto.CombatTypeArgument_COMBAT_ANIMATOR_PARAMETER_CHANGED:
|
||||
evtAnimatorParameterInfo := new(proto.EvtAnimatorParameterInfo)
|
||||
err := pb.Unmarshal(entry.CombatData, evtAnimatorParameterInfo)
|
||||
if err != nil {
|
||||
logger.Error("parse EvtAnimatorParameterInfo error: %v", err)
|
||||
continue
|
||||
}
|
||||
logger.Debug("EvtAnimatorParameterInfo: %v, ForwardType: %v", evtAnimatorParameterInfo, entry.ForwardType)
|
||||
|
||||
// 这是否?
|
||||
if evtAnimatorParameterInfo.IsServerCache {
|
||||
evtAnimatorParameterInfo.IsServerCache = false
|
||||
// TODO 暂时只做3.2协议的兼容了 在GS这边处理不同版本的协议太烦人了 有机会全部改到GATE那边处理 GS所有接收和发送的都应该是3.2版本的协议
|
||||
newCombatData, err := pb.Marshal(evtAnimatorParameterInfo)
|
||||
if err != nil {
|
||||
logger.Error("build EvtAnimatorParameterInfo error: %v", err)
|
||||
continue
|
||||
}
|
||||
entry.CombatData = newCombatData
|
||||
}
|
||||
|
||||
player.CombatInvokeHandler.AddEntry(entry.ForwardType, entry)
|
||||
case proto.CombatTypeArgument_COMBAT_ANIMATOR_STATE_CHANGED:
|
||||
evtAnimatorStateChangedInfo := new(proto.EvtAnimatorStateChangedInfo)
|
||||
if config.GetConfig().Hk4e.ClientProtoProxyEnable {
|
||||
clientProtoObj := g.GetClientProtoObjByName("EvtAnimatorStateChangedInfo")
|
||||
if clientProtoObj == nil {
|
||||
logger.Error("get client proto obj is nil")
|
||||
continue
|
||||
}
|
||||
ok := utils.UnmarshalProtoObj(evtAnimatorStateChangedInfo, clientProtoObj, entry.CombatData)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
err := pb.Unmarshal(entry.CombatData, evtAnimatorStateChangedInfo)
|
||||
if err != nil {
|
||||
logger.Error("parse EvtAnimatorStateChangedInfo error: %v", err)
|
||||
continue
|
||||
}
|
||||
err := pb.Unmarshal(entry.CombatData, evtAnimatorStateChangedInfo)
|
||||
if err != nil {
|
||||
logger.Error("parse EvtAnimatorStateChangedInfo error: %v", err)
|
||||
continue
|
||||
}
|
||||
logger.Debug("EvtAnimatorStateChangedInfo: %v", entry, player.PlayerID)
|
||||
logger.Debug("EvtAnimatorStateChangedInfo: %v, ForwardType: %v", evtAnimatorStateChangedInfo, entry.ForwardType)
|
||||
player.CombatInvokeHandler.AddEntry(entry.ForwardType, entry)
|
||||
default:
|
||||
player.CombatInvokeHandler.AddEntry(entry.ForwardType, entry)
|
||||
@@ -375,7 +389,7 @@ func (g *GameManager) ClientAbilityInitFinishNotify(player *model.Player, payloa
|
||||
}
|
||||
invokeHandler := model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
||||
for _, entry := range req.Invokes {
|
||||
// logger.Debug("ClientAbilityInitFinishNotify: %v", entry, player.PlayerID)
|
||||
// logger.Debug("ClientAbilityInitFinishNotify: %v", entry)
|
||||
invokeHandler.AddEntry(entry.ForwardType, entry)
|
||||
}
|
||||
DoForward[proto.AbilityInvokeEntry](player, &proto.ClientAbilityInitFinishNotify{}, []string{"EntityId"}, "Invokes", invokeHandler)
|
||||
@@ -389,7 +403,7 @@ func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg
|
||||
}
|
||||
invokeHandler := model.NewInvokeHandler[proto.AbilityInvokeEntry]()
|
||||
for _, entry := range req.Invokes {
|
||||
// logger.Debug("ClientAbilityChangeNotify: %v", entry, player.PlayerID)
|
||||
// logger.Debug("ClientAbilityChangeNotify: %v", entry)
|
||||
|
||||
invokeHandler.AddEntry(entry.ForwardType, entry)
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ func (g *GameManager) LoginNotify(userId uint32, player *model.Player, clientSeq
|
||||
g.SendMsg(cmd.PlayerStoreNotify, userId, clientSeq, g.PacketPlayerStoreNotify(player))
|
||||
g.SendMsg(cmd.AvatarDataNotify, userId, clientSeq, g.PacketAvatarDataNotify(player))
|
||||
g.SendMsg(cmd.OpenStateUpdateNotify, userId, clientSeq, g.PacketOpenStateUpdateNotify())
|
||||
g.GCGLogin(player) // 发送GCG登录相关的通知包
|
||||
// g.GCGLogin(player) // 发送GCG登录相关的通知包
|
||||
playerLoginRsp := &proto.PlayerLoginRsp{
|
||||
IsUseAbilityHash: true,
|
||||
AbilityHashCode: 0,
|
||||
@@ -160,6 +160,45 @@ func (g *GameManager) LoginNotify(userId uint32, player *model.Player, clientSeq
|
||||
TotalTickTime: 0.0,
|
||||
}
|
||||
g.SendMsg(cmd.PlayerLoginRsp, userId, clientSeq, playerLoginRsp)
|
||||
|
||||
questListNotify := &proto.QuestListNotify{
|
||||
QuestList: make([]*proto.Quest, 0),
|
||||
}
|
||||
|
||||
for _, questDataConfig := range gdconf.GetQuestDataMap() {
|
||||
if questDataConfig.QuestId == 35104 {
|
||||
questListNotify.QuestList = append(questListNotify.QuestList, &proto.Quest{
|
||||
QuestId: 35104,
|
||||
State: 2,
|
||||
StartTime: uint32(time.Now().Unix()),
|
||||
ParentQuestId: 351,
|
||||
StartGameTime: 438,
|
||||
AcceptTime: uint32(time.Now().Unix()),
|
||||
FinishProgressList: []uint32{0},
|
||||
})
|
||||
continue
|
||||
}
|
||||
finishProgressList := make([]uint32, 0)
|
||||
if questDataConfig.FinishCondType1 != 0 {
|
||||
finishProgressList = append(finishProgressList, 0)
|
||||
}
|
||||
if questDataConfig.FinishCondType2 != 0 {
|
||||
finishProgressList = append(finishProgressList, 0)
|
||||
}
|
||||
if questDataConfig.FinishCondType3 != 0 {
|
||||
finishProgressList = append(finishProgressList, 0)
|
||||
}
|
||||
questListNotify.QuestList = append(questListNotify.QuestList, &proto.Quest{
|
||||
QuestId: uint32(questDataConfig.QuestId),
|
||||
State: 1,
|
||||
StartTime: uint32(time.Now().Unix()),
|
||||
ParentQuestId: uint32(questDataConfig.ParentQuestId),
|
||||
StartGameTime: 0,
|
||||
AcceptTime: uint32(time.Now().Unix()),
|
||||
FinishProgressList: finishProgressList,
|
||||
})
|
||||
}
|
||||
g.SendMsg(cmd.QuestListNotify, userId, clientSeq, questListNotify)
|
||||
}
|
||||
|
||||
func (g *GameManager) PacketPlayerDataNotify(player *model.Player) *proto.PlayerDataNotify {
|
||||
|
||||
Reference in New Issue
Block a user