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