Присвоение позиции группе юнитов
|
|
FatalBlade | Дата: Среда, 03 Августа 2011, 00:05:11 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Code function Loc takes location x returns location call SetUnitPositionLoc( GetEnumUnit(), x ) return x endfunction
function Trig_AA_Actions takes nothing returns nothing local location x local integer i = 1 loop exitwhen i>10 set AA = GetUnitLoc(udg_HeroesPlaying[i]) call SetUnitPositionLoc( udg_AA[i], x) call ForGroupBJ( udg_ClassSkillsGroup[i], function Loc) call RemoveLocation(x) set i = i + 1 endloop endfunction
Тут ведь нету утечек?
Сообщение отредактировал FatalBlade - Среда, 03 Августа 2011, 00:05:32 |
|
|
|
lawson | Дата: Среда, 03 Августа 2011, 00:33:04 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (FatalBlade) Тут ведь нету утечек? Забыл set x = null в первой функцци. Зачем ForGroupBJ что нельзя без БЖ?
Code function Loc takes location x returns location У тебя триг не будет работать. Здесь же написано что функция что то берет и возвращает у тебя она не правильно написана function Loc должна чтото брать и чтото возвращать, ты же сам написал takes и returns а здесь она ни чего не берет и не возвращает call ForGroupBJ( udg_ClassSkillsGroup[i], function Loc)
Добавлено (03-08-2011, 00:28) --------------------------------------------- Вот так должна быть использована функция Loc set переменная области 1 = Loc(переменная области 2) В твоем случае ее использовать нельзя.
Добавлено (03-08-2011, 00:33) --------------------------------------------- Самое главно забыл сказать! Когда ты делаешь ссылки на какие либо функции например как в таймере или ForGroup то ссылаемые функции не должны ни чего брать и ни чего возвращать!!!!!!!!!
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Среда, 03 Августа 2011, 00:35:12 |
|
|
|
[DS] | Дата: Среда, 03 Августа 2011, 00:36:21 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| "set AA" потом он вдруг стал "udg_AA[i]", чудеса... "function Loc takes location x returns location call SetUnitPositionLoc( GetEnumUnit(), x ) return x endfunction" вообщем как было сказано выше не будет работать.
|
|
|
|
FatalBlade | Дата: Среда, 03 Августа 2011, 00:40:15 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| А вот так: Code function Loc takes nothing returns nothing local location x = GetUnitLoc(udg_HeroesPlaying[GetConvertedPlayerId(GetOwningPlayer(GetEnumUnit()))]) call SetUnitPositionLoc( GetEnumUnit(), x ) call RemoveLocation(x) endfunction
function Trig_Attach_Actions takes nothing returns nothing local location y local integer i = 1 loop exitwhen i>10 set y = GetUnitLoc(udg_HeroesPlaying[i]) call SetUnitPositionLoc( udg_AA[i], y) call RemoveLocation(y) set i = i + 1 endloop call ForGroupBJ( GetUnitsOfTypeIdAll('n00J'), function Loc ) endfunction
Сообщение отредактировал FatalBlade - Среда, 03 Августа 2011, 00:41:07 |
|
|
|
SirNikolas | Дата: Среда, 03 Августа 2011, 08:42:07 | Сообщение # 5 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Ну, теперь-то работать он будет, но сделано плохо. Ты объясни, что тебе нужно.
|
|
|
|
FatalBlade | Дата: Среда, 03 Августа 2011, 10:14:34 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Впринципе уже всё работает.)
Есть массив героев HeroesPlaying. Это АОС, и когда игрок выбирает героя, его герой заносится в массив, где индексом является порядковый номер игрока
Есть массив юнитов АА, где для каждого игрока есть свой юнит. Это юнит пустышка, дамми, у которого есть абилки пустышки. Это как бы для того что бы герой выбирал какие скилы у него будут. То есть кликает на пустышку, и у героя в меню Learn Skills появляется этот скилл. Дело в том что герой должен выбрать 3 скилла из 9-ти. Но не об этом щас...
Есть массив групп юнитов, это по 3 дамми юнита для каждого игрока. Они являются в Классификации рабочими. Их цель - счётчик выбранных скиллов. Когда герой выбирает скилл у юнита АА[номер его игрока], то 1 из этих 3-х дамми-рабочих удаляется. Это как бы показывает сколько скиллов осталось выбрать.
Как это выглядит? Герой тыкает на иконку плюсика способностей слева над миникартой, и триггерно ему тут же выделяется АА[номер его игрока]. Там герой например выбрал какой то скилл, и теперь на иконке над миникартой написано 2, а не 3, как было до этого. Посколько эти дамми - юниты, то у что бы нажимая на них, камера оставалась над героем, их всех (а это юнит из массива АА и группа из 3-х юнитов дамми рабочих для этого игрока), надо прикрепить к герою.
Вот я и прикрепил юнита АА[номер игрока]. А с дамми рабочими я сделал по другому. Я просто пикнул всех таких дамми рабочих на карте, и прикрепил их к героям их владельцев.
З.Ы. забыл удалить группу
|
|
|
|