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