| | |
| | | # @param leavePlayerID 离开的玩家ID
|
| | | # @return None
|
| | | def __DoPlayerLeaveFamilyByID(curFamily, leavePlayerID, tagPlayer=None):
|
| | | PlayerCompensation.SendMailByKey("LeaveFamilyNotice", [leavePlayerID], [])
|
| | | PlayerFamilyAction.DelFamilyOfficerModelEquip(curFamily.GetID(), leavePlayerID)
|
| | | # 玩家战盟名变更处理
|
| | | __OnFamilyNameChange(leavePlayerID, '')
|
| | |
| | | # #帮会日常维持消耗{%S1%}银两帮会资金
|
| | | # PlayerControl.FamilyNotify(family.GetID(), 'jiazu_lhs_272921', [useMoney])
|
| | |
|
| | | #仙盟boss
|
| | | PlayerFamilyBoss.FamilyBossFBOnDay(family)
|
| | | #通知客户端刷新
|
| | | family.Broadcast_FamilyChange()
|
| | | #通知地图服务器刷新
|
| | |
| | | __SetFamilyActivityDayStateValue(0)
|
| | | return
|
| | |
|
| | | def FamilyOnDayEx(tick):
|
| | | familyManager = GameWorld.GetFamilyManager()
|
| | | for i in range(0, familyManager.GetCount()):
|
| | | family = familyManager.GetAt(i)
|
| | | #仙盟boss
|
| | | PlayerFamilyBoss.FamilyBossFBOnDayEx(family)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ##家族过周
|
| | |
| | | GameWorld.ErrLog("key = %s not in tagFamily.txt" % familyLv)
|
| | | return 0
|
| | | keyStr = ChConfig.FamilySettingDict[index]
|
| | | return getattr(curFamilyLvSetting, keyStr)
|
| | | return getattr(curFamilyLvSetting, "Get%s" % keyStr)()
|
| | |
|
| | |
|
| | | #===============================================================================
|
| | |
| | |
|
| | | PlayerControl.NotifyCode(curPlayer, "jiazu_pan_500807")
|
| | | return
|
| | |
|
| | | ##--------------------------------------- 仙盟传功 --------------------------------------------------
|
| | | def MapServer_FamilyChuangong(curPlayer, msgList):
|
| | | msgType, msgData = msgList
|
| | | |
| | | if msgType == "Invite":
|
| | | tagPlayerID = msgData[0]
|
| | | __DoChuangong_Invite(curPlayer, tagPlayerID)
|
| | | return
|
| | | |
| | | if msgType == "Response":
|
| | | tagPlayerID, isOK = msgData
|
| | | __DoChuangong_Response(curPlayer, tagPlayerID, isOK)
|
| | | return
|
| | | |
| | | return
|
| | |
|
| | | def __CheckChuangongPlayer(curPlayer, tagPlayerID):
|
| | | curFamily = curPlayer.GetFamily()
|
| | | if not curFamily:
|
| | | return
|
| | | tagMember = curFamily.FindMember(tagPlayerID)
|
| | | if not tagMember:
|
| | | GameWorld.DebugLog("非盟友无法传功! tagPlayerID=%s" % tagPlayerID, curPlayer.GetPlayerID())
|
| | | return
|
| | | tagPlayer = tagMember.GetPlayer()
|
| | | if not tagPlayer:
|
| | | PlayerControl.NotifyCode(curPlayer, "FairyFeastPlayerOffline")
|
| | | return
|
| | | return tagPlayer
|
| | |
|
| | | def __DoChuangong_Invite(curPlayer, tagPlayerID):
|
| | | ## 邀请
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | tagPlayer = __CheckChuangongPlayer(curPlayer, tagPlayerID)
|
| | | if not tagPlayer:
|
| | | return
|
| | | invitePlayerIDList = PyGameData.g_chuangongPlayerDict.get(playerID, [])
|
| | | if tagPlayerID not in invitePlayerIDList:
|
| | | invitePlayerIDList.append(tagPlayerID)
|
| | | PyGameData.g_chuangongPlayerDict[playerID] = invitePlayerIDList
|
| | | clientPack = ChPyNetSendPack.tagGCChuangongInviteInfo()
|
| | | clientPack.Clear()
|
| | | clientPack.PlayerID = curPlayer.GetPlayerID()
|
| | | clientPack.Name = curPlayer.GetName()
|
| | | clientPack.NameLen = len(clientPack.Name)
|
| | | clientPack.LV = curPlayer.GetLV()
|
| | | clientPack.Job = curPlayer.GetJob()
|
| | | clientPack.RealmLV = curPlayer.GetOfficialRank()
|
| | | NetPackCommon.SendFakePack(tagPlayer, clientPack)
|
| | | GameWorld.DebugLog("邀请传功: tagPlayerID=%s, %s" % (tagPlayerID, PyGameData.g_chuangongPlayerDict), playerID)
|
| | | return
|
| | |
|
| | | def __DoChuangong_Response(curPlayer, tagPlayerID, isOK):
|
| | | ## 相应
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | tagPlayer = __CheckChuangongPlayer(curPlayer, tagPlayerID)
|
| | | if not tagPlayer:
|
| | | return
|
| | | invitePlayerIDList = PyGameData.g_chuangongPlayerDict.get(tagPlayerID, [])
|
| | | if not isOK:
|
| | | if playerID in invitePlayerIDList:
|
| | | invitePlayerIDList.remove(playerID)
|
| | | PyGameData.g_chuangongPlayerDict[tagPlayerID] = invitePlayerIDList
|
| | | GameWorld.DebugLog("拒绝传功: tagPlayerID=%s, %s" % (tagPlayerID, PyGameData.g_chuangongPlayerDict), playerID)
|
| | | return
|
| | | if not invitePlayerIDList:
|
| | | PlayerControl.NotifyCode(curPlayer, "TagHadFinishChuangong")
|
| | | return |
| | | if playerID not in invitePlayerIDList:
|
| | | GameWorld.DebugLog("不在对方邀请列表了,无法传功: tagPlayerID=%s, %s" % (tagPlayerID, invitePlayerIDList), playerID)
|
| | | return
|
| | | PyGameData.g_chuangongPlayerDict.pop(tagPlayerID)
|
| | | |
| | | # 通知双方开始传功
|
| | | __NotifyChuangongStart(curPlayer, tagPlayer)
|
| | | __NotifyChuangongStart(tagPlayer, curPlayer)
|
| | | return
|
| | |
|
| | | def __NotifyChuangongStart(curPlayer, tagPlayer):
|
| | | clientPack = ChPyNetSendPack.tagGCChuangongStart()
|
| | | clientPack.Clear()
|
| | | clientPack.PlayerID = tagPlayer.GetPlayerID()
|
| | | clientPack.Name = tagPlayer.GetName()
|
| | | clientPack.NameLen = len(clientPack.Name)
|
| | | clientPack.LV = tagPlayer.GetLV()
|
| | | clientPack.Job = tagPlayer.GetJob()
|
| | | clientPack.RealmLV = tagPlayer.GetOfficialRank()
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | ##--------------------------------------------------------------------------------------------------
|
| | |
|