Посоны, важно!!!!!)))0
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 21:53:52 | Сообщение # 1 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Крч, мне сделал алгоритм на GUI, который удаляет спецэффект, который вызывается с вероятностью 100% при убийстве юнита. В итоге удаляются не все спецэффекты, т.к. алгоритм повторяется снова и снова, а за время действия спецэффекта переменная не успевает обнулиться ( call DestroyEffect (udg_hands) ) и появляется утечка. Отсюда вопрос - как мне убрать утечки, из-за которых даже после 15 сек спецэффект остаётся.
|
|
|
|
Borodach | Дата: Четверг, 16 Августа 2012, 21:56:34 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| DEMON_CHETS_V2, используй локальные переменные или хэш-таблицу
Karamba
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 21:57:41 | Сообщение # 3 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Я ими не умею пользоваться ими))))))0000000000000000
|
|
|
|
Borodach | Дата: Четверг, 16 Августа 2012, 22:01:53 | Сообщение # 4 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| local effect e Cоздаешь еффект заносишь в переменную Е set e = udg_название переменной с эффектом ждать или еще что там set udg_название переменной с эффектом = e удаляешь еффект из своей переменной
Karamba
Сообщение отредактировал Borodach - Четверг, 16 Августа 2012, 22:02:45 |
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:03:02 | Сообщение # 5 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| всемвсем
|
|
|
|
Slonick | Дата: Четверг, 16 Августа 2012, 22:03:38 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1688
Награды: 0
Репутация: 247
Блокировки:
| Или локалки, или мастурбация массивов с циклом.
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:04:33 | Сообщение # 7 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Quote (Borodach) local effect e Cоздаешь еффект заносишь в переменную Е set e = udg_название переменной с эффектом ждать или еще что там set udg_название переменной с эффектом = e удаляешь еффект из своей переменной как это решит проблему?
|
|
|
|
Slonick | Дата: Четверг, 16 Августа 2012, 22:04:52 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1688
Награды: 0
Репутация: 247
Блокировки:
| Или локалки, или мастурбация массивов с циклом.
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:04:57 | Сообщение # 9 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Quote (Slonick) Или локалки, или мастурбация массивов с циклом. насчёт массивов и циклов поподробнее.
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:06:10 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| DEMON_CHETS_V2, ты на гуи и так удаляешь спец эффект, не стоит делать это и кастом скриптно, выбери что-то одно ---- если ты не понял, утечек нет, проблема не в удалении эффекта ---- ой, пордон, это глобалки и тут вейты, щас вкурил, напишу исправленный вариант
Сообщение отредактировал Hexing - Четверг, 16 Августа 2012, 22:08:10 |
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:07:47 | Сообщение # 11 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Quote (Hexing) DEMON_CHETS_V2, ты на гуи и так удаляешь спец эффект, не стоит делать это и кастом скриптно, выбери что-то одно ---- если ты не понял, утечек нет, проблема не в удалении эффекта тогда почему эффект остаётся после всего алгоритма?
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:11:00 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
|
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:15:32 | Сообщение # 13 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| мне с комментариями, плс, я слабый гуишник.
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:18:26 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| DEMON_CHETS_V2, статья думаю лучше этой статьи тебе ничто не объяснит смысл локальных переменных
Сообщение отредактировал Hexing - Четверг, 16 Августа 2012, 22:18:44 |
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:19:48 | Сообщение # 15 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Я имел в виду комментарии, что делает то или иное действие на скриншоте. Например на бла-бла должны быть мои остальные действия. е и е2 - локальные переменные? нужно ли их создавать? их можно делать массивными?
|
|
|
|
sumert | Дата: Четверг, 16 Августа 2012, 22:21:42 | Сообщение # 16 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| Quote (Hexing) если ты не понял, утечек нет, проблема не в удалении эффекта Ну-ну. Если убийства случаются чаще 15 секунд, то утечки-то есть. Не путай парня. DEMON_CHETS_V2, тебе тут правильно говорили. Итак, удали нафиг глобальную переменную hands Создавай локальные переменные: local effect e1 и local effect e2. Затем set e1=AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl", GetKillingUnitBJ(), "left") set e2=AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl", GetKillingUnitBJ(), "right") Этими командами ты одновременно и создашь эффект и тут же их присвоишь переменным e1 и e2. Только потом надо еще исправить утечку GetKillingUnitBJ(). создаешь локалку типа юнит и её присваиваешь этого юнита. Ладно, вернемся к эффектам. Где ты их уничтожаешь пиши вот это: call DestroyEffect( e1) call DestroyEffect( e2) set e1=null set e2=null. Надеюсь, так яснее?
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:22:07 | Сообщение # 17 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| и да, если другой юнит будет использовать этот же триггер, то утечек не будет? просто юнита планируется делать не в одном экземпляре
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:22:34 | Сообщение # 18 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (DEMON_CHETS_V2) Я имел в виду комментарии, что делает то или иное действие на скриншоте. Например на бла-бла должны быть мои остальные действия. е и е2 - локальные переменные? нужно ли их создавать? их можно делать массивными? я уже всё сделал, в блабла ты даёшь свои способности или что там у тебя вместо эффекта и центра карты создаёшь свой эффект там где тебе надо(в руках) e и e2 - локалки, как ты правильно заметил set e = bj_lastCreateEffect задаёт им значение последнего созданного эффекта спустя время эффекты уничтожаются знакомым тебе DestroyEffect()ом а локалки обнуляются set e = null, что необходимо в случае локальных переменных во избежание утечек
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:23:32 | Сообщение # 19 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Что насчёт способностей "перчатка скорости"? Мне кажется, что здесь будет тоже утечка.
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:23:42 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (sumert) Ну-ну. Если убийства случаются чаще 15 секунд, то утечки-то есть. Не путай парня. DEMON_CHETS_V2, тебе тут правильно говорили. Итак, удали нафиг глобальную переменную hands Создавай локальные переменные: local effect e1 и local effect e2. Затем set e1=AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl", GetKillingUnitBJ(), "left") set e2=AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl", GetKillingUnitBJ(), "right") Этими командами ты одновременно и создашь эффект и тут же их присвоишь переменным e1 и e2. Только потом надо еще исправить утечку GetKillingUnitBJ(). создаешь локалку типа юнит и её присваиваешь этого юнита. Ладно, вернемся к эффектам. Где ты их уничтожаешь пиши вот это: call DestroyEffect( e1) call DestroyEffect( e2) set e1=null set e2=null. Надеюсь, так яснее? видимо ты ооочень долго писал пост думаю автору рано так глубоко лезть в дебри jass, по очевидным причинам
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:24:01 | Сообщение # 21 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| я не знаю кого мне слушать :с
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:24:24 | Сообщение # 22 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (DEMON_CHETS_V2) Что насчёт способностей "перчатка скорости"? Мне кажется, что здесь будет тоже утечка. нет, уверяю тебя, все твои действия со способностями, как бы ты этого не хотел, не смогут вызвать утечек
|
|
|
|
DEMON_CHETS_V2 | Дата: Четверг, 16 Августа 2012, 22:25:27 | Сообщение # 23 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Quote (Hexing) думаю автору рано так глубоко лезть в дебри jass, по очевидным причинам bj такой сильный jassДобавлено (16 Августа 2012, 22:25:27) --------------------------------------------- если делать по варианту саммерта, то всё будет norm?
|
|
|
|
Hexing | Дата: Четверг, 16 Августа 2012, 22:25:37 | Сообщение # 24 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (DEMON_CHETS_V2) bj такой сильный jass очень информативно, вопрос решён?
|
|
|
|
sumert | Дата: Четверг, 16 Августа 2012, 22:26:05 | Сообщение # 25 |
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
| Quote (Hexing) нет, уверяю тебя, все твои действия со способностями, как бы ты этого не хотел, не смогут вызвать утечек Мне кажется, что отряды, убивающий юнит + точка - это все утечки. Но их на гуи исправлять еще более геморойно, чем со спецэфектами.
|
|
|
|