- 16 Июл 2018
- 5
- 0
- Проект
- custom maps
Мб быстро уничтожать казарму после чего сразу спавнить на этом месте новую с другим уровнем,а юнитов спавнить при условиях уровня казармы,особо обьяснить не смогу,так как не шарился по данной теме.Есть кто дело это и может объяснить более углубленно
Сколько хочешь?Я могу объяснить, но может еще видео запилить? может курс гайд устроить по механике? проспонсируете - легко
Домой приду - напишу все как сделать, подожди
Хороший вопрос, я могу начать, а потом уже можно поддержать, в зависимости от того как понравитсяСколько хочешь?
ну попробуй сделать то о чем я писал , если сможешь напиши обговоримХороший вопрос, я могу начать, а потом уже можно поддержать, в зависимости от того как понравится
"monster"
{
// General
//----------------------------------------------------------------
"Model" "models/creeps/neutral_creeps/n_creep_gnoll/n_creep_gnoll_frost.vmdl" // Model.
"BaseClass" "npc_dota_creature"
"Level" "1"
"ModelScale" ".7"
// Armor
//----------------------------------------------------------------
"ArmorPhysical" "2" // Physical protection.
// Attack
//----------------------------------------------------------------
"AttackCapabilities" "DOTA_UNIT_CAP_MELEE_ATTACK"
"AttackDamageMin" "2" // Damage range min.
"AttackDamageMax" "3" // Damage range max.
"AttackRate" "1" // Speed of attack.
"AttackAnimationPoint" "0.5" // Normalized time in animation cycle to attack.
"AttackAcquisitionRange" "400" // Range within a target can be acquired.
"AttackRange" "100" // Range within a target can be attacked.
// Bounty
//----------------------------------------------------------------
"BountyXP" "1" // Experience earn.
"BountyGoldMin" "2" // Gold earned min.
"BountyGoldMax" "4" // Gold earned max.
// Movement
//----------------------------------------------------------------
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_GROUND"
"MovementSpeed" "150" // Speed.
// Status
//----------------------------------------------------------------
"StatusHealth" "60" // Base health.
"StatusHealthRegen" "1" // Health regeneration rate.
"StatusMana" "0" // Base mana.
"StatusManaRegen" "0.0" // Mana regeneration rate.
// Vision
//----------------------------------------------------------------
"VisionDaytimeRange" "500" // Range of vision during day light.
"VisionNighttimeRange" "300" // Range of vision at night time.
// Team
//----------------------------------------------------------------
"TeamName" "DOTA_TEAM_NEUTRALS" // Team name.
"CombatClassAttack" "DOTA_COMBAT_CLASS_ATTACK_BASIC"
"CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_BASIC"
"UnitRelationshipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
// Creature Data
//----------------------------------------------------------------
"Creature"
{
//Level Up
"HPGain" "10"
"DamageGain" "2"
"ArmorGain" "0.5"
"MagicResistGain" "0"
"MoveSpeedGain" "1"
"BountyGain" "1"
"XPGain" "2"
}
}
"barrack"
{
// General
//----------------------------------------------------------------
"Model" "models/props_structures/radiant_melee_barracks001.vmdl" // Model.
"BaseClass" "npc_dota_creature"
"Level" "1"
"ModelScale" ".6"
// Armor
//----------------------------------------------------------------
"ArmorPhysical" "0" // Physical protection.
// Attack
//----------------------------------------------------------------
"AttackCapabilities" "DOTA_UNIT_CAP_NO_ATTACK"
"AttackDamageMin" "0" // Damage range min.
"AttackDamageMax" "0" // Damage range max.
"AttackRate" "1" // Speed of attack.
"AttackAnimationPoint" "0.5" // Normalized time in animation cycle to attack.
"AttackAcquisitionRange" "400" // Range within a target can be acquired.
"AttackRange" "100" // Range within a target can be attacked.
// Bounty
//----------------------------------------------------------------
"BountyXP" "0" // Experience earn.
"BountyGoldMin" "0" // Gold earned min.
"BountyGoldMax" "0" // Gold earned max.
// Movement
//----------------------------------------------------------------
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_NONE"
"MovementSpeed" "0" // Speed.
// Status
//----------------------------------------------------------------
"StatusHealth" "500" // Base health.
"StatusHealthRegen" "0" // Health regeneration rate.
"StatusMana" "0" // Base mana.
"StatusManaRegen" "0.0" // Mana regeneration rate.
// Vision
//----------------------------------------------------------------
"VisionDaytimeRange" "1000" // Range of vision during day light.
"VisionNighttimeRange" "1000" // Range of vision at night time.
// Team
//----------------------------------------------------------------
"TeamName" "DOTA_TEAM_NEUTRALS" // Team name.
"CombatClassAttack" "DOTA_COMBAT_CLASS_ATTACK_BASIC"
"CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_BASIC"
"UnitRelationshipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
// Creature Data
//----------------------------------------------------------------
"Creature"
{
//Level Up
"HPGain" "250"
"DamageGain" "0"
"ArmorGain" "0"
"MagicResistGain" "0"
"MoveSpeedGain" "0"
"BountyGain" "0"
"XPGain" "0"
}
}
ListenToGameEvent( "npc_spawned", Dynamic_Wrap( Game, "OnNPCSpawned" ), self )
local Unit = EntIndexToHScript( event.entindex )
if Unit:IsRealHero() and Unit:GetPlayerID == 0 and Unit.FirstSpawn == nil then
Unit.FirstSpawn = true;
local Barrack = CreateUnitByName(
"barrack",
Vector(0, 0, 128),
true,
Unit,
Unit,
DOTA_TEAM_BADGUYS
)
Barrack:SetOwner(Unit)
Barrack:SetControllableByPlayer(Unit:GetPlayerID(), false)
end
"spawn_mob"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_lua"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET"
"ScriptFile" "ability_spawn_mob"
// Casting
//-------------------------------------------------------------------------------------------------------------
"AbilityCastRange" "0"
"AbilityCastPoint" "0"
// Time
//-------------------------------------------------------------------------------------------------------------
"AbilityCooldown" "5"
// Cost
//-------------------------------------------------------------------------------------------------------------
"AbilityManaCost" "0"
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
}
}
"self_upgrade"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_lua"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET"
"ScriptFile" "ability_self_upgrader"
// Casting
//-------------------------------------------------------------------------------------------------------------
"AbilityCastRange" "0"
"AbilityCastPoint" "0"
// Time
//-------------------------------------------------------------------------------------------------------------
"AbilityCooldown" "100"
// Cost
//-------------------------------------------------------------------------------------------------------------
"AbilityManaCost" "0"
// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
}
}
spawn_mob = class({})
function spawn_mob:OnSpellStart()
local Monster = CreateUnitByName(
"monster",
self:GetOrigin(),
true,
self:GetCaster():GetOwner(),
self:GetCaster():GetOwner(),
self:GetCaster():GetTeamNumber()
)
Monster:SetControllableByPlayer(self:GetCaster():GetPlayerID(), false)
Monster:SetOwner(self:GetCaster())
Monster:SetLevel(self:GetCaster():GetLevel())
end
self_upgrader = class({})
function self_upgrader:OnSpellStart()
self:GetCaster():SetLevel(self:GetCaster():GetLevel() + 1)
end
У тебя абилки активные,вопрос,как ты их будешь заставлять юзаться самим? Или с помощью SetOwner() и SetControllableByPlayer()? Это же бараки,они сами должны данные действия выполнять.Если нужны видео уроки по тому, как писать кастомки более углубленно, чем вот так поверхностно, используя только встроенные функции, пишите, лайкайте, будет хоть 5-10 голосов - сделаю
Разве юниты или бараки считаются RealHero()?Если нужны видео уроки по тому, как писать кастомки более углубленно, чем вот так поверхностно, используя только встроенные функции, пишите, лайкайте, будет хоть 5-10 голосов - сделаю
Согласен , было бы неплохо таймер или синкер прикрепить , чтобы барак мобов спавнил через определенный интервал времени !У тебя абилки активные,вопрос,как ты их будешь заставлять юзаться самим? Или с помощью SetOwner() и SetControllableByPlayer()? Это же бараки,они сами должны данные действия выполнять.
Вопрос, а при чем тут RealHero?Разве юниты или бараки считаются RealHero()?
Моя ошибка,когда я смотрел,читал с телефонане заметил,что ты находишь героя через слушателя.Вопрос, а при чем тут RealHero?