mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 14:22:26 +08:00
耐力表、武器切换、无效角色修复
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
ID Ability名称 是远程 技能CD 无视冷却缩减属性 消耗体力 消耗能量类型 消耗能量值 可累积次数 TriggerID 索敌范围 索敌公式权重1 索敌公式权重2 索敌公式权重3 索敌公式权重4 是默认镜头 支持按钮拖动 是否显示箭头 是否监控状态 默认锁定 图标名称 升级技能组ID 技能能量键值 消耗能量最小值 CanDoSkill为false强制可用 处理冷却所属技能槽 是否存档 shareCDID
|
||||
10001 0 1 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10002 0 1 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10003 0 1 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10004 0 1 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10001 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10002 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10003 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10004 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10006 1 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10011 0 0 1 1 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10101 10 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10102 10 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
10111 0 10 1 11 CircleLockEnemy 1 1 0.3 0 1 0
|
||||
10111 0 0 1 11 CircleLockEnemy 1 1 0.3 0 1 0
|
||||
10012 2 0 1 2 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10013 0 1 1 3 CircleLockEnemyR5H6HC 1 1 0.3 0 1 1 233 1
|
||||
10013 0 15 1 3 CircleLockEnemyR5H6HC 1 1 0.3 0 1 1 233 1
|
||||
10014 8 0 4 30 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10015 8 0 1 4 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10016 0 0 1 4 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
|
||||
@@ -23,10 +23,10 @@ ID Ability名称 是远程 技能CD 无视冷却缩减属性 消耗体力 消耗
|
||||
10024 Avatar_Ayaka_ExtraAttack 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 231
|
||||
10031 Avatar_Qin_ExtraAttack 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 331
|
||||
10032 15 0 1 2 CircleLockEnemyR15H10HC 1 1 0.3 0 1 2 1 2132
|
||||
10033 Avatar_Qin_VortexSmash 6 0 1 2 CircleLockEnemyR5H6HC 1 1 0.3 0 1 1 332
|
||||
10033 Avatar_Qin_VortexSmash 6 20 1 2 CircleLockEnemyR5H6HC 1 1 0.3 0 1 1 332
|
||||
10034 Avatar_Qin_DandelionWind 20 0 7 80 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 339
|
||||
10035 15 1 0 1 11 CircleLockEnemyR10 1 1 0.3 0 1 2 1 0
|
||||
10036 Avatar_Qin_EnterSkill 30 1 0 CircleLockEnemyR10 1 1 0.3 0 0
|
||||
10036 Avatar_Qin_EnterSkill 30 0 1 0 CircleLockEnemyR10 1 1 0.3 0 0
|
||||
10037 Avatar_Player_FlyingBomber 2 1 0 1 0 CircleLockEnemyAmborFly 1 1 0.3 0 1 2 1 0
|
||||
10038 1 1 0 1 11 CircleLockEnemyR10 1 1 0.3 0 1 2 1 0
|
||||
10041 Avatar_Ambor_PressShoot 1 0 0 1 0 CircleLockEnemyR15H10HC 1 1 0.3 0 1 2131
|
||||
@@ -176,9 +176,9 @@ ID Ability名称 是远程 技能CD 无视冷却缩减属性 消耗体力 消耗
|
||||
10403 Diluc_FireCross 12 0 5 40 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 3639
|
||||
10411 Avatar_Mona_ExtraAttack 0 0 1 0 CircleLockEnemyR15H10HC 1 1 0.3 0 1 4131
|
||||
10412 12 0 1 2 CircleLockEnemyR15H10HC 1 1 0.3 0 1 4132
|
||||
10413 0 1 1 3 CircleLockEnemyR5H6HC 1 1 0.3 0 1 1 4133 1
|
||||
10413 0 15 1 3 CircleLockEnemyR5H6HC 1 1 0.3 0 1 1 4133 1
|
||||
10415 15 0 2 60 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 4139
|
||||
10421 Avatar_Keqing_ExtraAttack 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 4231
|
||||
10421 Avatar_Keqing_ExtraAttack 0 25 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 4231
|
||||
10422 7.5 0 1 2 CircleLockEnemyR15H10HC 1 1 0.3 0 1 4232
|
||||
10423 0 0 1 3 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10425 12 0 4 40 1 5 CircleLockEnemyR5H6HC 1 1 0.3 0 1 4239
|
||||
@@ -242,7 +242,7 @@ ID Ability名称 是远程 技能CD 无视冷却缩减属性 消耗体力 消耗
|
||||
10582 4 0 3 2 CircleLockEnemyR15H10HC 1 1 0.3 0 1 1 5832
|
||||
10583 4 0 3 3 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10585 22 0 4 90 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 5839
|
||||
10591 Avatar_Heizo_ExtraAttack 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 5931
|
||||
10591 Avatar_Heizo_ExtraAttack 0 25 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 5931
|
||||
10592 10 0 1 2 CircleLockEnemyR8H6HC 1 1 0.3 0 1 5932
|
||||
10595 12 0 7 40 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 5939
|
||||
10602 13.5 0 1 22 CircleLockEnemyR15H10HC 1 1 0.3 0 1 1032
|
||||
@@ -310,8 +310,8 @@ ID Ability名称 是远程 技能CD 无视冷却缩减属性 消耗体力 消耗
|
||||
10755 15 0 7 60 1 5 CircleLockEnemyR15H10HC 1 1 0.3 0 1 7539
|
||||
10757 0 0 1 7 CircleLockEnemyR8H6HC 1 1 0.3 0 1
|
||||
10758 Avatar_Wanderer_ElementalArt_HoverAir_Shoot 0 0 1 0 CircleLockEnemyR15H10HC 1 1 0.3 0 1
|
||||
10759 0 1 1 8 CircleLockEnemyR15H10HC 1 1 0.3 0 1 1 0 1
|
||||
10750 0 1 1 9 CircleLockEnemyR15H10HC 1 1 0.3 0 1 1
|
||||
10759 0 0 1 8 CircleLockEnemyR15H10HC 1 1 0.3 0 1 1 0 1
|
||||
10750 0 0 1 9 CircleLockEnemyR15H10HC 1 1 0.3 0 1 1
|
||||
10761 Avatar_Faruzan_PressShoot 1 0 0 1 0 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10762 8 0 1 2 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
10764 Avatar_Faruzan_AimPressShoot 1 0 0 1 0 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
|
||||
|
||||
@@ -23,6 +23,10 @@ func (g *GameManager) GetAllAvatarDataConfig() map[int32]*gdconf.AvatarData {
|
||||
// 跳过主角
|
||||
continue
|
||||
}
|
||||
if avatarId >= 10000079 {
|
||||
// 跳过后续版本的角色
|
||||
continue
|
||||
}
|
||||
allAvatarDataConfig[avatarId] = avatarData
|
||||
}
|
||||
return allAvatarDataConfig
|
||||
@@ -67,8 +71,18 @@ func (g *GameManager) WearEquipReq(player *model.Player, payloadMsg pb.Message)
|
||||
req := payloadMsg.(*proto.WearEquipReq)
|
||||
avatarGuid := req.AvatarGuid
|
||||
equipGuid := req.EquipGuid
|
||||
avatar := player.GameObjectGuidMap[avatarGuid].(*model.Avatar)
|
||||
weapon := player.GameObjectGuidMap[equipGuid].(*model.Weapon)
|
||||
avatar, ok := player.GameObjectGuidMap[avatarGuid].(*model.Avatar)
|
||||
if !ok {
|
||||
logger.Error("avatar error, avatar guid: %v", avatarGuid)
|
||||
g.CommonRetError(cmd.WearEquipRsp, player, &proto.WearEquipRsp{})
|
||||
return
|
||||
}
|
||||
weapon, ok := player.GameObjectGuidMap[equipGuid].(*model.Weapon)
|
||||
if !ok {
|
||||
logger.Error("equip error, equip guid: %v", equipGuid)
|
||||
g.CommonRetError(cmd.WearEquipRsp, player, &proto.WearEquipRsp{})
|
||||
return
|
||||
}
|
||||
g.WearUserAvatarEquip(player.PlayerID, avatar.AvatarId, weapon.WeaponId)
|
||||
|
||||
wearEquipRsp := &proto.WearEquipRsp{
|
||||
@@ -203,23 +217,30 @@ func (g *GameManager) AvatarWearFlycloakReq(player *model.Player, payloadMsg pb.
|
||||
}
|
||||
|
||||
func (g *GameManager) PacketAvatarEquipChangeNotify(avatar *model.Avatar, weapon *model.Weapon, entityId uint32) *proto.AvatarEquipChangeNotify {
|
||||
itemDataConfig, ok := gdconf.CONF.ItemDataMap[int32(weapon.ItemId)]
|
||||
if !ok {
|
||||
logger.Error("item data config error, item id: %v")
|
||||
return new(proto.AvatarEquipChangeNotify)
|
||||
}
|
||||
avatarEquipChangeNotify := &proto.AvatarEquipChangeNotify{
|
||||
AvatarGuid: avatar.Guid,
|
||||
ItemId: weapon.ItemId,
|
||||
EquipGuid: weapon.Guid,
|
||||
}
|
||||
switch itemDataConfig.Type {
|
||||
case int32(constant.ItemTypeConst.ITEM_WEAPON):
|
||||
avatarEquipChangeNotify.EquipType = uint32(constant.EquipTypeConst.EQUIP_WEAPON)
|
||||
case int32(constant.ItemTypeConst.ITEM_RELIQUARY):
|
||||
avatarEquipChangeNotify.EquipType = uint32(itemDataConfig.ReliquaryType)
|
||||
}
|
||||
avatarEquipChangeNotify.Weapon = &proto.SceneWeaponInfo{
|
||||
EntityId: entityId,
|
||||
GadgetId: uint32(gdconf.CONF.ItemDataMap[int32(weapon.ItemId)].GadgetId),
|
||||
GadgetId: uint32(itemDataConfig.GadgetId),
|
||||
ItemId: weapon.ItemId,
|
||||
Guid: weapon.Guid,
|
||||
Level: uint32(weapon.Level),
|
||||
AbilityInfo: new(proto.AbilitySyncStateInfo),
|
||||
}
|
||||
itemDataConfig, exist := gdconf.CONF.ItemDataMap[int32(weapon.ItemId)]
|
||||
if exist {
|
||||
avatarEquipChangeNotify.EquipType = uint32(itemDataConfig.Type)
|
||||
}
|
||||
return avatarEquipChangeNotify
|
||||
}
|
||||
|
||||
|
||||
@@ -394,6 +394,7 @@ func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg
|
||||
}
|
||||
ok := utils.UnmarshalProtoObj(abilityMetaAddAbility, clientProtoObj, abilityInvokeEntry.AbilityData)
|
||||
if !ok {
|
||||
logger.Error("AbilityMetaAddAbility proto error")
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
@@ -421,6 +422,7 @@ func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg
|
||||
}
|
||||
ok := utils.UnmarshalProtoObj(abilityMetaModifierChange, clientProtoObj, abilityInvokeEntry.AbilityData)
|
||||
if !ok {
|
||||
logger.Error("AbilityMetaModifierChange proto error")
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -16,26 +16,30 @@ func (g *GameManager) GCGLogin(player *model.Player) {
|
||||
// player.Pos.X = 8.974
|
||||
// player.Pos.Y = 0
|
||||
// player.Pos.Z = 9.373
|
||||
// GCG基础信息
|
||||
g.SendMsg(cmd.GCGBasicDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGBasicDataNotify(player))
|
||||
// GCG等级挑战解锁
|
||||
g.SendMsg(cmd.GCGLevelChallengeNotify, player.PlayerID, player.ClientSeq, g.PacketGCGLevelChallengeNotify(player))
|
||||
// GCG禁止的卡牌
|
||||
g.SendMsg(cmd.GCGDSBanCardNotify, player.PlayerID, player.ClientSeq, g.PacketGCGDSBanCardNotify(player))
|
||||
// GCG解锁或拥有的内容
|
||||
g.SendMsg(cmd.GCGDSDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGDSDataNotify(player))
|
||||
// GCG酒馆挑战数据
|
||||
g.SendMsg(cmd.GCGTCTavernChallengeDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernChallengeDataNotify(player))
|
||||
|
||||
// GCG目前可能有点问题先不发送
|
||||
// 以后再慢慢搞
|
||||
|
||||
// // GCG基础信息
|
||||
// g.SendMsg(cmd.GCGBasicDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGBasicDataNotify(player))
|
||||
// // GCG等级挑战解锁
|
||||
// g.SendMsg(cmd.GCGLevelChallengeNotify, player.PlayerID, player.ClientSeq, g.PacketGCGLevelChallengeNotify(player))
|
||||
// // GCG禁止的卡牌
|
||||
// g.SendMsg(cmd.GCGDSBanCardNotify, player.PlayerID, player.ClientSeq, g.PacketGCGDSBanCardNotify(player))
|
||||
// // GCG解锁或拥有的内容
|
||||
// g.SendMsg(cmd.GCGDSDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGDSDataNotify(player))
|
||||
// // GCG酒馆挑战数据
|
||||
// g.SendMsg(cmd.GCGTCTavernChallengeDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernChallengeDataNotify(player))
|
||||
}
|
||||
|
||||
// GCGTavernInit GCG酒馆初始化
|
||||
func (g *GameManager) GCGTavernInit(player *model.Player) {
|
||||
if player.SceneId == 1076 {
|
||||
// GCG酒馆信息通知
|
||||
g.SendMsg(cmd.GCGTCTavernInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernInfoNotify(player))
|
||||
// GCG酒馆NPC信息通知
|
||||
g.SendMsg(cmd.GCGTavernNpcInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTavernNpcInfoNotify(player))
|
||||
}
|
||||
// if player.SceneId == 1076 {
|
||||
// // GCG酒馆信息通知
|
||||
// g.SendMsg(cmd.GCGTCTavernInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernInfoNotify(player))
|
||||
// // GCG酒馆NPC信息通知
|
||||
// g.SendMsg(cmd.GCGTavernNpcInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTavernNpcInfoNotify(player))
|
||||
// }
|
||||
}
|
||||
|
||||
// GCGStartChallenge GCG开始挑战
|
||||
|
||||
@@ -19,6 +19,7 @@ func (g *GameManager) ChangeAvatarReq(player *model.Player, payloadMsg pb.Messag
|
||||
world := WORLD_MANAGER.GetWorldByID(player.WorldId)
|
||||
scene := world.GetSceneById(player.SceneId)
|
||||
targetAvatarId := player.GetAvatarIdByGuid(targetAvatarGuid)
|
||||
logger.Error("avatarId: %v", targetAvatarGuid)
|
||||
oldAvatarId := world.GetPlayerActiveAvatarId(player)
|
||||
if targetAvatarId == oldAvatarId {
|
||||
logger.Error("can not change to the same avatar, uid: %v, oldAvatarId: %v, targetAvatarId: %v", player.PlayerID, oldAvatarId, targetAvatarId)
|
||||
|
||||
Reference in New Issue
Block a user