CustomGames.ru - Dota 2 пользовательские игры

Слушатель для маны и скила

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн den4iccc

  • 280
  • Мощь: 4
Кто нибудь сталкивался с таким вопросом как сделать автоматический запуск скила если заканчивается мана или хп без разницы

Оффлайн Илья

  • Супермодератор
  • 1906
  • Мощь: 16
Re: Слушатель для маны и скила
« Ответ #1 : 03-05-2016, 22:45:18 »
Ну ставишь таймер, что проверяет количество хп или маны и по ее отсутствию делаешь действие.

Онлайн den4iccc

  • 280
  • Мощь: 4
Re: Слушатель для маны и скила
« Ответ #2 : 04-05-2016, 13:39:45 »
Код
Timers:CreateTimer(10,function()
function Pos(keys)
local caster = keys.caster
if keys.caster:GetHealth ()< 100 then
 keys.ability:Po(keys)
 else
return nil
end
end
return nil
end)
  Timers:CreateTimer(30, -- Start this timer 30 game-time seconds later
    function()
      DebugPrint("This function is called 30 seconds after the game begins, and every 30 seconds thereafter")
      return 30.0 -- Rerun this timer every 30 game-time seconds
    end)
end
чё не так ? у меня не работает в  keys.ability: (прописывать скил или скил скрипта?)

1. таймер
2. проверка на кол-во хп
3. если хп меньше 100 то происходит запуск скила
« Последнее редактирование: 04-05-2016, 13:50:28 от den4iccc »

Оффлайн tasman208

  • 128
  • Мощь: 0
Re: Слушатель для маны и скила
« Ответ #3 : 04-05-2016, 13:48:01 »
Вот тебе мой пример
Код
function Spawn( entityKeyValues )
ability = thisEntity:FindAbilityByName("dragon_knight_elder_dragon_form")
thisEntity:SetContextThink( "dkthink", dkthink , 1)
end
function dkthink()
local health = thisEntity:GetHealth() / thisEntity:GetMaxHealth() 
if health <= 0.50 then
if ability:IsFullyCastable() then
thisEntity:CastAbilityNoTarget(ability, -1)
end
end
return 1
end
« Последнее редактирование: 04-05-2016, 13:50:44 от tasman208 »
Crusade Commanders

Онлайн den4iccc

  • 280
  • Мощь: 4
Re: Слушатель для маны и скила
« Ответ #4 : 04-05-2016, 14:03:58 »
в чём касяк ?: >:( абилка -
Код
	"ability_run"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass"                     "ability_datadriven"
"AbilityBehavior"               "DOTA_ABILITY_BEHAVIOR_TOGGLE"
"AbilityTextureName"            "bounty_hunter_wind_walk"

        // Casting
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCastPoint"              "0.01"

        // Time   
        //-------------------------------------------------------------------------------------------------------------
        "AbilityCooldown"               "0.0"

        // Cost
        //-------------------------------------------------------------------------------------------------------------
        "AbilityManaCost"               "0"

        "OnToggleOn"
        {     
            "ApplyModifier"
            {
"ModifierName" "running"
                "Target"       "CASTER"
            }
        }   
"OnToggleOff"
        {     
            "RemoveModifier"
            {
"ModifierName" "running"
                "Target"       "CASTER"
            }
        }

        "Modifiers"
        {
"running"
{
"Properties"
{
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" "%mod_run"
"MODIFIER_PROPERTY_MANA_REGEN_CONSTANT" "%energy_regen"
}
"OnCreated"
{
"AttachEffect"
{
"Target" "CASTER"
"EffectName"            ""
"EffectAttachType" "follow_origin"
}
}
            }
        }


"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"mod_run" "60"
}
"02"
{
"var_type" "FIELD_INTEGER"
"energy_regen" "-3.5"
}
}
}
и скрипт
Код
function Spawn( entityKeyValues )
ability = thisEntity:FindAbilityByName("ability_run")
thisEntity:SetContextThink( "dkthink", dkthink , 1)
end
function dkthink()
local health = thisEntity:GetHealth() / thisEntity:GetMaxHealth() 
if health <= 100 then
if ability:IsFullyCastable() then
thisEntity:CastAbilityToggle(ability, -1)
end
end
return 1
end

Оффлайн tasman208

  • 128
  • Мощь: 0
Re: Слушатель для маны и скила
« Ответ #5 : 04-05-2016, 14:05:46 »
У юнита, которому ты хочешь это пришить напиши
Код
"vscripts"              "твое_название.lua"
И это должен быть отдельный файл в папке scripts
Crusade Commanders

Онлайн den4iccc

  • 280
  • Мощь: 4
Re: Слушатель для маны и скила
« Ответ #6 : 04-05-2016, 14:11:25 »
У юнита, которому ты хочешь это пришить напиши
Код
"vscripts"              "твое_название.lua"
И это должен быть отдельный файл в папке scripts
  спасибо :-* ++++rep

Онлайн den4iccc

  • 280
  • Мощь: 4
Re: Слушатель для маны и скила
« Ответ #7 : 04-05-2016, 14:20:45 »
а на ману это так да ?
Код
function Spawn( entityKeyValues )
ability = thisEntity:FindAbilityByName("ability_run")
thisEntity:SetContextThink( "dkthink", dkthink , 1)
end
function dkthink()
local mana = thisEntity:GetMana() / thisEntity:GetMaxMana() 
if mana <= 90 then
if ability:IsFullyCastable() then
thisEntity:CastAbilityToggle(ability, -1)
end
end
return 1
end

Оффлайн tasman208

  • 128
  • Мощь: 0
Re: Слушатель для маны и скила
« Ответ #8 : 04-05-2016, 14:37:55 »
Да, только в
Код
if mana <= 90 then
Нужно число от >0 до 1, если 0.5 это половина если 0.1 то это почти 0
Crusade Commanders

Онлайн den4iccc

  • 280
  • Мощь: 4
Re: Слушатель для маны и скила
« Ответ #9 : 04-05-2016, 14:42:25 »
спасибо, буду знать