From cb45ad934671c0c54c1024f834e630109dfa5c73 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 14 四月 2025 15:01:13 +0800 Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(增加查看其他指定仙盟/跨服仙盟支持;增加领取点赞奖励;修改仙盟轮次伤害计算规则受当前城池剩余生命影响;) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 72 ++++++++++++++++++++++++++++++++++++ 1 files changed, 72 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py index ff60117..d190580 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py @@ -919,6 +919,63 @@ PlayerFamilyEmblem.OnChangeFamilyEmblem(curPlayer, changeEmblemID) return +#// A4 14 查看目标仙盟 #tagCGViewTagFamily +# +#struct tagCGViewTagFamily +#{ +# tagHead Head; +# DWORD TagFamilyID; // 目标仙盟ID,支持查看跨服仙盟 +#}; +def OnViewTagFamily(index, clientData, tick): + curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) + playerID = curPlayer.GetPlayerID() + tagFamilyID = clientData.TagFamilyID + clientPack = __GetTagFamilyInfoPack(tagFamilyID) + if not clientPack: + # 发送跨服服务器查询,可能是跨服仙盟 + dataMsg = {"playerID":playerID, "tagFamilyID":tagFamilyID} + CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryCrossFamily, dataMsg) + return + NetPackCommon.SendFakePack(curPlayer, clientPack) + return + +def __GetTagFamilyInfoPack(tagFamilyID): + ## 获取查看目标仙盟同步封包 + familyManager = GameWorld.GetFamilyManager() + family = familyManager.FindFamily(tagFamilyID) + if not family: + return + clientPack = ChPyNetSendPack.tagGCTagFamilyInfo() + clientPack.FamilyID = tagFamilyID + clientPack.FamilyName = family.GetName() + clientPack.FamilyLV = family.GetLV() + clientPack.Broadcast = family.GetBroadcast() + clientPack.BroadcastLen = len(clientPack.Broadcast) + clientPack.Member = [] + for index in range(family.GetCount()): + curMember = family.GetAt(index) + mem = ChPyNetSendPack.tagGCTagFamilyMember() + mem.PlayerID = curMember.GetPlayerID() + mem.Name = curMember.GetName() + mem.NameLen = len(mem.Name) + mem.FamilyLV = curMember.GetFamilyLV() + mem.LV = curMember.GetLV() + mem.Job = curMember.GetJob() + mem.Face = curMember.GetFace() + mem.FacePic = curMember.GetFacePic() + mem.OfficialRank = curMember.GetOfficialRank() + fightPower = GetMemberFightPower(curMember) + mem.FightPower = fightPower % ChConfig.Def_PerPointValue + mem.FightPowerEx = fightPower / ChConfig.Def_PerPointValue + clientPack.Member.append(mem) + clientPack.MemberCount = len(clientPack.Member) + familyFightPower = GetFamilyTotalFightPower(family) + clientPack.FightPower = familyFightPower % ChConfig.Def_PerPointValue + clientPack.FightPowerEx = familyFightPower / ChConfig.Def_PerPointValue + clientPack.EmblemID = GetFamilyEmblemID(family) + clientPack.ServerID = family.GetServerID() + return clientPack + #class IPY_CFamilyChangeBroadcast #{ #public: @@ -4193,3 +4250,18 @@ return +def ClientServerMsg_QueryCrossFamily(serverGroupID, msgData): + ## 子服查询跨服仙盟 + playerID = msgData["playerID"] + tagFamilyID = msgData.get("tagFamilyID", 0) + if tagFamilyID: + clientPack = __GetTagFamilyInfoPack(tagFamilyID) + if clientPack: + NetPackCommon.SendFakePackByCross({playerID:serverGroupID}, clientPack) + else: + PlayerControl.NotifyCodeCross(serverGroupID, playerID, "TagFamilyNotExist") + return + + # 可扩展查看跨服仙盟列表信息... + + return -- Gitblit v1.8.0