Детальный гайд по описанию предметов и способностей

mrlikelot

Продвинутый
24 Июл 2015
168
0
На форуме есть такая тема, но не все поняли, что доносил автор, честно говоря я тоже долго разбирался :), поэтому решил написать свой.
Пример будет на предмете, со способностью в точности до миллиметра так же. Сразу рекомендую установить шаблон barebones, с ним намного легче.
Допустим, у нас уже есть предмет с каким то кодом, откройте этот файл и не закрывайте пока,например:
Код:
"item_example_item"
  ...
Теперь переходим в папку resource мода, у меня это выглядит так:

Там, будет файл addon_english.txt - это файл с описаниями на английском языке, вы можете использовать его, тогда у всех будет использоваться только этот перевод, но можете создать файл addon_russian.txt ну или любой другой язык, который хотите добавить. Ну ладно, к делу. Я буду рассматривать на примере addon_english.txt, открываем его:
Код:
"lang"
{
	"Language"		"English"
	"Tokens"
	{		
		"game_mode_15"				"BAREBONES"
		"addon_game_name"			"Evolution"
Здесь нам нужна последняя строка на картинке, это название вашего мода на этом языке, то есть на русском я написал бы "Эволюция", а здесь - "Evolution". С пунктом game_mode_15 я пока не разобрался, не изменял его.
Но мы пришли сюда не за этим, чтобы легче было добавлять описание вставьте шаблон:
Код:
"DOTA_Tooltip_ability_item_item_example_item"							"Round crap"
"DOTA_Tooltip_ability_item_item_example_item_Description"						"Sheald killer."
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor"						"Bonus armor:"
Рассмотрим всё по порядку, начиная с 1 строчки:
Код:
"DOTA_Tooltip_ability_item_"
Всё, что идёт после этого кода - название предмета (если делаете способность уберите последний item), то есть у меня предмет item_example_item и я его добавляю после этой строки получилось:
Код:
"DOTA_Tooltip_ability_item_item_example_item"
Во втором столбике 1 строчки это название предмета уже в игре, у меня это
Код:
"Round crap"
Вы ставите всё, что угодно.
Переходим ко 2 строчке, к названию предмета добавилось слово "_Description" - это описание предмета, у меня:
Код:
"Щит убийца."
Ну и последняя строчка это описание бонуса, который даёт предмет.
К названию предмета добавилось
Код:
"_bonus_armor"
Но не спешите делать так же, откройте файл с вашим предметом и перейдите к следующему:
Код:
"AbilitySpecial"
		{
			"01"
			{
				"var_type"				"FIELD_FLOAT"
				"bonus_armor"			"2"
			}
		}
Здесь мы берём название переменных, которые вам нужны, у меня это "bonus_armor" и добавляем это к
Код:
"DOTA_Tooltip_ability_item_item_example_item_"
Получилось:
Код:
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor"
Если у вас много переменных, то будет выглядеть примерно так:
Код:
"DOTA_Tooltip_ability_item_item_example_item_bonus_agil"
"DOTA_Tooltip_ability_item_item_example_item_bonus_strange"
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor"
Здесь во втором столбике можно ничего не писать, тогда в игре будет видна просто цифра, но, если вы напишите, например, "Бонус к броне:", то это будет выглядеть так:

Так же можно использовать переменные, чтобы выглядело как в доте:

Для этого в третьей строчке во втором столбике(у меня) вставляем вместо "Bonus armor:" "+$armor", получается:
Код:
"DOTA_Tooltip_ability_item_item_example_item_bonus_armor"						"+$armor"
Подробнее о всех переменных под спойлером.



Дополнительные пункты:
Код:
"DOTA_Tooltip_ability_item_item_example_item_Note0"   "текст"
Будет показываться текст-подсказка при зажатом альте
Код:
"DOTA_Tooltip_ability_item_item_example_item_Lore" "История"
Мини история предмета

Специальны коды для вставки:
+$mana - Мана (колличество)
+$health - Хп (колличество)
+$armor - Броня
+$damage - Урон
+$str - Бонусная сила
+$int - Бонусный интеллект
+$agi - Бонусная ловкость
%+$mana_regen - Мана-реген в процентах
+$hp_regen - Регенрация
+$move_speed - Скорость передвижения
%+$move_speed - Скорость передвижения в процентах
+$all - Ко всем атрибутам
%+$evasion - Шанс к уворотам
+$attack - Скорость атаки
%+$spell_resist - Сопротивление магии
%LIFESTEAL - Лайфстила другого не нашёл, видимо это правильно
Это всё, что нашёл, если есть поправки, прошу написать в тему :)
 
Последнее редактирование модератором:

I_GRIN_I

Друзья CG
15 Мар 2016
1,270
92
Re: Полный гайд по описанию предметов и способностей

mrlikelot, еще есть
Код:
"DOTA_Tooltip_Ability_datadriven_skeleton_Note0" "При зажатом альте"
"DOTA_Tooltip_Ability_datadriven_skeleton_Lore" "Маленькие буквы снизу"
 
Последнее редактирование модератором:

mrlikelot

Продвинутый
24 Июл 2015
168
0
Re: Полный гайд по описанию предметов и способностей

[quote author=I_GRIN_I link=topic=1048.msg5852#msg5852 date=1470821708]
mrlikelot, еще есть
Код:
"DOTA_Tooltip_Ability_datadriven_skeleton_Note0" "При зажатом альте"
"DOTA_Tooltip_Ability_datadriven_skeleton_Lore" "Маленькие буквы снизу"
[/quote]
Спасибо, добавлю
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
5
Re: Полный гайд по описанию предметов и способностей

"+$armor" не не слышал?)
 
Последнее редактирование модератором:

mrlikelot

Продвинутый
24 Июл 2015
168
0
Re: Полный гайд по описанию предметов и способностей

"+$armor" не не слышал?)
Я видел это, когда рассматривал файлы dota imba, но не понял зачем это, плюсик впереди поставить?
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
5
Re: Полный гайд по описанию предметов и способностей

Я видел это, когда рассматривал файлы dota imba, но не понял зачем это, плюсик впереди поставить?
Это автоматическая локализация для предметов.
+$armor написав локализации он на всех языках выдаст свое "+ <N> брони", и <N> будет желтым цветом.
Так же есть другие типо +$all(ко всем статам) и т.д.
 
Последнее редактирование модератором:

mrlikelot

Продвинутый
24 Июл 2015
168
0
Re: Полный гайд по описанию предметов и способностей

Это автоматическая локализация для предметов.
+$armor написав локализации он на всех языках выдаст свое "+ <N> брони", и <N> будет желтым цветом.
Так же есть другие типо +$all(ко всем статам) и т.д.
Спасибо, а есть весь список возможных слов после $, я такого не видел на вики просто, добавлю в гайд
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
5
Re: Полный гайд по описанию предметов и способностей

Спасибо, а есть весь список возможных слов после $, я такого не видел на вики просто, добавлю в гайд
Открываешь стандартную локализацию доты...
Ну ты понял мою идею :D
 
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
31
Если у тебя предмет называется item_example_item, то достаточно сделать так:

Код:
"DOTA_Tooltip_ability_item_example_item"
 
Последнее редактирование модератором:

mrlikelot

Продвинутый
24 Июл 2015
168
0
[quote author=Илья link=topic=1048.msg5871#msg5871 date=1470840871]
Если у тебя предмет называется item_example_item, то достаточно сделать так:

Код:
"DOTA_Tooltip_ability_item_example_item"
[/quote]
Учту, в barebones было так, поэтому думал, что это правильно
 
Последнее редактирование модератором:

UFO

Пользователь
2 Сен 2016
11
0
+$mana - Мана (колличество)
+$health - Хп (колличество)
+$armor - Броня
+$damage - Урон
+$str - Бонусная сила
+$int - Бонусный интеллект
+$agi - Бонусная ловкость
%+$mana_regen - Мана-реген в процентах
+$hp_regen - Регенрация
+$move_speed - Скорость передвижения
%+$move_speed - Скорость передвижения в процентах
+$all - Ко всем атрибутам
%+$evasion - Шанс к уворотам
+$attack - Скорость атаки
%+$spell_resist - Сопротивление магии
%LIFESTEAL - Лайфстил

Работает ли это на способности ?
И есть ли ограничение на количество строк описания способности?
Потому что столкнулся с проблемой описания способности

Строки вроди как резервируются но ничего не видно ...
Код:
  "DOTA_Tooltip_Ability_mad_mag_4"                "Инь и янь" 
  "DOTA_Tooltip_Ability_mad_mag_4_Description"   "При использовании любых заклинаний безумец накапливает мощь стихии в зависимости от того какая стихия преобладает он может совершать различные безумные дела"
  "DOTA_Tooltip_Ability_mad_mag_4_fire_1"     "Преобладание огня до 5 стаков наносит урон по площади:"
  "DOTA_Tooltip_Ability_mad_mag_4_fire_2"     "Преобладание огня 5-14 стаков наносит урон по площади:"
  "DOTA_Tooltip_Ability_mad_mag_4_fire_3"     "Преобладание огня 15-19 стаков наносит урон по площади:"
  "DOTA_Tooltip_Ability_mad_mag_4_fire_4"     "Преобладание огня более 20 стаков наносит урон по площади:"
  "DOTA_Tooltip_Ability_mad_mag_4_korn_1"     "Преобладание льда до 5 стаков наносит урон в течении 4 сек. привязывая противника:"
  "DOTA_Tooltip_Ability_mad_mag_4_korn_2"     "Преобладание льда 5-14 стаков наносит урон в течении 4 сек. привязывая противника:"
  "DOTA_Tooltip_Ability_mad_mag_4_korn_3"     "Преобладание льда 15-19 стаков наносит урон в течении 4 сек. привязывая противника:"
  "DOTA_Tooltip_Ability_mad_mag_4_korn_4"     "Преобладание льда более 20 стаков наносит урон в течении 4 сек. привязывая противника:"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g1"     "Гармония до 5 стаков наносит урон и обезмолвливает противника:"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g2"     "Гармония 5-14 стаков наносит урон а также разоружает :"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g3"     "Гармония 15-19 стаков наносит урон и перестает учитывать блоки противника:"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g4"     "Гармония более 20 стаков наносит все что више и отключает пассивки:"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g0"     "Урон при отсутствии любых склонностей к стихиям:"
Этот код на скрине, также пробовал другой
Код:
  "DOTA_Tooltip_Ability_mad_mag_4"                "Инь и янь" 
  "DOTA_Tooltip_Ability_mad_mag_4_Description"   "При использовании любых заклинаний безумец накапливает мощь стихии в зависимости от того какая стихия преобладает он может совершать различные безумные дела"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g0"     "Урон при отсутствии любых склонностей к стихиям:"
  "DOTA_Tooltip_Ability_mad_mag_4_fire_4"     "Преобладание огня до 3 стаков наносит урон по площади: 250/350/450/600 , 4-7 стаков: 300/400/600/800 , 8-11 стаков: 400/600/800/1000 , более 12 стаков :"
  "DOTA_Tooltip_Ability_mad_mag_4_korn_4"     "Преобладание льда до 3 стаков наносит урон в течении 4 сек. привязывая противника: 250/300/400/500 , 4-7 стаков: 350\450\600\700 , 8-11 стаков: 500/600/700/800 , более 12 стаков:"
  "DOTA_Tooltip_Ability_mad_mag_4_dmg_g4"     "Гармония до 5 стаков обезмолвливает противника и наносит ему урон: 400/500/600/700 , 6-8 стаков дополнительно разоружает а также наносит урон: 500/600/700/900 , 9-12 стаков дополнитеьно перестает учитывать блоки противника и наносит ему урон: 600/750/950/1100 , более 13 стаков дополнительно отключает пассивки и наносит: "
 
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
31
Код:
DOTA_Tooltip_Ability_mad_mag_4_fire_1
mad_mag_4_fire_1- эт что, название абилки? Или вещи?
 

ZLOY

Администратор
Команда форума
27 Июн 2016
676
75
Код:
"dota_ability_variable_my_name"		"Name"
"DOTA_Tooltip_ability_item_item_example"						"+$my_name"
Как-то так можно еще
 
Последнее редактирование модератором:

UFO

Пользователь
2 Сен 2016
11
0
[quote author=Илья link=topic=1048.msg6039#msg6039 date=1472827683]
Код:
DOTA_Tooltip_Ability_mad_mag_4_fire_1
mad_mag_4_fire_1- эт что, название абилки? Или вещи?
[/quote]
Это название модифаера который включается при определенном условии ...
Скрипт всей способности
Код:
LinkLuaModifier("madness_ice", "madness_ice.lua", LUA_MODIFIER_MOTION_NONE )
LinkLuaModifier("madness_fire", "madness_fire.lua", LUA_MODIFIER_MOTION_NONE )

 function ulta(event) 
 local caster = event.caster
 local hTarget = event.target
 local hAbility = event.ability 
  local lvl = event.ability:GetLevel()
  local p = event.ability:GetCursorPosition()
  local damage_0 = hAbility:GetLevelSpecialValueFor("dmg_0", hAbility:GetLevel() - 1)

  local damage_g1 = hAbility:GetLevelSpecialValueFor("dmg_g1", hAbility:GetLevel() - 1)
  local damage_g2 = hAbility:GetLevelSpecialValueFor("dmg_g2", hAbility:GetLevel() - 1)
  local damage_g3 = hAbility:GetLevelSpecialValueFor("dmg_g3", hAbility:GetLevel() - 1)
  local damage_g4 = hAbility:GetLevelSpecialValueFor("dmg_g4", hAbility:GetLevel() - 1)

 			local current_stack_fire = caster:GetModifierStackCount("madness_fire", hAbility)
    local current_stack_ice = caster:GetModifierStackCount("madness_ice", hAbility)
       

			if current_stack_fire == 0 and current_stack_ice == 0 then
         local particle = ParticleManager:CreateParticle("particles/units/heroes/hero_keeper_of_the_light/keeper_of_the_light_spirit_form_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)
          Timers:CreateTimer(1, function() 
          ParticleManager:DestroyParticle( particle, false )
         end) 
     ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_0 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility
        })
     elseif current_stack_fire > 0 and current_stack_ice == 0 then  
      local particle = ParticleManager:CreateParticle("particles/units/heroes/hero_keeper_of_the_light/keeper_of_the_light_spirit_form_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)      
      Timers:CreateTimer(1, function() 
      ParticleManager:DestroyParticle( particle, false )
         end) 
     ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_0 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility
        })
      elseif current_stack_fire == 0 and current_stack_ice > 0 then 
      local particle = ParticleManager:CreateParticle("particles/units/heroes/hero_keeper_of_the_light/keeper_of_the_light_spirit_form_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)      
      Timers:CreateTimer(1, function() 
      ParticleManager:DestroyParticle( particle, false )
         end) 
     ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_0 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility
        })
