#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#---------------------------------------------------------------------  
 | 
##@package Func_6  
 | 
#²Ö¿â¹ÜÀíÔ± Âß¼´¦Àí  
 | 
#  
 | 
# @author PanWei  
 | 
# @date 2010-5-13ÏÂÎç03:41:28  
 | 
# @version 1.3  
 | 
#  
 | 
# @change: "2013-05-07 15:30" wdb ²Ö¿âÐÞ¸Ä  
 | 
# @change: "2013-12-12 15:30" hxp ÐÞ¸Ämark  
 | 
# @change: "2016-07-20 14:30" hxp È¥³ý×êʯ´æÈ¡; Íæ¼Ò»õ±Ò´æ´¢¸üÐÂͳһ½Ó¿Ú  
 | 
#---------------------------------------------------------------------  
 | 
#"""Version = 2016-07-20 14:30"""  
 | 
#---------------------------------------------------------------------  
 | 
import IPY_GameWorld  
 | 
import ItemControler  
 | 
import ChConfig  
 | 
import GameWorld  
 | 
import EventShell  
 | 
import PlayerControl  
 | 
import DataRecordPack  
 | 
import ChPyNetSendPack  
 | 
import NetPackCommon  
 | 
#---------------------------------------------------------------------  
 | 
#//²Ö¿â״̬  
 | 
#enum    TWarehouseState  
 | 
#{  
 | 
#    wsNull = 0,     //ûÓпªÊ¼²Ö¿â  
 | 
#    wsEnterPsw,     //ÊäÈëÃÜÂë״̬  
 | 
#    wsWarehouse,    //Ǯׯ´æÈ¡ÖÐ  
 | 
#    wsChangePsw,    //ÐÞ¸ÄÃÜÂë״̬  
 | 
#    wsSetPsw,       //ÉèÖÃÃÜÂë״̬  
 | 
#};  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
##ÊÇ·ñ¿ÉÒÔµ¯³ö²Ö¿âÃÜÂë´°¿Ú  
 | 
# @param curPlayer Íæ¼ÒʵÀý  
 | 
# @return ·µ»ØÖµ, ÊÇ·ñÐèÒªÊäÈë  
 | 
# @remarks Íæ¼ÒÊÇ·ñÐèÒªµ¯³öÐèÒªÊäÈë²Ö¿âÃÜÂëµÄ´°¿Ú  
 | 
def NeedOpenWarehousePswWnd(curPlayer):  
 | 
    if curPlayer.GetHaveWarehousePsw() == 0:  
 | 
        #ûÓÐÉ趨²Ö¿âÃÜÂë  
 | 
        return False  
 | 
      
 | 
    elif curPlayer.GetWarehouseLocked() == 0:  
 | 
        #²Ö¿âÓÐËø  
 | 
        return False  
 | 
      
 | 
    return True  
 | 
  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 01 ±³°üÎïÆ··ÅÈë²Ö¿â#tagCPutItemInWarehouse  
 | 
# tagCPutItemInWarehouse       *   GettagCPutItemInWarehouse();  
 | 
#   
 | 
# class   IPY_CPutItemInWarehouse  
 | 
# {  
 | 
# public:  
 | 
#    //±³°üλÖà  
 | 
#    int      GetItemIndex();  
 | 
#    //·ÅÈëλÖà  
 | 
#    int      GetWarehouseIndex();  
 | 
#    //·ÅÈëÊýÁ¿  
 | 
#    int      GetCount();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 01 ±³°üÎïÆ··ÅÈë²Ö¿â#tagCPutItemInWarehouse  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 01 ±³°üÎïÆ··ÅÈë²Ö¿â#tagCPutItemInWarehouse  
 | 
def PutItemInWarehouse(curPlayer, tick):  
 | 
      
 | 
    #»ñµÃ·â°ü  
 | 
    sendPack = IPY_GameWorld.IPY_CPutItemInWarehouse()  
 | 
    #±³°üλÖà  
 | 
    bagIndex = sendPack.GetItemIndex()  
 | 
    #µÃµ½Íæ¼ÒµÄ±³°ü  
 | 
    bagPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)  
 | 
    #µÃµ½µ±Ç°ÎïÆ·  
 | 
    curItem = bagPack.GetAt(bagIndex)  
 | 
      
 | 
    if not curItem or curItem.IsEmpty():  
 | 
        return  
 | 
      
 | 
    #·ÅÈëλÖà  
 | 
    putIndex = sendPack.GetWarehouseIndex()  
 | 
    #·ÅÈëÊýÁ¿  
 | 
    putCount = sendPack.GetCount()  
 | 
    itemControl = ItemControler.PlayerItemControler(curPlayer)  
 | 
    curItemTypeID = curItem.GetItemTypeID()  
 | 
    curItemGUID = curItem.GetGUID()  
 | 
      
 | 
    if not itemControl.CanPutInItem(IPY_GameWorld.rptWarehouse, curItemTypeID, putCount, curItem.GetIsBind()):  
 | 
        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_676165", [IPY_GameWorld.rptWarehouse])     
 | 
        return  
 | 
      
 | 
    DataRecordPack.DR_ChangePackItem(curPlayer, curItemTypeID, putCount, curItemGUID,  
 | 
                                  IPY_GameWorld.rptItem, IPY_GameWorld.rptWarehouse)  
 | 
      
 | 
    #±³°üÎïÆ··ÅÈë²Ö¿â      
 | 
    ItemControler.DragItem(curPlayer, IPY_GameWorld.rptItem, bagIndex, IPY_GameWorld.rptWarehouse, putIndex, putCount)  
 | 
    return  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 02 È¡³ö²Ö¿âÎïÆ·#tagCGetItemInWarehouse  
 | 
# tagCGetItemInWarehouse       *   GettagCGetItemInWarehouse();  
 | 
#   
 | 
# class   IPY_CGetItemInWarehouse  
 | 
# {  
 | 
# public:  
 | 
#    //²Ö¿âλÖà  
 | 
#    int      GetWarehouseIndex();  
 | 
#    //ÎïÆ·Î»Öà  
 | 
#    int      GetItemIndex();  
 | 
#    //È¡³öÊýÁ¿  
 | 
#    int      GetCount();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 02 È¡³ö²Ö¿âÎïÆ·#tagCGetItemInWarehouse  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 02 È¡³ö²Ö¿âÎïÆ·#tagCGetItemInWarehouse  
 | 
def GetItemInWarehouse(curPlayer, tick):  
 | 
      
 | 
    #»ñµÃ·â°ü  
 | 
    sendPack = IPY_GameWorld.IPY_CGetItemInWarehouse()  
 | 
    #²Ö¿âλÖà  
 | 
    warehouseIndex = sendPack.GetWarehouseIndex()  
 | 
    #µÃµ½Íæ¼ÒµÄ²Ö¿â  
 | 
    warehousePack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptWarehouse)  
 | 
    #µÃµ½µ±Ç°ÎïÆ·  
 | 
    curItem = warehousePack.GetAt(warehouseIndex)  
 | 
    if not curItem or curItem.IsEmpty():  
 | 
        return  
 | 
      
 | 
    #·ÅÈë±³°üλÖà  
 | 
    putIndex = sendPack.GetItemIndex()  
 | 
    #·ÅÈëÊýÁ¿  
 | 
    putCount = sendPack.GetCount()  
 | 
    itemControl = ItemControler.PlayerItemControler(curPlayer)  
 | 
    curItemTypeID = curItem.GetItemTypeID()  
 | 
    curItemGUID = curItem.GetGUID()  
 | 
      
 | 
    if not itemControl.CanPutInItem(IPY_GameWorld.rptItem, curItemTypeID, putCount, curItem.GetIsBind()):  
 | 
        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_676165", [IPY_GameWorld.rptItem])     
 | 
        return False  
 | 
      
 | 
    DataRecordPack.DR_ChangePackItem(curPlayer, curItemTypeID, putCount, curItemGUID,  
 | 
                                  IPY_GameWorld.rptWarehouse, IPY_GameWorld.rptItem)  
 | 
    #²Ö¿âÎïÆ··ÅÈë±³°ü   
 | 
    ItemControler.DragItem(curPlayer, IPY_GameWorld.rptWarehouse, warehouseIndex, IPY_GameWorld.rptItem, putIndex, putCount)  
 | 
    return  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 03 ²Ö¿âÈ¡³ö½ðÇ®#tagCGetMoneyInWarehouse  
 | 
# tagCGetMoneyInWarehouse       *   GettagCGetMoneyInWarehouse();  
 | 
#   
 | 
# class   IPY_CGetMoneyInWarehouse  
 | 
# {  
 | 
# public:  
 | 
#    //½ðÇ®ÀàÐÍ  
 | 
#    int      GetMoneyType();  
 | 
#    //Ç®  
 | 
#    int      GetMoney();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 03 ²Ö¿âÈ¡³ö½ðÇ®#tagCGetMoneyInWarehouse  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 03 ²Ö¿âÈ¡³ö½ðÇ®#tagCGetMoneyInWarehouse  
 | 
def GetMoneyInWarehouse(curPlayer, tick):  
 | 
    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇǮׯ´æÈ¡×´Ì¬  
 | 
    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:  
 | 
        return  
 | 
      
 | 
    #È¡³ö½ðÇ®·â°ü  
 | 
    sendPack = IPY_GameWorld.IPY_CGetMoneyInWarehouse()  
 | 
      
 | 
    #½ðÇ®ÀàÐÍ  
 | 
    moneyType = sendPack.GetMoneyType()  
 | 
      
 | 
    #½ðÇ®ÊýÁ¿  
 | 
    getMoney = sendPack.GetMoney()  
 | 
      
 | 
    if getMoney <= 0:  
 | 
        #ûÊäÈëÇ®,²»´¦Àí  
 | 
        return  
 | 
      
 | 
    if moneyType not in [IPY_GameWorld.TYPE_Price_Silver_Money]:  
 | 
        return  
 | 
          
 | 
    #´¦ÀíÒø×Ó  
 | 
    if moneyType == IPY_GameWorld.TYPE_Price_Silver_Money:  
 | 
        curMoney = PlayerControl.GetSilver(curPlayer)  
 | 
        curWarehouseMoney = curPlayer.GetWarehouseSilver()  
 | 
        moneyCount = curMoney + getMoney  
 | 
          
 | 
        if moneyCount > ChConfig.Def_PlayerTotalMoney_Silver:  
 | 
            #³¬¹ý½ðÇ®ÉÏÏÞ  
 | 
            PlayerControl.NotifyCode(curPlayer,"GeRen_chenxin_609765")  
 | 
            return  
 | 
          
 | 
        if getMoney > curWarehouseMoney:  
 | 
            PlayerControl.NotifyCode(curPlayer,"TakeMoneyLack")  
 | 
            return  
 | 
          
 | 
        curPlayer.SetWarehouseSilver(curWarehouseMoney - getMoney)   
 | 
        addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Get"}  
 | 
        PlayerControl.GiveMoney(curPlayer, moneyType, getMoney, ChConfig.Def_GiveMoney_Warehouse, addDataDict)  
 | 
          
 | 
      
 | 
    DataRecordPack.DR_GetMoneyInWarehouse(curPlayer, moneyType, getMoney)  
 | 
    return  
 | 
  
 | 
  
 | 
#===============================================================================  
 | 
# //0C 04 ²Ö¿â·ÅÈë½ðÇ®#tagCPutMoneyInWarehouse  
 | 
# tagCPutMoneyInWarehouse       *   GettagCPutMoneyInWarehouse();  
 | 
#   
 | 
# class   IPY_CPutMoneyInWarehouse  
 | 
# {  
 | 
# public:  
 | 
#    //½ðÇ®ÀàÐÍ  
 | 
#    int      GetMoneyType();  
 | 
#    //½ðÇ®  
 | 
#    int      GetMoney();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 04 ²Ö¿â·ÅÈë½ðÇ®#tagCPutMoneyInWarehouse  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 04 ²Ö¿â·ÅÈë½ðÇ®#tagCPutMoneyInWarehouse  
 | 
def PutMoneyInWarehouse(curPlayer, tick):  
 | 
    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇǮׯ´æÈ¡×´Ì¬  
 | 
    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:  
 | 
        return  
 | 
      
 | 
    #·ÅÈë½ðÇ®·â°ü  
 | 
    sendPack = IPY_GameWorld.IPY_CPutMoneyInWarehouse()  
 | 
    #½ðÇ®ÊýÁ¿  
 | 
    putMoney = sendPack.GetMoney()  
 | 
      
 | 
    if putMoney <= 0:  
 | 
        #ûÊäÈë½ðÇ®,²»´¦Àí  
 | 
        return  
 | 
      
 | 
    moneyType = sendPack.GetMoneyType()  
 | 
      
 | 
    if moneyType not in [IPY_GameWorld.TYPE_Price_Silver_Money]:  
 | 
        return  
 | 
  
 | 
    #´¦ÀíÒø×Ó  
 | 
    if moneyType == IPY_GameWorld.TYPE_Price_Silver_Money:  
 | 
        curMoney = PlayerControl.GetSilver(curPlayer)  
 | 
        curWarehouseMoney = curPlayer.GetWarehouseSilver()  
 | 
        moneyCount = curWarehouseMoney + putMoney  
 | 
          
 | 
        if moneyCount > ChConfig.Def_PlayerTotalMoney_Silver:  
 | 
            #³¬¹ý½ðÇ®ÉÏÏÞ  
 | 
            PlayerControl.NotifyCode(curPlayer,"GeRen_chenxin_766742")  
 | 
            return  
 | 
          
 | 
        if putMoney > curMoney:  
 | 
            #SilverErr ¶Ô²»Æð,ÄúµÄÒø×ÓÊýÁ¿²»×ã  
 | 
            PlayerControl.NotifyCode(curPlayer,"SilverErr")  
 | 
            return  
 | 
          
 | 
        PlayerControl.PayMoney(curPlayer, moneyType, putMoney, ChConfig.Def_Cost_Warehouse, {ChConfig.Def_Cost_Reason_SonKey:"PutIn"})  
 | 
        curPlayer.SetWarehouseSilver(moneyCount)  
 | 
      
 | 
    DataRecordPack.DR_SetMoneyInWarehouse(curPlayer, moneyType, putMoney)  
 | 
    return True  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 05 ÉèÖòֿâÃÜÂë#tagCSetWarehousePsw  
 | 
# tagCSetWarehousePsw       *   GettagCSetWarehousePsw();  
 | 
#   
 | 
# class   IPY_CSetWarehousePsw  
 | 
# {  
 | 
# public:  
 | 
#    //µ±Ç°ÃÜÂë(¿Õ±íʾûÓÐÃÜÂë)  
 | 
#    char *      GetPsw();  
 | 
#    //¾ÉÃÜÂë  
 | 
#    char *      GetOldPsw();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 05 ÉèÖòֿâÃÜÂë#tagCSetWarehousePsw  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 05 ÉèÖòֿâÃÜÂë#tagCSetWarehousePsw  
 | 
def SetWarehousePsw(curPlayer, tick):  
 | 
    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇÐÞ¸ÄÃÜÂë״̬  
 | 
    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:  
 | 
        return  
 | 
  
 | 
    # ²Ö¿âÓÐËø£¬ÏȽâËø  
 | 
    if curPlayer.GetWarehouseLocked():  
 | 
        return  
 | 
      
 | 
    sendPack = IPY_GameWorld.IPY_CSetWarehousePsw()  
 | 
    #µ±Ç°²Ö¿âÃÜÂë  
 | 
    currentPsw = curPlayer.GetWarehousePsw()  
 | 
    #ÐÂÃÜÂë  
 | 
    newPsw = sendPack.GetPsw()      
 | 
    #ÕâÀïÊǵ÷ÓÃc++µÄ¹ýÂ˿ոñ,¿ÉÒÔ¹ýÂËÈ«½Ç¿Õ¸ñ, python²»ÄÜ  
 | 
    newPsw = GameWorld.GetGameWorld().GetCharTrim(newPsw)  
 | 
    if newPsw == "":  
 | 
        return  
 | 
              
 | 
    curPlayer.SetWarehousePsw(newPsw)  
 | 
    DataRecordPack.DR_SetWarehousePsw(curPlayer, currentPsw, newPsw)  
 | 
      
 | 
    #curPlayer.Frm_WarehouseMsg(IPY_GameWorld.whmSetPswOK)      
 | 
    PlayerControl.NotifyCode(curPlayer, "GeRen_pan_106532")  
 | 
      
 | 
    #ÓÐÉèÖòֿâÃÜÂë£¬Ëø¶¨  
 | 
    curPlayer.SetHaveWarehousePsw(1)  
 | 
    # ÉèÖòֿâËø¶¨×´Ì¬  
 | 
    SetLockState(curPlayer, 1)     
 | 
    return  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 06 Ëø¶¨²Ö¿â#tagCSetWarehouseLock  
 | 
# tagCSetWarehouseLock       *   GettagCSetWarehouseLock();  
 | 
#   
 | 
# class   IPY_CSetWarehouseLock  
 | 
# {  
 | 
# public:  
 | 
#    //0: ½âËø 1:Ëø¶¨  
 | 
#    int      GetIsLock();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 06 Ëø¶¨²Ö¿â#tagCSetWarehouseLock  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
def SetWarehouseLock(curPlayer, tick):  
 | 
    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇǮׯ´æÈ¡×´Ì¬  
 | 
    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:  
 | 
        return  
 | 
      
 | 
    #»ñµÃ¿Í»§¶ËËø¶¨·â°ü  
 | 
    sendPack = IPY_GameWorld.IPY_CSetWarehouseLock()  
 | 
    setLockState = sendPack.GetIsLock()  
 | 
      
 | 
    # ÕâÀïÖ»ÓÃÓÚ½âËø  
 | 
    if setLockState != 0:  
 | 
        return  
 | 
      
 | 
    if curPlayer.GetWarehouseLocked() == setLockState:  
 | 
        return  
 | 
      
 | 
    # ÉèÖòֿâËø¶¨×´Ì¬  
 | 
    SetLockState(curPlayer, setLockState)  
 | 
    return  
 | 
  
 | 
## ÉèÖòֿâËø¶¨×´Ì¬  
 | 
# @param curPlayer  
 | 
# @param setLockState  
 | 
# @return  
 | 
def SetLockState(curPlayer, setLockState):  
 | 
      
 | 
    curPlayer.SetWarehouseLocked(setLockState)      
 | 
      
 | 
    packLockState = ChPyNetSendPack.tagMCWarehorseLock()  
 | 
    packLockState.Clear()  
 | 
    packLockState.LockState = setLockState  
 | 
    NetPackCommon.SendFakePack(curPlayer, packLockState)  
 | 
    return  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 07 ¿Í»§¶Ë·¢ËͲֿâÃÜÂë#tagSendWarehousePsw  
 | 
# tagSendWarehousePsw       *   GettagSendWarehousePsw();  
 | 
#   
 | 
# class   IPY_SendWarehousePsw  
 | 
# {  
 | 
# public:  
 | 
#   
 | 
#    char *      GetPsw();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 07 ¿Í»§¶Ë·¢ËͲֿâÃÜÂë#tagSendWarehousePsw  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 07 ¿Í»§¶Ë·¢ËͲֿâÃÜÂë#tagSendWarehousePsw  
 | 
def SendWarehousePsw(curPlayer, tick):  
 | 
    #===========================================================================  
 | 
    # #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇÊäÈëÃÜÂë״̬  
 | 
    # if curPlayer.GetWarehouseState() != IPY_GameWorld.wsEnterPsw:  
 | 
    #    return  
 | 
    #   
 | 
    # #»ñµÃ¿Í»§¶Ë·â°ü  
 | 
    # sendPack = IPY_GameWorld.IPY_SendWarehousePsw()  
 | 
    # curPsw = sendPack.GetPsw()  
 | 
    # oldPsw = curPlayer.GetWarehousePsw()  
 | 
    #   
 | 
    # #ÕâÀïÊǵ÷ÓÃc++µÄ¹ýÂ˿ոñ,¿ÉÒÔ¹ýÂËÈ«½Ç¿Õ¸ñ, python²»ÄÜ  
 | 
    # curPsw = GameWorld.GetGameWorld().GetCharTrim(curPsw)  
 | 
    #   
 | 
    # #ÃÜÂë²»ÕýÈ·  
 | 
    # if curPsw != oldPsw:  
 | 
    #    curPlayer.Frm_WarehouseMsg(IPY_GameWorld.whmPswError)  
 | 
    #    EventShell.DoExitEvent(curPlayer)  
 | 
    #      
 | 
    #    PlayerControl.NotifyCode(curPlayer, "GeRen_pan_59781")  
 | 
    #    return  
 | 
    #   
 | 
    # #ÃÜÂëÕýÈ·  
 | 
    # ShowWarehouse(curPlayer)  
 | 
    #===========================================================================  
 | 
    return  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 08 µÚÒ»´Î´ò¿ª²Ö¿â#tagCInitWarehousePsw  
 | 
# tagCInitWarehousePsw       *   GettagCInitWarehousePsw();  
 | 
#   
 | 
# class   IPY_CInitWarehousePsw  
 | 
# {  
 | 
# public:  
 | 
#    //ÃÜÂë  
 | 
#    char *      GetPsw();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 08 µÚÒ»´Î´ò¿ª²Ö¿â#tagCInitWarehousePsw  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 08 µÚÒ»´Î´ò¿ª²Ö¿â#tagCInitWarehousePsw  
 | 
def InitWarehousePsw(curPlayer, tick):  
 | 
#    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇÉèÖÃÃÜÂë״̬  
 | 
#    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsSetPsw:  
 | 
#        return  
 | 
#      
 | 
#    sendPack = IPY_GameWorld.IPY_CInitWarehousePsw()  
 | 
#    #ÃÜÂë  
 | 
#    curPsw = sendPack.GetPsw()  
 | 
#    #ºÏÀíÐÔ¼ì²é, Èç¹ûÃÜÂëΪ¿Õ, Ôò±íʾ²»ÐèÒªÊäÈëÃÜÂë(°Ñ ÊÇ·ñÐèҪǮׯÃÜÂë ×Ö¶ÎÉèÖÃΪ0)  
 | 
#    curPlayer.Frm_WarehouseMsg(IPY_GameWorld.whmSetPswOK)  
 | 
#      
 | 
#    PlayerControl.NotifyCode(curPlayer, "GeRen_pan_106532")  
 | 
#      
 | 
#    #ÕâÀïÊǵ÷ÓÃc++µÄ¹ýÂ˿ոñ,¿ÉÒÔ¹ýÂËÈ«½Ç¿Õ¸ñ, python²»ÄÜ  
 | 
#    curPsw = GameWorld.GetGameWorld().GetCharTrim(curPsw)  
 | 
#      
 | 
#    if curPsw == "":  
 | 
#        curPlayer.SetHaveWarehousePsw(0)  
 | 
#        return  
 | 
#      
 | 
#    #ÉèÖòֿâÃÜÂë   
 | 
#    curPlayer.SetWarehousePsw(curPsw)  
 | 
#    DataRecordPack.DR_SetWarehousePsw(curPlayer, "", curPsw)  
 | 
#      
 | 
#    #°Ñ ÊÇ·ñÐèҪǮׯÃÜÂë ×Ö¶ÎÉèÖÃΪ1  
 | 
#    curPlayer.SetHaveWarehousePsw(1)  
 | 
    return  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#===============================================================================  
 | 
# //0C 09 ²Ö¿âÍ϶¯ÎïÆ·#tagMoveItemInWarehouse  
 | 
# tagMoveItemInWarehouse       *   GettagMoveItemInWarehouse();  
 | 
#   
 | 
# class   IPY_MoveItemInWarehouse  
 | 
# {  
 | 
# public:  
 | 
#    //ÆðʼλÖà  
 | 
#    int      GetSrcIndex();  
 | 
#    //Ä¿±êλÖà  
 | 
#    int      GetDestIndex();  
 | 
#   
 | 
#    int      GetCount();  
 | 
