示例#1
0
	def setPackage(self,size=12):
		'''读取数据库设置角色包裹
		@param size:int 包裹的大小
		'''
		self._package=Package.Package(size)
		itemlist=tb_item_admin.getAllPkByFk(self._owner.baseInfo.id)
		itemobjlist=tb_item_admin.getObjList(itemlist)
		for itemmode in itemobjlist:
			itemId=int(itemmode._name.split(':')[1])
			item = Item(id=itemId)
			itemPackInfo=itemmode.get('data')
			item.initItemInstance(itemPackInfo)
			self._package.putItemInPackage(item)
示例#2
0
    def setPackage(self, size=12):
        '''读取数据库设置角色包裹
		@param size:int 包裹的大小
		'''
        self._package = Package.Package(size)
        itemlist = tb_item_admin.getAllPkByFk(self._owner.baseInfo.id)
        itemobjlist = tb_item_admin.getObjList(itemlist)
        for itemmode in itemobjlist:
            itemId = int(itemmode._name.split(':')[1])
            item = Item(id=itemId)
            itemPackInfo = itemmode.get('data')
            item.initItemInstance(itemPackInfo)
            self._package.putItemInPackage(item)
示例#3
0
    def setPackage(self ,size = 12):
        """读取数据库设置角色包裹
        @param size: int 包裹的大小
        """
        self._package = Package.Package(size)
        itemlist = tbitemadmin.getAllPkByFk(self._owner.baseInfo.id)
        itemobjlist = tbitemadmin.getObjList(itemlist)
#        itemsPackInfo = db_package.getAllItemsByCharacterId(self._owner.baseInfo.id)
        for itemmode in itemobjlist:
            itemId = int(itemmode._name.split(':')[1])
            item = Item(id =itemId)
            itemPackInfo = itemmode.get('data')
            item.initItemInstance(itemPackInfo)
            self._package.putItemInPackage(item)
示例#4
0
文件: Shop.py 项目: chekwind/Soccer
 def initShopData(self):
     '''初始化商店信息'''
     self.itemList = dbShop.getShopInfo(self._shopcategory)
     for _item in self.itemList:
         item = Item(itemTemplateId=_item['templateid'])
         # item.baseInfo.setItemPrice(_item['cost'])
         itemInfo = {}
         itemInfo['id'] = item.baseInfo.getItemTemplateId()
         itemInfo['item'] = item.formatItemInfo()
         itemInfo['promotion'] = _item['promotion']
         itemInfo['cost'] = _item['cost']
         itemInfo['singlecount'] = _item['singlecount']
         itemInfo['allcount'] = _item['allcount']
         itemInfo['position'] = _item['position']
         self.shopitems[itemInfo['id']] = itemInfo
示例#5
0
文件: Shop.py 项目: chekwind/Soccer
	def initShopData(self):
		'''初始化商店信息'''
		self.itemList=dbShop.getShopInfo(self._shopcategory)
		for _item in self.itemList:
			item=Item(itemTemplateId=_item['templateid'])
			# item.baseInfo.setItemPrice(_item['cost'])
			itemInfo={}
			itemInfo['id']=item.baseInfo.getItemTemplateId()
			itemInfo['item']=item.formatItemInfo()
			itemInfo['promotion']=_item['promotion']
			itemInfo['cost']=_item['cost']
			itemInfo['singlecount']=_item['singlecount']
			itemInfo['allcount']=_item['allcount']
			itemInfo['position']=_item['position']
			self.shopitems[itemInfo['id']]=itemInfo
示例#6
0
	def resolveItemPrice(self):
		'''解析任务奖励'''
		itemprice=[]
		taskInfo=self.format
		taskprice=eval(taskInfo['itemprice'])
		for prices in taskprice.values():
			for price in prices:
				itemId=price[0]
				stack=price[1]
				item=Item(itemTemplateId=itemId)
				item.pack.setStack(stack)
				itemprice.append({"itemid":itemId,"stack":stack})
		return itemprice
示例#7
0
 def putNewItemsInPackage(self, itemTemplateId, count):
     '''添加物品到包裹栏'''
     item = Item(itemTemplateId=itemTemplateId)
     maxstack = item.baseInfo.getItemTemplateInfo().get('maxstack', 1)
     itemcndlist = []
     if maxstack > 1:
         itemcndlist = [count]
     else:
         itemcndlist = [1] * count
     for count in itemcndlist:
         _item = copy.deepcopy(item)
         _item.pack.setStack(count)
         self.putNewItemInPackage(_item)
     return True
