| | |
| | | import IPY_GameWorld
|
| | | import ItemControler
|
| | | import GameFuncComm
|
| | | import ItemCommon
|
| | | import DBDataMgr
|
| | | import DirtyList
|
| | | import ObjPool
|
| | |
| | | curMember.SetOffTime(0) # 在线0,脱机1,>1离线时间
|
| | | curMember.RefreshMember(curPlayer)
|
| | | Sync_FamilyInfo(curPlayer)
|
| | | SendFamilyActionInfo(curPlayer, familyID, ShareDefine.Def_ActionType_FamilyData)
|
| | |
|
| | | #通知招人
|
| | | if GetFamilyMemberHasPow(curMember, FamilyPowerID_Call):
|
| | |
| | | #战力刷新在DBFamily.OnMinute
|
| | | PlayerFamilyEmblem.CheckExpireEmblem()
|
| | | return
|
| | |
|
| | | def RefreshFamilyMember(curPlayer):
|
| | | ## 玩家成员相关属性变更时同步更新家族成员信息
|
| | | familyID = curPlayer.GetFamilyID()
|
| | | if not familyID:
|
| | | return
|
| | | familyMgr = DBDataMgr.GetFamilyMgr()
|
| | | family = familyMgr.FindFamily(familyID)
|
| | | if not family:
|
| | | return
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | member = family.FindMember(playerID)
|
| | | if not member:
|
| | | return
|
| | | member.RefreshMember(curPlayer)
|
| | | return
|
| | |
|
| | | def GetRenameTime(dataAction): return dataAction.GetValue1()
|
| | | def SetRenameTime(dataAction, setTime): dataAction.SetValue1(setTime)
|
| | | def GetFamilyDataAction(familyID):
|
| | | ## 家族额外数据存储的行为数据,可以视为Family公共数据的一个扩展
|
| | | action = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, ShareDefine.Def_ActionType_FamilyData)
|
| | | return action.GetOneAction(True)
|
| | |
|
| | | #// A6 04 创建家族 #tagCMCreateFamily
|
| | | #
|
| | |
| | | memInfo.RealmLV = member.GetRealmLV()
|
| | | memInfo.Face = member.GetFace()
|
| | | memInfo.FacePic = member.GetFacePic()
|
| | | memInfo.TitleID = member.GetTitleID()
|
| | | memInfo.FightPower = member.GetFightPower()
|
| | | memInfo.FightPowerEx = member.GetFightPowerEx()
|
| | | memInfo.FmLV = member.GetFmLV()
|
| | |
| | | reqInfo.RealmLV = viewCache.GetRealmLV()
|
| | | reqInfo.Face = viewCache.GetFace()
|
| | | reqInfo.FacePic = viewCache.GetFacePic()
|
| | | reqInfo.TitleID = viewCache.GetTitleID()
|
| | | reqInfo.FightPower = viewCache.GetFightPower()
|
| | | reqInfo.FightPowerEx = viewCache.GetFightPowerEx()
|
| | | reqInfo.ServerID = viewCache.GetServerID()
|
| | |
| | | def UpdateFamilyName(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | newName = clientData.NewName
|
| | | itemIndex = clientData.ItemIndex
|
| | | #itemIndex = clientData.ItemIndex
|
| | |
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | familyID = curPlayer.GetFamilyID()
|
| | |
| | | GameWorld.DebugLog("非盟主不可改名!", playerID)
|
| | | return
|
| | |
|
| | | cdHours = IpyGameDataPY.GetFuncCfg("FamilyRename", 2)
|
| | | if cdHours:
|
| | | cdSeconds = cdHours * 3600
|
| | | curTime = int(time.time())
|
| | | dataAction = GetFamilyDataAction(familyID)
|
| | | lastRenameTime = GetRenameTime(dataAction)
|
| | | if lastRenameTime and (curTime - lastRenameTime) < cdSeconds:
|
| | | GameWorld.DebugLog("仙盟改名CD中! lastRenameTime=%s,cdHours=%s" % (GameWorld.ChangeTimeNumToStr(lastRenameTime), cdHours))
|
| | | return
|
| | | |
| | | familyName = CheckInputFamilyName(curPlayer, newName)
|
| | | if not familyName:
|
| | | return
|
| | |
|
| | | itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | curItem = itemPack.GetAt(itemIndex)
|
| | | if not ItemCommon.CheckItemCanUse(curItem) or curItem.GetType() != ChConfig.Def_ItemType_ChangeFamilyName:
|
| | | GameWorld.DebugLog("没有仙盟改名道具! itemIndex=%s" % itemIndex, playerID)
|
| | | moneyType, moneyValue = IpyGameDataPY.GetFuncEvalCfg("FamilyRename", 1)
|
| | | if moneyType and moneyValue and not PlayerControl.PayMoney(curPlayer, moneyType, moneyValue, "FamilyRename"):
|
| | | return
|
| | | ItemCommon.DelItem(curPlayer, curItem, 1, True, 'UpdateFamilyName')
|
| | |
|
| | | #oldName = curFamily.GetName()
|
| | | family.SetName(familyName)
|
| | |
|
| | | infoPack = GetPack_FamilyInfo(familyID)
|
| | |
| | | continue
|
| | | Sync_FamilyInfo(player, infoPack)
|
| | | player.SetFamilyName(familyName)
|
| | | player.Notify_FamilyNameRefresh() #//04 36 周围玩家家族名刷新#tagPlayerFamilyNameRefresh
|
| | | #player.Notify_FamilyNameRefresh() #//04 36 周围玩家家族名刷新#tagPlayerFamilyNameRefresh
|
| | |
|
| | | #PlayerCompensation.SendMailByKey('FamilyNameChange', memberIDList, [], [oldName, familyName]) |
| | | #PlayerControl.WorldNotify(0, 'Family_ChangeName', [oldName, familyName])
|
| | | if cdHours:
|
| | | SetRenameTime(dataAction, curTime)
|
| | | SendFamilyActionInfo(None, familyID, ShareDefine.Def_ActionType_FamilyData)
|
| | | return
|
| | |
|
| | | #// A6 20 搜索家族列表 #tagCMViewFamilyPage
|