# };  
 | 
#===============================================================================  
 | 
##¿Í»§¶Ë·â°üÏìÓ¦ //0C 09 ²Ö¿âÍ϶¯ÎïÆ·#tagMoveItemInWarehouse  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0C 09 ²Ö¿âÍ϶¯ÎïÆ·#tagMoveItemInWarehouse  
 | 
def MoveItemInWarehouse(curPlayer, tick):  
 | 
    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇǮׯ´æÈ¡×´Ì¬  
 | 
    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:  
 | 
        return  
 | 
      
 | 
    #»ñµÃ·â°ü  
 | 
    sendPack = IPY_GameWorld.IPY_MoveItemInWarehouse()  
 | 
    #ÎïÆ·ÊýÁ¿  
 | 
    putCount = sendPack.GetCount()  
 | 
    #²Ö¿âÎïÆ··ÅÈë±³°ü   
 | 
    ItemControler.DragItem(curPlayer, IPY_GameWorld.rptWarehouse, sendPack.GetSrcIndex(), IPY_GameWorld.rptWarehouse, sendPack.GetDestIndex(), putCount)  
 | 
    return  
 | 
  
 | 
#===============================================================================  
 | 
# ´Ë½Ó¿Ú·ÏÆú, ±³°üÕûÀí·â°üÐÞ¸Ä  
 | 
# #---------------------------------------------------------------------  
 | 
# ##ÖØÕû²Ö¿â  
 | 
# # @param index Íæ¼ÒË÷Òý  
 | 
# # @param tick Ê±¼ä´Á  
 | 
# # @return ·µ»ØÖµÎÞÒâÒå  
 | 
# # @remarks ÈÎÎñµ÷ÓÃ, ÖØÕû²Ö¿â fc_ResetWarehouseItem  
 | 
# def ResetWarehouseItem(curPlayer, tick):  
 | 
#    #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇǮׯ´æÈ¡×´Ì¬  
 | 
#    if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:  
 | 
#        return  
 | 
#      
 | 
#    ItemControler.ResetItem(curPlayer, IPY_GameWorld.rptWarehouse, tick)  
 | 
#    return  
 | 
#===============================================================================  
 | 
#---------------------------------------------------------------------  
 | 
##ÐèÒª¸ü¸Ä²Ö¿âÃÜÂë  
 | 
# @param index Íæ¼ÒË÷Òý  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks ÈÎÎñµ÷ÓÃ, ÐèÒª¸ü¸Ä²Ö¿âÃÜÂë, fc_WarehousePsw  
 | 
def WarehousePsw(curPlayer, tick):  
 | 
  
 | 
#    #ÊÇ·ñÒѾÉèÖÃÃÜÂë  
 | 
#    haveWarehousePsw = curPlayer.GetHaveWarehousePsw()  
 | 
#      
 | 
#    #ÔÏÈÒѾÉèÖòֿâÃÜÂëµÄÇé¿ö  
 | 
#    if haveWarehousePsw:  
 | 
#        #Ìø³ö¸ü¸ÄÃÜÂë´°¿Ú  
 | 
#        curPlayer.Frm_ChangeWarehousePsw()  
 | 
#        #ÉèÖÃÍæ¼Òµ±Ç°×´Ì¬ÎªÐÞ¸ÄÃÜÂë״̬  
 | 
#        curPlayer.SetWarehouseState(IPY_GameWorld.wsChangePsw)  
 | 
#    #ÔÏÈûÓÐÉèÖòֿâÃÜÂëµÄÇé¿ö    
 | 
#    else:  
 | 
#        #Ìø³öÉèÖÃÃÜÂë´°¿Ú  
 | 
#        curPlayer.Frm_SetWarehousePsw()  
 | 
#        #ÉèÖÃÍæ¼Òµ±Ç°×´Ì¬ÎªÉèÖÃÃÜÂë״̬  
 | 
#        curPlayer.SetWarehouseState(IPY_GameWorld.wsSetPsw)  
 | 
#          
 | 
#        return  
 | 
      
 | 
    return  
 | 
  
 | 
      
 | 
      
 | 
      
 | 
      
 |