XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
SRes
1110101000
offline
Опыт: 9,997
Активность:
Утечки ? В НАТИВКАХ !
Код:
call IssuePointOrder(GetAttacker(), "shockwave", GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()))

Вызывает утечку или же сам спел (он как дамми спел, все параметры округленны и ничего по сути не делает, только точку показывает куда уже действовать моим системам).
Забавно, я искал 7 часов в своих системах утечку, а они оказались в нативах ! Я отключил ВСЕ триггеры, которые могут вообще что-либо делать. Т.е. сейчас в мапе есть только 1 триггер, который говорит юниту вместо атаки кидать спел.
» Trigger
Код:
function Trig_Defenders_AI_Actions takes nothing returns nothing

    if GetUnitTypeId(GetAttacker()) == 'h000' then
        call IssueImmediateOrder(GetAttacker(),"stop")
        call IssuePointOrder(GetAttacker(), "shockwave", GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()))
    endif
    
endfunction

//===========================================================================
function InitTrig_Defenders_AI takes nothing returns nothing
    set gg_trg_Defenders_AI = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Defenders_AI, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddAction( gg_trg_Defenders_AI, function Trig_Defenders_AI_Actions )
endfunction

При закоментировании IssuePointOrder(...) ФПС не падает, при ее "включении" после пары секунд "стрельбы" юнитов ФПС умирает, хотя, все мои системы, которые подхватывают момент и действуют - выключены, и одно из двух
1) В движке вара дырка, утечка в стандартном спеле
2) В движке вара дырка, утечка в нативках
Я хочу услышать :
"Как решить проблему ?"
Примечание : Юнитов, которые стреляют на карте специально много (штук 60-100).

Отредактировано SRes, 09.03.2009 в 12:38.
Старый 09.03.2009, 12:30
ScorpioT1000
Работаем
offline
Опыт: отключен
а так?
Код:
function Trig_Defenders_AI_Actions takes nothing returns nothing
    local unit t = GetTriggerUnit()
    local unit c = GetAttacker()
    if GetUnitTypeId(c) == 'h000' then
        call IssueImmediateOrder(c,"stop")
        call IssuePointOrder(c, "shockwave", GetUnitX(t), GetUnitY(t))
    endif
    set t = null
    set c = null
endfunction

вобще помню, TC говорил, что в ордерах есть утечки. да и сам я пробовал.
Старый 09.03.2009, 12:42
Manhant
Убежал
offline
Опыт: 14,787
Активность:
утечек в нативке неможет быть попробуй так
Код:
function Trig_Defenders_AI_Actions takes nothing returns nothing
    if GetUnitTypeId(GetAttacker()) == 'h000' then
        call IssueImmediateOrderById(GetAttacker(),'Id приказа стоп')
        call IssuePointOrderById(GetAttacker(),'Id твоего спелла', GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()))
    endif
endfunction

//===========================================================================
function InitTrig_Defenders_AI takes nothing returns nothing
    set gg_trg_Defenders_AI = CreateTrigger(  )
    local integer i = 0
    loop
     exitwhen i>11
         call TriggerRegisterPlayerUnitEvent(gg_trg_Defenders_AI,Player(i), EVENT_PLAYER_UNIT_ATTACKED,null)
       set i=i+1   
     endloop
     set i = 0
   call TriggerAddAction( gg_trg_Defenders_AI, function Trig_Defenders_AI_Actions )
endfunction
Старый 09.03.2009, 12:44
agentex

offline
Опыт: 34,834
Активность:
в данной функции утечки нет, однако советую заменить ее на IssuePointOrderById, все таки инты побыстрее строк
Старый 09.03.2009, 12:45
SRes
1110101000
offline
Опыт: 9,997
Активность:
ScorpioT1000, Аналогично.
manhant, local integer i = 0, у тебя в коде ошибка. Т.к. не дает создать локалку, щас попробую с глобалкой, фиг с ним... Глобалка тоже не спасла.
agentex, А какой id у attack?
P.S., Гы... В обнуленном спеле дырка ? о.О Ибо как раз во время его юза начинаются массовые лаги (многократного, конечно)
P.S.2,
Код:
call IssuePointOrderById(GetAttacker(),'ShAI', GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()))
Убило вар на-а-амного быстрее...
Старый 09.03.2009, 12:48
agentex

offline
Опыт: 34,834
Активность:
manhant каким образом ты добавляеш евенты нет разницы, это никак не отразится на последущих срабатываниях тригера, тем более БЖ делает тоже самое что и ты написал

agentex добавил:
SRes, 851983
Старый 09.03.2009, 12:50
Manhant
Убежал
offline
Опыт: 14,787
Активность:
SRes обнуление локалки происходит после ее использования agentex я не только событие поменял).
Старый 09.03.2009, 12:57
agentex

offline
Опыт: 34,834
Активность:
Цитата:
обнуление локалки происходит после ее использования

ты о чем? у тебя локалка обьявляется после set gg_trg_Defenders_AI = CreateTrigger( ), карта тупо не сохранится...
Цитата:
agentex я не только событие поменял).

угу после моего поста
Старый 09.03.2009, 13:08
SRes
1110101000
offline
Опыт: 9,997
Активность:
Вот...
» Скрин (170 кб)
удален супермодератором

Это еще только начало, потом падает до 5... и т.д.
Я правила читал, но не думаю, что юкоз как хостинг картинок не подойдет... =\
Все-ровно - уже не важно.
[+] замечание от NETRAT: пункт 10 правил форума

Отредактировано SRes, 09.03.2009 в 13:32.
Старый 09.03.2009, 13:09
adic3x

offline
Опыт: 108,439
Активность:
шок вейв (стандартный спел вара) вызывает тераморф, тераморф при некоторых ситуациях считаеться очень медленно
автору заменить шок вейв к примеру на огненное дыхание и отписаться о результатах (оно же без тераморфа?)
Старый 09.03.2009, 13:15
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
ADOLF
Вроде да. Плюс... уж очень много юнитов, вар может тупо из-за этого начать тормозякать.
Старый 09.03.2009, 13:17
Manhant
Убежал
offline
Опыт: 14,787
Активность:
agentex ну можно и триггер в локалку привратить велика проблема)
P.S в моем посту написанно сообщение отредактированно?
Старый 09.03.2009, 13:18
SRes
1110101000
offline
Опыт: 9,997
Активность:
ОГРОМНОЕ СПАСИБО !
Только я заменил долбаный "shockwave" на "breathoffire" СРАЗУ все стало на свои места, карта спасена от гибели, и еще раз thx !
Старый 09.03.2009, 13:31
adic3x

offline
Опыт: 108,439
Активность:
покупайте наших слонов ©
Старый 09.03.2009, 13:43
Toadcop

offline
Опыт: 54,313
Активность:
ну да ордеры дают утечки (почему даже неясно...) было проверено не раз и не тока мною. утечки маленькие но если на карте всего много и т.п. то рост требования памяти неизбежим...
(это про утечки)
ну а в целом тема о террайн деформах ^_^ как я понял...
Старый 11.03.2009, 14:33
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 08:57.