Сейчас 00:19:07 Пятница, 29 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Присвоение позиции группе юнитов
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-х юнитов дамми рабочих для этого игрока), надо прикрепить к герою.

Вот я и прикрепил юнита АА[номер игрока]. А с дамми рабочими я сделал по другому. Я просто пикнул всех таких дамми рабочих на карте, и прикрепил их к героям их владельцев.

З.Ы. забыл удалить группу :D


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz