Облегчение карты .
|
|
| Дата: Пятница, 22.07.2011, 15:09 | Сообщение # 1 |
Рядовой
Сообщений: 8
|
Дамы и господа , прошу не ругаться матом ... И выслушать меня до , конца . Недавно , мною было принято решение , создать карту . Но не простую ... Карта включает в себя , много жанров ... Основной RPG и Выживание . Но! карта включает в себя также , Castle Defence Симулятор жизни А так-же , битвы на аренах ... Собственно , создаю кампанию для игры по интернету . И сейчас , нахожусь на гране , срыва нервной системы ... Так как карта , размера гигант ... Было принято решение , не включать 90% моделей отобранных , для карты . ( для облегчения ) . За первых 5 минут игры , я использовал порядка 60 триггеров ... Основанных , на областях . Так как я понимаю , что карта будет неимоверно глючить ... Мне требуется , после каждого события удалять области и триггеры , для её облегчения ... Но как это сделать я не знаю ... Если кто , сможет мне помочь ... Буду неимоверно рад ... А если кто -то согласиться консультировать меня в вопросах ( я не назойливый , вопросы задаю редко))) То могу гарантировать , почетное место , в благодарностях карты . (с Jass , я не очень лажу ...))) С ув.Георгий
|
|
|
|
| Дата: Пятница, 22.07.2011, 15:15 | Сообщение # 2 |
Генералиссимус
Сообщений: 2438
|
Quote (Tamplierik) (с Jass , я не очень лажу ...))) С ним не надо ладить, надо им умело пользоваться а если не уметь, то ваша затея с онлайн картой обречена.
Ща погляжу, что бы такого накидать вам полезного.
Quote (Tamplierik) Было принято решение , не включать 90% моделей отобранных , для карты . ( для облегчения ) . Вес карыт не основная проблема, разве вы хотите чтоб в вашу карту играли через gprs ? нет? Тогда зачем подстраиваться под тех у кого нет нормального интернета. Основное ограничение это размер для сетевой игры... но если у вас столько моделей, что и он привышается, то тут уже вопрос к тем кто создавал модели. В ртс модели по метру, зачем ?)
Ну да ладно, не моё дело, ща подумаю какие статьи рекомендовать по утечкам...
P.S. не вычитал ничего того, что может привести к большим проблемам. Ваша идея с регионами надуманна либо коряво написан триггер.
Сообщение отредактировал DonLaonda - Пятница, 22.07.2011, 15:16 |
|
|
|
| Дата: Пятница, 22.07.2011, 15:33 | Сообщение # 3 |
Рядовой
Сообщений: 8
|
Quote (DonLaonda) а если не уметь, то ваша затея с онлайн картой обречена
Я делаю все в основном , на триггерах и переменных , пока что , я не нуждался в Jass ... Но все же ... я понимаю что это , вопрос времени ...
Quote (DonLaonda) Ща погляжу, что бы такого накидать вам полезного.
Был бы очень рад , если вас , не затруднит .
Quote (DonLaonda) Ваша идея с регионами надуманна либо коряво написан триггер.
Вроде бы , все нормально . На данный момент нет не утечек , ни лагов . И карта довольно быстро загружается ... Но. Я сделал наверное , всего 2% из 100% того что будет , и уже 60 триггеров и 35 областей . Вот и задумался ... Что будет дальше? Даже если я создам триггер , и после перехода в новую локацию , будут удалятся все декорации и юниты в старой . Это не облегчит карту на столько , чтобы компенсировать 1000 триггеров , и кучу , областей ... P.S Читал до этого ваши комментарии , в других темах ... Большое спасибо , очень они помогли , в неких областях картостроения . Приятно когда , человек пишит внятно и понятно , как и что .
|
|
|
|
| Дата: Пятница, 22.07.2011, 15:45 | Сообщение # 4 |
Генералиссимус
Сообщений: 2438
|
Локальные переменные, знать обязательно. http://wc3.3dn.ru/forum/88-1627-1
Этих знаний вам будет достаточно что бы записывать с помощью кустом скрипта любые объекты в локалки и локалки в глобалки и наоборот.
Для избежания утечек с регионами, попробуйте использовать координаты, но не действие location(x,y), а именно указание x, y точек без всяких локов.
Так же можно заранее создавать переменную location и присваивать ей location(x,y)
Т.е. заменяете существующие региона на его центр, например если раньше был триггер: Создать юнита в центре локации "локация1"
То теперь триггер будет выглядеть так:
local location loc93 = Location(59, -314) Создать юнита в loc93 - тут вам придется скопировать триггерное действие в отдельный триггер и через меню - Правка, конвертировать в текст. Полученный код, это одна строчка: call CreateNUnitsAtLoc( .... ) Вот внутри скобок ещё будут параметры, заменяем регон на loc93
В конце добавляем, через кустом скрипт: call RemoveLocation(loc93) Это действие уничтожит созданную вначале триггера локацию.
Для обнудления переменных типа юнит и эффект, локация используйте: set перменная нита или эффекта = null
Эта функция обнулит саму ссылку на эффект или юнит но не удалит эффект или юнит. Удаление самого эффекта или юнита надо делать до обнуления переменных, при помощи стандартных средств RemoveUnit RemoveEffect - стандартные триггеры.
Реальные и целочисленные нет необходимости обнулять, но если прям хочется и делать нечего то: set переменная = 0 - для целочисленных set переменная = 0,00 - для реальных.
Надеюсь я ответил на ваши вопросы.
Сообщение отредактировал DonLaonda - Пятница, 22.07.2011, 15:56 |
|
|
|
| Дата: Пятница, 22.07.2011, 15:54 | Сообщение # 5 |
Генералиссимус
Сообщений: 2438
|
Quote (Tamplierik) Я делаю все в основном , на триггерах и переменных , пока что , я не нуждался в Jass ... Без него вы вряд ли сможете реализовать любой триггерный каст или ещё что-то мультиплейное без ошибокQuote (Tamplierik) На данный момент нет не утечек Они есть всегда)) варик запустили утечки пошли, не кривя душой скажу, что Blizzard Entertainment говнокодеры те ещё.Quote (Tamplierik) 60 триггеров и 35 областей . Не показатель. Если б вы показали саму карту... к примеру я работал над своей картой и когда выпускаю новые версии то код сокращается в разы. При грамотном использовании кода триггеры сократить из 60 до 2-10 не проблема.
Например: в фдм 1.2 крипы пересоздавались для каждого домика отдельно и в разных реионах, онов едь и понятно, что иначе никак? Но домиков блин 60, а крипов 60*5 а мы ещё и несколько видов крипов добавили... в итоге вышело несколько очень длинных трриггеров. Сейчас в 2.0 этот код представлен в виде 5ти команд. О_о суть в том, что я перевёл всё в масивы, заменил регионы кординатами , а справа или слева от домика создавать высчитывал елементарным делением на 2 и если есть остаток то слева, нет остатка - справа. Тут конечно и правильное равномерное занесение домиков в переменные сыграло роль. В общем, я это к тому, что то что вам сейчас кажется сложным и грамоздким, позже превратится в простейшие две строчки.
Quote (Tamplierik) 1000 триггеров О_о Мир вас разочарует :)))))))))
Ещё кое-какой совет: Не вздумайте создавать триггеры с одинаковыми экшенами, особенно если это касается события elasped, мап инициализация или юнит подобрал предмет.
Не используйте очень частых прокруток: каждые 0.01 сек проверять если да делать... именно эти триггеры вызывают большинство лагов. А если ваш триггер будет большим, то возможны накладки одного триггера на другой.
Действия которые вызывают задержки при своём, даже корректном использовании: Добавитьс пособность юниту Создать юнита (есл он герой)
Так же, не стоит создавать многоуровневые спелы. Они сильно увеличивают задержку создания героя, нагромаждают вес карты похлеще импорта. Лучше используйте 3-4 уровня магии, но что б был от этого толк и было сложно получить новый уровень или велик соблазн выучить /купить что-то другое.
Сообщение отредактировал DonLaonda - Пятница, 22.07.2011, 16:07 |
|
|
|
| Дата: Пятница, 22.07.2011, 17:12 | Сообщение # 6 |
Рядовой
Сообщений: 8
|
Quote (DonLaonda) Если б вы показали саму карту...
Я не против показать карту . Но. Так как , карта не закончена ( только начал создание ) и без защиты ... Лучшим выборам бы было , отправить лично вам , её . А не выставлять на общие обозрение .
|
|
|
|
| Дата: Пятница, 22.07.2011, 19:34 | Сообщение # 7 |
Генералиссимус
Сообщений: 2438
|
Quote (Tamplierik) Лучшим выборам бы было , отправить лично вам , её . Только в случае серьезной необходимости, скайп: Don.Laonda
Обычно занят своими делами.
|
|
|
|