#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
#-------------------------------------------------------------------------------
|
#
|
##@package Player.RemoteQuery.GY_Query_MixServerCampaignAward
|
#
|
# @todo:ºÏ·þ»î¶¯½±Àø
|
# @author hxp
|
# @date 2014-12-03
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ºÏ·þ»î¶¯½±Àø
|
#
|
#---------------------------------------------------------------------
|
"""Version = 2014-12-03 14:30"""
|
|
import GameWorld
|
import ChConfig
|
import ShareDefine
|
import MixServerCampaign
|
#---------------------------------------------------------------------
|
|
(
|
Def_Result_QureyType,
|
Def_Result_CampaignType,
|
Def_Result_CampaignIndex,
|
Def_Result_Order,
|
Def_Result_FamilyLV,
|
Def_Result_MemberFamilyLV,
|
Def_Result_Max,
|
) = range(0, 6 + 1)
|
|
## ÇëÇóÂß¼
|
# @param query_Type ÇëÇóÀàÐÍ
|
# @param query_ID ÇëÇóµÄÍæ¼ÒID
|
# @param packCMDList ·¢°üÃüÁî [ ]
|
# @param tick µ±Ç°Ê±¼ä
|
# @return resultDisc
|
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_QueryMixServerAwardState, 0)
|
|
try:
|
funResultList = eval(funResult)
|
except:
|
GameWorld.ErrLog("GY_Query_MixServerCampaignAward %s eval Error" % funResult)
|
return
|
|
GameWorld.DebugLog("GY_Query_MixServerCampaignAward ResultList=%s" % str(funResultList))
|
|
if not funResultList:
|
return
|
|
# if len(funResultList) != Def_Result_Max:
|
# return
|
|
#[²éѯÀàÐÍ, »î¶¯ÀàÐÍ, ²éѯ½±ÀøË÷Òý, Ãû´Î, ¼Ò×åµÈ¼¶, ¼Ò×åְλ]
|
|
campaignType = funResultList[Def_Result_CampaignType] # »î¶¯ÀàÐÍ
|
if campaignType in ShareDefine.DoOnMapServerMixCampaignTypeList:
|
return
|
|
queryType = funResultList[Def_Result_QureyType] # ²éѯÀàÐÍ
|
if queryType == ShareDefine.Def_MSCGameServerQuery_QueryAward:
|
order = funResultList[Def_Result_Order] # Ãû´Î
|
|
#·¢ËͿɷñÁì½±½á¹û,-1´ú±íÒѾÁì¹ý£¬0-δÂú×ãÁìÈ¡Ìõ¼þ£¬>0-Âú×ãÁìÈ¡Ìõ¼þ
|
result = order
|
recordData = order
|
|
# Èç¹ûÒÑÁìÈ¡£¬×ª»¯Îª2
|
if result == -1:
|
result = 2
|
# Èç¹ûÂú×ãÁìÈ¡Ìõ¼þ£¬×ª»¯Îª1
|
elif result > 0:
|
result = 1
|
# ÆäÓàĬÈÏΪ²»ÄÜÁì
|
else:
|
result = 0
|
|
MixServerCampaign.Sync_MixServerCampaignAward(curPlayer, campaignType, result, recordData)
|
return
|
elif queryType == ShareDefine.Def_MSCGameServerQuery_GetAward:
|
order = funResultList[Def_Result_Order] # Ãû´Î
|
if order <= 0:
|
#²»ÄÜÁì½±
|
GameWorld.DebugLog(" ²»ÄÜÁì½± campaignType=%s" % campaignType)
|
return
|
familyLV = funResultList[Def_Result_FamilyLV] # ¼Ò×åµÈ¼¶
|
memberFamilyLV = funResultList[Def_Result_MemberFamilyLV] # ¼Ò×åְλ
|
campaignIndex = funResultList[Def_Result_CampaignIndex] # ²éѯ½±Àø
|
MixServerCampaign.DoGetMixServerCampaignAward(curPlayer, campaignType, campaignIndex, \
|
order, familyLV, memberFamilyLV)
|
elif queryType == ShareDefine.Def_MSCGameServerQuery_MailAward:
|
oscTypeList = funResultList[1] # Óʼþ·¢Ëͽ±ÀøÀàÐÍÁбí
|
queryResultList = funResultList[2] # Óʼþ·¢Ëͽ±ÀøÀàÐÍËùÐèÐÅÏ¢Áбí
|
if len(oscTypeList) != len(queryResultList):
|
GameWorld.ErrLog(" ºÏ·þ»î¶¯·¢·ÅÓʼþ½±ÀøÊý¾Ý´íÎó! len(oscTypeList %s) != len(queryResultList %s)"
|
% (oscTypeList, queryResultList), curPlayer.GetPlayerID())
|
return
|
|
for i, oscType in enumerate(oscTypeList):
|
MixServerCampaign.DoSendMSCAwardMail(curPlayer, oscType, queryResultList[i])
|
return
|