hch
2019-04-19 f3fd1d3c52fc2c3c49254db83a8fba108f3acc8b
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -43,10 +43,13 @@
        return gameObj.GetHPEx()*ShareDefine.Def_PerPointValue + gameObj.GetHP()
def SetHP(gameObj, value, isNotify=True):
def SetHP(gameObj, value, isNotify=True, isByTime=False):
    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
        gameObj.SetHP(value, isNotify)
    else:
        if gameObj.GetType() == ChConfig.ntMonsterTime and not isByTime and value not in [GetMaxHP(gameObj), 0]:
            #GameWorld.DebugLog("不能设置按时间掉血的怪物血量! id=%s,npciD=%s,value=%s,isByTime=%s" % (gameObj.GetID(), gameObj.GetNPCID(), value, isByTime))
            return
        gameObj.SetHPEx(value/ShareDefine.Def_PerPointValue)
        gameObj.SetHP(value%ShareDefine.Def_PerPointValue)
        
@@ -55,14 +58,16 @@
#  @param pyState ״̬
#  @param isTrue 是否设置该状态
#  @return None
def SetPyPlayerState(gameObj, pyState, isTrue):
def SetPyPlayerState(gameObj, pyState, isAdd):
    if pyState not in ChConfig.Def_PlayerStateList:
        return
    
    curState = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_CurState)
    if isTrue:
    if isAdd:
        # 增加
        updState = curState | pow(2, pyState)
    else:
        # 删除
        if curState & pow(2, pyState) == 0:
            return
        else:
@@ -70,7 +75,7 @@
    
    #GameWorld.DebugLog("SetPyPlayerState (%s - %s), curState=%s,updState=%s" 
    #                   % (pyState, isTrue, curState, updState))
    #                   % (pyState, isAdd, curState, updState))
    gameObj.SetDict(ChConfig.Def_PlayerKey_CurState, updState)
    return