| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
|   | 
| ##@package MakeItemCount  | 
| # ÖÆÔìÎïÆ· <ÎïÆ·ID> [ÊýÁ¿]   | 
| #  | 
| # @author panwei  | 
| # @date 2010-4-23  | 
| # @version 1.2  | 
| #  | 
| # ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ  | 
| # @change: "2013-04-27 20:30" wdb Ôö¼Ó×°±¸¸½¼ÓÄÚÈÝ  | 
| # @change: "2015-12-11 16:00" hxp Ôö¼Ó»ù´¡ÊôÐÔ±ÈÀýÖ§³Ö  | 
| #  | 
| # Ä£¿éÏêϸ˵Ã÷  | 
| #µ¼Èë  | 
|   | 
| import IPY_GameWorld  | 
| import ItemControler  | 
| import IpyGameDataPY  | 
| import GameWorld  | 
| import ChConfig  | 
|   | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
| """Version = 2015-12-11 16:00"""  | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ  | 
|   | 
|   | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param msgList ²ÎÊýÁбí [ ÎïÆ·ID, ÊýÁ¿]  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, msgList):  | 
|       | 
|     #ÊäÈëÃüÁî¸ñʽ´íÎó  | 
|     if len(msgList) < 1:  | 
|         GameWorld.DebugAnswer(curPlayer, "MakeItemCount ID (¸öÊý  ÅÄÆ··Ö×é È«²¿´«ÆæÊôÐÔ)")  | 
|         return  | 
|       | 
|     itemID = msgList[0]  | 
|     itemCount = msgList[1] if len(msgList) > 1 else 1  | 
|     auctionGroup = msgList[2] if len(msgList) > 2 else 0  | 
|     isAllAttr = msgList[3] if len(msgList) > 3 else 0  | 
|       | 
|     itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)  | 
|     if not itemData:  | 
|         GameWorld.DebugAnswer(curPlayer, '¸ÃÎïÆ·²»´æÔÚ = %s' % (itemID))  | 
|         return  | 
|     packCount = itemData.GetPackCount()  | 
|     if itemID in ChConfig.Def_TransformItemIDList:  | 
|         curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, curPlayer=curPlayer)  | 
|         PlayerItemControler = ItemControler.PlayerItemControler(curPlayer)  | 
|         if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]):  | 
|             GameWorld.DebugAnswer(curPlayer, "·ÅÈëÎïÆ·Ê§°Ü£¡")  | 
|         return  | 
|       | 
|     playerItemControler = ItemControler.PlayerItemControler(curPlayer)  | 
|       | 
|     # ÅÄÆ·  | 
|     if auctionGroup:  | 
|         isAuctionItem = True  | 
|         ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)  | 
|         if not ipyData:  | 
|             GameWorld.DebugAnswer(curPlayer, "·Ç¿ÉÅÄÂôÎïÆ·itemID=%s" % (itemID))  | 
|             return  | 
|         groupItemCount = itemCount / auctionGroup  | 
|         for i in xrange(auctionGroup):  | 
|             if i == auctionGroup - 1:  | 
|                 groupItemCount += itemCount % auctionGroup  | 
|             __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, groupItemCount, isAuctionItem, isAllAttr)      | 
|     else:  | 
|         isAuctionItem = False  | 
|         if packCount > 1:  | 
|             __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, itemCount, isAuctionItem, isAllAttr)  | 
|         else:  | 
|             for _ in xrange(itemCount):  | 
|                 __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, isAuctionItem, isAllAttr)  | 
|     return  | 
|   | 
| def __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, count, isAuctionItem, isAllAttr):  | 
|     if ItemControler.GetAppointItemRealID(itemID):  | 
|         ItemControler.GivePlayerAppointItem(curPlayer, itemID, isAuctionItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}])  | 
|         return  | 
|     curItem = ItemControler.GetOutPutItemObj(itemID, count, isAuctionItem, curPlayer=curPlayer, isAllAttr=isAllAttr)  | 
|     if not playerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]):  | 
|         GameWorld.DebugAnswer(curPlayer, "·ÅÈëÎïÆ·Ê§°Ü£¡")  | 
|           | 
|     return  | 
|   | 
|       | 
|       | 
|   |