-------------------------------------------------ДОМИНАЦИЯ ОГНЯ↓--------------------------------------
-------------------------------------------------ДОМИНАЦИЯ ОГНЯ↓--------------------------------------
     elseif current_stack_fire > current_stack_ice and current_stack_fire < 4  then --Взрів аое от точки +раскидка
       local particle1 = ParticleManager:CreateParticle("particles/units/heroes/hero_leshrac/leshrac_pulse_nova_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)
        Timers:CreateTimer(1, function() 
  ParticleManager:DestroyParticle( particle1, false )
 end)  
      local p = event.ability:GetCursorPosition()
     local dummy = CreateUnitByName( "npc_dota_creature_dummy", p, false, caster, caster, caster:GetTeamNumber() )
  dummy:AddAbility ("abilka_dummy_mad_f1")
  local abilka = dummy:FindAbilityByName("abilka_dummy_mad_f1")
  abilka:SetLevel(lvl)
  dummy:CastAbilityImmediately(abilka,caster:GetPlayerOwnerID())
  dummy:RemoveAbility("abilka_dummy_mad_f1")  
  dummy:ForceKill(true)
  caster:RemoveModifierByName( "madness_fire" )
  caster:RemoveModifierByName( "madness_ice" )
      
   elseif current_stack_fire > current_stack_ice and current_stack_fire > 3 and current_stack_fire <8 and current_stack_ice > 0 then --Взрів аое от точки +раскидка
      local particle2 = ParticleManager:CreateParticle("particles/units/heroes/hero_leshrac/leshrac_pulse_nova_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)
       Timers:CreateTimer(1, function() 
  ParticleManager:DestroyParticle( particle2, false )
 end)  
     local dummy = CreateUnitByName( "npc_dota_creature_dummy", p, false, caster, caster, caster:GetTeamNumber() )
  dummy:AddAbility ("abilka_dummy_mad_f2")
  local abilka = dummy:FindAbilityByName("abilka_dummy_mad_f2")
  abilka:SetLevel(lvl)
  dummy:CastAbilityImmediately(abilka,caster:GetPlayerOwnerID())
  dummy:RemoveAbility("abilka_dummy_mad_f2")  
  dummy:ForceKill(true)
  caster:RemoveModifierByName( "madness_fire" )
  caster:RemoveModifierByName( "madness_ice" )  
      
   elseif current_stack_fire > current_stack_ice and current_stack_fire > 7 and current_stack_fire <12 and current_stack_ice > 0 then --Взрів аое от точки +раскидка
          local particle3 = ParticleManager:CreateParticle("particles/units/heroes/hero_leshrac/leshrac_pulse_nova_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)
            Timers:CreateTimer(1, function() 
  ParticleManager:DestroyParticle( particle3, false )
 end)        
     local dummy = CreateUnitByName( "npc_dota_creature_dummy", p, false, caster, caster, caster:GetTeamNumber() )
  dummy:AddAbility ("abilka_dummy_mad_f3")
  local abilka = dummy:FindAbilityByName("abilka_dummy_mad_f3")
  abilka:SetLevel(lvl)
  dummy:CastAbilityImmediately(abilka,caster:GetPlayerOwnerID())
  dummy:RemoveAbility("abilka_dummy_mad_f3")  
  dummy:ForceKill(true)
  caster:RemoveModifierByName( "madness_fire" )
  caster:RemoveModifierByName( "madness_ice" )  
     
   elseif current_stack_fire > current_stack_ice and current_stack_fire > 11 and current_stack_ice > 0 then --Взрів аое от точки +раскидка
    local particle4 = ParticleManager:CreateParticle("particles/units/heroes/hero_leshrac/leshrac_pulse_nova_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)  
         Timers:CreateTimer(1, function() 
  ParticleManager:DestroyParticle( particle4, false )
 end)  
   local dummy = CreateUnitByName( "npc_dota_creature_dummy", p, false, caster, caster, caster:GetTeamNumber() )
  dummy:AddAbility ("abilka_dummy_mad_f4")
  local abilka = dummy:FindAbilityByName("abilka_dummy_mad_f4")
  abilka:SetLevel(lvl)
  dummy:CastAbilityImmediately(abilka,caster:GetPlayerOwnerID())
  dummy:RemoveAbility("abilka_dummy_mad_f4")  
  dummy:ForceKill(true)
     
  caster:RemoveModifierByName( "madness_fire" )
  caster:RemoveModifierByName( "madness_ice" )
-------------------------------------------------ДОМИНАЦИЯ ЛЬДА↓--------------------------------------
-------------------------------------------------ДОМИНАЦИЯ ЛЬДА↓--------------------------------------  
     elseif current_stack_fire < current_stack_ice and current_stack_ice <4 and current_stack_fire > 0 then -- корни в 1 таргет дмг пиявка
       hAbility:ApplyDataDrivenModifier( caster, hTarget, "Fire_more__ice_1", { } )       
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
        local particle = ParticleManager:CreateParticle("particles/econ/courier/courier_roshan_frost/courier_roshan_frost_ambient.vpcf", PATTACH_ABSORIGIN_FOLLOW, hTarget)
         elseif current_stack_fire < current_stack_ice and current_stack_ice >3 and current_stack_ice <8 and current_stack_fire > 0 then -- корни в 1 таргет дмг пиявка
       hAbility:ApplyDataDrivenModifier( caster, hTarget, "Fire_more__ice_2", { } )       
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
         elseif current_stack_fire < current_stack_ice and current_stack_ice >7 and current_stack_ice <12 and current_stack_fire > 0 then -- корни в 1 таргет дмг пиявка
       hAbility:ApplyDataDrivenModifier( caster, hTarget, "Fire_more__ice_3", { } )       
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
         elseif current_stack_fire < current_stack_ice and current_stack_ice >11 and current_stack_fire > 0 then -- корни в 1 таргет дмг пиявка
       hAbility:ApplyDataDrivenModifier( caster, hTarget, "Fire_more__ice_4", { } )       
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
-------------------------------------------------ГАРМОНИЯ↓--------------------------------------
-------------------------------------------------ГАРМОНИЯ↓--------------------------------------
     elseif current_stack_fire == current_stack_ice and current_stack_ice < 6 and current_stack_ice > 0 then 
        hAbility:ApplyDataDrivenModifier( hTarget, hTarget, "modifier_garmonia_1", { } )
              ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_g1 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility
        })
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
     elseif current_stack_fire == current_stack_ice and current_stack_ice > 5 then 
        hAbility:ApplyDataDrivenModifier( hTarget, hTarget, "modifier_garmonia_2", { } )
              ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_g2 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility
        })
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
     elseif current_stack_fire == current_stack_ice and current_stack_ice > 8 then 
        hAbility:ApplyDataDrivenModifier( hTarget, hTarget, "modifier_garmonia_3", { } )
        ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_g3 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility 
          })
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
     elseif current_stack_fire == current_stack_ice and current_stack_ice > 12 then 
       hAbility:ApplyDataDrivenModifier( hTarget, hTarget, "modifier_garmonia_4", { } )
          ApplyDamage({
          victim = hTarget,
          attacker = caster,
          damage = damage_g4 ,
          damage_type = DAMAGE_TYPE_MAGICAL,
          ability = hAbility 
          })
        caster:RemoveModifierByName( "madness_fire" )
        caster:RemoveModifierByName( "madness_ice" )
	end
