#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package PlayerSealDemon
|
#
|
# @todo:·âħ̳
|
# @author xdh
|
# @date 2017-12-28 16:30
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ·âħ̳
|
#-------------------------------------------------------------------------------
|
#"""Version = 2017-12-28 16:30"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import PyDataManager
|
import CommFunc
|
import PyGameDataStruct
|
|
## ÉÏÏß
|
# @param None
|
# @return None
|
def OnPlayerLogin(curPlayer):
|
PyDataManager.GetSealDemonRecordManager().CheckSealDemonAward(curPlayer)
|
return
|
|
|
|
|
# ·âħ̳½á¹û¹ÜÀí
|
class SealDemonManager(object):
|
|
def __init__(self):
|
self.SealDemonDict = {} # {playerid:price, ...} PyGameDataStruct.tagDBPySealDemonRecord
|
return
|
|
def UpdateSealDemonRecord(self, playerID, lineid, rank):
|
sealDemonRecord = PyGameDataStruct.tagDBPySealDemonRecord()
|
sealDemonRecord.clear()
|
sealDemonRecord.PlayerID = playerID
|
sealDemonRecord.LineID = lineid
|
sealDemonRecord.Rank = rank
|
self.SealDemonDict[playerID] = sealDemonRecord
|
|
GameWorld.DebugLog("¸üзâħ̳¼Ç¼ PlayerID=%s,lineid=%s,rank=%s" % (playerID, lineid, rank))
|
return
|
|
def CheckSealDemonAward(self, curPlayer):
|
playerID = curPlayer.GetPlayerID()
|
if playerID not in self.SealDemonDict:
|
return
|
sealDemonRecord = self.SealDemonDict.pop(playerID)
|
result = str([sealDemonRecord.LineID, sealDemonRecord.Rank])
|
curPlayer.MapServer_QueryPlayerResult(0, 0, "SealDemonAward", result, len(result))
|
return
|
|
|
# ±£´æÊý¾Ý ´æÊý¾Ý¿âºÍrealtimebackup
|
def GetSaveData(self):
|
savaData = ""
|
cntData = ""
|
cnt = 0
|
for sealDemonRecord in self.SealDemonDict.values():
|
cnt += 1
|
savaData += sealDemonRecord.getBuffer()
|
|
GameWorld.Log("SaveSealDemonRecord cnt :%s len=%s" % (cnt, len(savaData)))
|
return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
|
# ´ÓÊý¾Ý¿âÔØÈëºÃÓÑÊý¾Ý
|
def LoadPyGameData(self, datas, pos, dataslen):
|
cnt, pos = CommFunc.ReadDWORD(datas, pos)
|
GameWorld.Log("LoadSealDemonRecord cnt :%s" % cnt)
|
|
self.SealDemonDict = {}
|
|
for _ in xrange(cnt):
|
data = PyGameDataStruct.tagDBPySealDemonRecord()
|
data.clear()
|
pos += data.readData(datas, pos, dataslen)
|
playerID = data.PlayerID
|
self.SealDemonDict[playerID] = data
|
|
return pos
|