def IsEffectNow(self): if self.skillLevel == 0: return False lastUseTime = GameTools.string2datetime(self.last_use_time) skillConstInfo = heroSkillTableManager.getHeroSkill(self.skillID,self.skillLevel) effectTime = skillConstInfo.duration if effectTime == 0: effectTime += 10 effectTime += 10 t = datetime.timedelta(seconds = effectTime) return lastUseTime + t > datetime.datetime.now()
def CountHeroSkillBuffs(self): for skillID in range(len(self.skills)): if skillID != 0 and skillID != 7: # 0level 7 revival skillLevel = self.skills[skillID] if skillLevel == 0: continue heroSkill = heroSkillTableManager.getHeroSkill(skillID,skillLevel) buffType0 = heroSkill.effecttype0 buffValue0 = heroSkill.effectvalue0 # buffType1 = heroSkill.effecttype1 # buffValue1 = heroSkill.effectvalue1 spawnnewid = heroSkill.spawnnewid
def skillUpgrade(self,skill_id,to_level): heroLevel = 0 for skill in self.skills: if skill.skillID == 0: heroLevel = skill.skillLevel break for skill in self.skills: if skill.skillID == skill_id: if skill.skillLevel >= to_level: return None else: cost = 0 if skill_id == 0: for level in range(skill.skillLevel +1, to_level + 1): cost += heroUpgradeTable.getHeroUpgradeInfo(level).cost else: searchLevel = to_level # skillInfo = heroSkillTableManager.getHeroSkill(skill.skillID,searchLevel) # unlockLevel = skillInfo.unlock_level # if heroLevel < unlockLevel: # return ErrorCode.notunlocknow cost = 0 for level in range(skill.skillLevel +1, to_level + 1): if skill_id != 7: cost += heroSkillTableManager.getHeroSkill(skill_id,level).upcost if self.costResource(ResourceType.cash,cost): skill.skillLevel = to_level #ok pass break else: return (1111,"nowLevel:%s toLevel:%s own:%s need:%s"%(skill.skillLevel,to_level,self.cash,cost)) for skill in self.skills: if skill.skillID == skill_id: skill.skillLevel = to_level if skill_id == 7: self.relife() return None return None
def GetPartnerDPS(self,partnerID): for partner in self.partners: if partnerID == partner.partner_id: partnerLevel = partner.partner_level if partnerLevel == 0: return 0 heroInfo = heroTable.GetHeroInfoByid(partnerID) partnerDPS = partnerUpgradeTable.GetPartnerUpgradeInfo(partnerLevel).effValue partnerDPS *= heroInfo.propmodify skills = heroInfo.skillsid for skillID in skills: if skillID == 0: continue heroSkill = heroSkillTableManager.getHeroSkill(skillID,1) unlockLevel = heroSkill.unlock_level if partnerLevel >= unlockLevel: buffType0 = heroSkill.effectvalue0 buffValue0 = heroSkill.effectvalue0 if buffType0 == 3: partnerDPS += partnerDPS * buffValue0 / 100 return partnerDPS return 0
def _process(self, params): token = params.get('token') skillID = params.get('skillid') player = playerDataManager.getPlayerByToken(token) returnData = MessData() if player == None: returnData = MessData(ErrorCode.tokenOutData) else: # Íæ¼Òconnect id¼ì²â connect_id = params.get('connect_id', '') # Íæ¼ÒÁ¬½Óid ck_connectid = playerDataManager.check_connect_id(obj=player, post_connect_id=connect_id) if ck_connectid[0] is False: returnData = MessData(ck_connectid[1]) self.write(MessageTools.encode(returnData)) self.finish() return playerSkillInfo = player.getSkillInfo(skillID) skillLevel = playerSkillInfo.skillLevel lastUseTimeStr = playerSkillInfo.last_use_time lastUseTime = GameTools.string2datetime(lastUseTimeStr) skillConstInfo = heroSkillTableManager.getHeroSkill(skillID,skillLevel) cd = skillConstInfo.cd errCode = player.useSkill(skillID) # if GameTools.getDatetimeNow() + datetime.timedelta(seconds = 90) >= lastUseTime + datetime.timedelta(seconds = cd): # errCode = player.useSkill(skillID) # else: # returnData = MessData(ErrorCode.skillincd) #in cd str = MessageTools.encode(returnData) self.write(str) self.finish() if player != None: playerDataManager.checkNeedSave2DB(player.player_id)
def CountParterBuffs(self): buffs = {} for parter in self.partners: parterid = parter.partner_id if not parterid in self.selected_partners: continue level = parter.partner_level if level > 0: skills = heroTable.GetHeroInfoByid(parterid).skillsid for skillID in skills: if skillID == 0: continue heroSkill = heroSkillTableManager.getHeroSkill(skillID,1) unlockLevel = heroSkill.unlock_level if level >= unlockLevel: buffType0 = heroSkill.effectvalue0 buffValue0 = heroSkill.effectvalue0 value = buffs.get(buffType0,0) buffs[buffType0] = buffValue0 + value spawnnewid = heroSkill.spawnnewid return buffs