#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
#
|
##@package PySkillManager
|
# @todo: ÓÃÓÚÕ½¶·Ä£¿éËùÐè½Ó¿Ú£¬Ñ§Ï°¼¼ÄÜµÈÆäËûËùÓýӿڿɲ»¿ª·Å
|
# Ö§³ÖÁÙʱ¸Ä±äÊý¾ÝÒÔ±ãÕ½¶·¼ÆËãµÈÆäËûЧ¹û
|
# @author: Alee
|
# @date: 2013-10-31 14:45
|
# @version 1.1
|
#
|
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
|
# @change: "2016-11-16 15:30" hxp Ôö¼Ó¼õÉÙbuff³ÖÐøÊ±¼ä
|
#
|
#---------------------------------------------------------------------
|
#"""Version = 2016-11-16 15:30"""
|
#---------------------------------------------------------------------
|
#µ¼Èë
|
|
# python Ä£Äâ¼¼ÄÜЧ¹û½á¹¹
|
class PySkillEffect():
|
|
def __init__(self, effObj):
|
self.effectID = effObj.GetEffectID()
|
|
self.effectValueList = []
|
for i in xrange(effObj.GetEffectValueCount()):
|
self.effectValueList.append(effObj.GetEffectValue(i))
|
|
return
|
|
def Clear(self):
|
self.effectID = 0
|
self.effectValueList = []
|
|
def GetEffectID(self):
|
return self.effectID
|
|
def GetEffectValue(self, index):
|
return self.effectValueList[index]
|
|
def GetEffectValueCount(self):
|
return len(self.effectValueList)
|
|
def SetEffectValue(self, index, value):
|
self.effectValueList[index] = value
|
|
def AddEffectValue(self, index, value):
|
self.effectValueList[index] += value
|
|
|
# python Ä£Äâ¼¼Äܽṹ
|
class PySkillData():
|
|
def __init__(self):
|
return
|
|
def CopySkillData(self, skillData):
|
self.Clear()
|
|
self.effObjList = []
|
for i in xrange(skillData.GetEffectCount()):
|
self.effObjList.append(PySkillEffect(skillData.GetEffect(i)))
|
|
self.skillID = skillData.GetSkillID()
|
self.skillName = skillData.GetSkillName()
|
self.skillTypeID = skillData.GetSkillTypeID()
|
self.skillLV = skillData.GetSkillLV()
|
self.skillMaxLV = skillData.GetSkillMaxLV()
|
self.useType = skillData.GetUseType()
|
|
self.funcType = skillData.GetFuncType()
|
|
self.castTime = skillData.GetCastTime()
|
self.skillType = skillData.GetSkillType()
|
self.continueUse = skillData.GetContinueUse()
|
self.atkType = skillData.GetAtkType()
|
self.atkRadius = skillData.GetAtkRadius()
|
self.tag = skillData.GetTag()
|
self.atkDist = skillData.GetAtkDist()
|
self.coolDownTime = skillData.GetCoolDownTime()
|
self.mp = skillData.GetMP()
|
self.hp = skillData.GetHP()
|
self.xp = skillData.GetXP()
|
self.useItemID = skillData.GetUseItemID()
|
self.useItemCnt = skillData.GetUseItemCount()
|
self.skillAngry = skillData.GetSkillAngry()
|
self.skillEnhance1 = skillData.GetSkillEnhance1()
|
self.skillEnhance2 = skillData.GetSkillEnhance2()
|
self.happenRate = skillData.GetHappenRate()
|
self.lastTime = skillData.GetLastTime()
|
self.canRepeatTime = skillData.GetCanRepeatTime()
|
self.commonCD = skillData.GetCommonCD()
|
self.hurtType = skillData.GetHurtType()
|
self.stiffTime = skillData.GetStiffTime()
|
self.clientActionLimit = skillData.GetClientActionLimit()
|
self.serverActionLimit = skillData.GetServerActionLimit()
|
self.clientSkillSeriesLimit = skillData.GetClientSkillSeriesLimit()
|
self.serverSkillSeriesLimit = skillData.GetServerSkillSeriesLimit()
|
self.skillOfSeries = skillData.GetSkillOfSeries()
|
self.exAttr1 = skillData.GetExAttr1()
|
self.exAttr2 = skillData.GetExAttr2()
|
self.exAttr3 = skillData.GetExAttr3()
|
self.exAttr4 = skillData.GetExAttr4()
|
self.exAttr5 = skillData.GetExAttr5()
|
|
#·Çͬ²½ÊôÐÔ
|
self.buffValueEffDict = {}
|
return
|
|
|
def Clear(self):
|
self.effObjList = []
|
self.skillID = 0
|
self.skillName = 0
|
self.skillTypeID = 0
|
self.skillLV = 0
|
self.skillMaxLV = 0
|
self.useType = 0
|
self.weaponTypeList = []
|
self.castTime = 0
|
self.skillType = 0
|
self.continueUse = 0
|
self.atkType = 0
|
self.atkRadius = 0
|
self.tag = 0
|
self.atkDist = 0
|
self.coolDownTime = 0
|
self.mp = 0
|
self.hp = 0
|
self.xp = 0
|
self.useItemID = 0
|
self.useItemCnt = 0
|
self.skillAngry = 0
|
self.skillEnhance1 = 0
|
self.skillEnhance2 = 0
|
self.happenRate = 0
|
self.lastTime = 0
|
self.canRepeatTime = 0
|
self.commonCD = 0
|
self.hurtType = 0
|
self.stiffTime = 0
|
self.clientActionLimit = 0
|
self.serverActionLimit = 0
|
self.clientSkillSeriesLimit = 0
|
self.serverSkillSeriesLimit = 0
|
self.skillOfSeries = 0
|
self.exAttr1 = 0
|
self.exAttr2 = 0
|
self.exAttr3 = 0
|
self.exAttr4 = 0
|
self.exAttr5 = 0
|
|
#·Çͬ²½ÊôÐÔ
|
self.buffValueEffDict = {}
|
self.buffValue = {}
|
return
|
|
def GetEffect(self, index): return self.effObjList[index]
|
def GetEffectCount(self): return len(self.effObjList)
|
def GetSkillID(self): return self.skillID
|
def GetSkillName(self): return self.skillID
|
def GetSkillTypeID(self): return self.skillTypeID
|
def GetSkillLV(self): return self.skillLV
|
def GetSkillMaxLV(self): return self.skillMaxLV
|
def GetUseType(self): return self.useType
|
def GetFuncType(self, index): return self.funcType
|
def GetCastTime(self): return self.castTime
|
def GetSkillType(self): return self.skillType
|
def GetContinueUse(self): return self.continueUse
|
def GetAtkType(self): return self.atkType
|
def GetAtkRadius(self): return self.atkRadius
|
def GetTag(self): return self.tag
|
def GetAtkDist(self): return self.atkDist
|
def GetCoolDownTime(self): return self.coolDownTime
|
def GetMP(self): return self.mp
|
def GetHP(self): return self.hp
|
def GetXP(self): return self.xp
|
def GetUseItemID(self): return self.useItemID
|
def GetUseItemCount(self): return self.useItemCnt
|
def GetSkillAngry(self): return self.skillAngry
|
def GetSkillEnhance1(self): return self.skillEnhance1
|
def GetSkillEnhance2(self): return self.skillEnhance2
|
def GetHappenRate(self): return self.happenRate
|
def GetLastTime(self): return self.lastTime
|
def GetCanRepeatTime(self): return self.canRepeatTime
|
def GetCommonCD(self): return self.commonCD
|
def GetHurtType(self): return self.hurtType
|
def GetStiffTime(self): return self.stiffTime
|
def GetClientActionLimit(self): return self.clientActionLimit
|
def GetServerActionLimit(self): return self.serverActionLimit
|
def GetClientSkillSeriesLimit(self): return self.clientSkillSeriesLimit
|
def GetServerSkillSeriesLimit(self): return self.serverSkillSeriesLimit
|
def GetSkillOfSeries(self): return self.skillOfSeries
|
def GetExAttr1(self): return self.exAttr1
|
def GetExAttr2(self): return self.exAttr2
|
def GetExAttr3(self): return self.exAttr3
|
def GetExAttr4(self): return self.exAttr4
|
def GetExAttr5(self): return self.exAttr5
|
|
#·Çͬ²½½Ó¿Ú--------------------------------------------------------------------
|
|
def ReduceCoolDownTime(self, value):
|
self.coolDownTime -= value
|
|
def AddHappenRate(self, value):
|
self.happenRate += value
|
|
def AddLastTime(self, value):
|
self.lastTime += value
|
|
def DecLastTime(self, value):
|
self.lastTime = max(0, self.lastTime - value)
|
|
# BUFFÀàÐ͵Äbuffvalue´¦Àí
|
def GetBuffValueByEffectID(self, effectID):
|
return self.buffValueEffDict.get(effectID, 0)
|
|
def AddBuffValueEff(self, effectID, value):
|
self.buffValueEffDict[effectID] = value + self.buffValueEffDict.get(effectID, 0)
|
|
# BUFFÀàÐ͵Äbuffvalue´¦Àí
|
def GetBuffValueEx(self, index):
|
return self.buffValue.get(index, 0)
|
|
def AddBuffValueEx(self, index, value):
|
self.buffValue[index] = value + self.buffValueEffDict.get(index, 0)
|
|
def GetBuffValueDict(self):
|
return self.buffValue
|
#-------------------------------------------------------------------------------
|
|
#È«¾Ö£¬ÊÊÓÃÓÚµ¥Ị̈߳¬É÷ÓÃ
|
Py_SkillData = PySkillData() # Ö÷¶¯Êͷŵļ¼ÄÜ
|
Py_SkillDataTrigger = PySkillData() # ´¥·¢¼¼ÄÜ
|
|