Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт:
6,885Активность: |
Помогите найти ошибку
Вот код, запускающийся при MapInit...
» код function PointGenerate takes location whichLocation, real angle, real d returns nothing call MoveLocation(whichLocation, GetLocationX(whichLocation) + (d * CosBJ(angle)), GetLocationY(whichLocation) + (d * SinBJ(angle))) set whichLocation = null endfunction //########################################################################### function CreateIceEffect takes nothing returns nothing local integer i local integer n = 0 local integer m = 0 local unit array u local integer count = 15 local rect array r local location array p local location loc local real d local real array a local player id = Player(PLAYER_NEUTRAL_PASSIVE) //=========================================================================== set r[1] = gg_rct_Ice set r[2] = gg_rct_Ice2 set r[3] = gg_rct_Ice3 set r[4] = gg_rct_Ice4 //=========================================================================== set loc = GetRectCenter(r[1]) //=========================================================================== set p[1] = GetRectCenter(r[1]) set p[2] = GetRectCenter(r[2]) set p[3] = GetRectCenter(r[3]) set p[4] = GetRectCenter(r[4]) //=========================================================================== set d = DistanceBetweenPoints(p[1],p[2])/count //=========================================================================== set a[1] = AngleBetweenPoints(p[1], p[2]) set a[2] = AngleBetweenPoints(p[2], p[3]) set a[3] = AngleBetweenPoints(p[3], p[4]) set a[4] = AngleBetweenPoints(p[4], p[1]) // call DisplayTextToForce(GetPlayersAll(), R2S(a[1])) // call DisplayTextToForce(GetPlayersAll(), R2S(a[2])) // call DisplayTextToForce(GetPlayersAll(), R2S(a[3])) // call DisplayTextToForce(GetPlayersAll(), R2S(a[4])) //=========================================================================== loop exitwhen n > 4 //=========================================================================== set i = 0 //=========================================================================== loop exitwhen i > count set m = m + 1 set u[m] = CreateUnitAtLoc(id, 'h000', loc, 270.00) call PointGenerate(loc, a[n], d) set i = i + 1 endloop //=========================================================================== set n = n + 1 endloop //=========================================================================== set i = 1 loop exitwhen i > 4 set r[i] = null call RemoveLocation(p[i]) set p[i] = null set i = i + 1 endloop //=========================================================================== set id = null call RemoveLocation(loc) set loc = null endfunction Посмотрите его и скажите, почему он работает не как надо. А надо так: создать квадрат из этих воинов "h000". Квадрат создается, но не такой... Я прикрепил к посту блокнот, там показано, как должно быть + как получается... Если рас-комментарить 4 call DisplayTextToForce, на экране отображаются углы...вроде правильные: a[1] = 90 a[2] = 0 a[3] = -90 a[4] = -180 |
22.08.2007, 12:31 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Юниты можно создавать в совершенно любой четырехугольник
Они будут создаваться для игрока p, и будут типом UnitType Между Rec1 и Rec2, будет count1 юнитов Между Rec2 и Rec3, будет count2 юнитов Между Rec3 и Rec4, будет count3 юнитов Между Rec4 и Rec1, будет count4 юнитов Чтобы сделать так как ты хочеш, запускай функцию так: call CreateUnit4Figure(Player(15), 'h000', gg_rct_Ice, gg_rct_Ice2, gg_rct_Ice3, gg_rct_Ice4, 15, 15, 15, 15) Код:
|
22.08.2007, 13:52 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт:
6,885Активность: |
Jon, спасибо!
Тему можно клоуз! |
22.08.2007, 13:59 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|