Карта абсолютно не играбельна на слабых машинах.
Три совета.
1. Таймеры если стоят на 0.02 поднимай до 0.3125 или 0.4 потери в качестве нулевые.
2. У тебя recycle или destroy?
3. Добавь систему отрубания doodadov без текстуры путей.
Форум Записи участника |
Результаты поиска |
Tzimisce#211 | Тема: Новая версия! 0.9.8Карта абсолютно не играбельна на слабых машинах.
Три совета. 1. Таймеры если стоят на 0.02 поднимай до 0.3125 или 0.4 потери в качестве нулевые. 2. У тебя recycle или destroy? 3. Добавь систему отрубания doodadov без текстуры путей. |
Tzimisce#212 | Тема: Новая версия! 0.9.8Quote (|DUOS|) Ресайклинг был бы грамотнее, но там пока сплошь дестрои... Пока. Карта v и cJass'ы абсолютно не юзает ;] Конечно грамотнее. Создал 50 юнитов, и юзаешь их, для эффектов, для даммикастов и прочих няшечек. Создал бы также один таймер, и просто на нём запускал бы в лупе требуемые проверки (ну функции от таймера, там вообще же easy по типу:) Code timer func if count.spellID>0 then ExecuteFunc("SpellFunc") endif Ты бы грубо говоря разгрузил бы общий поток, отчего некоторые спеллы подлагивают, и просто бы с экономил бы на времени запуске карты, в плане кода, ей не придётся предлоадить 1000 триггеров. Ну и можно конечно юзать спецсистемы. Аля моей, кастер системы, которая разгружает триггеры вообще полностью. Quote (|DUOS|) Дунно, некоторые требуют периода 0.04 для плавности. Понятно я думал у тебя более тактовые движения есть (32 кадра или все 40). Quote (|DUOS|) Думать буду, что ещё сказать. думай :] |
Tzimisce#213 | Тема: 0.9.9 или Проект ещё жив!Так и быть, делюсь с тобой своей системкой Recycling'a а то, ну очень. ОЧЕНЬ мне не по нраву то, что сейчас имеется в 0.98
Code glovals private timer array FT private group array GT private unit array UT private integer FC = 0 private integer GC = 0 private integer UC = 0 endglobals function GetTimerBR takes nothing returns timer if (FC==0) then set FT[0]=CreateTimer() else set FC=FC-1 endif return FT[FC] endfunction function RecycleTimer takes timer t returns nothing if t==null then return elseif FC==8191 then call DestroyTimer(t) return endif call PauseTimer(t) set FT[FC]=t set FC=FC+1 endfunction function GetGroupBR takes nothing returns group if (GC==0) then set GT[0]=CreateGroup() else set GC=GC-1 endif return GT[GC] endfunction function RecycleGroup takes group g returns nothing if g==null then return elseif GC==8191 then call GroupClear(g) call DestroyGroup(g) return endif call GroupClear(g) set GT[GC]=g set GC=GC+1 endfunction function GetUnitBR takes nothing returns unit if (UC==0) then set UT[0]=CreateUnit(Player(15),'dmmy',0,0,0) call SetUnitPathing(UT[0],false) else set UC=UC-1 call ShowUnit(UT[UC],true) endif call UnitAddAbility(UT[UC],'Aloc') return UT[UC] endfunction function RecycleUnit takes unit u returns nothing if u==null then return elseif UC==8191 then call RemoveUnit(u) return endif call ShowUnit(u,false) call IssueImmediateOrder(u,"stop") call SetUnitScale(u,1,1,1) call SetUnitTimeScale(u,1) call SetUnitVertexColor(u,255,255,255,255) call SetUnitFlyHeight(u,GetUnitDefaultFlyHeight(u),0) call SetUnitOwner(u,Player(15),true) call UnitRemoveAbility(u,'Aloc') set UT[UC] = u set UC = UC + 1 endfunction |
Tzimisce#214 | Тема: Огромные лагиЭто просто
1. Создаются локации которые не удаляются (не вижу целиком функцию, но случайный юнит в группе, создаёт еще и не удалённую группу). Итого две переменные, с периодом в 0.01 секунду. Все ясно, не удивительные лаги, с таким кривым кодом. |
| ||