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

Статус
В этой теме нельзя размещать новые ответы.
А за что это отвечает то?
я не силён в LUA
Сложно объяснить, ибо сам новичок, но короче говоря, создает класс, после чего в нем можно сохранять переменные/таблицы, и вызывать в нем функции, если так можно сказать. Могу ошибаться
 
Сложно объяснить, ибо сам новичок, но короче говоря, создает класс, после чего в нем можно сохранять переменные/таблицы, и вызывать в нем функции, если так можно сказать. Могу ошибаться
Так я не понял что с этим кодом делать который ты мне прислал в эту таблицу вставить?
 
Lua:
function CAddonTemplateGameMode:OnEntityKilled( keys )
    local killed_unit = EntIndexToHScript( keys.entindex_killed )
    local killer = EntIndexToHScript( keys.entindex_attacker )

    limit = 50

    if killed_unit:IsRealHero() then
        killed_unit:GetTeam()
        local team_killer = killer:GetTeam()
      
        if self.TableMayble == nil then
        self.TableMayble = {}
        end

        if self.TableMayble[team_killer] == nil then
        self.TableMayble[team_killer] = 1
        else
            self.TableMayble[team_killer] = self.TableMayble[team_killer] + 1
        end

        if self.TableMayble[team_killer] == limit then
            GameRules:SetGameWinner( team_killer )
        end
    end
end
 
Короче, вот так выглядеть должен addon_game_mode.lua после создания и добавления этого кода

Lua:
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 )
    ListenToGameEvent('game_rules_state_change', Dynamic_Wrap(CAddonTemplateGameMode, 'OnGameRulesStateChange'), self)
    ListenToGameEvent('entity_killed', Dynamic_Wrap(CAddonTemplateGameMode, 'OnEntityKilled'), self)
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

function CAddonTemplateGameMode:OnGameRulesStateChange()
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_HERO_SELECTION then
    end
end

function CAddonTemplateGameMode:OnEntityKilled( keys )
    local killed_unit = EntIndexToHScript( keys.entindex_killed )
    local killer = EntIndexToHScript( keys.entindex_attacker )

    --[[if killed_unit:GetUnitName() == "npc_dota_neutral_kobold" then
        print(killer:GetTeam())
        print(PlayerResource:GetPlayerCount())
        for i = 0, PlayerResource:GetPlayerCount() - 1 do
            local gold = 322 -- кол-во голды
            local player = PlayerResource:GetSelectedHeroEntity(i)
            if player:GetTeam() == killer:GetTeam() then
                player:ModifyGold( 322, true, 0 )
            end
        end
    end]]

    limit = 50 --лимит, можно написать вне функции

    if killed_unit:IsRealHero() then --Проверяет есть настоящий ли герой, либо иначе считаться будет каждый юнит
        local team_killer = killer:GetTeam() --записывает команду убийцы

        if self.TableMayble == nil then -- если нет таблицы
            self.TableMayble = {} --то создает
        end

        if self.TableMayble[team_killer] == nil then --если в таблице нет переменной команды
            self.TableMayble[team_killer] = 1 -- то записывает переменную команды = 1
        else
            self.TableMayble[team_killer] = self.TableMayble[team_killer] + 1 --иначе(если есть переменная) записывает ее + 1
        end

        if self.TableMayble[team_killer] == limit then -- если переменная команды = лимиту
            GameRules:SetGameWinner( team_killer ) --то устанавливает победителя - команду которая набрала лимит
        end
    end
end
 
  • Нравится
Реакции: uBluewolfu и SniperX
Короче, вот так выглядеть должен addon_game_mode.lua после создания и добавления этого кода

Lua:
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 )
    ListenToGameEvent('game_rules_state_change', Dynamic_Wrap(CAddonTemplateGameMode, 'OnGameRulesStateChange'), self)
    ListenToGameEvent('entity_killed', Dynamic_Wrap(CAddonTemplateGameMode, 'OnEntityKilled'), self)
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

function CAddonTemplateGameMode:OnGameRulesStateChange()
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_HERO_SELECTION then
    end
end

function CAddonTemplateGameMode:OnEntityKilled( keys )
    local killed_unit = EntIndexToHScript( keys.entindex_killed )
    local killer = EntIndexToHScript( keys.entindex_attacker )

    --[[if killed_unit:GetUnitName() == "npc_dota_neutral_kobold" then
        print(killer:GetTeam())
        print(PlayerResource:GetPlayerCount())
        for i = 0, PlayerResource:GetPlayerCount() - 1 do
            local gold = 322 -- кол-во голды
            local player = PlayerResource:GetSelectedHeroEntity(i)
            if player:GetTeam() == killer:GetTeam() then
                player:ModifyGold( 322, true, 0 )
            end
        end
    end]]

    limit = 50 --лимит, можно написать вне функции

    if killed_unit:IsRealHero() then --Проверяет есть настоящий ли герой, либо иначе считаться будет каждый юнит
        local team_killer = killer:GetTeam() --записывает команду убийцы

        if self.TableMayble == nil then -- если нет таблицы
            self.TableMayble = {} --то создает
        end

        if self.TableMayble[team_killer] == nil then --если в таблице нет переменной команды
            self.TableMayble[team_killer] = 1 -- то записывает переменную команды = 1
        else
            self.TableMayble[team_killer] = self.TableMayble[team_killer] + 1 --иначе(если есть переменная) записывает ее + 1
        end

        if self.TableMayble[team_killer] == limit then -- если переменная команды = лимиту
            GameRules:SetGameWinner( team_killer ) --то устанавливает победителя - команду которая набрала лимит
        end
    end
end
Огромное спасибо без тебя бы я не смог создать недомод Pudge Wars [1 hook = 1 kill] Modifired а может и другое название но мне это название пока что нравится))
 
Огромное спасибо без тебя бы я не смог создать недомод Pudge Wars [1 hook = 1 kill] Modifired а может и другое название но мне это название пока что нравится))
Главное чтобы как обычно при изменение/создании .lua файл не читается npc_abilities_override такого чтобы не было надо надеяться
 
ни разу npc_abilities_override не использовал, тут ни чем не смогу помочь
и кстати в npc_abilities_override ты вписываешь обычные абилки из доты и их редактируешь а в npc_abilities_custom создаются datadriven способности я себе урок сделал давно когда мемы начинал делать просто заглядывал в чужие карты
 
Подскажите как сделать тру сайт у юнита? Просто дать гем в инвентарь?
Надо ему дать способность necronomicon_warrior_sight
C++:
    //=================================================================================================================
    // Ability: Necronomicon Warrior's Sight
    //=================================================================================================================
    "necronomicon_warrior_sight"
    {
        // General
        //-------------------------------------------------------------------------------------------------------------
        "ID"                    "5201"                                                        // unique ID number for this ability.  Do not change this once established or it will invalidate collected stats.
        "AbilityType"                    "DOTA_ABILITY_TYPE_BASIC"
        "AbilityBehavior"                "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        
        // Special
        //-------------------------------------------------------------------------------------------------------------
        "AbilitySpecial"
        {
            "01"
            {
                "var_type"                "FIELD_INTEGER"
                "radius"                "1000"
            }
        }
        "AbilityCastAnimation"        "ACT_DOTA_CAST_ABILITY_3"
    }
 
Как покрасить карту на которой уже имеются высоты и низины не изменяя их. Т.е. просто покрасить в другую текстуру. С+Lmouse не работает. А еще как сделать передвижение камеры на WASD, оно иногда работает, а иногда нет.
 
Как покрасить карту на которой уже имеются высоты и низины не изменяя их. Т.е. просто покрасить в другую текстуру. С+Lmouse не работает. А еще как сделать передвижение камеры на WASD, оно иногда работает, а иногда нет.
язык английский сделай, по поводу камеры
 
  • Нравится
Реакции: Svong1337
Как покрасить карту на которой уже имеются высоты и низины не изменяя их. Т.е. просто покрасить в другую текстуру. С+Lmouse не работает. А еще как сделать передвижение камеры на WASD, оно иногда работает, а иногда нет.
1530822551041.png а вот по поводу покраски
 
  • Нравится
Реакции: Svong1337
Статус
В этой теме нельзя размещать новые ответы.
Реклама: