#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
#
|
##@package PlayerWorldAverageLv.py
|
#
|
# @todo:ÊÀ½çµÈ¼¶
|
#
|
# @author zhangxi
|
# @date 2012-07-09
|
# @version 1.2
|
# @note:
|
# @change: "2013-03-13 17:00" wdb ɾ³ý·â°ü
|
# @change: "2014-08-18 12:30" hxp »Ö¸´ÊÀ½çµÈ¼¶
|
#
|
#------------------------------------------------------------------------------
|
#"""Version = 2014-08-18 12:30"""
|
#------------------------------------------------------------------------------
|
import GameWorld
|
import ShareDefine
|
import ChPyNetSendPack
|
import NetPackCommon
|
import PlayerControl
|
import GameFuncComm
|
import IpyGameDataPY
|
|
import math
|
#-----------------------------------------------------------------------------
|
|
|
def OnLogin(curPlayer):
|
## µÇ¼ÊÀ½çµÈ¼¶´¦Àí
|
if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_WorldLV):
|
return
|
|
__CheckAverageLvBuff(curPlayer)
|
# ͬ²½
|
Sync_WorldAverageLv(curPlayer)
|
return
|
|
def UpdatePlayerWorldAverageLv(curPlayer):
|
## ÊÀ½çµÈ¼¶±ä¸ü¸üÐÂ
|
if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_WorldLV):
|
return
|
|
# ÊÀ½çµÈ¼¶,¾Ñé±¶ÂÊ,ÄÜ·ñÁì½±
|
Sync_WorldAverageLv(curPlayer)
|
# ¾Ñé±¶Âʸıä
|
PlayerControl.Sync_ExpRateChange(curPlayer)
|
|
__CheckAverageLvBuff(curPlayer)
|
return
|
|
def __CheckAverageLvBuff(curPlayer):
|
## ¼ì²éÊÀ½çµÈ¼¶buff
|
#===========================================================================
|
# tick = GameWorld.GetGameWorld().GetTick()
|
# worldLv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
# expRate = GetWorldAverageLvExpRate(curPlayer)
|
# GameWorld.DebugLog("UpdatePlayerWorldAverageLv...worldLv=%s,expRate=%s" % (worldLv, expRate))
|
# if expRate > 0:
|
# GameWorld.DebugLog(" AddBuffNoRefreshState...")
|
# addSkill = GameWorld.GetGameData().GetSkillBySkillID(ChConfig.Def_SkillID_WorldAverageLvBuff)
|
# buffType = SkillCommon.GetBuffType(addSkill)
|
# BuffSkill.AddBuffNoRefreshState(curPlayer, buffType, addSkill, tick, 0, curPlayer)
|
# else:
|
# GameWorld.DebugLog(" DelBuffBySkillID...")
|
# BuffSkill.DelBuffBySkillID(curPlayer, ChConfig.Def_SkillID_WorldAverageLvBuff, tick, False)
|
#===========================================================================
|
return
|
|
|
def GetWorldAverageLvExpRate(curPlayer):
|
## »ñÈ¡ÊÀ½çµÈ¼¶µÄ¾Ñé±¶ÂÊ
|
worldLv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
if not worldLv:
|
return 0
|
|
#µÈ¼¶ÏÞÖÆ
|
if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_WorldLV):
|
return 0
|
playerLv = curPlayer.GetLV() #²ÎÊý
|
worldExpRateFormula = IpyGameDataPY.GetFuncCompileCfg('WorldLvExpRate')
|
expRate = eval(worldExpRateFormula)
|
|
expRate = int(expRate)
|
return expRate
|
|
|
def Sync_WorldAverageLv(curPlayer):
|
## ֪ͨÊÀ½çµÈ¼¶
|
gameWorld = GameWorld.GetGameWorld()
|
worldAverageLv = ChPyNetSendPack.tagPyMCWorldAverageLv()
|
worldAverageLv.Clear()
|
worldAverageLv.WorldLv = gameWorld.GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
worldAverageLv.ExpRate = GetWorldAverageLvExpRate(curPlayer)
|
NetPackCommon.SendFakePack(curPlayer, worldAverageLv)
|
return
|
|