Мини-гайд: Спавн способностей с левелом 1 или как называемые, скрытые.

DDSuper

Друзья CG
31 Май 2019
405
57
Гайд по Українському.

Первое вам необходимо, открыть папку игры.
Идём по этому пути dota 2 beta/game/dota_addons/вашавласнагра/scripts/vscripts/addon_game_mode.lua

Открываем его.
Сначала будет так.

Код:
-- Generated from template

if CAddonTemplateGameMode == nil then
    CAddonTemplateGameMode = class({})
end

function Precache( context )
    --[[
        Precache things we know we'll use.  Possible file types include (but not limited to):
            PrecacheResource( "model", "*.vmdl", context )
            PrecacheResource( "soundfile", "*.vsndevts", context )
            PrecacheResource( "particle", "*.vpcf", context )
            PrecacheResource( "particle_folder", "particles/folder", context )
    ]]
end

-- Create the game mode when we activate
function Activate()
    GameRules.AddonTemplate = CAddonTemplateGameMode()
    GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
    print( "Template addon is loaded." )
    GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
        --print( "Template addon script is running." )
    elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
        return nil
    end
    return 1
end
...

GameMode — Это настройки вашей кастомки и изменение правил в, кастомки.

Внутри InitGameMode() Пишем
ListenToGameEvent( "npc_spawned", Dynamic_Wrap( Adventure, "OnNPCSpawned" ), self ) -- Слушатель по которому создаётся событие.

На последней строке пишем:
Код:
function CAddonTemplateGameMode:OnNPCSpawned( event )
end
Внутри:
Lua:
function CAddonTemplateGameMode:OnNPCSpawned( event )
    local spawnedUnit = EntIndexToHScript( event.entindex ) -- Получаем заспавненого героя
   
    if spawnedUnit:IsRealHero() and spawnedUnit:GetUnitName() == "npc_dota_hero_назва_героя" then -- Проверка имя юнита 
        spawnedUnit:FindAbilityByName("ваша_здібність"):SetLevel(1) -- Ищем вашу способность и ставим уровень 1.
    end
end

Спасибо что прочитали гайд на Украинском Русском.
 
Последнее редактирование:
  • Нравится
Реакции: Alex_Inc_, SniperX и ION

DDSuper

Друзья CG
31 Май 2019
405
57
Гайд по Українському.

Первое вам необходимо, открыть папку игры.
Идём по этому пути dota 2 beta/game/dota_addons/вашавласнагра/scripts/vscripts/addon_game_mode.lua

Открываем его.
Сначала будет так.

Код:
-- Generated from template

if CAddonTemplateGameMode == nil then
    CAddonTemplateGameMode = class({})
end

function Precache( context )
    --[[
        Precache things we know we'll use.  Possible file types include (but not limited to):
            PrecacheResource( "model", "*.vmdl", context )
            PrecacheResource( "soundfile", "*.vsndevts", context )
            PrecacheResource( "particle", "*.vpcf", context )
            PrecacheResource( "particle_folder", "particles/folder", context )
    ]]
end

-- Create the game mode when we activate
function Activate()
    GameRules.AddonTemplate = CAddonTemplateGameMode()
    GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
    print( "Template addon is loaded." )
    GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
        --print( "Template addon script is running." )
    elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
        return nil
    end
    return 1
end
...

GameMode — Это настройки вашей кастомки и изменение правил в, кастомки.

Внутри InitGameMode() Пишем
ListenToGameEvent( "npc_spawned", Dynamic_Wrap( Adventure, "OnNPCSpawned" ), self ) -- Слушатель по которому создаётся событие.

На последней строке пишем:
Код:
function CAddonTemplateGameMode:OnNPCSpawned( event )
end
Внутри:
Lua:
function CAddonTemplateGameMode:OnNPCSpawned( event )
    local spawnedUnit = EntIndexToHScript( event.entindex ) -- Получаем заспавненого героя
  
    if spawnedUnit:IsRealHero() and spawnedUnit:GetUnitName() == "npc_dota_hero_назва_героя" then -- Проверка имя юнита
        spawnedUnit:FindAbilityByName("ваша_здібність"):SetLevel(1) -- Ищем вашу способность и ставим уровень 1.
    end
end

Спасибо что прочитали гайд на Украинском Русском.
up
 
Реклама: