Results 1 to 2 of 2

Thread: Custom hero from scratch?

  1. #1

    Question Custom hero from scratch?

    Hi
    I would like to know how can I create a new hero from scratch without overriding the current heroes :P

    since Valve has the posibility to add new hereos into the game, it should be possible, unless it's done in C?

  2. #2
    I made an .txt file called "npc_heroes" in the script/npc folder, and i added this:
    Code:
    "DOTAHeroes"
    {
            "npc_dota_new_hero"
    	{
    		"Model"		"models/heroes/monkey_king/monkey_king.vmdl"
    		"Portrait"		"vgui/hud/heroportraits/portrait_riki"
    		"IdleExpression"		"scenes/monkey_king/monkey_king_exp_idle_01.vcd"
    		"SoundSet"		"Hero_MonkeyKing"
    		"PickSound"		"monkey_king_monkey_spawn_17"
    		"BanSound"		"monkey_king_monkey_anger_12"
    		"HeroSelectSoundEffect"		"Hero_MonkeyKing.Pick"
    		"Enabled"		"1"
    		"HeroUnlockOrder"		"2"
    		"Role"			"Carry,Escape,Disabler,Initiator"
    		"Rolelevels"	"2,2,1,1"
    		"Complexity"	"2"
    		"Team"		"Good"
    		"HeroID"		"115"
    		"NameAliases"		"mk"
    		"CMEnabled"		"1"
    		"ModelScale"		"0.8100"
    		"LoadoutScale"		"0.8100"
    		"AbilityLayout"		"6"
    		"workshop_guide_name"		"Monkey King"
    		"Ability1"		"monkey_king_boundless_strike"
    		"Ability2"		"monkey_king_tree_dance"
    		"Ability3"		"monkey_king_primal_spring"
    		"Ability4"		"monkey_king_primal_spring_early"
    		"Ability5"		"monkey_king_jingu_mastery"
    		"Ability6"		"monkey_king_mischief"
    		"Ability7"		"monkey_king_untransform"
    		"Ability8"		"monkey_king_wukongs_command"
    		"Ability10"		"special_bonus_attack_speed_20"
    		"Ability11"		"special_bonus_evasion_12"
    		"Ability12"		"special_bonus_hp_275"
    		"Ability13"		"special_bonus_unique_monkey_king_2"
    		"Ability14"		"special_bonus_attack_damage_40"
    		"Ability15"		"special_bonus_magic_resistance_20"
    		"Ability16"		"special_bonus_strength_25"
    		"Ability17"		"special_bonus_unique_monkey_king"
    		"ArmorPhysical"		"-3"
    		"AttackCapabilities"		"DOTA_UNIT_CAP_MELEE_ATTACK"
    		"AttackDamageMin"		"30"
    		"AttackDamageMax"		"36"
    		"AttackRate"		"1.700000"
    		"AttackAnimationPoint"		"0.45"
    		"AttackAcquisitionRange"		"600"
    		"AttackRange"		"300"
    		"AttributePrimary"		"DOTA_ATTRIBUTE_AGILITY"
    		"AttributeBaseStrength"		"18"
    		"AttributeStrengthGain"		"2.8"
    		"AttributeBaseIntelligence"		"20"
    		"AttributeIntelligenceGain"		"1.8"
    		"AttributeBaseAgility"	"22"
    		"AttributeAgilityGain"	"3.200000"
    		"StatusHealthRegen"		"1.50000"
    		"MovementSpeed"			"305"
    		"MovementTurnRate"		"0.600000"
    		"HasAggressiveStance"	"0"
    		"BoundsHullName"		"DOTA_HULL_SIZE_SMALL"
    		"particle_folder"		"particles/units/heroes/hero_monkey_king"
    		"GameSoundsFile"		"soundevents/game_sounds_heroes/game_sounds_monkey_king.vsndevts"
    		"VoiceFile"		"soundevents/voscripts/game_sounds_vo_monkey_king.vsndevts"
    		// Items
    		//-------------------------------------------------------------------------------------------------------------
    		"ItemSlots"
    		{
    			"0"
    			{
    				"SlotIndex"		"0"
    				"SlotName"		"weapon"
    				"SlotText"		"#LoadoutSlot_Weapon"
    				"TextureWidth"		"256"
    				"TextureHeight"		"256"
    				"MaxPolygonsLOD0"		"1000"
    				"MaxPolygonsLOD1"		"750"
    			}
    			"1"
    			{
    				"SlotIndex"		"1"
    				"SlotName"		"head"
    				"SlotText"		"#LoadoutSlot_Head_Accessory"
    				"TextureWidth"		"256"
    				"TextureHeight"		"256"
    				"MaxPolygonsLOD0"		"1000"
    				"MaxPolygonsLOD1"		"650"
    			}
    			"2"
    			{
    				"SlotIndex"		"2"
    				"SlotName"		"armor"
    				"SlotText"		"#LoadoutSlot_Armor"
    				"TextureWidth"		"512"
    				"TextureHeight"		"512"
    				"MaxPolygonsLOD0"		"3000"
    				"MaxPolygonsLOD1"		"1500"
    			}
    			"3"
    			{
    				"SlotIndex"		"3"
    				"SlotName"		"taunt"
    				"SlotText"		"#LoadoutSlot_Taunt"
    			}
    		}
    		"Bot"
    		{
    			"HeroType"		"DOTA_BOT_SEMI_CARRY | DOTA_BOT_GANKER"
    			"LaningInfo"
    			{
    				"SoloDesire"		"0"
    				"RequiresBabysit"		"2"
    				"ProvidesBabysit"		"0"
    				"SurvivalRating"		"2"
    				"RequiresFarm"		"2"
    				"ProvidesSetup"		"0"
    				"RequiresSetup"		"1"
    			}
    		}
    	}
    }
    and added "npc_dota_new_hero" "1" into herolist.txt

    the resulted in a new hero in the hero selecetion screen, with Monkey King abilities, but no portrait into the hero card, and unable to lock in with that hero (gray button)

    after I added an aditional .txt file called "activelist" with the content:
    Code:
    "whitelist"
    {
    	"npc_dota_hero_ancient_apparition" "1"
    	"npc_dota_hero_antimage" "1"
    	"npc_dota_hero_axe" "1"
    	"npc_dota_hero_bane" "1"
    	"npc_dota_hero_beastmaster" "1"
    	"npc_dota_hero_bloodseeker" "1"
    	"npc_dota_hero_chen" "1"
    	"npc_dota_hero_crystal_maiden" "1"
    	"npc_dota_hero_dark_seer" "1"
    	"npc_dota_hero_dazzle"	"1"
    	"npc_dota_hero_dragon_knight" "1"
    	"npc_dota_hero_doom_bringer" "1"
    	"npc_dota_hero_drow_ranger" "1"
    	"npc_dota_hero_earthshaker" "1"
    	"npc_dota_hero_enchantress" "1"
    	"npc_dota_hero_enigma" "1"
    	"npc_dota_hero_faceless_void" "1"
    	"npc_dota_hero_furion" "1"
    	"npc_dota_hero_juggernaut" "1"
    	"npc_dota_hero_kunkka" "1"
    	"npc_dota_hero_leshrac" "1"
    	"npc_dota_hero_lich" "1"
    	"npc_dota_hero_life_stealer" "1"
    	"npc_dota_hero_lina" "1"
    	"npc_dota_hero_lion" "1"
    	"npc_dota_hero_mirana" "1"
    	"npc_dota_hero_morphling" "1"
    	"npc_dota_hero_necrolyte" "1"
    	"npc_dota_hero_nevermore" "1"
    	"npc_dota_hero_night_stalker" "1"
    	"npc_dota_hero_omniknight" "1"
    	"npc_dota_hero_puck" "1"
    	"npc_dota_hero_pudge" "1"
    	"npc_dota_hero_pugna" "1"
    	"npc_dota_hero_rattletrap" "1"
    	"npc_dota_hero_razor" "1"
    	"npc_dota_hero_riki" "1"
    	"npc_dota_hero_sand_king" "1"
    	"npc_dota_hero_shadow_shaman" "1"
    	"npc_dota_hero_slardar" "1"
    	"npc_dota_hero_sniper" "1"
    	"npc_dota_hero_spectre" "1"
    	"npc_dota_hero_storm_spirit" "1"
    	"npc_dota_hero_sven" "1"
    	"npc_dota_hero_tidehunter" "1"
    	"npc_dota_hero_tinker" "1"
    	"npc_dota_hero_tiny" "1"
    	"npc_dota_hero_vengefulspirit" "1"
    	"npc_dota_hero_venomancer"  "1"
    	"npc_dota_hero_viper" "1"
    	"npc_dota_hero_weaver" "1"
    	"npc_dota_hero_windrunner" "1"
    	"npc_dota_hero_witch_doctor" "1"
    	"npc_dota_hero_zuus" "1"
    	"npc_dota_hero_broodmother" "1"
    	"npc_dota_hero_skeleton_king" "1"
    	"npc_dota_hero_queenofpain" "1"
    	"npc_dota_hero_huskar" "1"
    	"npc_dota_hero_jakiro" "1"
    	"npc_dota_hero_batrider" "1"
    	"npc_dota_hero_warlock" "1"
    	"npc_dota_hero_alchemist" "1"
    	"npc_dota_hero_death_prophet" "1"
    	"npc_dota_hero_ursa" "1"
    	"npc_dota_hero_bounty_hunter" "1"
    	"npc_dota_hero_silencer" "1"
    	"npc_dota_hero_spirit_breaker" "1"
    	"npc_dota_hero_invoker" "1"
    	"npc_dota_hero_clinkz" "1"
    	"npc_dota_hero_obsidian_destroyer" "1"
    	"npc_dota_hero_shadow_demon" "1"
    	"npc_dota_hero_lycan" "1"
    	"npc_dota_hero_lone_druid" "1"
    	"npc_dota_hero_brewmaster" "1"
    	"npc_dota_hero_phantom_lancer" "1"
    	"npc_dota_hero_treant" "1"
    	"npc_dota_hero_ogre_magi" "1"
    	"npc_dota_hero_chaos_knight" "1"
    	"npc_dota_hero_phantom_assassin" "1"
    	"npc_dota_hero_gyrocopter" "1"
    	"npc_dota_hero_rubick" "1"
    	"npc_dota_hero_luna" "1"
    	"npc_dota_hero_wisp" "1"
    	"npc_dota_hero_disruptor" "1"
    	"npc_dota_hero_undying" "1"
    	"npc_dota_hero_templar_assassin" "1"
    	"npc_dota_hero_naga_siren" "1"
    	"npc_dota_hero_nyx_assassin" "1"
    	"npc_dota_hero_keeper_of_the_light" "1"
    	"npc_dota_hero_visage" "1"
    	"npc_dota_hero_meepo" "1"
    	"npc_dota_hero_magnataur" "1"
    	"npc_dota_hero_centaur" "1"
    	"npc_dota_hero_slark" "1"
    	"npc_dota_hero_shredder" "1"
    	"npc_dota_hero_medusa" "1"
    	"npc_dota_hero_troll_warlord" "1"
    	"npc_dota_hero_tusk" "1"
    	"npc_dota_hero_bristleback" "1"
    	"npc_dota_hero_skywrath_mage" "1"
    	"npc_dota_hero_elder_titan" "1"
    	"npc_dota_hero_abaddon" "1"
    	"npc_dota_hero_earth_spirit" "1"
    	"npc_dota_hero_ember_spirit" "1"
    	"npc_dota_hero_legion_commander" "1"
    	"npc_dota_hero_phoenix" "1"
    	"npc_dota_hero_terrorblade" "1"
    	"npc_dota_hero_techies" "1"
    	"npc_dota_hero_oracle" "1"
    	"npc_dota_hero_winter_wyvern" "1"
    	"npc_dota_hero_arc_warden" "1"
    	"npc_dota_hero_abyssal_underlord" "1"
    	"npc_dota_hero_monkey_king" "1"
    	"npc_dota_new_hero"	"1"
    }
    still no portrait, but now i can click "lock in" but the game won't select the hero, nothing happens

    when i select any hero the console says:
    Code:
    [   Server               ]: PR:SetPossibleHeroSelection 0:[U:1:27045343] npc_dota_hero_razor(15)
    but when i try to select the new hero it says:
    Code:
    [   Server               ]: PR:SetPossibleHeroSelection 0:[U:1:27045343] none

    if I disable every hero except the new one, and i hit random hero, it selects it with:
    Code:
    [   Server               ]: PR:SetSelectedHero 0:[U:1:27045343] npc_dota_new_hero(115)
    but no entity spawns in the game (not printed by "entityreport" in console)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •