#!/usr/bin/python # -*- coding: GBK -*- # ##@package E:/GameSVN/U3DGame/ProjectSServer/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py # @todo: # # @author: Alee # @date 2017-10-24 ÏÂÎç07:49:45 # @version 1.0 # # @note: # #--------------------------------------------------------------------- import ShareDefine import ChConfig import IPY_GameWorld # ¹ØÓÚѪÁ¿µÄº¯ÊýÕâÀïÖ»°ü×°×î¼òµ¥µÄ³¬DWORD´¦Àí def GetMaxHP(gameObj): if not hasattr(gameObj, "GetMaxHPEx"): return gameObj.GetMaxHP() else: return gameObj.GetMaxHPEx()*ShareDefine.Def_PerPointValue + gameObj.GetMaxHP() def SetMaxHP(gameObj, value): if not hasattr(gameObj, "SetMaxHPEx"): gameObj.SetMaxHP(value) else: gameObj.SetMaxHPEx(value/ShareDefine.Def_PerPointValue) gameObj.SetMaxHP(value%ShareDefine.Def_PerPointValue) def GetHP(gameObj): if not hasattr(gameObj, "GetHPEx"): return gameObj.GetHP() else: return gameObj.GetHPEx()*ShareDefine.Def_PerPointValue + gameObj.GetHP() def SetHP(gameObj, value, isNotify=True): if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer: gameObj.SetHP(value, isNotify) else: gameObj.SetHPEx(value/ShareDefine.Def_PerPointValue) gameObj.SetHP(value%ShareDefine.Def_PerPointValue) ## ÉèÖÃbuff״̬(½Å±¾×Ô¶¨Òåö¾Ù) # @param pyState ״̬ # @param isTrue ÊÇ·ñÉèÖøÃ״̬ # @return None def SetPyPlayerState(gameObj, pyState, isTrue): if pyState not in ChConfig.Def_PlayerStateList: return curState = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_CurState) if isTrue: updState = curState | pow(2, pyState) else: if curState & pow(2, pyState) == 0: return else: updState = curState ^ pow(2, pyState) #GameWorld.DebugLog("SetPyPlayerState (%s - %s), curState=%s,updState=%s" # % (pyState, isTrue, curState, updState)) gameObj.SetDict(ChConfig.Def_PlayerKey_CurState, updState) return ## »ñÈ¡buff״̬(½Å±¾×Ô¶¨Òåö¾Ù) # @param pyState ״̬ # @return ÊÇ·ñ¸Ã״̬ # @remarks ¸Ã״̬Ϊbuff¶ÔÓ¦µÄ×Ô¶¨Òå״̬Ч¹û # Ŀǰµ±Ä¿±êÉíÉ϶à¸öbuff¶¼ÓÐͬһЧ¹ûʱ(È綨Éí)£¬ÔÚÒ»¸öbuffÏûʧʱ»á½â³ý¸Ã״̬ # ¹Ê¸Ã״̬±ê¼Ç½öΪһ¸ö·Ç¾«È·µÄ±ê¼Ç£¬Ó¦ÓÃÖÐÇë×¢Ò⣡£¡£¡(µ±ÇÒ½öµ±¶à¸öbuffÓÐͬһ¸öЧ¹ûʱ»áÌáǰ½áÊø¸Ã״̬) def GetPyPlayerState(gameObj, pyState): curState = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_CurState) state = curState & pow(2, pyState) return state def GetPetDamPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer) def SetPetDamPer(gameObj, value): gameObj.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value) if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer: gameObj.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False)