#!/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 GameWorld
|
import ChConfig
|
import ItemCommon
|
|
#---------------------------------------------------------------------
|
#È«¾Ö±äÁ¿
|
#---------------------------------------------------------------------
|
"""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
|
|
event = [ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]
|
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
|
if ItemControler.IsPutinAutoTransformItem(itemData):
|
curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, curPlayer=curPlayer)
|
PlayerItemControler = ItemControler.PlayerItemControler(curPlayer)
|
if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=event):
|
GameWorld.DebugAnswer(curPlayer, "·ÅÈëÎïÆ·Ê§°Ü£¡")
|
return
|
|
playerItemControler = ItemControler.PlayerItemControler(curPlayer)
|
|
# ÅÄÆ·
|
if auctionGroup > 0:
|
for _ in xrange(auctionGroup):
|
if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, True, [IPY_GameWorld.rptItem], event=event):
|
GameWorld.DebugAnswer(curPlayer, "###·ÅÈëÎïÆ·Ê§°Ü£¡")
|
else:
|
if ItemCommon.GetIsEquip(itemData) or itemData.GetPackCount() <= 1:
|
for _ in xrange(itemCount):
|
__DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, False, isAllAttr, event)
|
else:
|
if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, False, [IPY_GameWorld.rptItem], event=event):
|
GameWorld.DebugAnswer(curPlayer, "###·ÅÈëÎïÆ·Ê§°Ü£¡")
|
return
|
|
def __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, count, isAuctionItem, isAllAttr, event):
|
if ItemControler.GetAppointItemRealID(itemID):
|
ItemControler.GivePlayerAppointItem(curPlayer, itemID, isAuctionItem, event=event)
|
return
|
curItem = ItemControler.GetOutPutItemObj(itemID, count, isAuctionItem, curPlayer=curPlayer, isAllAttr=isAllAttr)
|
if not playerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=event):
|
GameWorld.DebugAnswer(curPlayer, "·ÅÈëÎïÆ·Ê§°Ü£¡")
|
|
return
|
|
|
|
|