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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Заклинание вызывающее лаги
Vova5009Дата: Четверг, 28 Октября 2010, 19:51:08 | Сообщение # 1
8 уровень
Группа: Проверенные
Сообщений: 577
Награды: 0
Репутация: 125
Блокировки:
Заклинание состоит из 4 триггеров (не считая стартового)
1 создает в позиции героя(Point[1]) столько даммиков, сколько есть врагов в группе (Targets все юниты в радиусе 450 без баффа кандалыи не являющимися союзниками castera) и заносит даммиков в группу .Переодический каждые 0.10 секунд, в конце трига присутствуют call RemoveLocation(udg_Point[1]) и call DestroyGroup(udg_Targets)
2 проверяет, есть ли на кастере бафф заклинания, и если нет идет выключение всех тригов и обнуление всех переменных(Всех, которые используются)
3.Переодически выбирает всех дамми в группе даммиков и делает:
call SetUnitX (( GetEnumUnit() ), (GetUnitX (udg_Caster2)))
call SetUnitY (( GetEnumUnit() ), (GetUnitY (udg_Caster2)))
Группа потом обнуляется
4. Проверяет, применяет ли даммик способность и если нет, то удаляет его из группы и из игры.

Проблема в том, что при применении (заклинание дейстыует 20 сек) Постепенно наращиваются БЕШЕННЫЕ лаги, такие, что вар просто вылетает. Почему так? Все утечки я устраняю, а jass их и не вызывает (3 триг). Но откуда тогда лаги? Даже если врагов штук 5, всеравно лаги бешеные. Обьясните мне, пожалуйста)

 

rixt7956Дата: Четверг, 28 Октября 2010, 20:14:59 | Сообщение # 2
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Скинь полный код

Добавлено (28-10-2010, 20:14)
---------------------------------------------

Quote (Vova5009)
Хочу учится Jass
http://xgm.ru/page/164
 

Vova5009Дата: Четверг, 28 Октября 2010, 20:46:09 | Сообщение # 3
8 уровень
Группа: Проверенные
Сообщений: 577
Награды: 0
Репутация: 125
Блокировки:
rixt7956, Ту статейку на XGM я уже читал)



Добавлено (28-10-2010, 20:46)
---------------------------------------------
Единственное, что уменьшает лаги (немного) это вот такая команда:
call DoNotSaveReplay()
Но все равно, заклинание лагает, пусть игра и не вылетает

 

DarkVaderДата: Четверг, 28 Октября 2010, 23:31:09 | Сообщение # 4
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
Vova5009, попробуй сделать проверку удаляются ли дамми из игры, поставь им модельку и проюзай спел, это очень хорошо помогает выявить некоторые ошибки и утечки с использованием дамми.

вместо ForGroupBJ, используй просто ForGroup() , и зачаем вообще собственно нужен 2 триггер? и почему их столько?

обьясни что спел делает?

 

Vova5009Дата: Пятница, 29 Октября 2010, 00:06:08 | Сообщение # 5
8 уровень
Группа: Проверенные
Сообщений: 577
Награды: 0
Репутация: 125
Блокировки:
DarkVader, Я сделал проверку, удаляются.
Спелл создает вокруг героя щит, который Захватывает в кандалы всех вокруг вокруг героя с эффектом молнии)
2 триг нужен для того, чтобы перемешать кастующих даммиков в позицию героя, перемещает их по Х и у, они не прекращают каст.
А их столько, потому что мне удобнее редактировать их каждый по отдельности)
 

DarkVaderДата: Пятница, 29 Октября 2010, 00:50:55 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
По поводу 3 триггера, не проще ли сразу добавлять юнитов в группу только тех которые не имеют опредленного бафа, почему цель приказа случайный юнит из группы а не выбранный юнит? функция через которую ты создаешь дамми оч плохая функция=(

и по 5 триггеру нет разрушения группы дамми через кастом скрипт

во 2 поменяй ForGroupBJ на ForGroup

а вообще лучше спел сделать на jass, и лагов точно не будет к тому же все поместится в один триггер

Добавлено (29-10-2010, 00:50)
---------------------------------------------
вот посмотри как выглядит функция через которую ты создаешь дамми

Code

function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
     call GroupClear(bj_lastCreatedGroup)
     loop
         set count = count - 1
         exitwhen count < 0
         call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
         call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
     endloop
     return bj_lastCreatedGroup
endfunction

она мало того выполняет бесполезные действия, но еще и по ходу утечна...

попробуй вместо нее кастом скриптом вставить CreateUnitAtLoc или просто CreateUnit но она по координатам

 

ЭллесарДата: Пятница, 29 Октября 2010, 01:18:47 | Сообщение # 7
DeMoN
Группа: Ветераны
Сообщений: 934
Награды: 1
Репутация: 210
Блокировки:
тему не читал, но автор уверен, что не создаются дамминки для каждой даминки в этой области ?

база паролей: https://yadi.sk/d/mdDhWuvPcTSKw
бекап сайта от 26.12.2010 https://yadi.sk/d/L3xNpibbiHpYE
 

DarkVaderДата: Пятница, 29 Октября 2010, 01:45:50 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
Quote (Эллесар)
тему не читал, но автор уверен, что не создаются дамминки для каждой даминки в этой области ?

ну это можно проверить через дамми с моделью=)))

Добавлено (29-10-2010, 01:45)
---------------------------------------------
Что я собственно уже говорил=)

 

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

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