мб потому что я даю всем героя снайпера?В смысле не пашет
мб потому что я даю всем героя снайпера?В смысле не пашет
Это не причем, распринти стимайдимб потому что я даю всем героя снайпера?
local DubgAdmin =
{
[145852783] = true
}
if DubgAdmin[steam_id] then
hero:AddItemByName("item_wk_essence")
end
Скинь полный код евента с этой версией
function GameMode:OnNPCSpawned(keys)
print("[BAREBONES] NPC Spawned")
-- DeepPrintTable(keys)
local npc = EntIndexToHScript(keys.entindex)
local name = npc:GetUnitName()
print("okk")
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 DubgAdmin =
{
[145852783] = true
}
if DubgAdmin[steam_id] then
hero:AddItemByName("item_wk_essence")
end
for _,ID in pairs(DubgAdmin) do
if steamID == ID then
npc:AddNewModifier( npc, nil, "modifier_special_effect_donator", {duration = -1})
end
end
addItemBySteamID(DubgAdmin,"item_WK_essence",steamID,npc)
--addItemBySteamID(DubgAdmin,"item_skull_of_midas",steamID,npc)
local premium1 =
{
}
--addItemBySteamID(premium1,"item_roshan_essence",steamID,npc)
--addItemBySteamID(premium1,"item_skull_of_midas",steamID,npc)
local midasSkull1 =
{
}
--addItemBySteamID(midasSkull1,"item_skull_of_midas",steamID,npc)
local HeroEssenceDrowRanger = -- Drow ranger
{
}
--addItemBySteamID(HeroEssenceDrowRanger,"item_drow_essence",steamID,npc)
local HeroEssencePhantom = -- Phantom assassin
{
}
--addItemBySteamID(HeroEssencePhantom,"item_phantom_essence",steamID,npc)
local HeroEssenceAlchemist = -- Alchemist
{
}
--addItemBySteamID(HeroEssenceAlchemist,"item_alchemist_essence",steamID,npc)
local HeroEssenceSniper = -- Sniper
{
}
--addItemBySteamID(HeroEssenceSniper,"item_sniper_essence",steamID,npc)
--addItemBySteamID(PremiumPack1,"item_roshan_essence")
--addItemBySteamID(PremiumPack1,"item_skull_of_midas")
--if steamID == 34762434700 then
-- local Pet = CreateUnitByName("unit_premium_pet5", npc:GetAbsOrigin() + RandomVector(RandomFloat(0,100)), true, npc, nil, npc:GetTeamNumber())
-- Pet:SetOwner(npc)
--npc:AddItemByName("item_roshan_testitem")
--npc:AddItemByName("item_courier")
--end
end
end
Я же скинул как тебе нужно делать проверку, зачем ты что то придумываешь? Что этоКод:function GameMode:OnNPCSpawned(keys) print("[BAREBONES] NPC Spawned") -- DeepPrintTable(keys) local npc = EntIndexToHScript(keys.entindex) local name = npc:GetUnitName() print("okk") 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 DubgAdmin = { [145852783] = true } if DubgAdmin[steam_id] then hero:AddItemByName("item_wk_essence") end for _,ID in pairs(DubgAdmin) do if steamID == ID then npc:AddNewModifier( npc, nil, "modifier_special_effect_donator", {duration = -1}) end end addItemBySteamID(DubgAdmin,"item_WK_essence",steamID,npc) --addItemBySteamID(DubgAdmin,"item_skull_of_midas",steamID,npc) local premium1 = { } --addItemBySteamID(premium1,"item_roshan_essence",steamID,npc) --addItemBySteamID(premium1,"item_skull_of_midas",steamID,npc) local midasSkull1 = { } --addItemBySteamID(midasSkull1,"item_skull_of_midas",steamID,npc) local HeroEssenceDrowRanger = -- Drow ranger { } --addItemBySteamID(HeroEssenceDrowRanger,"item_drow_essence",steamID,npc) local HeroEssencePhantom = -- Phantom assassin { } --addItemBySteamID(HeroEssencePhantom,"item_phantom_essence",steamID,npc) local HeroEssenceAlchemist = -- Alchemist { } --addItemBySteamID(HeroEssenceAlchemist,"item_alchemist_essence",steamID,npc) local HeroEssenceSniper = -- Sniper { } --addItemBySteamID(HeroEssenceSniper,"item_sniper_essence",steamID,npc) --addItemBySteamID(PremiumPack1,"item_roshan_essence") --addItemBySteamID(PremiumPack1,"item_skull_of_midas") --if steamID == 34762434700 then -- local Pet = CreateUnitByName("unit_premium_pet5", npc:GetAbsOrigin() + RandomVector(RandomFloat(0,100)), true, npc, nil, npc:GetTeamNumber()) -- Pet:SetOwner(npc) --npc:AddItemByName("item_roshan_testitem") --npc:AddItemByName("item_courier") --end end end
Это непонимание взятого откуда-то кода, переработанного под себя. Там и твоя проверка тоже есть)Что это
так ноль эффектаЯ же скинул как тебе нужно делать проверку, зачем ты что то придумываешь? Что это
for _,ID in pairs(DubgAdmin) do
if steamID == ID then
function GameMode:OnNPCSpawned(keys)
print("[BAREBONES] NPC Spawned")
-- DeepPrintTable(keys)
local npc = EntIndexToHScript(keys.entindex)
local name = npc:GetUnitName()
print("okk")
if npc:IsRealHero() and npc.bFirstSpawned == nil then
npc.bFirstSpawned = true
local playerID = npc:GetPlayerID()
local steam_id = PlayerResource:GetSteamAccountID(playerID)
local hero = npc:GetUnitName()
print( "Steam Community ID: " .. tostring( steam_id ) )
print( "Current Hero: " .. tostring( hero ) )
local DubgAdmin =
{
[145852783] = true
}
if DubgAdmin[steam_id] then
hero:AddItemByName("item_wk_essence")
print( "Steam Community ID: " .. tostring( steam_id ) )
end
-- addItemBySteamID(DubgAdmin,"item_WK_essence",steamID,npc)
--addItemBySteamID(DubgAdmin,"item_skull_of_midas",steamID,npc)
end
end
function GameMode:OnNPCSpawned(keys)
print("[BAREBONES] NPC Spawned")
-- DeepPrintTable(keys)
local npc = EntIndexToHScript(keys.entindex)
local name = npc:GetUnitName()
print("okk")
local playerID = npc:GetPlayerID()
local steam_id = PlayerResource:GetSteamAccountID(playerID)
local hero = npc:GetUnitName()
print( "Steam Community ID: " .. tostring( steam_id ) )
print( "Current Hero: " .. tostring( hero ) )
local DubgAdmin =
{
[145852783] = true
}
if DubgAdmin[steam_id] then
hero:AddItemByName("item_wk_essence")
print( "Steam Community ID: " .. tostring( steam_id ) )
end
-- addItemBySteamID(DubgAdmin,"item_WK_essence",steamID,npc)
--addItemBySteamID(DubgAdmin,"item_skull_of_midas",steamID,npc)
end
[BAREBONES] NPC Spawned
okk
Steam Community ID: 145852783
Current Hero: npc_dota_hero_sniper
scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value)
stack traceback:
scripts\vscripts\events.lua:43: in function 'OnNPCSpawned'
scripts\vscripts\internal\events.lua:47: in function <scripts\vscripts\internal\events.lua:34>
Script Runtime Error: scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value)
stack traceback:
scripts\vscripts\events.lua:43: in function 'OnNPCSpawned'
scripts\vscripts\internal\events.lua:47: in function <scripts\vscripts\internal\events.lua:34>
[BAREBONES] NPC Spawned
okk
Steam Community ID: 145852783
Current Hero: npc_dota_hero_sniper
scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value)
stack traceback:
scripts\vscripts\events.lua:43: in function <scripts\vscripts\events.lua:24>
Script Runtime Error: scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value)
stack traceback:
scripts\vscripts\events.lua:43: in function <scripts\vscripts\events.lua:24>
145852783
так ноль эффекта
а так выдает ошибкуКод:function GameMode:OnNPCSpawned(keys) print("[BAREBONES] NPC Spawned") -- DeepPrintTable(keys) local npc = EntIndexToHScript(keys.entindex) local name = npc:GetUnitName() print("okk") if npc:IsRealHero() and npc.bFirstSpawned == nil then npc.bFirstSpawned = true local playerID = npc:GetPlayerID() local steam_id = PlayerResource:GetSteamAccountID(playerID) local hero = npc:GetUnitName() print( "Steam Community ID: " .. tostring( steam_id ) ) print( "Current Hero: " .. tostring( hero ) ) local DubgAdmin = { [145852783] = true } if DubgAdmin[steam_id] then hero:AddItemByName("item_wk_essence") print( "Steam Community ID: " .. tostring( steam_id ) ) end -- addItemBySteamID(DubgAdmin,"item_WK_essence",steamID,npc) --addItemBySteamID(DubgAdmin,"item_skull_of_midas",steamID,npc) end end
Код:function GameMode:OnNPCSpawned(keys) print("[BAREBONES] NPC Spawned") -- DeepPrintTable(keys) local npc = EntIndexToHScript(keys.entindex) local name = npc:GetUnitName() print("okk") local playerID = npc:GetPlayerID() local steam_id = PlayerResource:GetSteamAccountID(playerID) local hero = npc:GetUnitName() print( "Steam Community ID: " .. tostring( steam_id ) ) print( "Current Hero: " .. tostring( hero ) ) local DubgAdmin = { [145852783] = true } if DubgAdmin[steam_id] then hero:AddItemByName("item_wk_essence") print( "Steam Community ID: " .. tostring( steam_id ) ) end -- addItemBySteamID(DubgAdmin,"item_WK_essence",steamID,npc) --addItemBySteamID(DubgAdmin,"item_skull_of_midas",steamID,npc) end
Код:[BAREBONES] NPC Spawned okk Steam Community ID: 145852783 Current Hero: npc_dota_hero_sniper scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value) stack traceback: scripts\vscripts\events.lua:43: in function 'OnNPCSpawned' scripts\vscripts\internal\events.lua:47: in function <scripts\vscripts\internal\events.lua:34> Script Runtime Error: scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value) stack traceback: scripts\vscripts\events.lua:43: in function 'OnNPCSpawned' scripts\vscripts\internal\events.lua:47: in function <scripts\vscripts\internal\events.lua:34> [BAREBONES] NPC Spawned okk Steam Community ID: 145852783 Current Hero: npc_dota_hero_sniper scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value) stack traceback: scripts\vscripts\events.lua:43: in function <scripts\vscripts\events.lua:24> Script Runtime Error: scripts\vscripts\events.lua:43: attempt to call method 'AddItemByName' (a nil value) stack traceback: scripts\vscripts\events.lua:43: in function <scripts\vscripts\events.lua:24> 145852783
local npc = EntIndexToHScript(keys.entindex)
local hero = npc:GetUnitName()
hero:AddItemByName("item_wk_essence")
npc:AddItemByName("item_wk_essence")
если я даю предмет npc, то после его использования ( он меняет героя) предмет снова появляется в инвентареКод:local npc = EntIndexToHScript(keys.entindex) local hero = npc:GetUnitName() hero:AddItemByName("item_wk_essence")
npc - ваш герой, hero - его имя, hero просто строка, она не указывает на героя, вы пытаетесь вызвать функцию которой нет,в то время как npc как раз указывает на вашего героя, нужная строка будет
Код:npc:AddItemByName("item_wk_essence")
*p.s. конечно должно работать, но на lua я пока не кодил, так что мб я в чем-то и ошибся*
так правильно, когда ты меняешь героя, спавнится новый герой и отрабатывает функция при спавне, а в ней ты выдаешь итем по steamid.если я даю предмет npc, то после его использования ( он меняет героя) предмет снова появляется в инвентаре
...
if (DubgAdmin[steam_id] && name = /*тут имя твоего дефолтного героя */) then
hero:AddItemByName("item_wk_essence")
print( "Steam Community ID: " .. tostring( steam_id ) )
end
...
Просто прикол в том, что ты говоришь, что выдача не работает, хотя сам же её сломал)если я даю предмет npc, то после его использования ( он меняет героя) предмет снова появляется в инвентаре
пока времени не было теститьну так что, проблема решена?