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

Статус
В этой теме нельзя размещать новые ответы.

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
"particles/units/heroes/hero_zuus/zuus_static_field1.vpcf"
Спасибо. Тут такое дело я совершенно не шарю, но нужно срочно. Как сделать так, чтобы по айди доты выдавалось голосование на пик героя. То есть выдается голосование(по стим айди) "Вы хотите пикнуть OD ?", если игрок нажимает на да, то пропускается (ДЛЯ НЕГО) стадия пика и сразу выбирается OD, а если нажимает на нет, то делает все как обычно.
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Можно как-то сделать так?
Если стим айди == ..., то дать голосование(тому у кого такой стим айди), если выбрано yes, то выбрать персонажа ..., а если нет то закончить.
 
20 Дек 2016
892
170
Можно как-то сделать так?
Если стим айди == ..., то дать голосование(тому у кого такой стим айди), если выбрано yes, то выбрать персонажа ..., а если нет то закончить.
Пропустить пик для одного игрока нельзя. Но его можно обесценить, форсируя ему определенного героя в начале игры с помощью ReplaceHeroWith
 

Thunder Lane

Активный
30 Сен 2018
87
16
Проект
Thunder's COT RPG
Как сделать размер карты больше 128х128 ? Просто реально мало места , а контента на карте хотелось бы сделать больше (сейчас хватает места на 1-2 доп локи)
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
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
Покчуму не работает?
 
20 Дек 2016
892
170
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 сделал?
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
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 )
???
 

shesmu

Продвинутый
22 Фев 2018
158
22
Это
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:
 
20 Дек 2016
892
170
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
?
Но ведь все равно не работает
Я ведь правильно думаю, что его надо в addon_game_mode вставлять?
Давай разберемся с синтаксисом функции.

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

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

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

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Давай разберемся с синтаксисом функции.

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

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

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

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
Давай разберемся с синтаксисом функции.

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

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

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

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