hch
2019-05-14 010db2152c26061cf4ac03a72fbd574196001f74
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,28 @@
    curPlayer.SetDict(Def_LastYinji_Tick, GameWorld.GetGameWorld().GetTick())
    pack = ChPyNetSendPack.tagMCYinjiStartTime()
    NetPackCommon.SendFakePack(curPlayer, pack)
    NetPackCommon.SendFakePack(curPlayer, pack)
#===============================================================================
# // 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.GetLV() > 100:
        # 只是为了前期前端战斗的使用
        return
    if clientData.Type == 0:
        AddYinji(curPlayer, clientData.Count)
    elif clientData.Type == 1:
        SubYinji(curPlayer, clientData.Count)
    return