Добавлен
ребят поздравьте я научился двигать юнита не через полярки а через x y и посмотрите все ли я правильно делаю? скилл работает, я хотел спросить так надо делать для всех скиллов? например set udg_Cos = Cos(udg_Angle*bj_DEGTORAD) и что значит это дегторад?
вот код
Set Caster = (Casting unit)
Set Angle = (Angle from (Position of Caster) to Target Point Ability)
Set Speed = 10.00
Custom script: set udg_Cos = Cos(udg_Angle*bj_DEGTORAD)
Custom script: set udg_Sin = Sin(udg_Angle*bj_DEGTORAD)
Custom script: set udg_X = GetWidgetX(udg_Caster)+udg_Speed*udg_Cos
Custom script: set udg_Y = GetWidgetY(udg_Caster)+udg_Speed*udg_Sin
Custom script: call SetUnitX(udg_Caster, udg_X)
Custom script: call SetUnitY(udg_Caster, udg_Y)

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


что значит это дегторад?
degrees to radian - градусы в радианы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
19
4 года назад
2
Похожие вопросы:

ответ
ААААА, ты про декорации)
1 Это должна быть декорация (не разрушаемый объект)
2 минимальный и максимальный масштабы должны быть разными
3 ставишь декорацию выбираешь её и home\end увеличить\уменьшить ширину, pgup\pgdwn - увеличить\уменьшить высоту.
4 если именно X Y надо разные - открываешь свойства её и меняешь цифрами.
ответ
хоспаде, еле нашел
вам можно сказать повезло, там всё на простом джассе, + не забываем заглядывать в место для нестандартного кода, интересующие вас ф-ии это SX() и SY()
аналогично делаем для своих областей, в триггере инициализации я записываю в переменные значения координат игрового ректа, то же самое можно сделать с любой другой областью
управление w a d
*прочитал комменты*
если областей много, то всегда можно склеить из горизонтальных и вертикальных линий что-нибудь, из косых тоже можно, но там более геморно с событием выхода юнита из такой области.
Можно просто запоминать знак на каждом юните относительно каждой прямой, если он поменялся, значит юнит уже по другую сторону от прямой, мб ещё совместить это с системой чанков (и системой которая будет рассчитывать размер чанка относительно максимального радиуса действия спелла и размеров карты, для оптимальных размеров оного), но кому это нужно в вц3?
ответ
local location loc=GetUnitLoc(GetEnumUnit())
local location tcLoc=GetUnitLoc(udg_topot_caster)
local real a=AngleBetweenPoints(tcLoc, loc)
call SetUnitX(GetEnumUnit(),GetLocationX(loc) +CosBJ(a) * 10.00 )
call SetUnitY(GetEnumUnit(),GetLocationY(loc) +SinBJ(a) * 10.00 )
call RemoveLocation(tcLoc)
call RemoveLocation(loc)
set tcLoc=null
set loc=null
ответ
FabulousTiger, создаешь 12 х 12 абилок с разными координатами на карте команд, ну или меньше, все завивит от того что требуется и способность на основе Техника ('ANeg') и меняя уровень техники, ты свапаешь абилки и меняешь положение иконки на карте команд на ходу, изи но довольно громоздко.
Так же есть мемхак, но если вы задаёте такие вопросы явно рано о нем думать...
ответ
Я бы попробовал так.
function R2SX takes real r returns string
    return R2SW(r, 0, -1)
enfunction

SaveBoolean(Hash, StringHash(R2SX(x)), StringHash(R2SX(y)), key)

0
7
4 года назад
0
и когда я двигаю его так то это считается как двигать юнита или приказать двигаться?
0
27
4 года назад
0
дегторад
ссылка
0
29
4 года назад
0

что значит это дегторад?
degrees to radian - градусы в радианы
Принятый ответ
0
27
4 года назад
Отредактирован MpW
0
ну вроде все правильно. переходи на jass и луа.
у тебя утечка, угол создает точку Position of Caster
2
17
4 года назад
2
снова подъехали вопросы с интересными названиями xD
0
7
4 года назад
Отредактирован Ельнур
0
спасибо разобрался код выше который я написал это двигать юнита(мгновенно) а не приказывать ему двигаться вопрос можно закрыть.
0
27
4 года назад
0
ну вроде все правильно. это почти что станд реализация смещения от точки под углом. пока, что все норм, единственное, что с углом у тебя проблема. во первых, у тебя утечка, угол создает точку Position of Caster. во-вторых, можно было заранее перевести в радианы и не надо было бы пихать это udg_Angle*bj_DEGTORAD в косинусы и синусы
0
7
4 года назад
0
это его собрат, кстати в чем их разница ?Set Caster = (Casting unit)
Set SpellPoint = (Position of Set SpellPoint = (Position of Caster)
Caster) Set Angle = (Facing of Caster)
Set Angle = (Angle - 90.00)
Set Distance = 200.00
Custom script: set udg_X = GetLocationX(udg_SpellPoint) + udg_Distance * Cos(udg_Angle * bj_DEGTORAD)
Custom script: set udg_Y = GetLocationY(udg_SpellPoint) + udg_Distance * Sin(udg_Angle * bj_DEGTORAD)
Custom script: call SetUnitX(udg_Caster, udg_X)
Custom script: call SetUnitY(udg_Caster, udg_Y)

Steal nerves:
ну вроде все правильно. переходи на jass и луа.
у тебя утечка, угол создает точку Position of Caster
я знаю я специально так коротко написал чтобы потестить

так понятно оба эти кода просто двигать юнита мгновенно, а как ему через х y приказать двигаться( не мгновенно?)

и например когда будет даммикаст я не хочу ордер делать на polar projection bj как сделать ордер на x y чтобы он кастанул не в polar projection bj а в x y? чтобы не утекало?
0
27
4 года назад
Отредактирован MpW
0
Ельнур, ни в чем разницы нет, только как это реализовано. здесь берется точка, вместо координат. так отдай приказ, в чем проблема? есть разные нативки (координаты и точка).
0
29
4 года назад
0
так понятно оба эти кода просто двигать юнита мгновенно, а как ему через х y приказать двигаться( не мгновенно?)
Так сложно сделать на гуи и конвертировать в JASS?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.