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

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

I_Explorer

Друзья CG
30 Июл 2016
318
16
Проект
Жизнь в тюрьме
Так, сделал как вы сказали. Сначала ставил полность с функцией. Ошибок не было, но и эффекта тоже. Потом нашел что 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" или наоборот, а вообще тебе в консоли прямым текстом говорят в чем ошибка.
 
  • Нравится
Реакции: IntelTwix

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
Так, сделал как вы сказали. Сначала ставил полность с функцией. Ошибок не было, но и эффекта тоже. Потом нашел что 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>
Замени "unit " на "npc" и будет тебе счастье !
 
  • Нравится
Реакции: IntelTwix

EYEOFLIE

Активный
28 Янв 2018
137
4
Сколько должен быть фпс анимации?, что-бы было приятно глазу в доте, стандарт анимация валвов вроде от 1000 кадров
 

IntelTwix

Пользователь
25 Фев 2018
50
1
Проект
Humans vs Zombie
Может кто сталкивался с такой проблемой. У меня почему то мир перестал билдится. Хотя я ничего не менял.

Вот такая ошибка failed - exit code 1073741819

В гугле поискал, пишут что это это оперативы не хватает. Вот только у меня в запасе при билде еще 4г
 

IntelTwix

Пользователь
25 Фев 2018
50
1
Проект
Humans vs Zombie
Может кто сталкивался с такой проблемой. У меня почему то мир перестал билдится. Хотя я ничего не менял.

Вот такая ошибка failed - exit code 1073741819

В гугле поискал, пишут что это это оперативы не хватает. Вот только у меня в запасе при билде еще 4г
Ошибка вылазиет не зависимо новый аддон или карта. Старый или новый. Странно.
UPD:
Проблему решил, нужно снять галочку Debug vis Geometry. Хотя до этого работало с ней . . .
1519810260567.png
 
  • Нравится
Реакции: vulkantsk

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
Сколько должен быть фпс анимации?, что-бы было приятно глазу в доте, стандарт анимация валвов вроде от 1000 кадров
Лол в 3д анимациях ты простоточки для перемещения костей выставляешь, фпсы меняются сами, в зависимости от ускорения анимации
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,335
105
Ошибка вылазиет не зависимо новый аддон или карта. Старый или новый. Странно.
UPD:
Проблему решил, нужно снять галочку Debug vis Geometry. Хотя до этого работало с ней . . .
Не могло с ней работать, она изначально не работала.
 

IntelTwix

Пользователь
25 Фев 2018
50
1
Проект
Humans vs Zombie
Подскажите как лучше реализовать. На стороне Badguys должны появляться юниты. Подконтрольные. Заспавнить получилось а вот подконтрольными сделать нет.

Код:
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
 

EYEOFLIE

Активный
28 Янв 2018
137
4
Лол в 3д анимациях ты простоточки для перемещения костей выставляешь, фпсы меняются сами, в зависимости от ускорения анимации
Ну хз, прост скачивал модели героев с анимацией валвов, так там до 30к кадров на все анимации было
 

IntelTwix

Пользователь
25 Фев 2018
50
1
Проект
Humans vs Zombie
Назрел очень странный вопрос. Могут ли юниты использовать мапхак* и сами находить игрока? Или же все таки делать траекторию придётся?
 

GooDDarK

Активный
27 Окт 2017
100
2
steamcommunity.com
Проект
Naruto Wars Reborn
Сделал скрипт который должен делать надпись над полоской хп игрока
Lua:
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


Вот так вызываю его в скрипте events
Lua:
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

Но изначально он почему-то не работает, а начинает работать если призвать фулл тиму союзных ботов командой -createhero [название героя] и потом призвать еще одного, шестого...

Кто-нибудь знает почему так? :confused:

P.S. Сначала создал тему в "Скриптинг", но туда походу мало кто заходит...
 
Последнее редактирование:

EYEOFLIE

Активный
28 Янв 2018
137
4
Назрел очень странный вопрос. Могут ли юниты использовать мапхак* и сами находить игрока? Или же все таки делать траекторию придётся?
Сделай поиск юнита в радиусе если это герой, а радиус максимальный, ну и задай команду двигаться к найденой цели
 
Статус
В этой теме нельзя размещать новые ответы.
Реклама: