[Гайд] Создаем карту с раундами и волнами мобов

xDes

Активный
80
8
DOTAUnits, (*example_unit_2*), (*Creature*),
говорит же об ошибке внутри npc_units_custom.txt
 

LAPKI

Пользователь
56
8
KeyValues Error: RecursiveLoadFromBuffer: got EOF instead of keyname in file scripts/npc/npc_units_custom.txt
DOTAUnits, (*example_unit_2*), (*Creature*),

Такую ошибку выдает хаммер. Мб с этим связано. Полный тхт файл в конце не прикреплен, кстати, как это обещано в гайде. Но я и со стандартным гноллом пробовал, который автоматом идет при создании, ничерта не спавнится.

Да, сделал со стандартным гнолом, 0 результата.

Lua:
function GameMode:OnGameInProgress()
  print("[BAREBONES] The game has officially begun")

  Timers:CreateTimer(30, function() -- Start this timer 30 game-time seconds later
    --print("This function is called 30 seconds after the game begins, and every 30 seconds thereafter")
    return 30.0 -- Rerun this timer every 30 game-time seconds
  end)
local point = Entities:FindByName( nil, "spawnerino"):GetAbsOrigin() -- Записываем в переменную 'point' координаты нашего спавнера 'spawnerino'
local waypoint = Entities:FindByName( nil, "way1") -- Записываем в переменную 'waypoint' координаты первого бокса way1.
local return_time = 10 -- Записываем в переменную значение '10'
Timers:CreateTimer(15, function() -- Создаем таймер, который запустится через 15 секунд после начала матча и запустит следующую функцию.
GAME_ROUND = GAME_ROUND + 1 -- Значение GAME_ROUND увеличивается на 1.
if GAME_ROUND == MAX_ROUNDS -- Если GAME_ROUND равно MAX_ROUNDS, переменная return_time получит нулевое значение.
return_time = nil
end
Say(nil,"Wave №" .. GAME_ROUND, false) -- Выводим в чат сообщение 'Wave №', в конце к которому добавится значение GAME_ROUND.
for i=1, ROUND_UNITS do -- Произведет нижние действия столько раз, сколько указано в ROUND_UNITS. То есть в нашем случае создаст 2 юнита.
local unit = CreateUnitByName( "npc_dota_creature_gnoll_assassin", point + RandomVector( RandomFloat( 0, 200 ) ), true, nil, nil, DOTA_TEAM_GOODGUYS ) -- Создаем юнита 'example_unit_', в конце к названию добавится 1,2,3,4 или 5, в зависимости от раунда, и в итоге получатся наши example_unit_1, example_unit_2 и т.д.. Юнит появится в векторе point + RandomVector( RandomFloat( 0, 200 ) ) - point - наша переменная, а рандомный вектор добавляется для того, чтобы мобы не появлялись в одной точке и не застревали. Мобы будут за силы света.
unit:SetInitialGoalEntity( waypoint ) -- Посылаем мобов на наш way1, координаты которого мы записали в переменную 'waypoint'
end
return return_time -- Возвращаем таймеру время, через которое он должен снова сработать. Когда пройдет последний раунд таймер получит значение 'nil' и выключится.
end)
end

После публикации - игра не прогружаетсяв доцке, лобби создается, но сервер сбрасывает, когда нажимаешь начать игру.
Ошибка - ожидалось значение ключа атрибута вместо конца файла npc_units_custom.txt, т. Е там где-то скобки пропустили
 
Реклама: