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