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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Устранение BJ
romaN-1998Дата: Вторник, 01 Февраля 2011, 17:08:14 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Как устранить BJ у функций:

Code
call UseTimeOfDayBJ(false)

Code
call UnitAddAbilityBJ

И достаточно ли просто убрать BJ у функии:

Code
call ForGroupBJ


Сообщение отредактировал romaN-1998 - Вторник, 01 Февраля 2011, 17:08:38
 

DreiiДата: Вторник, 01 Февраля 2011, 17:10:55 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (romaN-1998)
call UnitAddAbilityBJ

Code
call UnitAddAbility(whichUnit, abilityId)

integer abilityId, unit whichUnit returns boolean

Quote (romaN-1998)
call UseTimeOfDayBJ(false)

Code
call SuspendTimeOfDay(not flag)

boolean flag

Добавлено (01-02-2011, 17:10)
---------------------------------------------

Code
call ForGroupBJ

Code

local group g=CreateGroup()
local unit e
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,null)//Откуда пикать юнитов
   loop  
     set e=FirstOfGroup(g)  
     exitwhen e == null  
    //Действия
      call GroupRemoveUnit(g,e)
     endloop  
   call DestroyGroup(g)
set g=null


 

Manko_OДата: Вторник, 01 Февраля 2011, 19:45:47 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
romaN-1998,
Качем JassCraft
 

DreiiДата: Вторник, 01 Февраля 2011, 20:09:51 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
romaN-1998, или мучаем Manko_O,

 

EdiTTORRДата: Среда, 02 Февраля 2011, 14:09:43 | Сообщение # 5
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
romaN-1998, в ForGroup достаточно убрать BJ. Хотя вариант дрэя лучше, но это уже дело вкуса.

Местами здесь.
 

DreiiДата: Среда, 02 Февраля 2011, 14:11:37 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
EdiTTORR, Мой вариант не требует 2-ой ф-ии))

 

SirNikolasДата: Среда, 02 Февраля 2011, 14:44:21 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
globals
     constant group GROUP = CreateGroup()
     boolexpr BOOL
endglobals

function Trig_Test_Trigger_Pick takes nothing returns boolean
     local unit u = GetFilterUnit()
     //Действия
     set u = null
     return false
endfunction

function Trig_Test_Trigger_Actions takes nothing returns nothing
     call GroupEnumUnitsInRect(GROUP, bj_mapInitialPlayableArea, BOOL)
endfunction

function InitTrig_Test_Trigger takes nothing returns nothing
     set BOOL = Condition(function Trig_Test_Trigger_Pick)
endfunction


 

AjaccioДата: Среда, 02 Февраля 2011, 14:52:19 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
SirNikolas, +1, самый лучший вариант. И работает намноооого быстрей.

XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

DreiiДата: Среда, 02 Февраля 2011, 14:52:47 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, ЗАчем все так сложно?

 

SirNikolasДата: Среда, 02 Февраля 2011, 14:56:59 | Сообщение # 10
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Потому что ты все равно будешь использовать GroupEnumUnitsIn..., так зачем совершать лишние действия? Разумеется, если нужно перебрать юнитов в готовой группе из переменной, лучше делать твоим способом.

 

AjaccioДата: Среда, 02 Февраля 2011, 14:57:31 | Сообщение # 11
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Наша и лень и оптимальность кода разные вещи. ;)
В этом способе все выполняется сразу в пике юнитов. При этом группа остается пустой, как бонус.
Если же делать через цикл, то мы вначале собираем, а потом ещё тратим время на их (юнитов) перебор.


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

EdiTTORRДата: Среда, 02 Февраля 2011, 15:10:59 | Сообщение # 12
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
Dreii
Quote (EdiTTORR)
Хотя вариант дрэя лучше, но это уже дело вкуса.


Местами здесь.


Сообщение отредактировал EdiTTORR - Среда, 02 Февраля 2011, 15:11:26
 

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

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