mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-03-01 00:35:36 +08:00
完善多人世界队伍
This commit is contained in:
@@ -21,18 +21,14 @@ func (g *GameManager) ChangeAvatarReq(player *model.Player, payloadMsg pb.Messag
|
||||
scene := world.GetSceneById(player.SceneId)
|
||||
playerTeamEntity := scene.GetPlayerTeamEntity(player.PlayerID)
|
||||
|
||||
oldAvatarId := player.TeamConfig.GetActiveAvatarId()
|
||||
oldAvatarId := world.GetPlayerActiveAvatarId(player)
|
||||
oldAvatar := player.AvatarMap[oldAvatarId]
|
||||
if oldAvatar.Guid == targetAvatarGuid {
|
||||
logger.LOG.Error("can not change to the same avatar, uid: %v, oldAvatarId: %v, oldAvatarGuid: %v", player.PlayerID, oldAvatarId, oldAvatar.Guid)
|
||||
return
|
||||
}
|
||||
activeTeam := player.TeamConfig.GetActiveTeam()
|
||||
index := -1
|
||||
for avatarIndex, avatarId := range activeTeam.AvatarIdList {
|
||||
if avatarId == 0 {
|
||||
break
|
||||
}
|
||||
for avatarIndex, avatarId := range world.GetPlayerAvatarIdList(player) {
|
||||
if targetAvatarGuid == player.AvatarMap[avatarId].Guid {
|
||||
index = avatarIndex
|
||||
}
|
||||
@@ -42,6 +38,7 @@ func (g *GameManager) ChangeAvatarReq(player *model.Player, payloadMsg pb.Messag
|
||||
return
|
||||
}
|
||||
player.TeamConfig.CurrAvatarIndex = uint8(index)
|
||||
world.SetPlayerLocalAvatarIndex(player, index)
|
||||
|
||||
entity := scene.GetEntity(playerTeamEntity.avatarEntityMap[oldAvatarId])
|
||||
if entity == nil {
|
||||
@@ -57,10 +54,12 @@ func (g *GameManager) ChangeAvatarReq(player *model.Player, payloadMsg pb.Messag
|
||||
g.SendMsg(cmd.SceneEntityDisappearNotify, scenePlayer.PlayerID, scenePlayer.ClientSeq, sceneEntityDisappearNotify)
|
||||
}
|
||||
|
||||
newAvatarId := world.GetPlayerActiveAvatarId(player)
|
||||
newAvatarEntity := g.PacketSceneEntityInfoAvatar(scene, player, newAvatarId)
|
||||
sceneEntityAppearNotify := &proto.SceneEntityAppearNotify{
|
||||
AppearType: proto.VisionType_VISION_TYPE_REPLACE,
|
||||
Param: playerTeamEntity.avatarEntityMap[oldAvatarId],
|
||||
EntityList: []*proto.SceneEntityInfo{g.PacketSceneEntityInfoAvatar(scene, player, player.TeamConfig.GetActiveAvatarId())},
|
||||
EntityList: []*proto.SceneEntityInfo{newAvatarEntity},
|
||||
}
|
||||
for _, scenePlayer := range scene.playerMap {
|
||||
g.SendMsg(cmd.SceneEntityAppearNotify, scenePlayer.PlayerID, scenePlayer.ClientSeq, sceneEntityAppearNotify)
|
||||
@@ -74,25 +73,22 @@ func (g *GameManager) ChangeAvatarReq(player *model.Player, payloadMsg pb.Messag
|
||||
}
|
||||
|
||||
func (g *GameManager) SetUpAvatarTeamReq(player *model.Player, payloadMsg pb.Message) {
|
||||
logger.LOG.Debug("user change team, uid: %v", player.PlayerID)
|
||||
logger.LOG.Debug("user change team avatar, uid: %v", player.PlayerID)
|
||||
req := payloadMsg.(*proto.SetUpAvatarTeamReq)
|
||||
|
||||
world := WORLD_MANAGER.GetWorldByID(player.WorldId)
|
||||
if world.multiplayer {
|
||||
g.CommonRetError(cmd.SetUpAvatarTeamRsp, player, &proto.SetUpAvatarTeamRsp{})
|
||||
return
|
||||
}
|
||||
teamId := req.TeamId
|
||||
if teamId <= 0 || teamId >= 5 {
|
||||
setUpAvatarTeamRsp := &proto.SetUpAvatarTeamRsp{
|
||||
Retcode: int32(proto.Retcode_RET_SVR_ERROR),
|
||||
}
|
||||
g.SendMsg(cmd.SetUpAvatarTeamRsp, player.PlayerID, player.ClientSeq, setUpAvatarTeamRsp)
|
||||
g.CommonRetError(cmd.SetUpAvatarTeamRsp, player, &proto.SetUpAvatarTeamRsp{})
|
||||
return
|
||||
}
|
||||
avatarGuidList := req.AvatarTeamGuidList
|
||||
world := WORLD_MANAGER.GetWorldByID(player.WorldId)
|
||||
selfTeam := teamId == uint32(player.TeamConfig.GetActiveTeamId())
|
||||
if (selfTeam && len(avatarGuidList) == 0) || len(avatarGuidList) > 4 || world.multiplayer {
|
||||
setUpAvatarTeamRsp := &proto.SetUpAvatarTeamRsp{
|
||||
Retcode: int32(proto.Retcode_RET_SVR_ERROR),
|
||||
}
|
||||
g.SendMsg(cmd.SetUpAvatarTeamRsp, player.PlayerID, player.ClientSeq, setUpAvatarTeamRsp)
|
||||
if (selfTeam && len(avatarGuidList) == 0) || len(avatarGuidList) > 4 {
|
||||
g.CommonRetError(cmd.SetUpAvatarTeamRsp, player, &proto.SetUpAvatarTeamRsp{})
|
||||
return
|
||||
}
|
||||
avatarIdList := make([]uint32, 0)
|
||||
@@ -104,17 +100,7 @@ func (g *GameManager) SetUpAvatarTeamReq(player *model.Player, payloadMsg pb.Mes
|
||||
}
|
||||
}
|
||||
player.TeamConfig.ClearTeamAvatar(uint8(teamId - 1))
|
||||
for _, avatarId := range avatarIdList {
|
||||
player.TeamConfig.AddAvatarToTeam(avatarId, uint8(teamId-1))
|
||||
}
|
||||
|
||||
if world.multiplayer {
|
||||
setUpAvatarTeamRsp := &proto.SetUpAvatarTeamRsp{
|
||||
Retcode: int32(proto.Retcode_RET_SVR_ERROR),
|
||||
}
|
||||
g.SendMsg(cmd.SetUpAvatarTeamRsp, player.PlayerID, player.ClientSeq, setUpAvatarTeamRsp)
|
||||
return
|
||||
}
|
||||
player.TeamConfig.SetTeamAvatar(uint8(teamId-1), avatarIdList)
|
||||
|
||||
avatarTeamUpdateNotify := &proto.AvatarTeamUpdateNotify{
|
||||
AvatarTeamMap: make(map[uint32]*proto.AvatarTeam),
|
||||
@@ -124,10 +110,7 @@ func (g *GameManager) SetUpAvatarTeamReq(player *model.Player, payloadMsg pb.Mes
|
||||
TeamName: team.Name,
|
||||
AvatarGuidList: make([]uint64, 0),
|
||||
}
|
||||
for _, avatarId := range team.AvatarIdList {
|
||||
if avatarId == 0 {
|
||||
break
|
||||
}
|
||||
for _, avatarId := range team.GetAvatarIdList() {
|
||||
avatarTeam.AvatarGuidList = append(avatarTeam.AvatarGuidList, player.AvatarMap[avatarId].Guid)
|
||||
}
|
||||
avatarTeamUpdateNotify.AvatarTeamMap[uint32(teamIndex)+1] = avatarTeam
|
||||
@@ -137,40 +120,27 @@ func (g *GameManager) SetUpAvatarTeamReq(player *model.Player, payloadMsg pb.Mes
|
||||
if selfTeam {
|
||||
player.TeamConfig.CurrAvatarIndex = 0
|
||||
player.TeamConfig.UpdateTeam()
|
||||
world.SetPlayerLocalAvatarIndex(player, 0)
|
||||
world.SetPlayerLocalTeam(player, avatarIdList)
|
||||
world.UpdateMultiplayerTeam()
|
||||
scene := world.GetSceneById(player.SceneId)
|
||||
scene.UpdatePlayerTeamEntity(player)
|
||||
|
||||
sceneTeamUpdateNotify := g.PacketSceneTeamUpdateNotify(world)
|
||||
g.SendMsg(cmd.SceneTeamUpdateNotify, player.PlayerID, player.ClientSeq, sceneTeamUpdateNotify)
|
||||
|
||||
setUpAvatarTeamRsp := &proto.SetUpAvatarTeamRsp{
|
||||
TeamId: teamId,
|
||||
CurAvatarGuid: player.AvatarMap[player.TeamConfig.GetActiveAvatarId()].Guid,
|
||||
AvatarTeamGuidList: make([]uint64, 0),
|
||||
}
|
||||
team := player.TeamConfig.GetTeamByIndex(uint8(teamId - 1))
|
||||
for _, avatarId := range team.AvatarIdList {
|
||||
if avatarId == 0 {
|
||||
break
|
||||
}
|
||||
setUpAvatarTeamRsp.AvatarTeamGuidList = append(setUpAvatarTeamRsp.AvatarTeamGuidList, player.AvatarMap[avatarId].Guid)
|
||||
}
|
||||
g.SendMsg(cmd.SetUpAvatarTeamRsp, player.PlayerID, player.ClientSeq, setUpAvatarTeamRsp)
|
||||
} else {
|
||||
setUpAvatarTeamRsp := &proto.SetUpAvatarTeamRsp{
|
||||
TeamId: teamId,
|
||||
CurAvatarGuid: player.AvatarMap[player.TeamConfig.GetActiveAvatarId()].Guid,
|
||||
AvatarTeamGuidList: make([]uint64, 0),
|
||||
}
|
||||
team := player.TeamConfig.GetTeamByIndex(uint8(teamId - 1))
|
||||
for _, avatarId := range team.AvatarIdList {
|
||||
if avatarId == 0 {
|
||||
break
|
||||
}
|
||||
setUpAvatarTeamRsp.AvatarTeamGuidList = append(setUpAvatarTeamRsp.AvatarTeamGuidList, player.AvatarMap[avatarId].Guid)
|
||||
}
|
||||
g.SendMsg(cmd.SetUpAvatarTeamRsp, player.PlayerID, player.ClientSeq, setUpAvatarTeamRsp)
|
||||
}
|
||||
|
||||
activeAvatarId := world.GetPlayerActiveAvatarId(player)
|
||||
setUpAvatarTeamRsp := &proto.SetUpAvatarTeamRsp{
|
||||
TeamId: teamId,
|
||||
CurAvatarGuid: player.AvatarMap[activeAvatarId].Guid,
|
||||
AvatarTeamGuidList: make([]uint64, 0),
|
||||
}
|
||||
team := player.TeamConfig.GetTeamByIndex(uint8(teamId - 1))
|
||||
for _, avatarId := range team.GetAvatarIdList() {
|
||||
setUpAvatarTeamRsp.AvatarTeamGuidList = append(setUpAvatarTeamRsp.AvatarTeamGuidList, player.AvatarMap[avatarId].Guid)
|
||||
}
|
||||
g.SendMsg(cmd.SetUpAvatarTeamRsp, player.PlayerID, player.ClientSeq, setUpAvatarTeamRsp)
|
||||
}
|
||||
|
||||
func (g *GameManager) ChooseCurAvatarTeamReq(player *model.Player, payloadMsg pb.Message) {
|
||||
@@ -179,15 +149,19 @@ func (g *GameManager) ChooseCurAvatarTeamReq(player *model.Player, payloadMsg pb
|
||||
teamId := req.TeamId
|
||||
world := WORLD_MANAGER.GetWorldByID(player.WorldId)
|
||||
if world.multiplayer {
|
||||
g.CommonRetError(cmd.ChooseCurAvatarTeamRsp, player, &proto.ChooseCurAvatarTeamRsp{})
|
||||
return
|
||||
}
|
||||
team := player.TeamConfig.GetTeamByIndex(uint8(teamId) - 1)
|
||||
if team == nil || len(team.AvatarIdList) == 0 {
|
||||
if team == nil || len(team.GetAvatarIdList()) == 0 {
|
||||
return
|
||||
}
|
||||
player.TeamConfig.CurrTeamIndex = uint8(teamId) - 1
|
||||
player.TeamConfig.CurrAvatarIndex = 0
|
||||
player.TeamConfig.UpdateTeam()
|
||||
world.SetPlayerLocalAvatarIndex(player, 0)
|
||||
world.SetPlayerLocalTeam(player, team.GetAvatarIdList())
|
||||
world.UpdateMultiplayerTeam()
|
||||
scene := world.GetSceneById(player.SceneId)
|
||||
scene.UpdatePlayerTeamEntity(player)
|
||||
|
||||
@@ -201,17 +175,13 @@ func (g *GameManager) ChooseCurAvatarTeamReq(player *model.Player, payloadMsg pb
|
||||
}
|
||||
|
||||
func (g *GameManager) ChangeMpTeamAvatarReq(player *model.Player, payloadMsg pb.Message) {
|
||||
logger.LOG.Debug("user change mp team, uid: %v", player.PlayerID)
|
||||
logger.LOG.Debug("user change mp team avatar, uid: %v", player.PlayerID)
|
||||
req := payloadMsg.(*proto.ChangeMpTeamAvatarReq)
|
||||
currAvatarGuid := req.CurAvatarGuid
|
||||
avatarGuidList := req.AvatarGuidList
|
||||
|
||||
world := WORLD_MANAGER.GetWorldByID(player.WorldId)
|
||||
if len(avatarGuidList) == 0 || len(avatarGuidList) > 4 || !world.multiplayer {
|
||||
changeMpTeamAvatarRsp := &proto.ChangeMpTeamAvatarRsp{
|
||||
Retcode: int32(proto.Retcode_RET_SVR_ERROR),
|
||||
}
|
||||
g.SendMsg(cmd.ChangeMpTeamAvatarRsp, player.PlayerID, player.ClientSeq, changeMpTeamAvatarRsp)
|
||||
if !world.multiplayer || len(avatarGuidList) == 0 || len(avatarGuidList) > 4 {
|
||||
g.CommonRetError(cmd.ChangeMpTeamAvatarRsp, player, &proto.ChangeMpTeamAvatarRsp{})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -221,26 +191,14 @@ func (g *GameManager) ChangeMpTeamAvatarReq(player *model.Player, payloadMsg pb.
|
||||
avatarIdList = append(avatarIdList, avatarId)
|
||||
}
|
||||
world.SetPlayerLocalTeam(player, avatarIdList)
|
||||
|
||||
currAvatarId := player.GetAvatarIdByGuid(currAvatarGuid)
|
||||
localTeam := world.multiplayerTeam.localTeamMap[player.PlayerID]
|
||||
avatarIndex := 0
|
||||
for index, worldTeamAvatar := range localTeam {
|
||||
if worldTeamAvatar.avatarId == 0 {
|
||||
continue
|
||||
}
|
||||
if worldTeamAvatar.avatarId == currAvatarId {
|
||||
avatarIndex = index
|
||||
}
|
||||
}
|
||||
world.SetPlayerLocalAvatarIndex(player, avatarIndex)
|
||||
world.SetPlayerLocalAvatarIndex(player, 0)
|
||||
|
||||
world.UpdateMultiplayerTeam()
|
||||
scene := world.GetSceneById(player.SceneId)
|
||||
scene.UpdatePlayerTeamEntity(player)
|
||||
|
||||
for _, worldPlayer := range world.playerMap {
|
||||
sceneTeamUpdateNotify := g.PacketSceneTeamUpdateNotifyMp(world)
|
||||
sceneTeamUpdateNotify := g.PacketSceneTeamUpdateNotify(world)
|
||||
g.SendMsg(cmd.SceneTeamUpdateNotify, worldPlayer.PlayerID, worldPlayer.ClientSeq, sceneTeamUpdateNotify)
|
||||
}
|
||||
|
||||
@@ -259,113 +217,7 @@ func (g *GameManager) PacketSceneTeamUpdateNotify(world *World) *proto.SceneTeam
|
||||
IsInMp: world.multiplayer,
|
||||
}
|
||||
empty := new(proto.AbilitySyncStateInfo)
|
||||
for _, worldPlayer := range world.playerMap {
|
||||
worldPlayerScene := world.GetSceneById(worldPlayer.SceneId)
|
||||
worldPlayerTeamEntity := worldPlayerScene.GetPlayerTeamEntity(worldPlayer.PlayerID)
|
||||
team := worldPlayer.TeamConfig.GetActiveTeam()
|
||||
for _, avatarId := range team.AvatarIdList {
|
||||
if avatarId == 0 {
|
||||
break
|
||||
}
|
||||
worldPlayerAvatar := worldPlayer.AvatarMap[avatarId]
|
||||
equipIdList := make([]uint32, 0)
|
||||
weapon := worldPlayerAvatar.EquipWeapon
|
||||
equipIdList = append(equipIdList, weapon.ItemId)
|
||||
for _, reliquary := range worldPlayerAvatar.EquipReliquaryList {
|
||||
equipIdList = append(equipIdList, reliquary.ItemId)
|
||||
}
|
||||
sceneTeamAvatar := &proto.SceneTeamAvatar{
|
||||
PlayerUid: worldPlayer.PlayerID,
|
||||
AvatarGuid: worldPlayerAvatar.Guid,
|
||||
SceneId: worldPlayer.SceneId,
|
||||
EntityId: worldPlayerTeamEntity.avatarEntityMap[avatarId],
|
||||
SceneEntityInfo: g.PacketSceneEntityInfoAvatar(worldPlayerScene, worldPlayer, avatarId),
|
||||
WeaponGuid: worldPlayerAvatar.EquipWeapon.Guid,
|
||||
WeaponEntityId: worldPlayerTeamEntity.weaponEntityMap[worldPlayerAvatar.EquipWeapon.WeaponId],
|
||||
IsPlayerCurAvatar: worldPlayer.TeamConfig.GetActiveAvatarId() == avatarId,
|
||||
IsOnScene: worldPlayer.TeamConfig.GetActiveAvatarId() == avatarId,
|
||||
AvatarAbilityInfo: empty,
|
||||
WeaponAbilityInfo: empty,
|
||||
AbilityControlBlock: new(proto.AbilityControlBlock),
|
||||
}
|
||||
if world.multiplayer {
|
||||
sceneTeamAvatar.AvatarInfo = g.PacketAvatarInfo(worldPlayerAvatar)
|
||||
sceneTeamAvatar.SceneAvatarInfo = g.PacketSceneAvatarInfo(worldPlayerScene, worldPlayer, avatarId)
|
||||
}
|
||||
// add AbilityControlBlock
|
||||
avatarDataConfig := gdc.CONF.AvatarDataMap[int32(avatarId)]
|
||||
acb := sceneTeamAvatar.AbilityControlBlock
|
||||
embryoId := 0
|
||||
// add avatar abilities
|
||||
if avatarDataConfig != nil {
|
||||
for _, abilityId := range avatarDataConfig.Abilities {
|
||||
embryoId++
|
||||
emb := &proto.AbilityEmbryo{
|
||||
AbilityId: uint32(embryoId),
|
||||
AbilityNameHash: uint32(abilityId),
|
||||
AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
}
|
||||
// add default abilities
|
||||
for _, abilityId := range constant.GameConstantConst.DEFAULT_ABILITY_HASHES {
|
||||
embryoId++
|
||||
emb := &proto.AbilityEmbryo{
|
||||
AbilityId: uint32(embryoId),
|
||||
AbilityNameHash: uint32(abilityId),
|
||||
AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
// add team resonances
|
||||
for id := range worldPlayer.TeamConfig.TeamResonancesConfig {
|
||||
embryoId++
|
||||
emb := &proto.AbilityEmbryo{
|
||||
AbilityId: uint32(embryoId),
|
||||
AbilityNameHash: uint32(id),
|
||||
AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
// add skill depot abilities
|
||||
skillDepot := gdc.CONF.AvatarSkillDepotDataMap[int32(worldPlayerAvatar.SkillDepotId)]
|
||||
if skillDepot != nil && len(skillDepot.Abilities) != 0 {
|
||||
for _, id := range skillDepot.Abilities {
|
||||
embryoId++
|
||||
emb := &proto.AbilityEmbryo{
|
||||
AbilityId: uint32(embryoId),
|
||||
AbilityNameHash: uint32(id),
|
||||
AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
}
|
||||
// add equip abilities
|
||||
for skill := range worldPlayerAvatar.ExtraAbilityEmbryos {
|
||||
embryoId++
|
||||
emb := &proto.AbilityEmbryo{
|
||||
AbilityId: uint32(embryoId),
|
||||
AbilityNameHash: uint32(endec.Hk4eAbilityHashCode(skill)),
|
||||
AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
sceneTeamUpdateNotify.SceneTeamAvatarList = append(sceneTeamUpdateNotify.SceneTeamAvatarList, sceneTeamAvatar)
|
||||
}
|
||||
}
|
||||
return sceneTeamUpdateNotify
|
||||
}
|
||||
|
||||
func (g *GameManager) PacketSceneTeamUpdateNotifyMp(world *World) *proto.SceneTeamUpdateNotify {
|
||||
sceneTeamUpdateNotify := &proto.SceneTeamUpdateNotify{
|
||||
IsInMp: world.multiplayer,
|
||||
}
|
||||
empty := new(proto.AbilitySyncStateInfo)
|
||||
for _, worldTeamAvatar := range world.multiplayerTeam.worldTeam {
|
||||
if worldTeamAvatar.avatarId == 0 {
|
||||
continue
|
||||
}
|
||||
for _, worldTeamAvatar := range world.GetWorldTeamAvatarList() {
|
||||
worldPlayer := USER_MANAGER.GetOnlineUser(worldTeamAvatar.uid)
|
||||
worldPlayerScene := world.GetSceneById(worldPlayer.SceneId)
|
||||
worldPlayerTeamEntity := worldPlayerScene.GetPlayerTeamEntity(worldPlayer.PlayerID)
|
||||
@@ -420,16 +272,16 @@ func (g *GameManager) PacketSceneTeamUpdateNotifyMp(world *World) *proto.SceneTe
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
// add team resonances
|
||||
for id := range worldPlayer.TeamConfig.TeamResonancesConfig {
|
||||
embryoId++
|
||||
emb := &proto.AbilityEmbryo{
|
||||
AbilityId: uint32(embryoId),
|
||||
AbilityNameHash: uint32(id),
|
||||
AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
}
|
||||
acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
}
|
||||
//// add team resonances
|
||||
//for id := range worldPlayer.TeamConfig.TeamResonancesConfig {
|
||||
// embryoId++
|
||||
// emb := &proto.AbilityEmbryo{
|
||||
// AbilityId: uint32(embryoId),
|
||||
// AbilityNameHash: uint32(id),
|
||||
// AbilityOverrideNameHash: uint32(constant.GameConstantConst.DEFAULT_ABILITY_NAME),
|
||||
// }
|
||||
// acb.AbilityEmbryoList = append(acb.AbilityEmbryoList, emb)
|
||||
//}
|
||||
// add skill depot abilities
|
||||
skillDepot := gdc.CONF.AvatarSkillDepotDataMap[int32(worldPlayerAvatar.SkillDepotId)]
|
||||
if skillDepot != nil && len(skillDepot.Abilities) != 0 {
|
||||
|
||||
Reference in New Issue
Block a user