| #!/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  |