утечки
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 16:35:26 | Сообщение # 1 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| Допустим: Событие - каждую секунду условие - Действие - взять всех юнитов в регионе вся карта (под бафом толчек) ________боевая единица - двигать мгновенно (юнит позиция блаблабла) Как избавиться от утечки "взять всех юнитов", не заносить же их всех в переменную с массивом и как оптимизировать этот триг (если выхода нет) чтобы масивы друг друга не перезаписывали если юнит все еще под эффектом толчка.
|
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 16:37:37 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| xGaDx, это легко делаеться на жассе безо всяких массивов
|
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 16:42:16 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| ага спс мне это помогло, мб кусок этого скрипта покажешь?
|
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 16:52:36 | Сообщение # 4 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| Code local group gr=CreateGroup() local unit g set gr=GetUnitsInRectAll(GetPlayableMapRect()) loop set g=FirstOfGroup(gr) exitwhen g==null if IsUnitType(g, UNIT_TYPE_STRUCTURE) == false and GetWidgetLife(g) > 0.405 and GetUnitAbilityLevel(g, buffcode) > 0 then // твои действия // над юнитом endif call GroupRemoveUnit(gr,g) endloop call DestroyGroup(gr) set gr=null set g=null
|
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 17:19:46 | Сообщение # 5 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| Можешь прям весь скрипт показать или наработку чтоб в ней покопаться? не сильно шарю в жасе так то понятно как работает а всетки ошибок куча вылезло D:
|
|
|
|
Ramazan(off) | Дата: Четверг, 02 Сентября 2010, 17:21:58 | Сообщение # 6 |
11 уровень
Группа: Проверенные
Сообщений: 1670
Награды: 1
Репутация: 775
Блокировки:
| xGaDx, он тебе всю дал. Там где он написал про действия - это и есть твои действия. Их надо на джассе оформить.
|
|
|
|
Эллесар | Дата: Четверг, 02 Сентября 2010, 17:25:18 | Сообщение # 7 |
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
| А можно воспользоваться cjass'ом и сделать так, чтобы эта функция не вызывало утечек. ток придется качать cjass
база паролей: https://yadi.sk/d/mdDhWuvPcTSKw бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
|
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 17:48:27 | Сообщение # 8 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| Ramazan(off), повторюсь, я неочень в жасе. мануалы с хгма обучили совсем слегка, создал триг вбил то что он мне дал создал 2 переменные группа юнитов и юнит с такими названиями gr и g, вбил иди бафа попробовал сохранить выдало ошибок штук 100. Или типа если я впишу действие все 100 ошибок пропадут? Не поленитесь и сделайте наработку тем более что скрипт уже есть. Ответ Эллесар-а вообще нечего не дал.
|
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 18:00:48 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| xGaDx, ну естественно просто копирнуть это не получеться =) Это для примера. Опиши поподробнее что нужно и если я сейчас не усну то напишу прям тут
|
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 18:26:02 | Сообщение # 10 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| Как заставить это работать (отдельным тригом а не вписывать в саму карту)
|
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 18:57:05 | Сообщение # 11 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| xGaDx, короче я так и не понял что тебе нужно, понял лишь что нужно толкать кудато того, у кого есть определенный бафф. Вобщим делаешь так: Создаешь переодический триггер с периодом 0.03 - 0.05 с Конвертируеш в текст И вставляешь в функцию вот это: Code local group gr=CreateGroup() local unit g local real x local real y local real ang set gr=GetUnitsInRectAll(GetPlayableMapRect()) loop set g=FirstOfGroup(gr) exitwhen g==null if IsUnitType(g, UNIT_TYPE_STRUCTURE) == false and GetWidgetLife(g) > 0.405 and GetUnitAbilityLevel(g, buffcode) > 0 then set x=GetUnitX(g) set y=GetUnitY(g) set ang=GetUnitFacing(g) call SetUnitX(g, x + 30*Cos(ang)) call SetUnitY(g, y + 30*Sin(ang)) endif call GroupRemoveUnit(gr,g) endloop call DestroyGroup(gr) set gr=null set g=null Этот триггер будет каждые N секунд двигать всех юнитов с баффом на дистанцию 30 и на угол их поворота. Только тут GetUnitAbilityLevel(g, buffcode) вместо "buffcode" нужно вставить ID твоего баффа и все. Можно еще сделать проверку на проходимость, чтоб не перемещало юнита на клиффы и декор.
Сообщение отредактировал Banzay89 - Четверг, 02 Сентября 2010, 18:57:50 |
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 19:20:23 | Сообщение # 12 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| if IsUnitType(g, UNIT_TYPE_STRUCTURE) == false and GetWidgetLife(g) > 0.405 and GetUnitAbilityLevel(g, buffcode) > 0 then <- Отсутствует название call SetUnitY(g, y + 30*Sin(ang)) <- Отсутствует endloop
|
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 19:26:09 | Сообщение # 13 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| Quote if IsUnitType(g, UNIT_TYPE_STRUCTURE) == false and GetWidgetLife(g) > 0.405 and GetUnitAbilityLevel(g, buffcode) > 0 then <- Отсутствует название ну бля я же говорил заменить buffcode на ID баффа ! Quote call SetUnitY(g, y + 30*Sin(ang)) <- Отсутствует endloop Тут все правильно! Инфа 100%Добавлено (02-09-2010, 19:26) --------------------------------------------- Ты вставлял свой бафф в код ?????
|
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 19:40:10 | Сообщение # 14 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| дада я просто твою строчку скопировал
|
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 19:46:15 | Сообщение # 15 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| xGaDx, ну вот, а нужно вставить ID баффа, тогда ругаться не будет
|
|
|
|
xGaDx | Дата: Четверг, 02 Сентября 2010, 19:58:41 | Сообщение # 16 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| повторюсь : if IsUnitType(g, UNIT_TYPE_STRUCTURE) == false and GetWidgetLife(g) > 0.405 and GetUnitAbilityLevel(g, B000) > 0 then <- тоже самое ааа грусть! он ушел
Сообщение отредактировал xGaDx - Четверг, 02 Сентября 2010, 20:08:27 |
|
|
|
Banzay89 | Дата: Четверг, 02 Сентября 2010, 21:13:48 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| xGaDx, я ничего не знаю, проблема с тобой и только с тобой! Только что я скопировал код к себе в карту и у меня все нормально! Редактор не ругаеться
Сообщение отредактировал Banzay89 - Четверг, 02 Сентября 2010, 21:15:03 |
|
|
|
xGaDx | Дата: Пятница, 03 Сентября 2010, 14:13:34 | Сообщение # 18 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| Где здесь косяк?
Сообщение отредактировал xGaDx - Пятница, 03 Сентября 2010, 14:15:03 |
|
|
|
Banzay89 | Дата: Пятница, 03 Сентября 2010, 18:48:54 | Сообщение # 19 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| xGaDx, хз.. твой спойлер не открываеться..
|
|
|
|
xGaDx | Дата: Пятница, 03 Сентября 2010, 18:52:16 | Сообщение # 20 |
6 уровень
Группа: Проверенные
Сообщений: 235
Награды: 0
Репутация: 47
Блокировки:
| в нем картинка весит 4 мб, ждать надо
|
|
|
|
Banzay89 | Дата: Пятница, 03 Сентября 2010, 19:11:17 | Сообщение # 21 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| Понятия не имею почему он у тебя ругаеться ((( ЗЫ: зачем ты создал глобалки? ОО
|
|
|
|