Сейчас 16:57:36 Суббота, 29 января, 2022 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Pick Unit (Как подсчитать?)
Pick Unit
boond009Дата: Четверг, 15 Августа 2013, 22:42:35 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 226
Награды: 0
Репутация: 30
Блокировки:
Как подсчитать сколько вокруг пикнутых юнитов?

Если выбор сделан, то он сделан. Если выбор не сделан, то он не сделан.
Всегда ваш Капитан Очевидность.
Царь горы v0.2b FIX
 

Arthur_666_Дата: Четверг, 15 Августа 2013, 22:44:20 | Сообщение # 2
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
Создать переменную группу ,установить ее значение на Unit Range че то там , и использовать в вычислениях Count unit in group как-то так это я по памяти пишу

Beetops
 

Imba_pvLДата: Четверг, 15 Августа 2013, 22:48:38 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
можно устанавливать значение цел.переменной +1 каждый раз как, когда происходит пик.
далее показываешь текст(значение) этой переменной.


 

Arthur_666_Дата: Четверг, 15 Августа 2013, 22:51:59 | Сообщение # 4
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
Imba_pvL, не, так утечно

Добавлено (15 Августа 2013, 22:51:59)
---------------------------------------------
хотя и по моему утечно


Beetops
 

boond009Дата: Четверг, 15 Августа 2013, 22:52:12 | Сообщение # 5
6 уровень
Группа: Проверенные
Сообщений: 226
Награды: 0
Репутация: 30
Блокировки:
Я ниче из твоих слов почти не понял, объясни поподробней.

Если выбор сделан, то он сделан. Если выбор не сделан, то он не сделан.
Всегда ваш Капитан Очевидность.
Царь горы v0.2b FIX
 

MelodiaДата: Четверг, 15 Августа 2013, 22:53:27 | Сообщение # 6
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата (Arthur_666_)
Imba_pvL, не, так утечно

с чего бы?
Ну в смысле утеку удалим если группа временная... и все


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

Arthur_666_Дата: Четверг, 15 Августа 2013, 23:03:38 | Сообщение # 7
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
Melodia, ну да

Добавлено (15 Августа 2013, 23:03:38)
---------------------------------------------
boond009,
Set GROUP = Unit in range то-то ,то-то
Pick every unit in GROUP

  • Action-
  • Set Count= Count +1;

Custom script- call DestroyGroup(udg_GROUP)


Beetops


Сообщение отредактировал Arthur_666_ - Четверг, 15 Августа 2013, 23:04:33
 

Imba_pvLДата: Четверг, 15 Августа 2013, 23:10:21 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
Цел.переменные не вызывают утечек же.
только точки, группы (ну и еще кое-что...)


 

Arthur_666_Дата: Четверг, 15 Августа 2013, 23:25:23 | Сообщение # 9
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
Imba_pvL, ну я и говорю про группы

Beetops
 

FEARKILLERДата: Пятница, 16 Августа 2013, 00:49:49 | Сообщение # 10
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
Цитата (Arthur_666_)
Set GROUP = Unit in range то-то ,то-то
Pick every unit in GROUP

Action-
Set Count= Count +1;

Custom script- call DestroyGroup(udg_GROUP)

Ну и к чему весь этот велосипед? Когда ты в самом начале написал всё правильно:
Цитата (Arthur_666_)
Создать переменную группу ,установить ее значение на Unit Range че то там , и использовать в вычислениях Count unit in group как-то так это я по памяти пишу

Дополню: в гуях в разделе целочисленных, есть такая функция как Count Units In Unit Group, которая как раз и считает кол-во юнитов в группе.


Цитата (Imba_pvL)
только

Любые типы объектов. Одним словом, всё что наследуюется от handle.


Делаю из воды вино, хожу по воде...
 

ExtrematorДата: Пятница, 16 Августа 2013, 08:23:10 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:

