def _rpcRemoveItem(self, obj): #override if obj.isFriend(): self.endPoint.rpcFriendDel(obj.friendRoleId) elif obj.isBlack(): self.endPoint.rpcFriendDelBlack(obj.friendRoleId) def getFriendCtn(iRoleId): return gKeeper.getObjFromDB(factory.NO_ROW_RETURN_NONE, iRoleId) from friend.defines import * import sql import role import friend import productKeeper import factoryConcrete import jitKeeper import config import friend_pb2 import friend.object import resume import friend.service #用于查看离线玩家的包裹/装备信息.一段时间后不访问,自动从容器上移除 if 'gKeeper' not in globals(): KEEP_SECOND = 30 if config.IS_INNER_SERVER else 60 * 5 # gKeeper=productKeeper.cJITproductKeeper(factoryConcrete.friendCtnFtr,KEEP_SECOND) 临时屏蔽,测试jitKeeper gKeeper = jitKeeper.cJITproductKeeper(factoryConcrete.friendCtnFtr)
from common import * import sql import factoryConcrete import buddy import buddy_pb2 import message import buddyData import mainService import buddy.service import config import jitKeeper import factory import cycleData def getBuddyCtn(iRoleId): return gKeeper.getObjFromDB(factory.NO_ROW_RETURN_NONE, iRoleId) descKindList = { "物攻型":1, "法攻型":2, "治疗型":3, "辅助型":4, "封印型":5, } #用于查看离线玩家的包裹/装备信息.一段时间后不访问,自动从容器上移除 if 'gKeeper' not in globals(): KEEP_SECOND=30 if config.IS_INNER_SERVER else 60*5 # gKeeper=productKeeper.cJITproductKeeper(factoryConcrete.friendCtnFtr,KEEP_SECOND) 临时屏蔽,测试jitKeeper gKeeper=jitKeeper.cJITproductKeeper(factoryConcrete.buddyCtnFtr)
# -*- coding: utf-8 -*- '''玩家离线处理 ''' import jitKeeper import factoryConcrete import factory def getOffline(roleId): '''获取离线玩家对象 ''' offlineObj = gKeeper.getObjFromDB(factory.NO_ROW_RETURN_NONE, roleId) return offlineObj def addHandler(roleId, handlerName, **kwargs): offlineObj = getOffline(roleId) if offlineObj: offlineObj.addHandler(handlerName, **kwargs) def executeHandler(who): offlineObj = getOffline(who.id) if offlineObj: offlineObj.executeHandler(who) if 'gKeeper' not in globals(): gKeeper = jitKeeper.cJITproductKeeper(factoryConcrete.offlineFtr)
self.day = cycleData.cCycDay(10, self._dirtyEventHandler) #天变量 self.week = cycleData.cCycWeek(5, self._dirtyEventHandler) #周变量 self.month = cycleData.cCycMonth(3, self._dirtyEventHandler) #月变量 self.cycDataMerge = pst.cMergePersist({ 'h': self.hour, 'd': self.day, 'w': self.week, 'm': self.month }) def getPstObj(self): #override return self.cycDataMerge def _dirtyEventHandler(self): factoryConcrete.cycFtr.schedule2tail4save(self.iRoleId) import factoryConcrete import productKeeper import misc import config import jitKeeper #用于查看离线玩家的cycData,一段时间后自动删除 if 'gKeeper' not in globals(): KEEP_SECOND = 30 if config.IS_INNER_SERVER else 60 * 5 # gKeeper=productKeeper.cJITproductKeeper(factoryConcrete.cycFtr,KEEP_SECOND) 临时屏蔽,测试jitKeeper gKeeper = jitKeeper.cJITproductKeeper(factoryConcrete.cycFtr) import sql import cycleData
import jitKeeper class cProductkeeper(productKeeper.cProductkeeper): def removeObj(self,sUserSource,sAccount):#override return productKeeper.cProductkeeper.removeObj(self,sUserSource,sAccount) import u if 'gbOnce' not in globals(): gbOnce=True if 'mainService' in SYS_ARGV: gKeeper=cProductkeeper(factoryConcrete.accountFtr)#在线的账号才放到这里 #为了方便后台gm指令,所以此处加一个account的jitKeeper # gJitKeeper=productKeeper.cJITproductKeeper(factoryConcrete.accountFtr) 临时屏蔽,测试jitKeeper gJitKeeper=jitKeeper.cJITproductKeeper(factoryConcrete.accountFtr) #----------------------------------------------- #上面的都是单区内的账号信息,还应该有一个跨区的账号信息.数据存在登录服. #----------------------------------------------- import gevent import weakref import json import factoryConcrete import sql import db4ms import endPoint import c import u
def _getSelectRecordsetFieldCount(self): return 10 def _setValuesAfterSelect(self, *tValues): #override self.sName, self.iExp, self.iLv, self.iPro, self.iWeapShape, self.iGold, self.iStatus, self.iLeagueRank, self.iArenaPoint, self.iVoucher = tValues # if not self.sName: # self.sName=c.BORN_NAME #原属性为None,不会触发观察列表值变化引起的存盘 def _setSelectNoRecordsetDefaultValues(self, *itNoRowInsertValues): #override self.sName, self.iExp, self.iLv, self.iPro, self.iWeapShape, self.iGold, self.iStatus, self.iLeagueRank, self.iArenaPoint, self.iVoucher = itNoRowInsertValues[ 4:] # self.sName=c.BORN_NAME #原属性为None,不会触发观察列表值变化引起的存盘 import factoryConcrete import misc import config import jitKeeper #用于查看离线玩家的多列信息.一段时间后不访问,自动从容器上移除 if 'gKeeper' not in globals(): KEEP_SECOND = 30 if config.IS_INNER_SERVER else 60 * 5 gKeeper = jitKeeper.cJITproductKeeper(factoryConcrete.multiField1Ftr) import role import sql import factoryConcrete import c
def getObj(iRoleId): return gGoldCoinKeeper.getObj(iRoleId) #import productKeeper import factoryConcrete import jitKeeper import u if 'gbOnce' not in globals(): gbOnce=True if 'mainService' in SYS_ARGV: gGoldCoinKeeper=jitKeeper.cJITproductKeeper(factoryConcrete.goldCoinFtr) #import gevent import weakref import c import u import misc import log import config import cycleData #起几个别名,方便统计内存对象 class cCycHourInGoldCoin(cycleData.cCycHour):pass class cCycDayInGoldCoin(cycleData.cCycDay):pass class cCycWeekInGoldCoin(cycleData.cCycWeek):pass