CustomGames.ru - Dota 2 пользовательские игры

Омнислеш

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Омнислеш
« : 21-04-2016, 10:42:20 »
У меня готов код, он полностью рабочий, но я хочу что бы с аганимом можно было перепрыгивать на цели.
Дак вот вопрос, по какому принципу джаггер перепрыгивает с цели на цель?
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #1 : 21-04-2016, 11:38:25 »
Ну чисто визуально на каждом скачке меняет свою цель.

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Re: Омнислеш
« Ответ #2 : 21-04-2016, 11:40:40 »
Ну чисто визуально на каждом скачке меняет свою цель.
а если я хочу выбрать ближайшую цель, то как мне найти минимальное значение дистанции до цели в цикле?
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #3 : 21-04-2016, 11:42:05 »
Сравниваешь расстояния между целями: вычитаешь из координат кастера координаты юнита и нормализуешь.

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Re: Омнислеш
« Ответ #4 : 21-04-2016, 11:43:13 »
Сравниваешь расстояния между целями: вычитаешь из координат кастера координаты юнита и нормализуешь.
Код
А типо math.min(dist[i])
нету?
Я знаю что есть рандом, может еще какие есть?
« Последнее редактирование: 21-04-2016, 11:46:18 от Adam Smith »
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #5 : 21-04-2016, 11:46:22 »
Ну насчет этого не знаю, надо глянуть работу с векторами у самой lua. Но я обычно так делал:
Код
	vDirection = point - caster:GetAbsOrigin()
vDirection = Vector(vDirection.x, vDirection.y, 0)
vDirection = vDirection:Normalized()

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #6 : 21-04-2016, 11:47:10 »
Конечно есть, math - это же целая библиотека. Но чет мне в голову не приходил ей пользоваться)

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #7 : 21-04-2016, 11:48:46 »
Вот, но либо он неполный, либо где-тов  другой библиотеке есть подобное. Либо нет)

Оффлайн Adam Smith

  • Друзья CG
  • 468
  • Мощь: 6
  • жрять жри его
Re: Омнислеш
« Ответ #8 : 21-04-2016, 11:53:03 »
Вот, но либо он неполный, либо где-тов  другой библиотеке есть подобное. Либо нет)
Спасяб
By PG.Freeman

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #9 : 21-04-2016, 11:54:16 »
Да пожалуйста)

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: Омнислеш
« Ответ #10 : 21-04-2016, 12:14:20 »
Вы в api глянуть по векторам не удосужились?)
vector:Length()
vector:Length2D()

https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API#Vector
Хотя лан, я в свое время свой велосипед сделаль(хотя не велосипед, а обычный способ нахождения длинны вектора и их сравнений)
Код
function FindDistance(vec1, vec2)
return math.sqrt(math.abs(vec1.x - vec2.x)^2 + math.abs(vec1.y - vec2.y)^2 + math.abs(vec1.z - vec2.z)^2 )
end

Оффлайн Илья

  • Супермодератор
  • 1904
  • Мощь: 16
Re: Омнислеш
« Ответ #11 : 21-04-2016, 13:00:51 »
Во!)

Лень дает о себе знать))