示例#8
0
def getDropByid(did):
    """根据怪物id获取掉落物品信息 (适用于 怪物掉落 返回一个掉落物品)
    @param did: int 怪物掉落表主键id
    """
    data=DROPOUT_CONFIG.get(did,None)
    if not data:
        log.err(u'掉落表填写错误不存在掉落信息-掉落主键:%d'%did)
        return None
    for item in data.get('itemid'):
        abss=random.randint(1,BASERATE)
        if abss>=1 and abss<=item[2]:#如果随机出来此物品
            abss=random.randint(1,item[1]) #物品数量
            item1=Item(item[0])
            item1.pack.setStack(abss)
            return item1
    return None
示例#9
0
def getDropByid(did):
    '''根据怪物id获取掉落物品信息 (适用于 怪物掉落 返回一个掉落物品)
    @param did: int 怪物掉落表主键id
    '''
    data = DROPOUT_CONFIG.get(did, None)  # 获取did的值,不存在则返回None
    if not data:
        log.err(u'掉落表填写错误不存在掉落信息-掉落主键:%d' % did)
        return None
    for item in data.get('itemid'):  # FIXME 这里的 for 语句,意思是随机找到第一个合适的爆落物品
        # FIXME 我觉得应该一次可能爆落几个装备,所以可以将实例化的物品放到一个列表,再返回。
        abss = random.randint(1, BASERATE)  # 随机获取1 - 100000 之间的值
        if abss >= 1 and abss <= item[2]:  # 如果随机出来此物品 item[2]是概率
            abss = random.randint(1, item[1])  # item[1]是物品数量
            item1 = Item(item[0])  # item[0]是物品id,根据物品id实例化
            item1.pack.setStack(abss)  # 打包
            return item1
    return None
 def putNewItemsInPackage(self, itemTemplateId, count):
     '''添加物品到包裹栏'''
     item = Item(itemTemplateId=itemTemplateId)
     maxstack = item.baseInfo.getItemTemplateInfo().get('maxstack', 1)
     itemcndlist = []
     if maxstack > 1:
         while count > MAX_STACK:
             count -= MAX_STACK
             itemcndlist = [MAX_STACK]
         if count > 0:
             itemcndlist.append(count)
     else:
         itemcndlist = [1] * count
     for count in itemcndlist:
         _item = copy.deepcopy(item)
         _item.pack.setStack(count)
         self.putNewItemInPackage(_item)
     return True
 def getCityInfo(self,mid):
     """获取单个城镇的信息
     """
     zhanjieInfo = dbZhanyi.ALL_ZHANGJIE_INFO.get(mid)
     info = {}
     info['mid'] = mid
     info['mnane'] = zhanjieInfo['name']
     info['mdesc'] = zhanjieInfo['mdesc']
     info['xiaoguai'] = zhanjieInfo['monsterdesc']
     info['boss'] = zhanjieInfo['boss']
     info['weiwang'] = zhanjieInfo['exp']
     info['coin'] = zhanjieInfo['coin']
     itemid = zhanjieInfo['itembound']
     iteminfo = {}
     if itemid:
         itemin = Item(itemTemplateId = itemid)
         iteminfo['wname'] = itemin.baseInfo.getName()
         iteminfo['pinzhi'] = itemin.baseInfo.getBaseQuality()
     info['wupin'] = iteminfo
     return {'result':True,'message':u'','data':info}
示例#12
0
	def taskBoundHandle(self,taskId):
		'''任务奖励处理'''
		taskInfo=Task(taskId)
		giveitems=taskInfo.resolveItemPrice()
		package=self._owner.pack._package
		bagCnt=package.findSparePositionNum()
		if len(giveitems)>bagCnt:
			return {'result':False,'message':u""}
		for giveitem in giveitems:
			item=Item(itemTemplateId=giveitem.get('templateId'))
			self._owner.pack.putNewItemInPackage(item)
		exp=taskInfo.format.get('expprice')
		if exp>0:self.getExpBound(exp)
		gamecoin=taskInfo.format.get('gamecoinprice')
		if gamecoin>0:self.getGamecoinBound(gamecoin)
		trainpoint=taskInfo.format.get('trainpointprice')
		if trainpoint>0:self.getTrainPointBound(trainpoint)
		repute=taskInfo.format.get('reputeprice')
		if repute>0:self.getReputeBound(repute)
		return {'result':True}
示例#13
0
def getDropByid(leagueindex, category):
    '''根据Leagueindex获取掉落物品信息
	@param leagueindex: int npc所在联盟
	@param category:int 比赛类型
	'''
    data = {}
    if category == 7:
        data = TrainMatch_Dropout.get(leagueindex, None)
    elif category == 1:
        data = Challenge_Dropout.get(leagueindex, None)
    if not data:
        log.err(u'掉落表填写错误存在掉落信息-掉落主键:%d' % leagueindex)
        return None
    for item in data.get('itemid'):
        abss = random.randint(1, BASERATE)
        if abss >= 1 and abss <= item[2]:
            abss = random.randint(1, itemid[1])
            item1 = Item(item[0])
            item1.pack.setStack(abss)
            return item1
    return None