>> set P = (Position of (Triggering Unit))
>> Custom Script: set bj_wantDestroyGroup=true
>> Отряд - юниты (в радиуске (400) от точки (P))
>> >> Если
>> >> >> Логическое - (Picked unit) является мёртв = Нет
>> >> >> Логическое - (Picked unit) является союзником для (Owner of (Triggering Unit)) = Нет
>> >> >> Логическое - (Picked unit) является зданием = Нет
>> >> >> и прочее...
>> >> То
>> >> >> Отряд - Add (Picked Unit) in group (G)
>> Если
>> >> Логическое - Группа (G) пуста = Нет
>> То
>> >> set I = (Number units in group (G))
>> >> Отряд - Clear group (G)
>> Custom Script: call RemoveLocation(udg_P)


. . .


P (point) - точка, условна взята позиция юнита-инициатора
G (group) - группа/отряд, все кто будут подходить для выбора
I (integer) - целое число, то чему и равняется число юнитов в радиусе от точки
 

MelodiaДата: Пятница, 16 Августа 2013, 10:21:08 | Сообщение # 12
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата (Extremator)
Custom Script: set bj_wantDestroyGroup=true

не пашет же эта хрень ни фига


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

Arthur_666_Дата: Пятница, 16 Августа 2013, 10:48:54 | Сообщение # 13
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
Extremator, эм
и


Beetops
 

ExtrematorДата: Пятница, 16 Августа 2013, 11:26:44 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Цитата (Melodia)
не пашет же эта хрень ни фига
Не знаю работает ли она, и что конкретно даёт...

Но суть в том, что её наличие убирает лаги в игре...
Когда я создаю простые или грамоздкие конструкции
то без этой функции лаги начинаю накапливаться...
а с ней - нет, всё работает гладко даже спустя долгое время / многократную работу
и это подтверждало множество тестов

в любом случаи - я вижу не лишённым смысла использование данной строчки
 

boond009Дата: Пятница, 16 Августа 2013, 13:48:53 | Сообщение # 15
6 уровень
Группа: Проверенные
Сообщений: 226
Награды: 0
Репутация: 30
Блокировки:
Спасибо ребят. Офайте

Если выбор сделан, то он сделан. Если выбор не сделан, то он не сделан.
Всегда ваш Капитан Очевидность.
Царь горы v0.2b FIX
 

FEARKILLERДата: Пятница, 16 Августа 2013, 14:35:23 | Сообщение # 16
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
Цитата (Melodia)
не пашет же эта хрень ни фига

Пашет и ещё как. Хотя смотря когда ты переменной присвоил true. Это нужно делать до запуска последнего действия с группой, например если цикл будет последним для группы, то до этого цикла нужно присвоить переменной true для дестроя группы. Вот код гуишного цикла:
Код
function ForGroupBJ takes group whichGroup, code callback returns nothing
     local boolean wantDestroy = bj_wantDestroyGroup //C переменной bj_wantDestroyGroup считывается значение да или нет и записывается в логическую локалку
     set bj_wantDestroyGroup = false //Тут же возвращается этой переменной нет, как и было по дефолту
     call ForGroup(whichGroup, callback) //Запуск самого цикла для всех юнитов в группе
     if (wantDestroy) then //То самое условие, которое мы записывали с гобалки bj_wantDestroyGroup, если там было true значит группа удалиться
         call DestroyGroup(whichGroup) //А вот собсно и сам дестрой группы
     endif
endfunction

Единственное чего тут нет в конце, так это обнуления локальной группы set whichGroup=null, а так всё пашет и дестроится. Но дестрой есть не во всех BJ функциях касающихся работы с группами, поэтому если не знаешь начинку, лучше руками дестроить группу, чтобы уже конкретно удалить.


Делаю из воды вино, хожу по воде...
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Pick Unit (Как подсчитать?)
  • Страница 1 из 1
  • 1
Поиск:

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