def pushFightFailMsg(self): '''推送战后失败消息''' msglist = self.fightfailmsg try: for msg in msglist: if len(msg) == 5: recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr = msg pushCorpsApplication(recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr) else: recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr, kw = msg pushCorpsApplication(recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr, roleId=kw.get('roleId', 0), roleName=kw.get('roleName', u''), icon=kw.get( 'icon', 0, ), type=kw.get('type', 0), pos=kw.get('pos', 0), curPage=kw.get('curPage', 0), toposition=kw.get('toposition', 0)) finally: self.fightfailmsg = []
def pushFightFailMsg(self): """推送战后失败消息""" msglist = self.fightfailmsg try: for msg in msglist: if len(msg) == 5: recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr = msg pushCorpsApplication(recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr) else: recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr, kw = msg pushCorpsApplication( recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr, roleId=kw.get("roleId", 0), roleName=kw.get("roleName", u""), icon=kw.get("icon", 0), type=kw.get("type", 0), pos=kw.get("pos", 0), curPage=kw.get("curPage", 0), toposition=kw.get("toposition", 0), ) finally: self.fightfailmsg = []
def PromptHP(self): '''血量提示''' if self._hp/(1.0*self.getMaxHp())<0.5: tag = 0 tishiStr = Lg().g(263) contentStr = Lg().g(264) for itemId in HPDRUG: package = self._owner.pack._package._PropsPagePack cnt = package.countItemTemplateId(itemId) if cnt!=0: caozuoStr = Lg().g(265) sysOpeType = 1 tag = 1 items = package.getItemTemplateIdPositions(itemId) position = items[0].get('position',0) _item = package.getItemByPosition(position) icon = _item.baseInfo.getItemTemplateInfo()['icon'] itype = _item.baseInfo.getItemTemplateInfo()['type'] curPage,pos = package.getVirtualPostion(position) break if not tag: icon = 0 itype = 0 caozuoStr = Lg().g(266) pos = 0 curPage = 0 sysOpeType = 7 pushCorpsApplication(self._owner.baseInfo.id, sysOpeType, tishiStr, contentStr, caozuoStr, pos = pos,curPage = curPage, icon = icon, type = itype)
def putNewItemInPackage(self, item, position=-2, state=1, turned=0): '''放置一个新的物品到包裹栏中 @param item: Item object 物品实例 @param position: int 物品的位置 @param packageType: int 包裹的类型 @param state: int 是否及时的推送获取物品消息 @param turned: int 是否是反牌子获取的 ''' packType = 1 if item.baseInfo.getItemPageType() == 4: packType = 2 package = self._package.getPackageByType(packType) if position == -2: position = package.findSparePositionForItem() if position == -1: return 1 nowItem = package.getItemByPosition(position) if nowItem: #当所在的位置存在物品时 return 1 spacecnt = package.findSparePositionNum() if spacecnt <= 5: recCharacterId = self._owner.baseInfo.id tishiStr = Lg().g(377) contentStr = Lg().g(378) caozuoStr = Lg().g(379) pushCorpsApplication(recCharacterId, 7, tishiStr, contentStr, caozuoStr) _msg = Lg().g(380) pushPromptedMessage(_msg, [self._owner.getDynamicId()]) msg = Lg().g(381) % (item.baseInfo.getRichName(), item.pack.getStack()) maxstack = item.baseInfo.getItemTemplateInfo().get('maxstack', 1) nowstack = item.pack.getStack() templateId = item.baseInfo.getItemTemplateId() if self._owner.pet.collectNotice(templateId, nowstack): if state: pushPromptedMessage(msg, [self._owner.getDynamicId()]) else: self._owner.msgbox.putFightMsg(msg) return 2 #先合并能合并的 for _item in package.getItems(): if _item['itemComponent'].baseInfo.getItemTemplateId()==templateId \ and _item['itemComponent'].pack.getStack()<=maxstack: if _item['itemComponent'].pack.getStack( ) + nowstack <= maxstack: _item['itemComponent'].pack.updateStack( _item['itemComponent'].pack.getStack() + nowstack) nowstack = 0 break if nowstack: if item.baseInfo.getId() == 0: item.InsertItemIntoDB(characterId=self._owner.baseInfo.id) package.putItemInstanceInPackDB(item, position, self._owner.baseInfo.getId()) if state: pushPromptedMessage(msg, [self._owner.getDynamicId()]) else: self._owner.msgbox.putFightMsg(msg) return 2
def putNewItemInPackage(self,item,position=-2,state = 1,turned = 0): '''放置一个新的物品到包裹栏中 @param item: Item object 物品实例 @param position: int 物品的位置 @param packageType: int 包裹的类型 @param state: int 是否及时的推送获取物品消息 @param turned: int 是否是反牌子获取的 ''' packType = 1 if item.baseInfo.getItemPageType()==4: packType = 2 package = self._package.getPackageByType(packType) if position ==-2: position = package.findSparePositionForItem() if position==-1: return 1 nowItem = package.getItemByPosition(position) if nowItem:#当所在的位置存在物品时 return 1 spacecnt = package.findSparePositionNum() if spacecnt<=5 : recCharacterId = self._owner.baseInfo.id tishiStr = Lg().g(377) contentStr = Lg().g(378) caozuoStr = Lg().g(379) pushCorpsApplication(recCharacterId, 7, tishiStr, contentStr, caozuoStr) _msg = Lg().g(380) pushPromptedMessage(_msg, [self._owner.getDynamicId()]) msg = Lg().g(381)%(item.baseInfo.getRichName(),item.pack.getStack()) maxstack = item.baseInfo.getItemTemplateInfo().get('maxstack',1) nowstack = item.pack.getStack() templateId = item.baseInfo.getItemTemplateId() if self._owner.pet.collectNotice(templateId,nowstack): if state: pushPromptedMessage(msg, [self._owner.getDynamicId()]) else: self._owner.msgbox.putFightMsg(msg) return 2 #先合并能合并的 for _item in package.getItems(): if _item['itemComponent'].baseInfo.getItemTemplateId()==templateId \ and _item['itemComponent'].pack.getStack()<=maxstack: if _item['itemComponent'].pack.getStack()+nowstack<= maxstack: _item['itemComponent'].pack.updateStack(_item['itemComponent'].pack.getStack()+nowstack) nowstack = 0 break if nowstack: if item.baseInfo.getId()==0: item.InsertItemIntoDB(characterId = self._owner.baseInfo.id) package.putItemInstanceInPackDB(item, position, self._owner.baseInfo.getId()) if state: pushPromptedMessage(msg, [self._owner.getDynamicId()]) else: self._owner.msgbox.putFightMsg(msg) return 2
def startMeditation(self,state=0): '''开始冥想''' if self.guajitimer: msg = u"你正处于冥想" return {'result':False,'message':msg} else: self._owner.baseInfo.setStatus(3) self.meditationtime = datetime.datetime.now() if self._owner.baseInfo._viptype==0: goaltime = 32400 else: goaltime = 86400 guaJiInfo = {'exp':0,'time':goaltime} self.guajitimer = reactor.callLater(15,self.doMeditationBound,state) pushCorpsApplication(self._owner.baseInfo.id, 8,'','','',guaJiInfo=guaJiInfo) return {'result':True,'message':Lg().g(224)}
def AfterGetNewEqupment(self,item): '''获取新的装备奖励后的处理''' toposition = item.baseInfo.getItemBodyType() if toposition==-1: return recCharacterId = self._owner.baseInfo.id sysOpeType = 1 tishiStr = Lg().g(450) contentStr = Lg().g(451) caozuoStr = Lg().g(452) icon = item.baseInfo.getItemTemplateInfo().get('icon',0) itype = item.baseInfo.getItemTemplateInfo().get('type',0) package = self._owner.pack._package.getPropsPagePack() realpos = package.getPositionByItemId(item.baseInfo.id) curPage = realpos/30+1 pos = realpos%30 pushCorpsApplication(recCharacterId, sysOpeType, tishiStr, contentStr, caozuoStr, icon = icon, type = itype, pos = pos, curPage= curPage, toposition = toposition)