Невидимость

White_Octopuz

Пользователь
23 Сен 2018
12
0
Проект
Bitcoin99GG
Приветствую, я начинающий мододел и кастомками только начал заниматься. Читал всё что было на русском, и пару статей на английском, разобрался в дд системе. Возник вопрос:
Юниту присваивается модификатор, имеющий "state" невидимости, но герой при получении модификатора не становится невидимым. Пробовал менять значение стейт с невидимости на хекс, все равно герой никак не реагировал. Правильно ли я всё сделал? Или на официальной вики чуть привирают?
Решил спросить у более смыслящих в этом деле людей, надеюсь на вашу помощь ;)
 

White_Octopuz

Пользователь
23 Сен 2018
12
0
Проект
Bitcoin99GG
{
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_IMMEDIATE"
"AbilityType" "DOTA_ABILITY_TYPE_ULTIMATE"
"IsOnCastBar" "1"
"AbilityTextureName" "Ambrey/BlackGod"
"MaxLevel" "4"
"AbilityCooldown" "200 180 160 140"
"AbilityManaCost" "200 220 240 260"
"OnSpellStart"
{
"RunScript"
{
"ScriptFile" "scripts/vscripts/hero_Ambrey/BlackGod.lua"
"Function" "BlackGod"
}
}
"Modifiers"
{
"modifier_day"
{
"Passive" "0"
"IsBuff" "1"
"IsDebuff" "0"
"IsHidden" "0"
"IsPurgable" "0"
"Duration" "%duration_day"
"EffectName" "particles/units/heroes/hero_riki/riki_tricks_ring_energy.vpcf"
"EffectAttachType" "follow_origin"
"Properties"
{
"MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE" "%hpregen_day"
"MODIFIER_PROPERTY_EVASION_CONSTANT" "%evasion_day"
}
"States"
{
"MODIFIER_STATE_HEXED" "MODIFIER_STATE_VALUE_ENABLED"
}
}
"modifier_night"
{
"Passive" "0"
"IsBuff" "1"
"IsDebuff" "0"
"IsHidden" "0"
"IsPurgable" "0"
"Duration" "%duration_night"
"EffectName" "particles/units/heroes/hero_riki/riki_tricks_ring_energy.vpcf"
"EffectAttachType" "follow_origin"
"Properties"
{
"MODIFIER_PROPERTY_STATS_AGILITY_BONUS" "%agilitybonus_night"
"MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PHYSICAL" "%atkdamagebonus_night"
"MODIFIER_PROPERTY_EVASION_CONSTANT" "%evasion_night"
"MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT" "%hpregen_night"
}
"States"
{
"MODIFIER_STATE_HEXED" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}
"AbilitySpecial"
{
"1"
{
"var_type" "FIELD_FLOAT"
"duration_day" "4 5 6 7"
}
"2"
{
"var_type" "FIELD_FLOAT"
"hpregen_day" "4 5 6 7"
}
"3"
{
"var_type" "FIELD_FLOAT"
"evasion_day" "5 6 7.5 9"
}
"4"
{
"var_type" "FIELD_FLOAT"
"duration_night" "10 15 19 25"
}
"5"
{
"var_type" "FIELD_FLOAT"
"hpregen_night" "20 35 35 65"
}
"6"
{
"var_type" "FIELD_FLOAT"
"agilitybonus_night" "10 20 30 45"
}
"7"
{
"var_type" "FIELD_FLOAT"
"atkdamagebonus_night" "75 100 125 150"
}
"8"
{
"var_type" "FIELD_FLOAT"
"evasion_night" "10 15 20 25"
}
}
}
 

White_Octopuz

Пользователь
23 Сен 2018
12
0
Проект
Bitcoin99GG
А где ты, прости, его накидываешь?
Есть скрипт луа, он делает проверку на день/ночь и возвращает результат. Сейчас не совсем дома, скинуть скрипт не могу, он только на рабочем пк. Но модификатор накладывается, причем верно. Разве проблема может лежать в луа скрипте?
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
Есть скрипт луа, он делает проверку на день/ночь и возвращает результат. Сейчас не совсем дома, скинуть скрипт не могу, он только на рабочем пк. Но модификатор накладывается, причем верно. Разве проблема может лежать в луа скрипте?
Проблема может быть где угодно, это дота
 

White_Octopuz

Пользователь
23 Сен 2018
12
0
Проект
Bitcoin99GG
Проблема может быть где угодно, это дота
На данный момент изучил только дд систему, в скриптах луа еще не разбирался, поэтому взял за основу скрипт с библиотеки скиллов от night stalker'а, частично переписав его под свои названия модификаторов, вот сам скрипт
function BlackGod( keys )
local caster = keys.caster
local ability = keys.ability
local target = keys.target
local modifier_day = keys.modifier_day
local modifier_night = keys.modifier_night
if GameRules:IsDaytime() then
ability:ApplyDataDrivenModifier(caster, caster, modifier_day, {})
else
ability:ApplyDataDrivenModifier(caster, caster, modifier_night, {})
end
end
 

shesmu

Продвинутый
22 Фев 2018
158
22
Черный бог - это тупа бан, возможно под невидимостью ты ожидаешь что юнит станет прозрачным, но на самом деле его просто не будут видеть враги без трусайта, потыкайся об вражеских юнитов и посмотри что будет
 

White_Octopuz

Пользователь
23 Сен 2018
12
0
Проект
Bitcoin99GG
Черный бог - это тупа бан, возможно под невидимостью ты ожидаешь что юнит станет прозрачным, но на самом деле его просто не будут видеть враги без трусайта, потыкайся об вражеских юнитов и посмотри что будет
Соответственно для противников данный юнит будет невидим, пока у них нет тру сайта. Хорошо, а как сделать эффект невидимости, который используется в обычной доте, шб там? Это партикл или что. А насчет названий, лучше забей, кастомка делается про наш класс, там и не такое увидишь)
 

.фи

Активный
21 Мар 2018
108
13
Соответственно для противников данный юнит будет невидим, пока у них нет тру сайта. Хорошо, а как сделать эффект невидимости, который используется в обычной доте, шб там? Это партикл или что. А насчет названий, лучше забей, кастомка делается про наш класс, там и не такое увидишь)

Хороший вопрос. Сам задумывался. Надо копнуть модифаер у СК босса из первого акта силтбрейкера.
Спустя 5 минут:

hStorm:AddNewModifier( Hero --[[то есть кому]], nil, "modifier_provides_vision", {}--[[то есть до конца каста абилки]] )
Это, разумеется не по теме. Потому как если ты ставишь себе невидимость - она в любом случае должна визуально давать о себе знать.
 
Последнее редактирование:

shesmu

Продвинутый
22 Фев 2018
158
22
particles/generic_hero_status/status_invisibility_start.vpcf вроде как effectname используется
 

White_Octopuz

Пользователь
23 Сен 2018
12
0
Проект
Bitcoin99GG
да, это для шб в начале инвиза, но как сделать модель героя полупрозрачной?
 

.фи

Активный
21 Мар 2018
108
13
да, это для шб в начале инвиза, но как сделать модель героя полупрозрачной?

Тут всё есть

Пример чуть более чем на половину невидимого юнита, очевидно что через модифаер.

Код:
function modifier_invisible:DeclareFunctions()
    local funcs =
    {
        MODIFIER_PROPERTY_INVISIBILITY_LEVEL,
    }
    return funcs
end

--------------------------------------------------------------------------------

function modifier_invisible:GetModifierInvisibilityLevel( params )
    return 0.55
end
 
Реклама: