Простые вопросы

Статус
В этой теме нельзя размещать новые ответы.
1)На крипов не действует модификатор бонус маны или я делаю что-то не так?
2)Действует ли на крипов модификатор регена маны?
 
У меня есть
"doom_aura"
{
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_AURA | DOTA_ABILITY_BEHAVIOR_PASSIVE "
"BaseClass" "ability_datadriven"
"AbilityTextureName" "doom_bringer_doom"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityCastRange" "900"

// Modifiers
//-------------------------------------------------------------------------------------------------------------

"Modifiers"
{

"aura_doom"
{
"Passive" "1"
"IsHidden" "0"
"Aura" "modifier_doom_datadriven"
"Aura_Radius" "1000"
"Aura_Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"Aura_Types" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP | DOTA_UNIT_TARGET_MECHANICAL"
"Aura_ApplyToCaster" "0"

}

"modifier_doom_datadriven"
{
"IsDebuff" "1"


"StatusEffectName" "particles/status_fx/status_effect_doom.vpcf"
"StatusEffectPriority" "1"

"OnCreated"
{
"FireSound"
{
"EffectName" "Hero_DoomBringer.Doom"
"Target"
{
"Center" "TARGET"
"Flags" "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
}
}
"AttachEffect"
{
"EffectName" "particles/units/heroes/hero_doom_bringer/doom_bringer_doom.vpcf"
"EffectAttachType" "follow_origin"
"Target"
{
"Center" "TARGET"
"Flags" "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
}

"ControlPoints"
{
"04" "TARGET"
}
}
}


"ThinkInterval" "0.01"
"OnIntervalThink"
{
"Damage"
{
"Target" "TARGET"
"Type" "DAMAGE_TYPE_PURE"
"Damage" "1"
}
}
"States"
{
"MODIFIER_STATE_SILENCED" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_MUTED" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_PASSIVES_DISABLED" "MODIFIER_STATE_VALUE_ENABLED"
}
"Properties"
{
"MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE" "-2"
}
}
}
}
И когда появляется юнит с этой абилкой , то на секунду абилка вешается на всех враждебных юнитов на карте.
Итак знатоки внимание вопрос:
"Это баг игры или особенность скилла ?"
 
