#!/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() # ´¥·¢¼¼ÄÜ