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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Вел оф дискорд
Вел оф дискорд
BiboДата: Пятница, 04 Апреля 2014, 23:04:59 | Сообщение # 51
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Melodia ()
Создание группы.

Для таких одноразовых операций можно использовать одну глобальную группу. На всю карту хватит.
Цитата Melodia ()
Кто там говорил про отдых...

Мсье требуется крепкий, здоровый сон alco


Сообщение отредактировал Bibo - Пятница, 04 Апреля 2014, 23:07:49
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:05:25 | Сообщение # 52
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Q1wAse, ты читай полностью тред что ли.

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

Q1wAseДата: Пятница, 04 Апреля 2014, 23:08:30 | Сообщение # 53
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата Melodia ()
Q1wAse, ты читай полностью тред что ли.

Читаю уже который час...
ответ был давно дан, чего добиваетесь фиг поймёшь.
Про группы я написал альтернативу.


 

MelodiaДата: Пятница, 04 Апреля 2014, 23:08:44 | Сообщение # 54
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
Для таких одноразовых операций можно использовать одну глобальную группу. На всю карту хватит

Объясняю для тех, кто в бронепоезде.
{
Set Group = юниты в радиусе 1000 от ...
работа с группой
DestroyGroup(group)
}
Всё равно оставляет небольшую утечность.
Ты не хочешь использовать группу с большим числом юнитов но готов плодить эту утечку зато.
Общая группа на самом деле не так уж и страшна, учитывая что разложившиеся юниты автоматом из неё удаляются.
Для какой-нить аренки типа см-варс это всего 20-40 юнитов. Для херодефенса - около 80 мб.


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

Q1wAseДата: Пятница, 04 Апреля 2014, 23:12:33 | Сообщение # 55
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:


 

BiboДата: Пятница, 04 Апреля 2014, 23:12:41 | Сообщение # 56
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Думаю мы столкнулись с недопониманием. Ибо я представляю жасс вариант, а ты явно в гуи, где такой гибкости по утечкам групп нет.

Сообщение отредактировал Bibo - Пятница, 04 Апреля 2014, 23:14:24
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:13:40 | Сообщение # 57
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Где-то читал, что группу перед уничтожением нужно очищать. Возможно если так делать - то утечки от такого использования вовсе не будет.
Проверьте кто-нить, кто шарит в том, остаются или нет. dunno


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

Q1wAseДата: Пятница, 04 Апреля 2014, 23:14:23 | Сообщение # 58
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата Bibo ()
Думаю мы столкнулись с недопониманием. Ибо я представляю жасс вариант, а ты похоже в гуи, где такой гибкости по утечкам групп нет.

Согласен.
Если с умом использовать jass то можно сделать производительно, то есть не утечно.




Сообщение отредактировал Q1wAse - Пятница, 04 Апреля 2014, 23:14:38
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:15:12 | Сообщение # 59
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
Думаю мы столкнулись с недопониманием. Ибо я представляю жасс вариант, а ты похоже в гуи, где такой гибкости по утечкам групп нет.

Я ненаю о чём ты, но когда ты хочешь обратиться к юнитам в радиусе от кого-то - ты создаёшь группу. ты конечно можешь её и не удалять, но это только хуже.

Добавлено (04 Апреля 2014, 23:15:12)
---------------------------------------------

Цитата Q1wAse ()
Если с умом использовать jass то можно сделать производительно, то есть не утечно.

логический или прямой вариант предоставьте.


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

Q1wAseДата: Пятница, 04 Апреля 2014, 23:16:40 | Сообщение # 60
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата Melodia ()
не удалять

очисти, снова пикни очисти, как на гуях делается.

Добавлено (04 Апреля 2014, 23:16:40)
---------------------------------------------
Цитата Melodia ()
логический или прямой вариант предоставьте.

http://warcraft3ft.info/forum/22-55169-1676550-16-1396638288
Вариант с MUI.




Сообщение отредактировал Q1wAse - Пятница, 04 Апреля 2014, 23:17:57
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:16:54 | Сообщение # 61
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Q1wAse ()
снова пикни

Пикни что? юнитов в очищенной группе? Или снова группу создай? У-теч-ки


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

Q1wAseДата: Пятница, 04 Апреля 2014, 23:17:28 | Сообщение # 62
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
не создай, а пикни юнитов в эту же группу которую очистил, не будет у тебя утечек.



Сообщение отредактировал Q1wAse - Пятница, 04 Апреля 2014, 23:18:14
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:19:01 | Сообщение # 63
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Q1wAse ()
http://warcraft3ft.info/forum/22-55169-1676550-16-1396638288

Я тебя вроде уже посылал тред весь читать, я выше ещё гвоорил про использование 1 единственной группы, с которой мы пляшем.
И нафига юниты обнулять?


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

Q1wAseДата: Пятница, 04 Апреля 2014, 23:20:29 | Сообщение # 64
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата Melodia ()
Я тебя вроде уже посылал тред весь читать, я выше ещё гвоорил про использование 1 единственной группы, с которой мы пляшем.
И нафига юниты обнулять?



 

MelodiaДата: Пятница, 04 Апреля 2014, 23:20:40 | Сообщение # 65
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Q1wAse ()
а пикни юнитов в эту же группу которую очистил

Как ты себе это представляешь? то есть взяли в группу Г юниты, потом клирнули грппую. не удаляя её.

