Создание башни

Кроме того, ели не создается, то должно писать ошибку.

Если нету, сделай так:

Код:
function tower(keys)
local caster = keys.caster
local pos = keys.caster:GetAbsOrigin() + (keys.caster:GetForwardVector() * 150)
 if _G.team == 1 then
   	 	print("first choise")
   	 	CreateUnitByName("npc_dota_tower_good", pos, true, nil, nil, DOTA_TEAM_GOODGUYS )
  else
   	 	print("second choise")
   	 	CreateUnitByName("npc_dota_tower_bad", pos, true, nil, nil, DOTA_TEAM_BADGUYS )
  end 
end
 
Последнее редактирование модератором:
Нет, вещь делает все парвильно, функция в файле script. Ошибки никакой нету, а принты ничего не дадут, башня создается светлая, значит первый вариант, просто неправильные коры
 
А, это ты говоришь, что она в центре спавнится?

Просто много что где пишет и у меня в голове путаница уже.
 
Ну выведи эти корди и глянь где они:

print("pos: " .. pos)
 
Последнее редактирование модератором:
Везде разные
Код:
[  VScript       ]: Vector 0000000003B327B8 [-5788.382324 -358.506531 128.000000]
Код:
[  VScript       ]: Vector 0000000003B31328 [-1808.953491 -2113.771484 128.000000]
Код:
[  VScript       ]: Vector 0000000003B22668 [984.597961 4471.664063 128.000000]
 
[quote author=tasman208 link=topic=806.msg3343#msg3343 date=1459778317]
Везде разные
Код:
[  VScript       ]: Vector 0000000003B327B8 [-5788.382324 -358.506531 128.000000]
Код:
[  VScript       ]: Vector 0000000003B31328 [-1808.953491 -2113.771484 128.000000]
Код:
[  VScript       ]: Vector 0000000003B22668 [984.597961 4471.664063 128.000000]
[/quote]
Попробуй заспавнить стандартного дотовского крипа вместо тавера. Мб ток с ними такое оО
 
Вот, видишь, корди явно не центральные. Значит либо глючит хаммер, либо где-то косяк допускается в коде.
Попробуй убрать комментарии все с кода башни. И все лишнее. По минимуму сделать.

Ну и сначала крипа попробуй создать, как Cry предложил. Так сразу станет ясно, что дело в башне.
 
"BaseClass" "npc_dota_tower"
А разве так можно делать?)
 
Последнее редактирование модератором:
Видимо нет, сменил класс на creature. Появляется нормально, но что то с ней не так, нету радиуса атаки
 
Я уже сделал, единственное что осталось это сделать, чтобы она создавалась прямо перед героем, а сейчас она создается каждый раз с непонятной стороны
 
Вот эта штука

Код:
local pos = keys.caster:GetAbsOrigin() + (keys.caster:GetForwardVector() * 150)

И указывает прямо перед героем.
keys.caster:GetAbsOrigin() - получаем корди героя
keys.caster:GetForwardVector() - берем направление героя (куда смотрит)
keys.caster:GetForwardVector() * 150 - умножаем на 150, чтобы сдвинуть в том направлении, ибо вектор направления выдается в духе (0,1,0), а нам нужно получить небольшой отступ по направлению.
И в итоге складываем.

Если ты так спавнишь: CreateUnitByName("npc_dota_tower_good", pos, true, nil, nil, DOTA_TEAM_GOODGUYS )
То проблем быть не должно.
 
Последнее редактирование модератором:
[quote author=Илья link=topic=806.msg3358#msg3358 date=1459781863]
Вот эта штука

Код:
local pos = keys.caster:GetAbsOrigin() + (keys.caster:GetForwardVector() * 150)

И указывает прямо перед героем.
keys.caster:GetAbsOrigin() - получаем корди героя
keys.caster:GetForwardVector() - берем направление героя (куда смотрит)
keys.caster:GetForwardVector() * 150 - умножаем на 150, чтобы сдвинуть в том направлении, ибо вектор направления выдается в духе (0,1,0), а нам нужно получить небольшой отступ по направлению.
И в итоге складываем.

Если ты так спавнишь: CreateUnitByName("npc_dota_tower_good", pos, true, nil, nil, DOTA_TEAM_GOODGUYS )
То проблем быть не должно.
[/quote]
Позанудствую, вектор вида (0,1,0) называется единичный вектором, или базисным.
 
Последнее редактирование модератором:
Сделал 280, т.к. модель башни большая, на 150 было криво, спсибо за помощь +реп. Надеюсь сделаю сам убийство башни через 2 минуты после спавна
 
Сделал 280, т.к. модель башни большая, на 150 было криво, спсибо за помощь +реп. Надеюсь сделаю сам убийство башни через 2 минуты после спавна

Делаешь абилку башне, что через 2 минуты после создания убивает ее функцией

void ForceKill(bool bReincarnate)
 
Последнее редактирование модератором:
Делаешь абилку башне, что через 2 минуты после создания убивает ее функцией

void ForceKill(bool bReincarnate)
А ты извращуга я смотрю)
Код:
tower:AddNewModifier(caster, ability, "modifier_kill", {duration = 120})
 
Последнее редактирование модератором:
Реклама: