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

Статус
В этой теме нельзя размещать новые ответы.
"particles/units/heroes/hero_zuus/zuus_static_field1.vpcf"
Спасибо. Тут такое дело я совершенно не шарю, но нужно срочно. Как сделать так, чтобы по айди доты выдавалось голосование на пик героя. То есть выдается голосование(по стим айди) "Вы хотите пикнуть OD ?", если игрок нажимает на да, то пропускается (ДЛЯ НЕГО) стадия пика и сразу выбирается OD, а если нажимает на нет, то делает все как обычно.
 
Можно как-то сделать так?
Если стим айди == ..., то дать голосование(тому у кого такой стим айди), если выбрано yes, то выбрать персонажа ..., а если нет то закончить.
 
Можно как-то сделать так?
Если стим айди == ..., то дать голосование(тому у кого такой стим айди), если выбрано yes, то выбрать персонажа ..., а если нет то закончить.
Пропустить пик для одного игрока нельзя. Но его можно обесценить, форсируя ему определенного героя в начале игры с помощью ReplaceHeroWith
 
Как сделать размер карты больше 128х128 ? Просто реально мало места , а контента на карте хотелось бы сделать больше (сейчас хватает места на 1-2 доп локи)
 
Lua:
function Donaters:EnitGameMode()
    GameRules:SendCustomMessage("donaters work",0,0)
    
end
    
function Donaters:OnNPCSpawned(data)
    local npc = EntIndexToHScript(data.entindex)

    if npc:IsRealHero() and npc.bFirstSpawned == nil then
               npc.bFirstSpawned = true
            local playerID = npc:GetPlayerID()
            local steamID = PlayerResource:GetSteamAccountID(playerID)
            local current_hero = npc:GetUnitName()
            print( "Steam Community ID: " .. tostring( steamID ) )
            print( "Current Hero: " .. tostring( current_hero ) )
            
            local premium =
            {
                
                184963641
            }
            
            for _,premium_modifier in pairs(premium) do
                if steamID == premium_modifier then
                    npc:AddNewModifier( npc, nil, "modifier_admin", {duration = -1})
                end
            end
            

            if steamID == 184963641 then
                npc:AddItemByName("item_roshan_testitem")
            end
            

    end
end
Покчуму не работает?
 
Lua:
function Donaters:EnitGameMode()
    GameRules:SendCustomMessage("donaters work",0,0)
   
end
   
function Donaters:OnNPCSpawned(data)
    local npc = EntIndexToHScript(data.entindex)

    if npc:IsRealHero() and npc.bFirstSpawned == nil then
               npc.bFirstSpawned = true
            local playerID = npc:GetPlayerID()
            local steamID = PlayerResource:GetSteamAccountID(playerID)
            local current_hero = npc:GetUnitName()
            print( "Steam Community ID: " .. tostring( steamID ) )
            print( "Current Hero: " .. tostring( current_hero ) )
           
            local premium =
            {
               
                184963641
            }
           
            for _,premium_modifier in pairs(premium) do
                if steamID == premium_modifier then
                    npc:AddNewModifier( npc, nil, "modifier_admin", {duration = -1})
                end
            end
           

            if steamID == 184963641 then
                npc:AddItemByName("item_roshan_testitem")
            end
           

    end
end
Покчуму не работает?
ListenToGameEvent сделал?
 
ListenToGameEvent сделал?
Это
Lua:
ListenToGameEvent('npc_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
Это
Lua:
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnPlayerSpawned'), self)
Это
Lua:
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
Или это
Lua:
ListenToGameEvent( "dota_player_pick_hero", Dynamic_Wrap( CAddonGameMode, "OnPlayerPicked" ), self )
???
 
Это
Lua:
ListenToGameEvent('npc_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
Это
Lua:
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnPlayerSpawned'), self)
Это
Lua:
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
Или это
Lua:
ListenToGameEvent( "dota_player_pick_hero", Dynamic_Wrap( CAddonGameMode, "OnPlayerPicked" ), self )
???
function Donaters:OnNPCSpawned(data)
Догадайся:eek:
 
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
?
Но ведь все равно не работает
Я ведь правильно думаю, что его надо в addon_game_mode вставлять?
Давай разберемся с синтаксисом функции.

Первый параметр - строковый дескриптор, который определяет отлавливаемое событие. Список всевозможных событий есть на вики, и то половина из них не работают. А теперь посмотри, есть ли в том списке то, что ты прописал.

Второй параметр - функция, которая будет вызываться, когда событие происходит. Ее совершенно не обязательно задавать с помощью Dinamic_Wrap, можно тупо Donaters.OnNPCSpawned

Третий параметр будет передан в эту функцию как нулевой аргумент, но в эвентах он почти никогда не используется, поэтому это нам не интересно, пусть там будет просто self.
 
Давай разберемся с синтаксисом функции.

Первый параметр - строковый дескриптор, который определяет отлавливаемое событие. Список всевозможных событий есть на вики, и то половина из них не работают. А теперь посмотри, есть ли в том списке то, что ты прописал.

Второй параметр - функция, которая будет вызываться, когда событие происходит. Ее совершенно не обязательно задавать с помощью Dinamic_Wrap, можно тупо Donaters.OnNPCSpawned

Третий параметр будет передан в эту функцию как нулевой аргумент, но в эвентах он почти никогда не используется, поэтому это нам не интересно, пусть там будет просто self.
ListenToGameEvent('player_spawned', Donaters.OnNPCSpawned, self)
Ну бле. Я и туда "donaters.lua" и туда "addon_game_mode.lua" засунул и по отдельности, не робит.
Ну player_spawned там есть. Вот только мне интересно, нужно написать player_spawned или npc_spawned?
 
Давай разберемся с синтаксисом функции.

Первый параметр - строковый дескриптор, который определяет отлавливаемое событие. Список всевозможных событий есть на вики, и то половина из них не работают. А теперь посмотри, есть ли в том списке то, что ты прописал.

Второй параметр - функция, которая будет вызываться, когда событие происходит. Ее совершенно не обязательно задавать с помощью Dinamic_Wrap, можно тупо Donaters.OnNPCSpawned

Третий параметр будет передан в эту функцию как нулевой аргумент, но в эвентах он почти никогда не используется, поэтому это нам не интересно, пусть там будет просто self.
ListenToGameEvent('npc_spawned', Donaters.OnNPCSpawned, self) Я это добавил в addon_game_mode.lua, если в ту функцию прописать print(как мне сказали выше) то в консоли оно отображается, значит уже хорошо, но предмет все равно не выдался...
 
ListenToGameEvent('npc_spawned', Donaters.OnNPCSpawned, self) Я это добавил в addon_game_mode.lua, если в ту функцию прописать print(как мне сказали выше) то в консоли оно отображается, значит уже хорошо, но предмет все равно не выдался...
Вообще npc_spawned вроде бы не вызывается при первом спавне героя. Используй другое событие, например dota_player_pick_hero. Обрати внимание, что у него другие поля для data и код придется немного поменять.

А почему именно предмет не выдается, ты можешь узнать с помощью все тех же принтов.
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: