#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#---------------------------------------------------------------------  
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
##@package GY_Query_FamilyArrestAward  
 | 
# @todo: ÁìÈ¡°ï»áÐüÉÍÈÎÎñ½±Àø  
 | 
#  
 | 
# @author: jiang  
 | 
# @date 2012-02-14  
 | 
# @version 1.2  
 | 
#  
 | 
# @note:   
 | 
# @change: "2014-10-31 13:30" hxp »Ö¸´Õ½ÃËÐüÉÍÈÎÎñ£»Ôö¼Ó¸øÎïÆ·½±Àø  
 | 
# @change: "2015-02-11 16:40" ljd Áì½±¼Ç¼Á÷Ïò  
 | 
#---------------------------------------------------------------------  
 | 
"""Version = 2015-02-11 16:40"""  
 | 
#---------------------------------------------------------------------  
 | 
import IPY_GameWorld  
 | 
import GameWorld  
 | 
import ChConfig  
 | 
import ReadChConfig  
 | 
import ItemCommon  
 | 
import PlayerControl  
 | 
import ItemControler  
 | 
import ShareDefine  
 | 
import ChPlayer  
 | 
import DataRecordPack  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#Â߼ʵÏÖ  
 | 
## ÁìÈ¡°ï»áÐüÉÍÈÎÎñ½±Àø  
 | 
#  @param query_Type ÇëÇóÀàÐÍ  
 | 
#  @param query_ID ÇëÇóµÄÍæ¼ÒID  
 | 
#  @param packCMDList ·¢°üÃüÁî  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return "True" or "False" or ""  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def DoLogic(query_Type, query_ID, packCMDList, tick):  
 | 
    return ''  
 | 
  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
## Ö´Ðнá¹û  
 | 
#  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  
 | 
#  @param callFunName ¹¦ÄÜÃû³Æ  
 | 
#  @param funResult ²éѯµÄ½á¹û  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def DoResult(curPlayer, callFunName, funResult, tick):  
 | 
    #¸ü¸Ä²éѯ״̬  
 | 
    curPlayer.SetDict(ChConfig.Def_PlayerKey_FamilyArrestQueryState, 0)  
 | 
      
 | 
    result, arrestID = eval(funResult)  
 | 
    if not result:  
 | 
        #¸ÃÐüÉÍÈÎÎñ»¹Ã»ÓÐÍê³É  
 | 
        GameWorld.DebugLog("¸ÃÐüÉÍÈÎÎñ»¹Ã»ÓÐÍê³É")  
 | 
        return  
 | 
      
 | 
    state = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyArrestAwardState)  
 | 
    bit = ShareDefine.Def_ArrestOverState_BitDic.get(arrestID)  
 | 
      
 | 
    if state & pow(2, bit):  
 | 
        #ÒѾÁìÈ¡¹ý  
 | 
        GameWorld.DebugLog("¸ÃÐüÉÍÈÎÎñ½±ÀøÒѾÁìÈ¡¹ý")  
 | 
        return  
 | 
      
 | 
    arrestAwardDict = ReadChConfig.GetEvalChConfig("FamilyArrestAward")  
 | 
    awardItemInfo = arrestAwardDict.get(arrestID)  
 | 
    if awardItemInfo == None:  
 | 
        #ÕÒ²»µ½ÐüÉͽ±ÀøµÄÍþÍû  
 | 
        GameWorld.ErrLog("PlayerFamilyArrest arrestID = %s no award"%arrestID)  
 | 
        return  
 | 
      
 | 
    needSpace, awardItemList = awardItemInfo  
 | 
    # ¼ì²é±³°ü  
 | 
    packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem)  
 | 
    if needSpace > packSpace:  
 | 
        PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")  
 | 
        return  
 | 
      
 | 
    # ¸øÎïÆ·  
 | 
    for itemID, itemCnt, isBind in awardItemList:  
 | 
        recordData = {'FamilyArrest':state, 'ArrestID':arrestID}  
 | 
        ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem], True,   
 | 
                                     showSysInfo=True, event=["FamilyArrestAward", False, recordData])  
 | 
  
 | 
    #ÉèÖý±ÀøÁìÈ¡³É¹¦  
 | 
    state = state|pow(2, bit)  
 | 
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyArrestAwardState, state)  
 | 
  
 | 
    #½±ÀøÁìÈ¡Çé¿ö  
 | 
    ChPlayer.Sync_FamilyArrestAwardReceiveState(curPlayer)  
 | 
    return  
 |