1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/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, 0, [IPY_GameWorld.rptItem], event=["FamilyArrestAward", False, recordData])
 
    #ÉèÖý±ÀøÁìÈ¡³É¹¦
    state = state|pow(2, bit)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyArrestAwardState, state)
 
    #½±ÀøÁìÈ¡Çé¿ö
    ChPlayer.Sync_FamilyArrestAwardReceiveState(curPlayer)
    return