Потом снова присвоили ей юнитов таких-то, если не ошибаюсь - остаётся утечка пустой группы и новая группа Г.


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

BiboДата: Пятница, 04 Апреля 2014, 23:27:08 | Сообщение # 66
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Melodia ()
когда ты хочешь обратиться к юнитам в радиусе от кого-то - ты создаёшь группу.

Да, это известный феил GUI. Вместо того чтобы взять группу извне и добавить юнитов в нее, она создает новую группу, совершает необходимые операции и присваивает эту группу указанной переменной. Тогда да, без утечек никак и вариант с пиком по всей карте лучше. Но опять же, только на GUI.
Однако можно впаять через CS строчку:
Код
call GroupEnumUnitsInRangeOfLoc(udg_ТвояГруппа, udg_ТвояТочка, радиус, null)

Затем произвести цикл по ТвояГруппа. По завершению операци очистить ТвояГруппа. Эффект достигнут, лишнх групп не создано.
Цитата Melodia ()
И нафига юниты обнулять?

Юниты существуют до тех пор пока не обнулить все хранящие их переменные. Для обычных глобалок не смертельно, но в массивах о них можно забыть.


Сообщение отредактировал Bibo - Пятница, 04 Апреля 2014, 23:30:27
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:30:50 | Сообщение # 67
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
Юниты существуют до тех пор пока не обнулить все хранящие их переменные

ересь какая-то. То есть присвоил я u[5]= пехотинец такой-то и пока я не обнулю эту u[5] - пехотинец существует? lol


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

BiboДата: Пятница, 04 Апреля 2014, 23:34:27 | Сообщение # 68
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Обнулять следует все дочерние типа handle, за исключением игроков, которые существуют на протяжении всей игры и их всего 16 штук. Иначе застрянут в памяти.

Сообщение отредактировал Bibo - Пятница, 04 Апреля 2014, 23:35:12
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:36:08 | Сообщение # 69
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Не вижу смысла. Насколько я помню, если я присвою u[1] - гусь хрустальный, а потом гусь исчезнет или просто присвою u[1]- гусь золотой - ничего не утечёт.

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

ExtrematorДата: Пятница, 04 Апреля 2014, 23:36:09 | Сообщение # 70
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Цитата SirNikolas ()
И разве маг. резисты плюсуются, а не перемножаются?
Каждый резист перемножает входящий урон на своё значение
Те же самые резисты работают и на дискорде, и на натурал-ордере, и на шарике аппарата, и на ауре рубика...
Единственный минут - есть другой, не сткающийся резист, получение которого шлёт все расчёт на три буквы, и устанавливает новые правила...

Цитата Bibo ()
Юниты существуют до тех пор пока не обнулить все хранящие их переменные.
Создаём юнита
set U = последний созданный юнит
Unit - Remove Unit (udg_U)

И что же нам вернёт переменная U ? )))
(а вернём она нам null)
 

MelodiaДата: Пятница, 04 Апреля 2014, 23:37:00 | Сообщение # 71
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Extremator ()
Создаём юнита set U = последний созданный юнит Unit - Remove Unit (udg_U) И что же нам вернёт переменная U ? ))) (а вернём она нам null)

портишь тут флуд >(


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

BiboДата: Пятница, 04 Апреля 2014, 23:43:34 | Сообщение # 72
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
group
effect
texttag
location
lightning

Назовем это основным списком гуишника.
Но при использовании глобалок об этом обычно не приходится беспокоится.

Кстати, в последнем JNGP функция GroupEnumUnitsInRangeOfLoc выполнена в графическом интерфейсе, также как и функции удаления точек и много других полезностей. Так что все решаемо.


Сообщение отредактировал Bibo - Пятница, 04 Апреля 2014, 23:44:32
 

SirNikolasДата: Пятница, 04 Апреля 2014, 23:52:17 | Сообщение # 73
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Extremator ()
set U = последний созданный юнит
Unit - Remove Unit (udg_U)

И что же нам вернёт переменная U ? )))
(а вернём она нам null)
[code=jass]callback onInit() {
unit u = CreateUnit(Player(0), 'hfoo', .0, .0, .0);
RemoveUnit(u);
printf("%b", u == null);
}[/code]И совершенно внезапно false. Более того,
[code=jass]printf("id = %i (%b), life = %r", GetUnitTypeId(u), GetUnitTypeId(u) == 'hfoo', GetWidgetLife(u));[/code]
id = 1751543663 (true), life = 420.000

Так что юнит существует после ремува, если на него ссылаются какие-либо переменные. Обратите внимание, это не относится к ссылкам в хэш-таблице и буфере обмена: они являются слабыми, т. е. не препятствуют сборке мусора.
Цитата Bibo ()
Однако можно впаять через CS строчку. Затем произвести цикл по ТвояГруппа. По завершению операции очистить ТвояГруппа.
Семейство функций GroupEnumUnits... чистит группу перед добавлением.


 

MelodiaДата: Пятница, 04 Апреля 2014, 23:54:11 | Сообщение # 74
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
SirNikolas, а если я запилю в неё новый юнит? -_-

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

SirNikolasДата: Пятница, 04 Апреля 2014, 23:57:00 | Сообщение # 75
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Bibo ()
group
effect
texttag
location
lightning
group, location - да. Но остальные ведь не мгновенного использования, как они могут решаться глобалками?


 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Вел оф дискорд
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

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