#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
##@package
|
#
|
# @todo: Ó¡¼ÇÎªÍæ¼ÒÑ¡ÔñսʿľÁé¸ùºó»á»ñµÃµÄÄÜÁ¿µã£¬SP¼¼Äܻḽ´ø¼Ó³É»òÕßÏûºÄÓ¡¼Çµã
|
#
|
# @author: Alee
|
# @date 2019-4-26 ÏÂÎç03:05:54
|
# @version 1.0
|
#
|
# @note: ÓÃXP½Ó¿Ú¼Ç¼
|
#
|
#---------------------------------------------------------------------
|
|
import IpyGameDataPY
|
import PlayerControl
|
import GameWorld
|
import ChPyNetSendPack
|
import NetPackCommon
|
import ChConfig
|
import ShareDefine
|
|
Def_LastYinji_Tick = "lastyjtick" # ÉÏÒ»´ÎÓ¡¼ÇÏûʧʱ¼ä
|
|
def AddYinji(curPlayer, cnt):
|
beforeCnt = PlayerControl.GetYinjiCnt(curPlayer)
|
#ÉÏÏÞ X¸ö
|
PlayerControl.SetYinjiCnt(curPlayer, min(beforeCnt + cnt, IpyGameDataPY.GetFuncCfg('Yinji', 2)))
|
|
if beforeCnt == 0:
|
# µÚÒ»´Î¼ÓÓ¡¼ÇÐèÖØ¼ÆÊ±
|
StartYinjiTick(curPlayer)
|
|
return
|
|
def SubYinji(curPlayer, cnt):
|
PlayerControl.SetYinjiCnt(curPlayer, max(PlayerControl.GetYinjiCnt(curPlayer) - cnt, 0))
|
return
|
|
|
|
# ÿXÃë×Ô¶¯¼õÉÙ1¸öÓ¡¼Ç
|
def ProcessPlayerYinji(curPlayer, tick):
|
if PlayerControl.GetYinjiCnt(curPlayer) == 0:
|
return
|
|
if tick - curPlayer.GetDictByKey(Def_LastYinji_Tick) < PlayerControl.GetLostYinjiTime(curPlayer):
|
return
|
|
StartYinjiTick(curPlayer)
|
|
|
SubYinji(curPlayer, 1)
|
|
|
def StartYinjiTick(curPlayer):
|
curPlayer.SetDict(Def_LastYinji_Tick, GameWorld.GetGameWorld().GetTick())
|
pack = ChPyNetSendPack.tagMCYinjiStartTime()
|
|
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
|
|