耐力表、武器切换、无效角色修复

This commit is contained in:
UnKownOwO
2023-02-02 15:06:38 +08:00
parent bd8a68b8d6
commit 52e0cb4586
5 changed files with 64 additions and 36 deletions
+13 -13
View File
@@ -1,15 +1,15 @@
ID Ability名称 是远程 技能CD 无视冷却缩减属性 消耗体力 消耗能量类型 消耗能量值 可累积次数 TriggerID 索敌范围 索敌公式权重1 索敌公式权重2 索敌公式权重3 索敌公式权重4 是默认镜头 支持按钮拖动 是否显示箭头 是否监控状态 默认锁定 图标名称 升级技能组ID 技能能量键值 消耗能量最小值 CanDoSkill为false强制可用 处理冷却所属技能槽 是否存档 shareCDID 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 10001 0 0 1 0 CircleLockEnemyR5H6HC 1 1 0.3 0 1 0
10002 0 1 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 1 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 1 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 10759 0 0 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 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 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 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 10764 Avatar_Faruzan_AimPressShoot 1 0 0 1 0 CircleLockEnemyR15H10HC 1 1 0.3 0 1 0
+28 -7
View File
@@ -23,6 +23,10 @@ func (g *GameManager) GetAllAvatarDataConfig() map[int32]*gdconf.AvatarData {
// 跳过主角 // 跳过主角
continue continue
} }
if avatarId >= 10000079 {
// 跳过后续版本的角色
continue
}
allAvatarDataConfig[avatarId] = avatarData allAvatarDataConfig[avatarId] = avatarData
} }
return allAvatarDataConfig return allAvatarDataConfig
@@ -67,8 +71,18 @@ func (g *GameManager) WearEquipReq(player *model.Player, payloadMsg pb.Message)
req := payloadMsg.(*proto.WearEquipReq) req := payloadMsg.(*proto.WearEquipReq)
avatarGuid := req.AvatarGuid avatarGuid := req.AvatarGuid
equipGuid := req.EquipGuid equipGuid := req.EquipGuid
avatar := player.GameObjectGuidMap[avatarGuid].(*model.Avatar) avatar, ok := player.GameObjectGuidMap[avatarGuid].(*model.Avatar)
weapon := player.GameObjectGuidMap[equipGuid].(*model.Weapon) 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) g.WearUserAvatarEquip(player.PlayerID, avatar.AvatarId, weapon.WeaponId)
wearEquipRsp := &proto.WearEquipRsp{ 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 { 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{ avatarEquipChangeNotify := &proto.AvatarEquipChangeNotify{
AvatarGuid: avatar.Guid, AvatarGuid: avatar.Guid,
ItemId: weapon.ItemId, ItemId: weapon.ItemId,
EquipGuid: weapon.Guid, 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{ avatarEquipChangeNotify.Weapon = &proto.SceneWeaponInfo{
EntityId: entityId, EntityId: entityId,
GadgetId: uint32(gdconf.CONF.ItemDataMap[int32(weapon.ItemId)].GadgetId), GadgetId: uint32(itemDataConfig.GadgetId),
ItemId: weapon.ItemId, ItemId: weapon.ItemId,
Guid: weapon.Guid, Guid: weapon.Guid,
Level: uint32(weapon.Level), Level: uint32(weapon.Level),
AbilityInfo: new(proto.AbilitySyncStateInfo), AbilityInfo: new(proto.AbilitySyncStateInfo),
} }
itemDataConfig, exist := gdconf.CONF.ItemDataMap[int32(weapon.ItemId)]
if exist {
avatarEquipChangeNotify.EquipType = uint32(itemDataConfig.Type)
}
return avatarEquipChangeNotify return avatarEquipChangeNotify
} }
+2
View File
@@ -394,6 +394,7 @@ func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg
} }
ok := utils.UnmarshalProtoObj(abilityMetaAddAbility, clientProtoObj, abilityInvokeEntry.AbilityData) ok := utils.UnmarshalProtoObj(abilityMetaAddAbility, clientProtoObj, abilityInvokeEntry.AbilityData)
if !ok { if !ok {
logger.Error("AbilityMetaAddAbility proto error")
continue continue
} }
} else { } else {
@@ -421,6 +422,7 @@ func (g *GameManager) ClientAbilityChangeNotify(player *model.Player, payloadMsg
} }
ok := utils.UnmarshalProtoObj(abilityMetaModifierChange, clientProtoObj, abilityInvokeEntry.AbilityData) ok := utils.UnmarshalProtoObj(abilityMetaModifierChange, clientProtoObj, abilityInvokeEntry.AbilityData)
if !ok { if !ok {
logger.Error("AbilityMetaModifierChange proto error")
continue continue
} }
} else { } else {
+20 -16
View File
@@ -16,26 +16,30 @@ func (g *GameManager) GCGLogin(player *model.Player) {
// player.Pos.X = 8.974 // player.Pos.X = 8.974
// player.Pos.Y = 0 // player.Pos.Y = 0
// player.Pos.Z = 9.373 // player.Pos.Z = 9.373
// GCG基础信息
g.SendMsg(cmd.GCGBasicDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGBasicDataNotify(player)) // GCG目前可能有点问题先不发送
// GCG等级挑战解锁 // 以后再慢慢搞
g.SendMsg(cmd.GCGLevelChallengeNotify, player.PlayerID, player.ClientSeq, g.PacketGCGLevelChallengeNotify(player))
// GCG禁止的卡牌 // // GCG基础信息
g.SendMsg(cmd.GCGDSBanCardNotify, player.PlayerID, player.ClientSeq, g.PacketGCGDSBanCardNotify(player)) // g.SendMsg(cmd.GCGBasicDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGBasicDataNotify(player))
// GCG解锁或拥有的内容 // // GCG等级挑战解锁
g.SendMsg(cmd.GCGDSDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGDSDataNotify(player)) // g.SendMsg(cmd.GCGLevelChallengeNotify, player.PlayerID, player.ClientSeq, g.PacketGCGLevelChallengeNotify(player))
// GCG酒馆挑战数据 // // GCG禁止的卡牌
g.SendMsg(cmd.GCGTCTavernChallengeDataNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernChallengeDataNotify(player)) // 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酒馆初始化 // GCGTavernInit GCG酒馆初始化
func (g *GameManager) GCGTavernInit(player *model.Player) { func (g *GameManager) GCGTavernInit(player *model.Player) {
if player.SceneId == 1076 { // if player.SceneId == 1076 {
// GCG酒馆信息通知 // // GCG酒馆信息通知
g.SendMsg(cmd.GCGTCTavernInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernInfoNotify(player)) // g.SendMsg(cmd.GCGTCTavernInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTCTavernInfoNotify(player))
// GCG酒馆NPC信息通知 // // GCG酒馆NPC信息通知
g.SendMsg(cmd.GCGTavernNpcInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTavernNpcInfoNotify(player)) // g.SendMsg(cmd.GCGTavernNpcInfoNotify, player.PlayerID, player.ClientSeq, g.PacketGCGTavernNpcInfoNotify(player))
} // }
} }
// GCGStartChallenge GCG开始挑战 // GCGStartChallenge GCG开始挑战
+1
View File
@@ -19,6 +19,7 @@ func (g *GameManager) ChangeAvatarReq(player *model.Player, payloadMsg pb.Messag
world := WORLD_MANAGER.GetWorldByID(player.WorldId) world := WORLD_MANAGER.GetWorldByID(player.WorldId)
scene := world.GetSceneById(player.SceneId) scene := world.GetSceneById(player.SceneId)
targetAvatarId := player.GetAvatarIdByGuid(targetAvatarGuid) targetAvatarId := player.GetAvatarIdByGuid(targetAvatarGuid)
logger.Error("avatarId: %v", targetAvatarGuid)
oldAvatarId := world.GetPlayerActiveAvatarId(player) oldAvatarId := world.GetPlayerActiveAvatarId(player)
if targetAvatarId == oldAvatarId { if targetAvatarId == oldAvatarId {
logger.Error("can not change to the same avatar, uid: %v, oldAvatarId: %v, targetAvatarId: %v", player.PlayerID, oldAvatarId, targetAvatarId) logger.Error("can not change to the same avatar, uid: %v, oldAvatarId: %v, targetAvatarId: %v", player.PlayerID, oldAvatarId, targetAvatarId)