Exemple #1
0
 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()
Exemple #2
0
 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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
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)
Exemple #6
0
    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