| | |
| | | import GameWorld
|
| | | import ShareDefine
|
| | | import PlayerControl
|
| | | import PlayerViewCache
|
| | | import PyMongoMain
|
| | | import DBDataMgr
|
| | | import ChConfig
|
| | | import DBComm
|
| | |
| | | self.__actionDataList.append(actionData)
|
| | | return actionData
|
| | |
|
| | | def AddAction(self, fullClear=True):
|
| | | def AddAction(self, maxCount=None):
|
| | | ## 添加仙盟Action数据
|
| | | # @param fullClear: 数据条数超过最大数时是否清除最早一条,并创建一条新记录
|
| | | # @param maxCount: 可传入由配置决定的最大条数,如果为None则进一步取程序默认设定的最大条数,都没配置的话默认不限条数
|
| | |
|
| | | fullClear = True
|
| | | if maxCount == None:
|
| | | maxCount = ShareDefine.ActionTypeSaveCnt.get(self.actionType, 0)
|
| | | actionData = None
|
| | | if self.Count() >= ChConfig.ActionTypeSaveCnt.get(self.actionType, 0):
|
| | | if maxCount and self.Count() >= maxCount:
|
| | | if not fullClear:
|
| | | #超过记录记录不了了
|
| | | return actionData
|
| | |
| | | ## 根据玩家ID更新成员数据,一般用于离线功能,如添加离线成员,直接使用查看缓存更新
|
| | | if playerID != self.GetPlayerID():
|
| | | return
|
| | | viewCache = DBDataMgr.GetPlayerViewCacheMgr().FindViewCache(playerID)
|
| | | viewCache = PlayerViewCache.FindViewCache(playerID)
|
| | | if not viewCache:
|
| | | return
|
| | | self.SetPlayerName(viewCache.GetPlayerName())
|
| | |
| | | self.__memberList.append(member)
|
| | | return member
|
| | |
|
| | | def GetMemberIDList(self): return self.__memberDict.keys()
|
| | | |
| | | def AddMember(self, playerID):
|
| | | member = None
|
| | | if playerID in self.__memberDict:
|
| | |
| | | continue
|
| | | familyFightPowerTotal += member.GetFightPowerTotal()
|
| | | self.SetFightPowerTotal(familyFightPowerTotal)
|
| | | GameWorld.DebugLog("刷新仙盟总战力! familyID=%s" % self.GetID())
|
| | | #GameWorld.DebugLog("刷新仙盟总战力! familyID=%s" % self.GetID())
|
| | | self.__memFightPowerChange = False
|
| | | return familyFightPowerTotal
|
| | |
|
| | |
| | | self.__familyList.sort(key=lambda f: (f.GetFightPowerTotal(), f.GetLV()), reverse=True)
|
| | | return
|
| | |
|
| | | def AddFamily(self, familyID, familyName, serverID):
|
| | | def AddFamily(self, familyName, serverID, familyID=None):
|
| | | ## 创建新仙盟
|
| | | newFamily = None
|
| | | if familyID == None:
|
| | | familyID = PyMongoMain.GetUserCtrlDB().GetNewFamilyID()
|
| | | if familyID <= 0:
|
| | | GameWorld.ErrLog("创建仙盟时生成新ID异常!")
|
| | | return newFamily
|
| | | if familyID in self.__familyIDDict:
|
| | | GameWorld.ErrLog("创建仙盟时ID已存在! familyID=%s" % familyID)
|
| | | return newFamily
|
| | |
| | | self.__familyList.remove(family)
|
| | | family.OnDelete()
|
| | | self.__familyIDDict.pop(familyID, None)
|
| | | if familyID > ShareDefine.FackFamilyIDMax:
|
| | | PyMongoMain.GetUserCtrlDB().FreeFamilyID(familyID) # 归还仙盟ID,重复使用
|
| | | return family
|
| | |
|
| | | def DelAllFamily(self):
|
| | |
| | | action = self.__actionMgr.GetFamilyAction(familyID, actionType)
|
| | | action.InitActionInstance(dbData)
|
| | |
|
| | | PyMongoMain.GetUserCtrlDB().OnFamilyIDInit(self.__familyIDDict.keys())
|
| | | return pos
|
| | |
|
| | | def OnMinute():
|