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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
утечки
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
Блокировки:
Понятия не имею почему он у тебя ругаеться (((
ЗЫ: зачем ты создал глобалки? ОО
 

  • Страница 1 из 1
  • 1
Поиск:

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