| | |
| | | import PlayerViewCache
|
| | | import ChPyNetSendPack
|
| | | import PlayerFamilyEmblem
|
| | | #import PlayerFamilyZhenfa
|
| | | import PlayerFamilyZhenbaoge
|
| | | import PlayerFamilyTaofa
|
| | | import IPY_PlayerDefine
|
| | | import IpyGameDataPY
|
| | | import IPY_GameWorld
|
| | |
| | | family = familyManager.GetAt(i)
|
| | | familyID = family.GetID()
|
| | |
|
| | | #珍宝阁
|
| | | PlayerFamilyZhenbaoge.OnDay(family)
|
| | | PlayerFamilyTaofa.OnDay(family)
|
| | |
|
| | | for index in xrange(family.GetCount()):
|
| | | member = family.GetAt(index)
|
| | |
| | | return
|
| | | ResetDailyDonateCnt(curPlayer)
|
| | | PlayerFamilyZhenbaoge.PlayerOnDay(curPlayer)
|
| | | PlayerFamilyTaofa.PlayerOnDay(curPlayer)
|
| | | return
|
| | |
|
| | | def OnPlayerLogin(curPlayer, tick):
|
| | |
| | | PlayerLoginRefreshFamily(curPlayer, tick)
|
| | | Sync_RequestAddFamilyInfo(curPlayer, False)
|
| | | SyncDonateCntInfo(curPlayer)
|
| | | #PlayerFamilyZhenfa.OnPlayerLogin(curPlayer)
|
| | | PlayerFamilyZhenbaoge.OnPlayerLogin(curPlayer)
|
| | | PlayerFamilyTaofa.OnPlayerLogin(curPlayer)
|
| | | return
|
| | |
|
| | | def OnPlayerLogout(curPlayer):
|
| | |
| | | return
|
| | | curMember.SetOffTime(int(time.time()))
|
| | | #XW_JZ_LeaguerLeaveline <n color="0,190,255">{%S1%}</n><n color="255,255,0">下线了!</n> 25 - -
|
| | | NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerLeaveline", [curPlayer.GetPlayerName()])
|
| | | #NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerLeaveline", [curPlayer.GetPlayerName()])
|
| | | Broadcast_FamilyChange(familyID, FamilyChangeType_MemLogout, excludeIDList=[playerID])
|
| | | return
|
| | |
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, GetPack_FamilyReqJoinInfo(familyID))
|
| | |
|
| | | #XW_JZ_LeaguerOnline <n color="0,190,255">{%S1%}</n><n color="255,255,0">上线了!</n> 25 - -
|
| | | NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerOnline", [curPlayer.GetName()], [playerID])
|
| | | #NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerOnline", [curPlayer.GetName()], [playerID])
|
| | | Broadcast_FamilyChange(familyID, FamilyChangeType_MemLogin, excludeIDList=[playerID])
|
| | |
|
| | | # 盟主上线处理
|
| | |
| | |
|
| | | if DirtyList.IsWordForbidden(familyName):
|
| | | #XW_JZ_Family_NameNoLegality 对不起,家族名称中含有非法字符
|
| | | PlayerControl.NotifyCode(curPlayer, "XW_JZ_Family_NameNoLegality")
|
| | | PlayerControl.NotifyCode(curPlayer, "NameSensitive")
|
| | | return
|
| | |
|
| | | if len(familyName) <= 0 or len(familyName) > Def_CreatFamily_MaxStr:
|
| | | PlayerControl.NotifyCode(curPlayer, "GeRen_liubo_980181", [Def_CreatFamily_MaxStr / 2, Def_CreatFamily_MaxStr])
|
| | | PlayerControl.NotifyCode(curPlayer, "NameLenLimit", [Def_CreatFamily_MaxStr / 3, Def_CreatFamily_MaxStr])
|
| | | return
|
| | |
|
| | | familyMgr = DBDataMgr.GetFamilyMgr()
|
| | | if familyMgr.FindFamilyByName(fullFamilyName):
|
| | | #XW_JZ_EstablishErr_Name <n color="255,255,0">对不起,您输入的家族名已存在,建立家族失败!</n> 25 - -
|
| | | PlayerControl.NotifyCode(curPlayer, "XW_JZ_EstablishErr_Name")
|
| | | PlayerControl.NotifyCode(curPlayer, "NameExists")
|
| | | return
|
| | |
|
| | | return fullFamilyName
|
| | |
| | | maxLen = IpyGameDataPY.GetFuncCfg("FamilyNameFormat", 2)
|
| | | if len(fullName) > maxLen:
|
| | | GameWorld.ErrLog("仙盟全名 familyName=%s,全名=%s len=%s > %s, check FamilyNameFormat.txt" % (familyName, fullName, len(fullName), maxLen))
|
| | | PlayerControl.NotifyCode(curPlayer, "GeRen_liubo_980181", [maxLen / 2, maxLen])
|
| | | PlayerControl.NotifyCode(curPlayer, "NameLenLimit", [maxLen / 3, maxLen])
|
| | | return ""
|
| | |
|
| | | return fullName
|
| | |
| | | if broadcastFamilyChange:
|
| | | Broadcast_FamilyChange(familyID, FamilyChangeType_MemJoin, excludeIDList=[playerID])
|
| | | #通知所有家族成员, 这个人加入了家族
|
| | | NotifyAllFamilyMemberMsg(familyID, "XW_JZ_EnterFamily", [member.GetPlayerName()], excludeIDList=[playerID])
|
| | | #NotifyAllFamilyMemberMsg(familyID, "XW_JZ_EnterFamily", [member.GetPlayerName()], excludeIDList=[playerID])
|
| | | if jionPlayer:
|
| | | PlayerControl.NotifyCode(jionPlayer, 'XW_JZ_EnterFamilyInfo', [family.GetName()])
|
| | |
|
| | |
| | | familyMgr = DBDataMgr.GetFamilyMgr()
|
| | | familyMgr.DelPlayerReqJoinFamilyIDAll(curPlayer.GetPlayerID())
|
| | | Sync_RequestAddFamilyInfo(curPlayer)
|
| | | PlayerFamilyTaofa.OnPlayerEnterFamily(curPlayer)
|
| | | return
|
| | |
|
| | | def __OnLeaveFamily(curPlayer, isVoluntarily, tick):
|
| | |
| | | delMoney = int(nowMoney * delMoneyPer / 100.0)
|
| | | GameWorld.DebugLog(" 扣除货币: delMoneyType=%s,delMoneyPer=%s,nowMoney=%s,delMoney=%s" % (delMoneyType, delMoneyPer, nowMoney, delMoney))
|
| | | PlayerControl.PayMoney(curPlayer, delMoneyType, delMoney, "LeaveFamily")
|
| | | |
| | | PlayerFamilyTaofa.OnPlayerLeaveFamily(curPlayer)
|
| | | FBLogic.OnLeaveFamily(curPlayer, tick)
|
| | | return
|
| | |
|
| | |
| | | family = familyMgr.GetAt(index)
|
| | | if not family:
|
| | | continue
|
| | | familyID = family.GetID()
|
| | | #familyID = family.GetID()
|
| | | lvMin = family.GetJoinLVMin()
|
| | | if lvMin and realmLV < lvMin:
|
| | | GameWorld.DebugLog(" 官职不足的不处理! familyID=%s,lvMin=%s" % (familyID, lvMin), playerID)
|
| | | #GameWorld.DebugLog(" 官职不足的不处理! familyID=%s,lvMin=%s" % (familyID, lvMin), playerID)
|
| | | continue
|
| | | if family.GetJoinReview():
|
| | | GameWorld.DebugLog(" 需要审核的不处理! familyID=%s" % familyID, playerID)
|
| | | #GameWorld.DebugLog(" 需要审核的不处理! familyID=%s" % familyID, playerID)
|
| | | continue
|
| | | MemberMax = GetFamilySetting(family.GetLV(), "MemberMax")
|
| | | if family.GetCount() >= MemberMax:
|
| | | GameWorld.DebugLog(" 成员已满的不处理! familyID=%s" % familyID, playerID)
|
| | | #GameWorld.DebugLog(" 成员已满的不处理! familyID=%s" % familyID, playerID)
|
| | | continue
|
| | |
|
| | | #直接加入
|
| | |
| | |
|
| | | # 可再扩展自动请求,暂时不处理
|
| | | GameWorld.DebugLog("没有可自动进入的仙盟!")
|
| | | PlayerControl.NotifyCode(curPlayer, "QuickEnterFamilyFail")
|
| | | return
|
| | |
|
| | | def GetFamilySetting(familyLV, fieldName):
|
| | |
| | | #XW_JZ_LeaveFamily <n color="0,190,255">{%S1%}</n><n color="255,255,0">退出了家族!</n> 25 - -
|
| | | NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaveFamily", [curPlayer.GetName()])
|
| | |
|
| | | __DoPlayerLeaveFamilyByID(family, playerID, curPlayer)
|
| | | MapServer_FamilyRefresh(curPlayer, 0, 1)
|
| | |
|
| | | if family.GetCount() == 0:
|
| | |
| | |
|
| | | #删除玩家
|
| | | tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(tagMemberID)
|
| | | __DoPlayerLeaveFamilyByID(family, tagPlayerID, tagPlayer)
|
| | | if tagPlayer:
|
| | | MapServer_FamilyRefresh(tagPlayer, 0)
|
| | |
|
| | | Broadcast_FamilyChange(familyID, FamilyChangeType_MemLeave)
|
| | | return
|
| | |
|
| | | def __DoPlayerLeaveFamilyByID(curFamily, leavePlayerID, tagPlayer=None):
|
| | | ## 有玩家离开家族处理,主要针对家族层级的,玩家个人的在 __OnLeaveFamily 处理
|
| | | PlayerFamilyTaofa.OnFamilyMemberLeave(curFamily, leavePlayerID, tagPlayer)
|
| | | return
|
| | |
|
| | | #// A6 11 家族改名 #tagCMRenameFamily
|
| | |
| | | curMember.SetDonateCntTotal(memDonateCntTotal)
|
| | | GameWorld.DebugLog("家族捐献: donateType=%s,donateCnt=%s,%s,memDonateCntDay=%s,memDonateCntDay=%s"
|
| | | % (donateType, donateCnt, awardItemList, memDonateCntDay, memDonateCntTotal), playerID)
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList)
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["FamilyMoneyDonate", False, {}])
|
| | | return
|
| | |
|
| | | def ResetDailyDonateCnt(curPlayer):
|
| | |
| | | def SendFamilyActionInfo(curPlayer, familyID, actionType):
|
| | | ## 发送家族行为
|
| | | # @param curPlayer: 为None时通知该仙盟所有成员
|
| | | |
| | | if not familyID:
|
| | | return
|
| | | familyAction = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, actionType)
|
| | |
|
| | | clientPack = ChPyNetSendPack.tagMCFamilyActionInfo()
|