Помогите с голосованием

AstonishingGuy

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

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
Это не просто пару команд , тут нужна своя панорама ))
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
Хорошо, как сделать после пиков? Главное, чтобы именно 1 человек с проверенным стим айди мог выбрать этого персонажа, но другие не могли.
Ты хочешь героев для донатеров сделать ?
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
Я при спавне выдаю шмотку , которая дает возможность поменять героя
 

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
Не выдается предмет(пишу стим ид свой).
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
проверь выполняется ли вообще эта функция
Donaters:OnNPCSpawned
print("okk")
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
проверь выполняется ли вообще эта функция
Donaters:OnNPCSpawned
print("okk")

[VScript] Script Runtime Error: scripts\vscripts\donaters.lua:7: GetPlayerID called with 0 arguments - expected 1
stack traceback:
[C]: in function 'GetPlayerID'
scripts\vscripts\donaters.lua:7: in function <scripts\vscripts\donaters.lua:5>


Lua:
function Donaters:EnitGameMode()
    GameRules:SendCustomMessage("donaters work",0,0)
end

function Donaters:OnPlayerSpawn(data)
    local npc = EntIndexToHScript(data.userid)
    
    if 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
        }
        
        if steamID == 184963641 then
            print("123")
            npc:AddItemByName("item_roshan_testitem")
        end
    end
end
Помоги пожалуйста. Потому что меня гоняют от одного дерева к другому, а толку то.
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
local npc = EntIndexToHScript(data.userid)
поменяй на
local npc = EntIndexToHScript(data.entindex)
 

AstonishingGuy

Активный
28 Июн 2018
119
2
Проект
s
local npc = EntIndexToHScript(data.userid)
поменяй на
local npc = EntIndexToHScript(data.entindex)
Все равно ошибка.

[VScript] Script Runtime Error: scripts\vscripts\donaters.lua:10: GetPlayerID called with 0 arguments - expected 1
stack traceback:
[C]: in function 'GetPlayerID'
scripts\vscripts\donaters.lua:10: in function <scripts\vscripts\donaters.lua:5>
Ну смотри, я из твоего кода заменил function Donaters:OnNPCSpawned(data) на function Donaters:OnPlayerSpawn(data)
if npc:IsRealHero() and npc.bFirstSpawned == nil then на if npc.bFirstSpawned == nil then и
в addon_game_mode добавил ListenToGameEvent('player_spawn', Donaters.OnPlayerSpawn, self). Но все равно не работает. Я не понимаю почему у тебя работало, а у меня нет. Именно не выдается предмет.
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
вот ты поменял много а что в итоге получил = ничего
сделай как у меня проверь работает ли вообще
потом уже меняй по шагам
 
Реклама: