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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 5 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Оптимизация спелла, где используются группы (Как?)
[Вопрос] Оптимизация спелла, где используются группы
FatalBladeДата: Пятница, 23 Сентября 2011, 16:43:52 | Сообщение # 101
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Ty3uK)
Глупый вопрос, но ты инициализировал таблицу? О.о

Да. При инициализации карты. Некоторые действия не срабатывали (это в основном манипуляции в камерой). Затем поставил в 1 из триггеров который запускается через пару секунд после инициализации карты инициализацию хэша, так действия в том триггере тоже странно себя вели.

Quote (SirNikolas)
FatalBlade, сделай, как я сказал, и у тебя все будет работать, даже если два героя одного игрока произнесут заклинание. udg_Group используется для мгновенного перебора юнитов группы.

А если 2 героя произнесут заклинание ОДНОВРЕМЕННО. Буквально в ту же секунду. Ведь любое действие на любом языке програмирования занимает какую то маленькую долю секунды.
У меня у 1-го игрока не может быть больше 1-го героя, поэтомук я думаю о том что бы создать массив юнитов групп, то есть каждая ячейка для каждого игрока, но помоему это уже сильно нагрузит память... или нет?


 

[DUОS]Дата: Пятница, 23 Сентября 2011, 16:46:53 | Сообщение # 102
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (lawson)
Всмысле!?

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

Добавлено (23 Сентябрь 2011, 16:46:53)
---------------------------------------------

Quote (FatalBlade)
А если 2 героя произнесут заклинание ОДНОВРЕМЕННО. Буквально в ту же секунду. Ведь любое действие на любом языке програмирования занимает какую то маленькую долю секунды.

MUI тебе счастье.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

Ty3uKДата: Пятница, 23 Сентября 2011, 16:47:00 | Сообщение # 103
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Дуся, я про это и говорил. Но, видимо, ты обладаешь большей харизмой, чем я, ибо тебе Лавс поверил, а мне нет. ^_^

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Пятница, 23 Сентября 2011, 16:47:03 | Сообщение # 104
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
FatalBlade, хэш инициализируется вот так (Custom script): set udg_Hash = InitHashtable()

А то у меня есть подозрение, что ты делал так:
Create hashtable
Set Hash1 = Last created hashtable
Set Hash2 = Last created hashtable
Set Hash3 = Last created hashtable
Quote (FatalBlade)
А если 2 героя произнесут заклинание ОДНОВРЕМЕННО
Все будет так, как надо.


 

[DUОS]Дата: Пятница, 23 Сентября 2011, 16:47:42 | Сообщение # 105
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (SirNikolas)
Все будет так, как надо.

Поддерживаю. Локальные переменные создаются персонально.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

lawsonДата: Пятница, 23 Сентября 2011, 16:50:32 | Сообщение # 106
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (|DUОS|)
он регистрируется в памяти. Потом происходит его рецикл. Поэтому уничтожать не обязательно.

Мне и этого хватит, я не настолько заядлый оптимизатор.

Добавлено (23 Сентябрь 2011, 16:50:32)
---------------------------------------------

Quote (Ty3uK)
а мне нет

ты мне что то пытался доказать? или ты просто повторил слово в слово что тебе сказал дуос без понятия смысла!?


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Пятница, 23 Сентября 2011, 16:53:04 | Сообщение # 107
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (|DUОS|)
Во-первых, надо юзать Filter - он больше подходит, это filterfunc, которая для группонабора и писалась.
Quote (wiki.thehelper)
A conditionfunc is the type of boolexpr returned by the Condition function. Since it extends boolexpr, both conditionfuncs and filterfuncs are interchangeable as boolexprs.


 

[DUОS]Дата: Пятница, 23 Сентября 2011, 16:53:56 | Сообщение # 108
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (lawson)
ты просто повторил слово в слово что тебе сказал дуос без понятия смысла!?

Сейчас почитаю и скажу.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

lawsonДата: Пятница, 23 Сентября 2011, 16:54:14 | Сообщение # 109
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (SirNikolas)
both conditionfuncs and filterfuncs are interchangeable as boolexprs.

Понятно. Все просто.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Пятница, 23 Сентября 2011, 16:55:22
 

FatalBladeДата: Пятница, 23 Сентября 2011, 16:54:41 | Сообщение # 110
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (SirNikolas)
FatalBlade, хэш инициализируется вот так (Custom script): set udg_Hash = InitHashtable()

А то у меня есть подозрение, что ты делал так:
Create hashtable
Set Hash1 = Last created hashtable
Set Hash2 = Last created hashtable
Set Hash3 = Last created hashtable

Нет, я делал именно вот так (Custom script): set udg_Hash = InitHashtable(), но я инициировал 2 других хэша в самих триггерах где они нужны. Там я создавал базы данных для предметов и абилок.

Quote (|DUОS|)
Поддерживаю. Локальные переменные создаются персонально.

Так она глобальная))


 

[DUОS]Дата: Пятница, 23 Сентября 2011, 16:55:33 | Сообщение # 111
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
SirNikolas,
Тогда спрашивается - ЗАЧЕМ булэкспры разделили на ДВА типа?

Добавлено (23 Сентябрь 2011, 16:55:33)
---------------------------------------------

Quote (FatalBlade)
При инициализации карты.

FatalBlade,
Можно и в InitTrig_е


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

Ty3uKДата: Пятница, 23 Сентября 2011, 16:56:48 | Сообщение # 112
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Странно, Лавс почитай еще раз. Я не просто говорил, а приводил примеры, не?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Пятница, 23 Сентября 2011, 16:57:07 | Сообщение # 113
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (|DUОS|)
Тогда спрашивается - ЗАЧЕМ булэкспры разделили на ДВА типа?

boolexpr возвращает boolean в условии


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Пятница, 23 Сентября 2011, 17:01:03
 

SirNikolasДата: Пятница, 23 Сентября 2011, 16:59:13 | Сообщение # 114
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (FatalBlade)
2 других хэша в самих триггерах, где они нужны.
Событие этих триггеров - "Map initialization"?
Quote (|DUОS|)
Тогда спрашивается - ЗАЧЕМ булэкспры разделили на ДВА типа?
В Азероте много вещей, недоступных для понимания простым смертным...
Ладно, значит, буду юзать Condition - для условий и Filter - для фильтров.


 

lawsonДата: Пятница, 23 Сентября 2011, 17:00:34 | Сообщение # 115
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
Да, я про это и говорил и еще отдельно в local filterfunc f = Filter(function фильтр) и call GroupEnumUnitsInRange(группа, координата х, координата у, радиус, f), чтобы потом можно было сделать call DestroyFilter(f) и set f = null

Quote (Ty3uK)
Я просто переадресовал слова

Quote (Ty3uK)
Фильтр и кондишн- это ссылки, которые висят в памяти, если их не уничтожить, разве я не прав?

Quote (Ty3uK)
Я не называл, я процитировал Дусю


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Ty3uKДата: Пятница, 23 Сентября 2011, 17:02:07 | Сообщение # 116
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Вот, накидал в текстовый файл rghost.ru/22731051

Добавлено (23 Сентябрь 2011, 17:02:07)
---------------------------------------------
Давай далее, с примером про таймер. И перед этим еще что-то вроде писал, не?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Пятница, 23 Сентября 2011, 17:02:40 | Сообщение # 117
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
SirNikolas, тогда у меня к тебе вопрос. Для каждого спелла где используются группы юнитов надо создавать свою глобалку? Или хватит одной для всех. А то у меня есть куча спеллов где нужны группы. Например то же самое что и этот спелл, только вместо взрыва трупов, на их месте создаются ядовитые облака, которые наносят урон всем юнитам поблизости. Или же скилл наподобие Chain Lightning, только затронутые юниты отравляются. Или скилл что герой бьёт по земле, и всех врагов вокруг него отбрасывает. Для каждого такого спелла надо создавать свою группу?

 

Ty3uKДата: Пятница, 23 Сентября 2011, 17:03:29 | Сообщение # 118
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
"Я не называл, я процитировал
Дусю." Это вообще про нуба ты сказал, мол это я тебя так назвал :D


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Пятница, 23 Сентября 2011, 17:03:36 | Сообщение # 119
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (SirNikolas)
Событие этих триггеров - "Map initialization"?

Нет. call TriggerRegisterTimerEventSingle( gg_trg_Data, 1.00 )


 

lawsonДата: Пятница, 23 Сентября 2011, 17:03:55 | Сообщение # 120
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
Давай далее, с примером про таймер. И перед этим еще что-то вроде писал, не?

забудь!
Quote (Ty3uK)
Странно, Лавс почитай еще раз. Я не просто говорил, а приводил примеры, не?

Ты это начал.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Ty3uKДата: Пятница, 23 Сентября 2011, 17:03:59 | Сообщение # 121
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Я тебе и ответил. Ты это сейчас в цитату вывел

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Пятница, 23 Сентября 2011, 17:05:15 | Сообщение # 122
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (FatalBlade)
Для каждого такого спелла надо создавать свою группу?
Смотря что там делается. Если в группу просто записываются юниты и перебираются (мгновенное использование), тогда одну. Если же они в ней храняться некоторое время, пускай даже долю секунды, нужна отдельная.


 

Ty3uKДата: Пятница, 23 Сентября 2011, 17:06:35 | Сообщение # 123
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ладушки, забыли :) мне сейчас интересно, как же все-таки правильно :)

Добавлено (23 Сентябрь 2011, 17:06:35)
---------------------------------------------
rghost.ru/22731051 блэйд, это тебе


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Пятница, 23 Сентября 2011, 17:06:55 | Сообщение # 124
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Ty3uK, забей. я тебе говорил коди как хочешь с кондитион без него или с фильтром. а я буду по своему, ок? Я понимаю если бы дуос начал меня учить или сирниколас.

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FatalBladeДата: Пятница, 23 Сентября 2011, 17:07:50 | Сообщение # 125
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (SirNikolas)
function Trig_Explode_Corpses_Conditions takes nothing returns nothing
return GetSpellAbilityId() == 'A0QT'
endfunction

return nothing или return boolean? Это ведь Conditions


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Оптимизация спелла, где используются группы (Как?)
  • Страница 5 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

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