Замени все "npc" на "unit" или наоборот, а вообще тебе в консоли прямым текстом говорят в чем ошибка.Так, сделал как вы сказали. Сначала ставил полность с функцией. Ошибок не было, но и эффекта тоже. Потом нашел что function GameMode:OnNPCSpawned(keys) уже есть. Вставил красиво туда, получилось вот так.
И пошли вот такие ошибкиКод:function GameMode:OnNPCSpawned(keys) DebugPrint("[BAREBONES] NPC Spawned") DebugPrintTable(keys) local npc = EntIndexToHScript(keys.entindex) if unit:IsHero() then if unit:GetTeamNumber() == DOTA_TEAM_BADGUYS then GameRules:GetGameModeEntity():SetContextThink("ReplaceHeroThink", function() unit = PlayerResource:ReplaceHeroWith(unit:GetPlayerID(), "npc_dota_hero_undying", 0, 0) end, 0) end end end
Код:[ W VScript ]: Script Runtime Error: scripts\vscripts\events.lua:28: attempt to index global 'unit' (a nil value) [ W VScript ]: stack traceback: [ W VScript ]: scripts\vscripts\events.lua:28: in function 'OnNPCSpawned' [ W VScript ]: scripts\vscripts\internal\events.lua:47: in function <scripts\vscripts\internal\events.lua:34>
Спасибо большое! Помогло! Буду теперь внимательней)Замени все "npc" на "unit" или наоборот, а вообще тебе в консоли прямым текстом говорят в чем ошибка.
Замени "unit " на "npc" и будет тебе счастье !Так, сделал как вы сказали. Сначала ставил полность с функцией. Ошибок не было, но и эффекта тоже. Потом нашел что function GameMode:OnNPCSpawned(keys) уже есть. Вставил красиво туда, получилось вот так.
И пошли вот такие ошибкиКод:function GameMode:OnNPCSpawned(keys) DebugPrint("[BAREBONES] NPC Spawned") DebugPrintTable(keys) local npc = EntIndexToHScript(keys.entindex) if unit:IsHero() then if unit:GetTeamNumber() == DOTA_TEAM_BADGUYS then GameRules:GetGameModeEntity():SetContextThink("ReplaceHeroThink", function() unit = PlayerResource:ReplaceHeroWith(unit:GetPlayerID(), "npc_dota_hero_undying", 0, 0) end, 0) end end end
Код:[ W VScript ]: Script Runtime Error: scripts\vscripts\events.lua:28: attempt to index global 'unit' (a nil value) [ W VScript ]: stack traceback: [ W VScript ]: scripts\vscripts\events.lua:28: in function 'OnNPCSpawned' [ W VScript ]: scripts\vscripts\internal\events.lua:47: in function <scripts\vscripts\internal\events.lua:34>
Честно говоря верится с трудом, просто верни все как было.Хотя я ничего не менял.
Было бы что.Честно говоря верится с трудом, просто верни все как было.
Ошибка вылазиет не зависимо новый аддон или карта. Старый или новый. Странно.Может кто сталкивался с такой проблемой. У меня почему то мир перестал билдится. Хотя я ничего не менял.
Вот такая ошибка failed - exit code 1073741819
В гугле поискал, пишут что это это оперативы не хватает. Вот только у меня в запасе при билде еще 4г
Лол в 3д анимациях ты простоточки для перемещения костей выставляешь, фпсы меняются сами, в зависимости от ускорения анимацииСколько должен быть фпс анимации?, что-бы было приятно глазу в доте, стандарт анимация валвов вроде от 1000 кадров
Не могло с ней работать, она изначально не работала.Ошибка вылазиет не зависимо новый аддон или карта. Старый или новый. Странно.
UPD:
Проблему решил, нужно снять галочку Debug vis Geometry. Хотя до этого работало с ней . . .
function GameMode:OnGameInProgress()
DebugPrint("[BAREBONES] The game has officially begun")
Timers:CreateTimer({
endTime = 10,
callback = function()
local unit = CreateUnitByName('npc_xp_granter', Vector(258.066, 711.922, 273), true, nil, nil, DOTA_TEAM_BADGUYS);
-- любые операции с юнитом
return 60;
end
Ну хз, прост скачивал модели героев с анимацией валвов, так там до 30к кадров на все анимации былоЛол в 3д анимациях ты простоточки для перемещения костей выставляешь, фпсы меняются сами, в зависимости от ускорения анимации
Это длинна анимации.Ну хз, прост скачивал модели героев с анимацией валвов, так там до 30к кадров на все анимации было
function GameMode:setPlayerHealthLabel( player )
if PlayerResource:IsValidPlayerID(player:GetPlayerID()) then
if not PlayerResource:IsBroadcaster(player:GetPlayerID()) then
if PlayerResource:GetSteamAccountID(player:GetPlayerID()) == STEAM ID then
if PlayerResource:GetPlayer(player:GetPlayerID()):GetAssignedHero() ~= nil then
PlayerResource:GetPlayer(player:GetPlayerID()):GetAssignedHero():SetCustomHealthLabel("Сама надпись", 30, 144, 255)
end
end
end
end
end
function GameMode:OnPlayerPickHero(keys)
local player = EntIndexToHScript(keys.player)
local hero = player:GetAssignedHero()
local heroClass = keys.hero
local heroEntity = EntIndexToHScript(keys.heroindex)
GameMode:setPlayerHealthLabel(player)
end
Сделай поиск юнита в радиусе если это герой, а радиус максимальный, ну и задай команду двигаться к найденой целиНазрел очень странный вопрос. Могут ли юниты использовать мапхак* и сами находить игрока? Или же все таки делать траекторию придётся?