| | |
| | | return
|
| | |
|
| | | def OnPlayerLogout(curPlayer):
|
| | | if curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg("PlayerViewCache", 1):
|
| | | return
|
| | |
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | curCache = FindViewCache(playerID)
|
| | |
| | |
|
| | | return False
|
| | |
|
| | | def FindBattleViewCache(playerID):
|
| | | ## 获取可战斗的玩家缓存
|
| | | # @return: None-无;curCache-有返回该缓存对象
|
| | | curCache = FindViewCache(playerID)
|
| | | if not curCache:
|
| | | return
|
| | | plusDict = curCache.GetPlusDict()
|
| | | if "Lineup" not in plusDict:
|
| | | return
|
| | | return curCache
|
| | |
|
| | | def FindViewCache(playerID):
|
| | | '''查找玩家缓存,如果不存在,则会有额外逻辑,如从redis、db直接找,
|
| | | 本服玩家理论上一定有查看缓存,因为如果不存在会直接从db读,除非该玩家数据被删除
|
| | |
| | | # 逻辑待扩展
|
| | |
|
| | | # 机器人
|
| | | elif ShareDefine.RobotIDStart <= playerID <= ShareDefine.RobotIDMax:
|
| | | curCache = UpdRobotViewCache(playerID)
|
| | | #elif ShareDefine.RobotIDStart <= playerID <= ShareDefine.RobotIDMax:
|
| | | elif IpyGameDataPY.GetIpyGameDataNotLog("Robot", playerID):
|
| | | GameWorld.DebugLog("加载机器人缓存: %s" % playerID)
|
| | | curCache = viewCacheMgr.AddPlayerViewCache(playerID)
|
| | | curCache = UpdRobotViewCache(curCache, playerID)
|
| | | curCache.SetPlayerName("%s%s" % (GameWorld.GbkToCode("主公"), playerID))
|
| | |
|
| | | # 假玩家,默认添加
|
| | | elif ShareDefine.FackPlayerIDStart <= playerID <= ShareDefine.FackPlayerIDMax:
|
| | | serverID = playerID % 100 + 1 # 1 ~ 100 服
|
| | | accID = "fake%s@test@s%s" % (playerID, serverID)
|
| | | fightPower = random.randint(1000000, 100000000) # 先随机,外层有需要的话再自己设置
|
| | | GameWorld.DebugLog("加载假玩家缓存: %s" % playerID)
|
| | | # 随机复制个机器人数据
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | robotIpyData = ipyDataMgr.GetRobotByIndex(random.randint(0, ipyDataMgr.GetRobotCount() - 1))
|
| | |
|
| | | curCache = viewCacheMgr.AddPlayerViewCache(playerID)
|
| | | curCache.SetPlayerName("%s%s" % (GameWorld.GbkToCode("神秘道友"), playerID))
|
| | | curCache = UpdRobotViewCache(curCache, robotIpyData.GetID())
|
| | | |
| | | # 再覆盖部分数据
|
| | | serverID = playerID % 100 + 1 # 1 ~ 100 服
|
| | | accID = "fake%s@test@s%s" % (playerID, serverID)
|
| | | #fightPower = random.randint(1000000, 100000000) # 先随机,外层有需要的话再自己设置
|
| | | |
| | | curCache.SetPlayerName("%s%s" % (GameWorld.GbkToCode("主公"), playerID))
|
| | | curCache.SetAccID(accID)
|
| | | curCache.SetLV(random.randint(100, 200))
|
| | | curCache.SetJob(random.randint(1, 2))
|
| | | curCache.SetRealmLV(random.randint(5, 15))
|
| | | curCache.SetFightPowerTotal(fightPower)
|
| | | curCache.SetServerID(serverID)
|
| | | #curCache.SetLV(random.randint(100, 200))
|
| | | #curCache.SetJob(random.randint(1, 2))
|
| | | #curCache.SetRealmLV(random.randint(5, 15))
|
| | | #curCache.SetFightPowerTotal(fightPower)
|
| | | curCache.SetOffTime(int(time.time()) - random.randint(1, 3600 * 24 * 10)) # 随机离线 0~10天
|
| | |
|
| | | return curCache
|
| | |
| | | curCache.SetFace(curPlayer.GetFace())
|
| | | curCache.SetFacePic(curPlayer.GetFacePic())
|
| | | curCache.SetModelMark(curPlayer.GetModelMark())
|
| | | curCache.SetEquipShowSwitch(curPlayer.GetEquipShowSwitch())
|
| | | curCache.SetTitleID(PlayerControl.GetTitleID(curPlayer))
|
| | | curCache.SetFamilyID(familyID)
|
| | | curCache.SetFamilyName(family.GetName() if family else "")
|
| | |
| | | curCache.SetFace(dbPlayer.Face)
|
| | | curCache.SetFacePic(dbPlayer.FacePic)
|
| | | curCache.SetModelMark(dbPlayer.ModelMark)
|
| | | curCache.SetEquipShowSwitch(dbPlayer.EquipShowSwitch)
|
| | | curCache.SetTitleID(dbPlayer.ExAttr3)
|
| | | curCache.SetFamilyID(familyID)
|
| | | family = DBDataMgr.GetFamilyMgr().FindFamily(familyID) if familyID else None
|
| | |
| | | "FacePic" : curCache.GetFacePic(),
|
| | | "TitleID" : curCache.GetTitleID(),
|
| | | "ModelMark" : curCache.GetModelMark(),
|
| | | "EquipShowSwitch" : curCache.GetEquipShowSwitch(),
|
| | | "FightPower" : curCache.GetFightPowerTotal(),
|
| | | "PlusData" : curCache.GetPlusDict(),
|
| | | }
|
| | | return robotDict
|
| | |
|
| | | def UpdRobotViewCache(robotID):
|
| | | def UpdRobotViewCache(curCache, robotID):
|
| | | ## 更新机器人查看缓存
|
| | | robotIpyData = IpyGameDataPY.GetIpyGameData("Robot", robotID)
|
| | | if not robotIpyData:
|
| | |
| | | except:
|
| | | return
|
| | |
|
| | | viewCacheMgr = DBDataMgr.GetPlayerViewCacheMgr()
|
| | | curCache = viewCacheMgr.GetPlayerViewCache(robotID)
|
| | | if not curCache:
|
| | | curCache = viewCacheMgr.AddPlayerViewCache(robotID)
|
| | | #curCache.SetAccID(dbPlayer.AccID)
|
| | |
|
| | | curCache.SetPlayerName(robotInfo.get("PlayerName", "p%s" % robotID))
|
| | |
| | | curCache.SetFacePic(robotInfo.get("FacePic", 0))
|
| | | curCache.SetTitleID(robotInfo.get("TitleID", 0))
|
| | | curCache.SetModelMark(robotInfo.get("ModelMark", 0))
|
| | | curCache.SetEquipShowSwitch(robotInfo.get("EquipShowSwitch", 0))
|
| | | #机器人暂定没有仙盟、称号
|
| | | #curCache.SetFamilyID(familyID)
|
| | | #family = DBDataMgr.GetFamilyMgr().FindFamily(familyID)
|
| | |
| | | clientPack.Face = curCache.GetFace()
|
| | | clientPack.FacePic = curCache.GetFacePic()
|
| | | clientPack.ModelMark = curCache.GetModelMark()
|
| | | clientPack.EquipShowSwitch = curCache.GetEquipShowSwitch()
|
| | | clientPack.TitleID = curCache.GetTitleID()
|
| | | clientPack.ServerID = curCache.GetServerID()
|
| | | clientPack.FightPower = curCache.GetFightPower()
|