| | |
| | | import ShareDefine
|
| | | import ChConfig
|
| | | import IPY_GameWorld
|
| | | import IpyGameDataPY
|
| | |
|
| | | # 关于血量的函数这里只包装最简单的超DWORD处理
|
| | |
|
| | |
| | | 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.GetGameObjType() == IPY_GameWorld.gotNPC:
|
| | | npcID = gameObj.GetNPCID()
|
| | | if IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", npcID) 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)
|
| | |
|
| | |
| | | # @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:
|
| | |
| | |
|
| | |
|
| | | #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
|
| | |
|
| | |
| | | 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)
|