#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package PlayerRewardOnLogin  
 | 
#  
 | 
# @todo:ÉÏÏ߸ù¾ÝͨÓý±Àø¼Ç¼¸ø½±Àø  
 | 
# @author hxp  
 | 
# @date 2015-9-21  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ÉÏÏ߸ù¾ÝͨÓý±Àø¼Ç¼¸ø½±Àø  
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
"""Version = 2015-9-21 20:00"""  
 | 
#---------------------------------------------------------------------  
 | 
#import DataRecordPack  
 | 
#import ShareDefine  
 | 
#import GameWorld  
 | 
#import ChConfig  
 | 
#  
 | 
#import time  
 | 
  
 | 
#Def_RecType = ShareDefine.Def_UniversalGameRecType_RewardOnLogin  
 | 
  
 | 
  
 | 
## ÌíÍæ¼ÒµÇ½ʱ¿ÉÁìÈ¡µÄ½±Àø  
 | 
#  @param playerID Íæ¼ÒID  
 | 
#  @param accID Íæ¼ÒaccID  
 | 
#  @param actionType »î¶¯ÀàÐÍ, ¸ù¾Ý»î¶¯ÀàÐÍ¿É×öһЩ²»Í¬µÄ´¦Àí£¬ÈçÅäÖò»Í¬µÄÌáʾµÈ  
 | 
#  @param rewardType ½±ÀøÀàÐÍ, Èç×êʯ¡¢½ð±ÒµÈ  
 | 
#  @param value ½±ÀøÊýÖµ  
 | 
#  @return None  
 | 
def AddPlayerRewardOnLogin(playerID, accID, actionType, rewardType, value):  
 | 
      
 | 
#    #ËùÓÐÍæ¼ÒÐÅϢͨÓüǼ¶ÔÏó¹ÜÀíÆ÷  
 | 
#    universalRecMgr = GameWorld.GetUniversalRecMgr()    
 | 
#      
 | 
#    #ijһÀàÐͼǼµÄËùÓÐÊý¾Ý  
 | 
#    recTypeListData = universalRecMgr.GetTypeList(Def_RecType)  
 | 
#    recCount = recTypeListData.Count()  
 | 
#    if recCount >= ChConfig.UniversalGameRecTypeSaveCnt.get(Def_RecType, 0):  
 | 
#        recTypeListData.SortByTime()  # °´Ê±¼äÉýÐò  
 | 
#        recTypeListData.Delete(0)  # É¾³ýµÚÒ»¸ö  
 | 
#          
 | 
#    curTimeStr = GameWorld.GetCurrentDataTimeStr()  
 | 
#    curTimeTuple = time.strptime(curTimeStr, ChConfig.TYPE_Time_Format)  
 | 
#    curTimeNum = int(time.mktime(curTimeTuple))  
 | 
#          
 | 
#    #Ìí¼ÓÒ»¸ö¼Ç¼¶ÔÏó  
 | 
#    recObj = recTypeListData.AddRec()  
 | 
#      
 | 
#    #---ÉèÖüǼ¶ÔÏóÊý¾Ý---  
 | 
#    recObj.SetTime(curTimeNum)  
 | 
#    recObj.SetStrValue1(accID)  
 | 
#    recObj.SetValue1(playerID)  
 | 
#    recObj.SetValue2(actionType)  
 | 
#    recObj.SetValue3(rewardType)  
 | 
#    recObj.SetValue4(value)  
 | 
#      
 | 
#    #Á÷Ïò  
 | 
#    DataRecordPack.DR_PlayerRewardOnLogin(playerID, accID, actionType, rewardType, value, "Add")  
 | 
    return  
 | 
  
 | 
  
 | 
## Íæ¼ÒµÇ½ʱ¿ÉÁìÈ¡µÄ½±Àø  
 | 
#  @param curPlayer   
 | 
#  @return None  
 | 
def MapServer_RewardOnLogin(curPlayer):  
 | 
      
 | 
#    player_ID = curPlayer.GetPlayerID()  
 | 
#    acc_ID = curPlayer.GetAccID()  
 | 
#    universalRecMgr = GameWorld.GetUniversalRecMgr()   
 | 
#    recTypeListData = universalRecMgr.GetTypeList(Def_RecType)  
 | 
#    recCount = recTypeListData.Count()  
 | 
#      
 | 
#    GameWorld.Log("MapServer_RewardOnLogin recCount=%s" % recCount)  
 | 
#    rewarDict = {} #{actionType:{rewardType:value,...}, ...}  
 | 
#    #´Ó´óµ½Ð¡É¾³ý  
 | 
#    index = recCount - 1  
 | 
#    for i in range(recCount):  
 | 
#        delIndex = index - i  
 | 
#        universalRecData = recTypeListData.At(delIndex)  
 | 
#        accID = universalRecData.GetStrValue1()  
 | 
#        playerID = universalRecData.GetValue1()  
 | 
#        actionType = universalRecData.GetValue2()  
 | 
#        rewardType = universalRecData.GetValue3()  
 | 
#        value = universalRecData.GetValue4()  
 | 
#          
 | 
#        # Á½Õß¶¼ÐèÆ¥Å䣨ºÏ·þºóplayID»á±ä¸ü£¬µ«ÊÇÖ÷·þ£©  
 | 
#        if playerID != player_ID or (accID != "" and accID != acc_ID):  
 | 
#            GameWorld.DebugLog("·Ç±¾·þÍæ¼Ò½±Àø¼Ç¼£ºrecPlayerID=%s,recAccID=%s,playerID=%s,accID=%s"   
 | 
#                               % (playerID, accID, player_ID, acc_ID))  
 | 
#            continue  
 | 
#          
 | 
#        rewardTypeDict = rewarDict.get(actionType, {})  
 | 
#        rewardTypeDict[rewardType] = rewardTypeDict.get(rewardType, 0) + value  
 | 
#        rewarDict[actionType] = rewardTypeDict  
 | 
#          
 | 
#        #ɾ³ý¸ÃÌõ½±Àø  
 | 
#        recTypeListData.Delete(delIndex)  
 | 
#        DataRecordPack.DR_PlayerRewardOnLogin(playerID, accID, actionType, rewardType, value, "Del")  
 | 
#        GameWorld.Log("    recTypeListData Delete %s" % delIndex)  
 | 
#      
 | 
#    if not rewarDict:  
 | 
#        GameWorld.Log("ûÓÐÀëÏߵǽ½±ÀøÁìÈ¡", player_ID)  
 | 
#        return  
 | 
#      
 | 
#    sendMsg = str(rewarDict)  
 | 
#    #֪ͨMapServer¸ø½±Àø  
 | 
#    curPlayer.MapServer_QueryPlayerResult(0, 0, 'RewardOnLogin', sendMsg, len(sendMsg))  
 | 
#    GameWorld.Log("µÇ½¸øÀëÏ߻½±Àø£ºsendMsg=%s" % sendMsg, curPlayer.GetPlayerID())  
 | 
    return  
 | 
  
 | 
  
 | 
  
 | 
  
 |