Сейчас 05:28:57 Четверг, 25 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Посоны, важно!!!!!)))0
Посоны, важно!!!!!)))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)
нет, уверяю тебя, все твои действия со способностями, как бы ты этого не хотел, не смогут вызвать утечек

Мне кажется, что отряды, убивающий юнит + точка - это все утечки. Но их на гуи исправлять еще более геморойно, чем со спецэфектами.
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Посоны, важно!!!!!)))0
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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