xdh
2019-07-05 df744c751c6367ea362236f8ec7cbb6a66f2d9d8
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerYinji.py
@@ -18,14 +18,15 @@
import GameWorld
import ChPyNetSendPack
import NetPackCommon
import ChConfig
import ShareDefine
Def_LastYinji_Tick = "lastyjtick"   # 上一次印记消失时间
#CDBPlayerRefresh_XP
def AddYinji(curPlayer, cnt):
    beforeCnt = GetYinjiCnt(curPlayer)
    beforeCnt = PlayerControl.GetYinjiCnt(curPlayer)
    #上限    X个
    curPlayer.SetXP(min(beforeCnt + cnt, IpyGameDataPY.GetFuncCfg('Yinji', 2)))
    PlayerControl.SetYinjiCnt(curPlayer, min(beforeCnt + cnt, IpyGameDataPY.GetFuncCfg('Yinji', 2)))
    
    if beforeCnt == 0:
        # 第一次加印记需重计时
@@ -34,22 +35,21 @@
    return
def SubYinji(curPlayer, cnt):
    curPlayer.SetXP(max(curPlayer.GetXP() - cnt, 0))
    PlayerControl.SetYinjiCnt(curPlayer, max(PlayerControl.GetYinjiCnt(curPlayer) - cnt, 0))
    return
def GetYinjiCnt(curPlayer):
    return curPlayer.GetXP()
# 每X秒自动减少1个印记
def ProcessPlayerYinji(curPlayer, tick):
    if GetYinjiCnt(curPlayer) == 0:
    if PlayerControl.GetYinjiCnt(curPlayer) == 0:
        return
    
    if tick - curPlayer.GetDictByKey(Def_LastYinji_Tick) < PlayerControl.GetLostYinjiTime(curPlayer):
        return
    
    StartYinjiTick(curPlayer)
    
    SubYinji(curPlayer, 1)
    
@@ -58,4 +58,30 @@
    curPlayer.SetDict(Def_LastYinji_Tick, GameWorld.GetGameWorld().GetTick())
    pack = ChPyNetSendPack.tagMCYinjiStartTime()
    NetPackCommon.SendFakePack(curPlayer, pack)
    NetPackCommon.SendFakePack(curPlayer, pack)
def OnLoadMap(curPlayer):
    PlayerControl.SetYinjiCnt(curPlayer, 0)
    return
#===============================================================================
# // B4 0D 战斗印记 #tagCMYinji
#
# struct    tagCMYinji
# {
#    tagHead        Head;
#    BYTE        Count;
#    BYTE        Type;    // 0 加,1减
# };
#===============================================================================
def OnYinji(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    if curPlayer.GetSightLevel() == 0:
        return
    if clientData.Type == 0:
        AddYinji(curPlayer, clientData.Count)
    elif clientData.Type == 1:
        SubYinji(curPlayer, clientData.Count)
    return