Можно как гуи так и кастом скрипт.

Принятый ответ

Круги уже написали, напишу квадрат, если надо будет.
local unit u
local real r =100 Максимальный размер / 2
local real x = GetUnitX(u)+GetRandomReal(-1*r, r)
local real y = GetUnitY(u)+GetRandomReal(-1*r, r)
local location l = Location(x,y) Если тебе прям точку надо
Загруженные файлы
3
8
6 лет назад
3
х=R*cos(случ угол)
y=R*sin(случ угол)
Вроде в радианах
А так на гуи есть Point with polar offset, но там рандом должен стремится ближе к центру
1
27
6 лет назад
Отредактирован MpW
1
R = (рандом от 0 до 150) числа 0 и 150 это как пример. сам интервал выбирешь. функция подбирает случайное значение из промежутка от 0 до 150
angle = (рандом от 0 до 360) круг в градусах, в некоторых функции переводят в радианы. и выбираем случайный угол вращения (0 - вправо, 180 - влево, 90 - вверх, 270 - вниз и так далее)
х=GetUnitX(u) + R*cos(angle)
y=GetUnitY(u) + R*sin(andle)
GetUnitX(u) и GetUnitY(u) - координаты точки кастера, относительно чего рандомишь
x и y - смещаешь по этим координатам
2
21
6 лет назад
2
Для своего же блага переходи на jass
Это в разы удобней чем гуи + КС
2
21
6 лет назад
2
х = GetUnitX( ... ) + GetRandomReal( -radius, radius )
y = GetUnitY( ... ) + GetRandomReal( -radius, radius )
Правда, если выпадет макс. или мин. значения, то расстояние получится больше указанного радиуса.
Но это бывает редко, да и глазу незаметно.
2
30
6 лет назад
Отредактирован Clamp
2
location GetRandomPointOnRadiusFromUnit(unit givenUnit, real radius) {
    real angle = GetRandomReal(0.0, 6.2832);
    return Location(GetUnitX(givenUnit) + radius*Cos(angle), GetUnitY(givenUnit) + radius*Sin(angle));
}
1
7
6 лет назад
Отредактирован WoLLFeR
1
Круги уже написали, напишу квадрат, если надо будет.
local unit u
local real r =100 Максимальный размер / 2
local real x = GetUnitX(u)+GetRandomReal(-1*r, r)
local real y = GetUnitY(u)+GetRandomReal(-1*r, r)
local location l = Location(x,y) Если тебе прям точку надо
Загруженные файлы
Принятый ответ
0
30
6 лет назад
Отредактирован Clamp
0
WoLLFeR, найди 3 различия
ScopteRectuS:
х = GetUnitX( ... ) + GetRandomReal( -radius, radius )
y = GetUnitY( ... ) + GetRandomReal( -radius, radius )
Правда, если выпадет макс. или мин. значения, то расстояние получится больше указанного радиуса.
Но это бывает редко, да и глазу незаметно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.