and varElement in ignore_special[skill]) or ( varElement in ignore_all_special): print '###ignore: %s / %s [x%d]' % ( skill, varElement, factor) elif varElement != 'var_type' and testinstance in ( int, long, float, complex): varlist = kv[skill]['AbilitySpecial'][element][ varElement] numberValue = divide_or_multiply( varElement, varlist, factor, ' ') """if '-' in varlist: print 'negative: %s / %s -> %s' % (varlist, varElement, skill) print 'negative2: %s / %s -> %s' % (numberValue, varElement, skill) """#print '%s old [x%d]: %s' % (varElement, factor, varlist) #print '%s new [x%d]: %s' % (varElement, factor, numberValue) #check if variable number was defined if numberValue: number[varElement] = numberValue else: number[varElement] = kv[skill]['AbilitySpecial'][ element][varElement] #print varElement #print kv[skill]['AbilitySpecial'][element][varElement] abilityspecial[element] = number #if usespec: skillkv['AbilitySpecial'] = abilityspecial root[skill + '_x' + str(factor)] = skillkv root.save('npc_abilities_custom.txt') os.remove('npc_abilities_custom.tmp')
for base in kv[skill]: base = str(base) if base != 'AbilitySpecial': skillkv[base] = divide_or_multiply(skill, 'Normal', base, kv[skill][base], factor, " ") if 'AbilitySpecial' in kv[skill]: abilityspecial = KeyValues('AbilitySpecial') for element in kv[skill]['AbilitySpecial']: number = KeyValues(element) for varElement in kv[skill]['AbilitySpecial'][element]: varlist = kv[skill]['AbilitySpecial'][element][varElement] numberValue = divide_or_multiply(skill, 'AbilitySpecial', varElement, varlist, factor, ' ') number[varElement] = numberValue abilityspecial[element] = number skillkv['AbilitySpecial'] = abilityspecial rootov[skill] = skillkv rootov.save('npc_abilities_override' + '_x'+str(factor)+'.txt') newDivValue = '2' if str(factor) in divValue: newDivValue = divValue[str(factor)] update_addons.updateAddons(factor, newDivValue, modID[factor]) os.remove('npc_abilities_override' + '_x'+str(factor)+'.txt') os.remove('npc_abilities_custom.tmp') os.remove('custom.tmp') #update_addons.updateAddons()
testvalue = kv[skill]['AbilitySpecial'][element][varElement].split(" ")[0] testinstance = str_to_type(testvalue) if (skill in ignore_special and varElement in ignore_special[skill]) or (varElement in ignore_all_special): #print '###ignore: %s / %s [x%d]' % (skill, varElement, factor) pass elif varElement != 'var_type' and testinstance in (int, long, float, complex): varlist = kv[skill]['AbilitySpecial'][element][varElement] numberValue = divide_or_multiply(varElement, varlist, factor, ' ') #if '-' in varlist: # print 'negative: %s / %s -> %s' % (varlist, varElement, skill) # print 'negative2: %s / %s -> %s' % (numberValue, varElement, skill) #check if variable number was defined if numberValue: number[varElement] = numberValue else: number[varElement] = kv[skill]['AbilitySpecial'][element][varElement] #print varElement #print kv[skill]['AbilitySpecial'][element][varElement] abilityspecial[element] = number #if usespec: skillkv['AbilitySpecial'] = abilityspecial if factor == override_factor: rootov[skill] = skillkv else: root[skill + '_x'+str(factor)] = skillkv root.save('npc_abilities_custom.txt') rootov.save('npc_abilities_override.txt') os.remove('npc_abilities_custom.tmp') update_addons.updateAddons()
#print '%s -> %s' % (skill, varElement) testvalue = kv[skill]['AbilitySpecial'][element][varElement].split(" ")[0] testinstance = str_to_type(testvalue) if (skill in ignore_special and varElement in ignore_special[skill]) or (varElement in ignore_all_special): print '###ignore: %s / %s [x%d]' % (skill, varElement, factor) elif varElement != 'var_type' and testinstance in (int, long, float, complex): varlist = kv[skill]['AbilitySpecial'][element][varElement] numberValue = divide_or_multiply(varElement, varlist, factor, ' ') """if '-' in varlist: print 'negative: %s / %s -> %s' % (varlist, varElement, skill) print 'negative2: %s / %s -> %s' % (numberValue, varElement, skill) """#print '%s old [x%d]: %s' % (varElement, factor, varlist) #print '%s new [x%d]: %s' % (varElement, factor, numberValue) #check if variable number was defined if numberValue: number[varElement] = numberValue else: number[varElement] = kv[skill]['AbilitySpecial'][element][varElement] #print varElement #print kv[skill]['AbilitySpecial'][element][varElement] abilityspecial[element] = number #if usespec: skillkv['AbilitySpecial'] = abilityspecial root[skill + '_x'+str(factor)] = skillkv root.save('npc_abilities_override.txt.txt') os.remove('npc_abilities_override.tmp')
'necronomicon_', 'abyssal_underlord_', 'earth_spirit_' ] #luna_eclipse disabled due crash issues #sandking_caustic_finale buggy with other skills #lycan_summon_wolves not working fine with other heroes # remove comments from file (there's bug in _custom that some comments have only an single slash instead of double slash... clean.remove_comments('npc_abilities.txt', 'skills_list.tmp') kv = KeyValues() kv.load('skills_list.tmp') root = KeyValues('DOTASkills') rootUlti = KeyValues('DOTAUltimates') for skill in kv: skillkv = KeyValues() if 'ID' in kv[skill]: if skill not in banSkills: if not inPartial(skill, banStartsWith): if "AbilityType" in kv[skill] and kv[skill][ "AbilityType"] == "DOTA_ABILITY_TYPE_ULTIMATE": rootUlti[kv[skill]['ID']] = skill else: root[kv[skill]['ID']] = skill root.save('skillsList.kv') rootUlti.save('ultimatesList.kv') os.remove('skills_list.tmp') print 'finished'
numberValue = False #print '%s -> %s' % (skill, varElement) testvalue = kv[skill]['AbilitySpecial'][element][varElement].split(" ")[0] testinstance = str_to_type(testvalue) if (skill in ignore_special and varElement in ignore_special[skill]) or (varElement in ignore_all_special): print '###ignore: %s / %s [x%d]' % (skill, varElement, factor) elif varElement != 'var_type' and testinstance in (int, long, float, complex): varlist = kv[skill]['AbilitySpecial'][element][varElement] numberValue = divide_or_multiply(varElement, varlist, factor, ' ') """if '-' in varlist: print 'negative: %s / %s -> %s' % (varlist, varElement, skill) print 'negative2: %s / %s -> %s' % (numberValue, varElement, skill) """#print '%s old [x%d]: %s' % (varElement, factor, varlist) #print '%s new [x%d]: %s' % (varElement, factor, numberValue) #check if variable number was defined if numberValue: number[varElement] = numberValue else: number[varElement] = kv[skill]['AbilitySpecial'][element][varElement] #print varElement #print kv[skill]['AbilitySpecial'][element][varElement] abilityspecial[element] = number #if usespec: skillkv['AbilitySpecial'] = abilityspecial root[skill + '_x'+str(factor)] = skillkv root.save('npc_abilities_custom.txt') os.remove('npc_abilities_custom.tmp')
varElement in ignore_all_special): print '###ignore: %s / %s [x%d]' % ( skill, varElement, factor) elif varElement != 'var_type' and testinstance in ( int, long, float, complex): varlist = kv[skill]['AbilitySpecial'][element][ varElement] numberValue = divide_or_multiply( varElement, varlist, factor, ' ') """if '-' in varlist: print 'negative: %s / %s -> %s' % (varlist, varElement, skill) print 'negative2: %s / %s -> %s' % (numberValue, varElement, skill) """#print '%s old [x%d]: %s' % (varElement, factor, varlist) #print '%s new [x%d]: %s' % (varElement, factor, numberValue) #check if variable number was defined if numberValue: number[varElement] = numberValue else: number[varElement] = kv[skill]['AbilitySpecial'][ element][varElement] #print varElement #print kv[skill]['AbilitySpecial'][element][varElement] abilityspecial[element] = number #if usespec: skillkv['AbilitySpecial'] = abilityspecial root[skill + '_x' + str(factor)] = skillkv root.save('npc_abilities_override.txt.txt') os.remove('npc_abilities_override.tmp')
'shoot_firework'] banStartsWith = ['roshan_', 'greevil_', 'backdoor_', 'invoker_', 'earth_spirit_', 'cny', 'necronomicon_', 'abyssal_underlord_', 'earth_spirit_'] #luna_eclipse disabled due crash issues #sandking_caustic_finale buggy with other skills #lycan_summon_wolves not working fine with other heroes # remove comments from file (there's bug in _custom that some comments have only an single slash instead of double slash... clean.remove_comments('npc_abilities.txt', 'skills_list.tmp') kv = KeyValues() kv.load('skills_list.tmp') root = KeyValues('DOTASkills') rootUlti = KeyValues('DOTAUltimates') for skill in kv: skillkv = KeyValues() if 'ID' in kv[skill]: if skill not in banSkills: if not inPartial(skill, banStartsWith): if "AbilityType" in kv[skill] and kv[skill]["AbilityType"] == "DOTA_ABILITY_TYPE_ULTIMATE": rootUlti[kv[skill]['ID']] = skill else: root[kv[skill]['ID']] = skill root.save('skillsList.kv') rootUlti.save('ultimatesList.kv') os.remove('skills_list.tmp') print 'finished'