end
И картинка которая должна была разъяснить все но что то пошло не так )
 
Последнее редактирование модератором:

UFO

Пользователь
2 Сен 2016
11
0
[quote author=ZLOY link=topic=1048.msg6043#msg6043 date=1472828736]
Код:
"dota_ability_variable_my_name"		"Name"
"DOTA_Tooltip_ability_item_item_example"						"+$my_name"
Как-то так можно еще
[/quote]

Спасибо , штука классная , и нужная мне тоже ))
 
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
31
Модификаторы описываются так:

Код:
"DOTA_Tooltip_modifier_bloodseeker_thirst_speed"	
"DOTA_Tooltip_modifier_bloodseeker_thirst_speed_Description"
 
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
31
А чтобы у вещи описывать параметры надо через "специальные переменные" (AbilitySpecial). Именно для них пишется описание:
Код:
"DOTA_Tooltip_Ability_luna_eclipse_custom"							"Сумерки"
"DOTA_Tooltip_Ability_luna_eclipse_custom_Description"				"Бьет случайных врагов рядом с Luna способностью Lucent Beam текущего уровня. Способность не оглушает цель и может ударить по ней лишь ограниченное число раз. Также способность на 10 секунд превращает день в ночь (Аккуратно!). Улучшается с Aghanim's Scepter."
"DOTA_Tooltip_Ability_luna_eclipse_custom_beams"					"Количество лучей:"
"DOTA_Tooltip_Ability_luna_eclipse_custom_hit_count"					"Макс. ударов по юниту:"
"DOTA_Tooltip_Ability_luna_eclipse_custom_duration_tooltip"				"Продолжительность:"
"DOTA_Tooltip_Ability_luna_eclipse_custom_radius"					"Радиус:"		
"DOTA_Tooltip_Ability_luna_eclipse_custom_beams_scepter"				"Количество лучей со скипетром:"
"DOTA_Tooltip_Ability_luna_eclipse_custom_hit_count_scepter"			"Макс. ударов по юниту со скипетром:"
"DOTA_Tooltip_Ability_luna_eclipse_custom_duration_tooltip_scepter"		"Продолжительность со скипетром:"
"DOTA_Tooltip_Ability_luna_eclipse_custom_cast_range_tooltip_scepter"		"Дальность применения со скипетром:"
И зачем ты скидываешь скрипт логики абилки, когда для её описания используется именно kv версия? Если какие-то проблемы с её описанием, скидывай её описание из npc_abilities_custom.txt
 
