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