Последнее редактирование модератором:
[quote author=vulkantsk link=topic=849.msg10626#msg10626 date=1500450365]
У меня есть
"doom_aura"
{
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_AURA | DOTA_ABILITY_BEHAVIOR_PASSIVE "
"BaseClass" "ability_datadriven"
"AbilityTextureName" "doom_bringer_doom"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityCastRange" "900"

// Modifiers
//-------------------------------------------------------------------------------------------------------------

"Modifiers"
{

"aura_doom"
{
"Passive" "1"
"IsHidden" "0"
"Aura" "modifier_doom_datadriven"
"Aura_Radius" "1000"
"Aura_Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"Aura_Types" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP | DOTA_UNIT_TARGET_MECHANICAL"
"Aura_ApplyToCaster" "0"

}

"modifier_doom_datadriven"
{
"IsDebuff" "1"


"StatusEffectName" "particles/status_fx/status_effect_doom.vpcf"
"StatusEffectPriority" "1"

"OnCreated"
{
"FireSound"
{
"EffectName" "Hero_DoomBringer.Doom"
"Target"
{
"Center" "TARGET"
"Flags" "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
}
}
"AttachEffect"
{
"EffectName" "particles/units/heroes/hero_doom_bringer/doom_bringer_doom.vpcf"
"EffectAttachType" "follow_origin"
"Target"
{
"Center" "TARGET"
"Flags" "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
}

"ControlPoints"
{
"04" "TARGET"
}
}
}


"ThinkInterval" "0.01"
"OnIntervalThink"
{
"Damage"
{
"Target" "TARGET"
"Type" "DAMAGE_TYPE_PURE"
"Damage" "1"
}
}
"States"
{
"MODIFIER_STATE_SILENCED" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_MUTED" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_PASSIVES_DISABLED" "MODIFIER_STATE_VALUE_ENABLED"
}
"Properties"
{
"MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE" "-2"
}
}
}
}
И когда появляется юнит с этой абилкой , то на секунду абилка вешается на всех враждебных юнитов на карте.
Итак знатоки внимание вопрос:
"Это баг игры или особенность скилла ?"
[/quote]
Вопрос не читал, но в обычной доте уже сотню раз это видел. Фармлю я такой черных драконов и тут на секунду у них появляется вампиризм/другая_аура , таким образом можно предугадывать какие крипы появятся следующими.
 
Последнее редактирование модератором:
Как вызвать функцию
function GameMode:OnGameInProgress()
из этой статьи
не из "addon_game_mode" а из другого луа скрипта "spawner.lua"
,который уже подключен .

function spawner:GameMode:OnGameInProgress() - не робит !
 
Последнее редактирование модератором:
ListenToGameEvent('game_start',spawner:GameMode,nil)
Батя , я правильно сделал ?
 
ListenToGameEvent('game_start',spawner:GameMode,nil)
Батя , я правильно сделал ?
Точно сказать не могу но по-моему нужно юзать это Dynamic_Wrap, для ссылания на другие функции.Вот типичная строчка из бэрбоунса
Код:
ListenToGameEvent("game_init", Dynamic_Wrap(GameMode, 'On_game_init'), self)
 
Последнее редактирование модератором:
Dynamic_Wrap нужен только в тулах. Чтобы ты мог юзать script_reload
 
пробовал писать
ListenToGameEvent("game_init", Dynamic_Wrap(GameMode, 'On_game_init'), self)
в gamemode.lua и Spawn.lua
но вообще 0 толку
 
Последнее редактирование модератором:
Потому что это пустышка, пример без настоящего события.
Тебе надо отловить событие "смены состояния", например так:

Код:
ListenToGameEvent('game_rules_state_change', Dynamic_Wrap(GameMode, 'OnGameRulesStateChange'), self)

Где первый параметр - это событие (game_rules_state_change - игра сменила стадию).
Второй параметр - это ссылка на функцию (Здесь конечная функция называется GameMode:OnGameRulesStateChange())
Третий параметр - какой-то там экземпляр класса, что составляет костяк. Здесь вроде GameMode. Я в подробности не вдавался.

Далее реализуешь указанную функцию, в которой отлавливаешь уже конкретные стадии, например так:

Код:
function GameMode:OnGameRulesStateChange()
	local newState = GameRules:State_Get()
		if newState == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
			GameMode:OnGameInProgress()
		end
end

Этот код запустит функцию GameMode:OnGameInProgress() в момент, когда игра перейдет в стадию DOTA_GAMERULES_STATE_GAME_IN_PROGRESS, то есть пойдет время с нуля. Её по такому же принципу реализуешь. Где лежать она будет - не важно, важно чтобы ты подключил скрипт с ней к главному (где ты листенер указывал) и чтобы эта функция была единственной в своем роде, иначе компилятор может в её дубликат полезть, а на эту начхать. Ну и еще я не уверен, что не надо взаимно подключать к скрипту с ней тот, в котором у тебя объявлен класс GameMode, чтобы в последнем функция вообще читалась. Можешь просто сделать так:

Код:
function GameMode:OnGameRulesStateChange()
	local newState = GameRules:State_Get()
		if newState == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
			OnGameInProgress()
		end
end


И реализовать в скрипте OnGameInProgress(), а затем его подключить в скрипт со слушателем. Тогда точно не должно быть ошибок.

Смотри примеры на гитхабе, вроде умеешь шевелить мозгами.
 
Последнее редактирование модератором:
  • Нравится
Реакции: BazaltGames
Можно ли узнать в хаммере координаты и на них заспавнить предмет?
 
Последнее редактирование модератором:
I_Explorer,
А можно в том же хаммере сделать так, чтобы предмет могли поднять только герои редианта или даир, но только не все вместе?
 
Скорее всего можно , но для этого тебе потребуется слушатель !
Отследить момент , когда берется предмет и запретить его брать.
 
Как сделать предмет , как в овер сроу типа "монета" , которая дает 300 золота.
Когда даю опцию
"CastOnPickUp" "1"
то используется сразу как герой наступает , а надо только когда берет.
,есть какие-нибудь идеи ?
 
Последнее редактирование модератором:
Как сделать предмет , как в овер сроу типа "монета" , которая дает 300 золота.
Когда даю опцию
"CastOnPickUp" "1"
то используется сразу как герой наступает , а надо только когда берет.
,есть какие-нибудь идеи ?
void LaunchLoot(bool useOnContact, float height, float flDuration, Vector destination)
 
Последнее редактирование модератором:
Почему GameRules:SendCustomMessage выводит текст где чат, а не выводит где выводится текст убйств
 
den4iccc, потому что это работало только в старом интерфейсе
 
[quote author=I_GRIN_I link=topic=849.msg10705#msg10705 date=1500852074]
den4iccc, потому что это работало только в старом интерфейсе
[/quote]
А на данный момент можно это как то сделать иначе или только через панораму ? Знаю что через notifications в баребоне можно выводить текст как угодно но я не использую его так как мне надо вывести %s1 на экран, типо "The player %s1 died", можно ли как нибудь имя игрока вывести через notifications ?
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Реклама: