AstonishingGuy
Активный
- 28 Июн 2018
- 119
- 2
- Проект
- s
"particles/Только теперь проверил. И показываются красные крестики, плюсики.
Спасибо. Тут такое дело я совершенно не шарю, но нужно срочно. Как сделать так, чтобы по айди доты выдавалось голосование на пик героя. То есть выдается голосование(по стим айди) "Вы хотите пикнуть OD ?", если игрок нажимает на да, то пропускается (ДЛЯ НЕГО) стадия пика и сразу выбирается OD, а если нажимает на нет, то делает все как обычно."particles/units/heroes/hero_zuus/zuus_static_field1.vpcf"
Пропустить пик для одного игрока нельзя. Но его можно обесценить, форсируя ему определенного героя в начале игры с помощью ReplaceHeroWithМожно как-то сделать так?
Если стим айди == ..., то дать голосование(тому у кого такой стим айди), если выбрано yes, то выбрать персонажа ..., а если нет то закончить.
Вот. А можешь по подробнее об этом?Пропустить пик для одного игрока нельзя. Но его можно обесценить, форсируя ему определенного героя в начале игры с помощью ReplaceHeroWith
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 сделал?Покчуму не работает?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 сделал?
ListenToGameEvent('npc_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnPlayerSpawned'), self)
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
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)
ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)Догадайся
Ну напиши уже пожалуйста, пол дня жду ответа.Догадайся
Давай разберемся с синтаксисом функции.ListenToGameEvent('player_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self)
?
Но ведь все равно не работает
Я ведь правильно думаю, что его надо в addon_game_mode вставлять?
Давай разберемся с синтаксисом функции.
Первый параметр - строковый дескриптор, который определяет отлавливаемое событие. Список всевозможных событий есть на вики, и то половина из них не работают. А теперь посмотри, есть ли в том списке то, что ты прописал.
Второй параметр - функция, которая будет вызываться, когда событие происходит. Ее совершенно не обязательно задавать с помощью Dinamic_Wrap, можно тупо Donaters.OnNPCSpawned
Третий параметр будет передан в эту функцию как нулевой аргумент, но в эвентах он почти никогда не используется, поэтому это нам не интересно, пусть там будет просто self.
ListenToGameEvent('player_spawned', Donaters.OnNPCSpawned, self)
Давай разберемся с синтаксисом функции.
Первый параметр - строковый дескриптор, который определяет отлавливаемое событие. Список всевозможных событий есть на вики, и то половина из них не работают. А теперь посмотри, есть ли в том списке то, что ты прописал.
Второй параметр - функция, которая будет вызываться, когда событие происходит. Ее совершенно не обязательно задавать с помощью Dinamic_Wrap, можно тупо Donaters.OnNPCSpawned
Третий параметр будет передан в эту функцию как нулевой аргумент, но в эвентах он почти никогда не используется, поэтому это нам не интересно, пусть там будет просто self.
ListenToGameEvent('npc_spawned', Donaters.OnNPCSpawned, self)
Я это добавил в addon_game_mode.lua, если в ту функцию прописать print(как мне сказали выше) то в консоли оно отображается, значит уже хорошо, но предмет все равно не выдался...Вообще npc_spawned вроде бы не вызывается при первом спавне героя. Используй другое событие, например dota_player_pick_hero. Обрати внимание, что у него другие поля для data и код придется немного поменять.ListenToGameEvent('npc_spawned', Donaters.OnNPCSpawned, self)
Я это добавил в addon_game_mode.lua, если в ту функцию прописать print(как мне сказали выше) то в консоли оно отображается, значит уже хорошо, но предмет все равно не выдался...