Последнее редактирование модератором:

UFO

Пользователь
2 Сен 2016
11
0
Все есть и вроди все правильно
Код:
 "BaseClass"       "ability_datadriven"
 "AbilityTextureName"  "Medness_spell_4"
 "AbilityType"      "DOTA_ABILITY_TYPE_ULTIMATE"
 "MaxLevel"           "4"
 "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET"
 "AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
 "AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
 "AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
 "AbilityCooldown"        "43 38 32 28"
 "AbilityManaCost"        "150 180 220 270"
 "AbilityCastRange"       "750"  
 "SpellImmunityType"       "SPELL_IMMUNITY_ENEMIES_YES"
 "precache"
 {
  "particle" "particles/econ/items/shadow_fiend/sf_desolation/sf_base_attack_desolation.vpcf"
  "particle" "particles/units/heroes/hero_leshrac/leshrac_pulse_nova_ambient.vpcf"
  "particle" "particles/econ/courier/courier_roshan_frost/courier_roshan_frost_ambient.vpcf"
   "particle"        "particles/base_attacks/ranged_tower_good_glow_c.vpcf"
   "particle"        "particles/addons_gameplay/tower_good_tintable_lamp_end.vpcf" 
  

 }
"OnSpellStart"
 { 
  "RunScript"
   {
   "ScriptFile"  "lua_abilities/mad_mag/Mad_mag_ULTA.lua"
   "Function" "ulta"
   }
 }
 "Modifiers" 
 {   
    "Fire_more__ice_1"
    { 
     "IsDebuff"   "1"
     "Duration" "4"
     "ThinkInterval"   "0.5"
     "EffectName" "particles/econ/courier/courier_roshan_frost/courier_roshan_frost_ambient.vpcf"
     "EffectAttachType" "follow_overhead"
     "OnIntervalThink"
     {      
     "Damage"
     {
       "Target"        "TARGET"
       "Type"         "DAMAGE_TYPE_MAGICAL"
       "Damage"         "%korn_1"              
     }
     }
      "States"
        {
          "MODIFIER_STATE_ROOTED"    "MODIFIER_STATE_VALUE_ENABLED"
        }
    }
    "Fire_more__ice_2"
    { 
     "IsDebuff"   "1"
     "Duration" "4"
     "ThinkInterval"   "0.5"
     "EffectName" "particles/econ/courier/courier_roshan_frost/courier_roshan_frost_ambient.vpcf"
      "EffectAttachType" "follow_overhead"
     "OnIntervalThink"
     {      
     "Damage"
     {
       "Target"        "TARGET"
       "Type"         "DAMAGE_TYPE_MAGICAL"
       "Damage"          "%korn_2"          
     }
     }
     "States"
        {
          "MODIFIER_STATE_ROOTED"    "MODIFIER_STATE_VALUE_ENABLED"
        }
    }        
    "Fire_more__ice_3"
    { 
     "IsDebuff"   "1"
     "Duration" "4"
     "ThinkInterval"   "0.5"
     "EffectName" "particles/econ/courier/courier_roshan_frost/courier_roshan_frost_ambient.vpcf"
      "EffectAttachType" "follow_overhead"
     "OnIntervalThink"
     {      
     "Damage"
     {
       "Target"        "TARGET"
       "Type"         "DAMAGE_TYPE_MAGICAL"
       "Damage"         "%korn_3"          
     }
     }     
     "States"
        {
          "MODIFIER_STATE_ROOTED"    "MODIFIER_STATE_VALUE_ENABLED"
        }
    }        
    "Fire_more__ice_4"
    { 
     "IsDebuff"   "1"
     "Duration" "4"
     "ThinkInterval"   "0.5"
     "EffectName" "particles/econ/courier/courier_roshan_frost/courier_roshan_frost_ambient.vpcf"
      "EffectAttachType" "follow_overhead"
     "OnIntervalThink"
     {      
     "Damage"
     {
       "Target"        "TARGET"
       "Type"         "DAMAGE_TYPE_MAGICAL"
       "Damage"           "%korn_4"          
     }
     }
     "States"
        {
          "MODIFIER_STATE_ROOTED"    "MODIFIER_STATE_VALUE_ENABLED"
        }

    }               
   "modifier_garmonia_1"
   {
     "IsDebuff"     "1"  
     "Duration"     "3"
     "EffectName" "particles/addons_gameplay/tower_good_tintable_lamp_end.vpcf"
      "EffectAttachType" "follow_origin"    
     "States"
     {
        "MODIFIER_STATE_SILENCED"      "MODIFIER_STATE_VALUE_ENABLED"
     }
   }
   "modifier_garmonia_2"
   {
     "IsDebuff"     "1"  
     "Duration"     "3"
     "EffectName" "particles/addons_gameplay/tower_good_tintable_lamp_end.vpcf"
      "EffectAttachType" "follow_origin"
     "States"
     {
        "MODIFIER_STATE_SILENCED"      "MODIFIER_STATE_VALUE_ENABLED"
        "MODIFIER_STATE_DISARMED"      "MODIFIER_STATE_VALUE_ENABLED"
     }
   }
   "modifier_garmonia_3"
   {
     "IsDebuff"     "1"  
     "Duration"     "3"
     "EffectName" "particles/addons_gameplay/tower_good_tintable_lamp_end.vpcf"
      "EffectAttachType" "follow_origin"
     "States"
     {
        "MODIFIER_STATE_SILENCED"      "MODIFIER_STATE_VALUE_ENABLED"
        "MODIFIER_STATE_DISARMED"      "MODIFIER_STATE_VALUE_ENABLED"
        "MODIFIER_STATE_BLOCK_DISABLED"   "MODIFIER_STATE_VALUE_ENABLED"
     }
   }
   "modifier_garmonia_4"
   {
     "IsDebuff"     "1"  
     "Duration"     "3"
     "EffectName" "particles/addons_gameplay/tower_good_tintable_lamp_end.vpcf"
      "EffectAttachType" "follow_origin"
     "States"
     {
        "MODIFIER_STATE_SILENCED"      "MODIFIER_STATE_VALUE_ENABLED"
        "MODIFIER_STATE_DISARMED"      "MODIFIER_STATE_VALUE_ENABLED"
        "MODIFIER_STATE_BLOCK_DISABLED"   "MODIFIER_STATE_VALUE_ENABLED"
        "MODIFIER_STATE_PASSIVES_DISABLED" "MODIFIER_STATE_VALUE_ENABLED"
     }
   }

 }
  "AbilitySpecial"
  {
    "01"
    {
      "var_type"     "FIELD_INTEGER"
      "dmg_g1"       "400 500 600 700"
    }
    "02"
    {
      "var_type"     "FIELD_FLOAT"
      "dmg_g2"       "500 600 700 900"
    }
    "03"
    {
      "var_type"     "FIELD_INTEGER"
      "dmg_g3"       "600 750 950 1100"
    }
    "04"
    {
      "var_type"     "FIELD_FLOAT"
      "dmg_g4"     "800 950 1200 1400"
    }
    "05"
    {
      "var_type"     "FIELD_FLOAT"
      "dmg_0"     "350 450 500 550"
    }
    "06"
    {
      "var_type"     "FIELD_FLOAT"     //"250 300 400 500" // 1/8
      "korn_1"     "31 38 50 63"
    }
    "07"
    {
      "var_type"     "FIELD_FLOAT"     //"350 450 600 700" // 1/8
      "korn_2"     "44 56 63 75"
    }
    "08"
    {
      "var_type"     "FIELD_FLOAT"     // "500 600 700 800"
      "korn_3"     "63 75 88 100"
    }
    "09"
    {
      "var_type"     "FIELD_FLOAT"     // "550 650 800 950" // 1/8
      "korn_4"     "69 81 100 119"
    }
    "10"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_1"     "250 350 450 600"
    }
    "11"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_2"     "300 400 600 800"
    }
    "12"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_3"     "400 600 800 1000"
    }
    "13"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_4"     "500 800 1000 1300"
    }
  }
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
5
Вот у тебя есть название абилки:
Код:
my_ability_name
И есть abilityspecial:
Код:
  "AbilitySpecial"
  {
    "01"
    {
      "var_type"     "FIELD_INTEGER"
      "dmg_g1"       "400 500 600 700"
    }
    "02"
    {
      "var_type"     "FIELD_FLOAT"
      "dmg_g2"       "500 600 700 900"
    }
    "03"
    {
      "var_type"     "FIELD_INTEGER"
      "dmg_g3"       "600 750 950 1100"
    }
    "04"
    {
      "var_type"     "FIELD_FLOAT"
      "dmg_g4"     "800 950 1200 1400"
    }
    "05"
    {
      "var_type"     "FIELD_FLOAT"
      "dmg_0"     "350 450 500 550"
    }
    "06"
    {
      "var_type"     "FIELD_FLOAT"     //"250 300 400 500" // 1/8
      "korn_1"     "31 38 50 63"
    }
    "07"
    {
      "var_type"     "FIELD_FLOAT"     //"350 450 600 700" // 1/8
      "korn_2"     "44 56 63 75"
    }
    "08"
    {
      "var_type"     "FIELD_FLOAT"     // "500 600 700 800"
      "korn_3"     "63 75 88 100"
    }
    "09"
    {
      "var_type"     "FIELD_FLOAT"     // "550 650 800 950" // 1/8
      "korn_4"     "69 81 100 119"
    }
    "10"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_1"     "250 350 450 600"
    }
    "11"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_2"     "300 400 600 800"
    }
    "12"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_3"     "400 600 800 1000"
    }
    "13"
    {
      "var_type"     "FIELD_FLOAT"     
      "fire_4"     "500 800 1000 1300"
    }
Тогда в файл локализации идет так:
Код:
"DOTA_Tooltip_ability_my_ability_name"				"My little ability"
"DOTA_Tooltip_ability_my_ability_name_Description"		"This my ability do some damage!"
"DOTA_Tooltip_ability_my_ability_name_Lore"			"This powerful ability created by some great mage"
"DOTA_Tooltip_ability_my_ability_name_dmg_g1" 		"dmg g1:"
"DOTA_Tooltip_ability_my_ability_name_dmg_g2" 		"dmg g2:"
"DOTA_Tooltip_ability_my_ability_name_dmg_g3" 		"dmg g3:"
"DOTA_Tooltip_ability_my_ability_name_dmg_g4" 		"dmg g4:"

"DOTA_Tooltip_ability_my_ability_name_dmg_0" 			"dmg 0:"
"DOTA_Tooltip_ability_my_ability_name_korn_1" 			"korn 1:"
"DOTA_Tooltip_ability_my_ability_name_korn_2" 			"korn 2:"
"DOTA_Tooltip_ability_my_ability_name_korn_3" 			"korn 3:"
"DOTA_Tooltip_ability_my_ability_name_korn_4" 			"korn 4:"
"DOTA_Tooltip_ability_my_ability_name_fire_1" 			"fire 1:"
"DOTA_Tooltip_ability_my_ability_name_fire_2" 			"fire 2:"
"DOTA_Tooltip_ability_my_ability_name_fire_3" 			"fire 3:"
"DOTA_Tooltip_ability_my_ability_name_fire_4" 			"fire 4:"
 
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
31
хаахх, если парень намеренно не скинул имя абилки, но при этом скинул весь её код, то это весьма забавно ::)
 
Реклама: