Помогите пожалуйста!
В игре как-то криво работает, хотя, вроде-бы все правильно. В чем тут проблема?
local unit a = GetSpellAbilityUnit()
local real array x
local real array y
local real f=GetUnitFacing(a)

set x[0]=GetUnitX(a)+200*Cos(f-30 * bj_DEGTORAD)
set y[0]=GetUnitY(a)+200*Sin(f-30 * bj_DEGTORAD)

set x[1]=GetUnitX(a)+200*Cos(f-40 * bj_DEGTORAD)
set y[1]=GetUnitY(a)+200*Sin(f-40 * bj_DEGTORAD)

set x[2]=GetUnitX(a)+200*Cos(f-50 * bj_DEGTORAD)
set y[2]=GetUnitY(a)+200*Sin(f-50 * bj_DEGTORAD)

set x[3]=GetUnitX(a)+200*Cos(f-60 * bj_DEGTORAD)
set y[3]=GetUnitY(a)+200*Sin(f-60 * bj_DEGTORAD)

set x[4]=GetUnitX(a)+200*Cos(f-70 * bj_DEGTORAD)
set y[4]=GetUnitY(a)+200*Sin(f-70 * bj_DEGTORAD)

set x[5]=GetUnitX(a)+200*Cos(f-80 * bj_DEGTORAD)
set y[5]=GetUnitY(a)+200*Sin(f-80 * bj_DEGTORAD)

set x[6]=GetUnitX(a)+200*Cos(f-90 * bj_DEGTORAD)
set y[6]=GetUnitY(a)+200*Sin(f-90 * bj_DEGTORAD)


call CreateUnit(GetOwningPlayer(a),'h001',x[0],y[0],f)
call CreateUnit(GetOwningPlayer(a),'h001',x[1],y[1],f)
call CreateUnit(GetOwningPlayer(a),'h001',x[2],y[2],f)
call CreateUnit(GetOwningPlayer(a),'h001',x[3],y[3],f)
call CreateUnit(GetOwningPlayer(a),'h001',x[4],y[4],f)
call CreateUnit(GetOwningPlayer(a),'h001',x[5],y[5],f)
call CreateUnit(GetOwningPlayer(a),'h001',x[6],y[6],f)

GetUnitFacing случайно не градусы возвращает? Если так, то f-30 нужно в скобках брать.
`
ОЖИДАНИЕ РЕКЛАМЫ...
5
Как именно криво? Ибо ошибок, лично я, не вижу.
Однако советик: сделай лучше через цикл, так проще и меньше места занимает код.
13
GetUnitFacing случайно не градусы возвращает? Если так, то f-30 нужно в скобках брать.
Принятый ответ
4
DazzleFirst:
Как именно криво?
Каким-то непонятным для меня образом, при каждом касте спелла, юниты создаются в случайном направлении(углу). Но по идеи, они должны создаваться в определённом месте.
5
Ай... прошляпил. ENAleksey правильно пишет.
Ошибка в
...Cos(f-30 * bj_DEGTORAD)
...Sin(f-30 * bj_DEGTORAD)
вместо что выше пропиши:
...Cos((f-30) * bj_DEGTORAD)
...Sin((f-30) * bj_DEGTORAD)
4
ENAleksey:
DazzleFirst:
Спасибо вам огромное, действительно ошибка была в скобках.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.