Утро доброе.
В общем, есть у меня порядка тысячи разновидностей юнитов. Я создал несколько переменных с массивом "тип боевой единицы", и триггер, где при инициализации карты каждому типу юнитов присваивается своя переменная с числом. Вроде
Танк[1] - такой-то тип танка
Танк[2] - такой-то тип танка
Пушка[1] - такой-то тип пушки
Пушка[2] - такой-то тип пушки
Пушка[3] - такой-то тип пушки
Это сделано для того, чтобы при каждом запуске карты генерировался случайный набор доступных для покупки и некоторых других действий игроку и ИИ юнитов.
Пока что в моей карте около сорока типов юнитов, которым назначены переменные, карта работает стабильно, без ощутимых тормозов и вылетов.
А суть вопроса вот в чём: если добавить в этот массив таким же образом ещё несколько сотен различных типов боевых единиц - это грозит проблемами в виде крашей и тормозов?

Принятый ответ

Свиборг:
Fakov, насчёт фризов... Имеются ввиду фризы во время загрузки карты или же непосредственно в ходе игры? А нюансы, например, какие? Сама по себе система работает, главное, чтоб не фризило-крашило.
от большого кол-ва забитых массивов не должно лагать, т.к по сравнению с реальной нагрузкой - это копейки
Свиборг:
UrsaBoss, я все эти переменные делал на гуи, не на жассе.
и учти, тебе придется сделать отдельный поток для инициализации твоих массивов, это чтобы исключить вероятность того, что завершится поток main из за лимита операций
Вот инструкция если ты не шаришь в jass:
На скриншоте 1, там где
call ExecuteFunc("Trig_MyTrig_Actions")
Это Custom Script, а MyTrig - это название нужного тебе триггера
На скриншоте 2 уже твой триггер с инициализацией массива, главное в событиях ничего не ставь
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
18
6 лет назад
0
В jass массив может иметь максимум 8190 индексов.
А самих переменных пока варкрафт от переполнения памяти не лопнет
1
32
6 лет назад
1
8190
8192* ))
нет, крашей не будет , но на слабых компах возможны фризы. Главное перед генерацией набора делай паузу.
И если ты хочешь рандомно наполнять магазин при старте - там ооочень много нюансов у тебя всплывет в последствии))
0
18
6 лет назад
0
Fakov:
нет, крашей не будет
чепуха, ещё как крашит
Ты попробуй для эксперимента засорить варкрафтом память, к примеру утечки и т.д.
У меня на ГБ с лишним варкрафт крашнул
Fakov:
8192* ))
нужно было ещё дописать кое что, т.к при использовании индексов больше 8190 могут быть всякие чудеса и т.д
0
9
6 лет назад
0
UrsaBoss, я все эти переменные делал на гуи, не на жассе.
Fakov, насчёт фризов... Имеются ввиду фризы во время загрузки карты или же непосредственно в ходе игры? А нюансы, например, какие? Сама по себе система работает, главное, чтоб не фризило-крашило.
0
18
6 лет назад
0
Свиборг гуи это графическая оболочка для jass, в итоге гуи конвертится в jass
0
32
6 лет назад
0
А нюансы, например, какие? Сама по себе система работает
ну я у себя в Государе тоже делал рандомный шоп. Каждую игру магазин заполняется случайным видом оружия, которое не повторяется при этом. Это первый факап с которым столкнутся приходится.
Второе - это покупка из этого магазина - через какое то время оттуда начинают пропадать загруженные в него предметы))
1
18
6 лет назад
1
Свиборг:
Fakov, насчёт фризов... Имеются ввиду фризы во время загрузки карты или же непосредственно в ходе игры? А нюансы, например, какие? Сама по себе система работает, главное, чтоб не фризило-крашило.
от большого кол-ва забитых массивов не должно лагать, т.к по сравнению с реальной нагрузкой - это копейки
Свиборг:
UrsaBoss, я все эти переменные делал на гуи, не на жассе.
и учти, тебе придется сделать отдельный поток для инициализации твоих массивов, это чтобы исключить вероятность того, что завершится поток main из за лимита операций
Вот инструкция если ты не шаришь в jass:
На скриншоте 1, там где
call ExecuteFunc("Trig_MyTrig_Actions")
Это Custom Script, а MyTrig - это название нужного тебе триггера
На скриншоте 2 уже твой триггер с инициализацией массива, главное в событиях ничего не ставь
Загруженные файлы
Принятый ответ
0
9
6 лет назад
Отредактирован Свиборг
0
Fakov, не, у меня там продаются войска, в зависимости от условий карты на старте и до конца игры добавляются на продажу случайные юниты из массива, а так же даются компу.
UrsaBoss, да, на счёт того, что гуи преобразуется в жасс-скрипт, это я знаю. Но я подумывал не оставлять эти переменные в теле карты, а врезать их в Blizzard.j
Благодарю за подказку с потоком, работает.
Таким макаром и продолжу, пожалуй, что тему можно закрывать.
0
18
6 лет назад
Отредактирован Hodor
0
Свиборг:
Но я подумывал не оставлять эти переменные в теле карты, а врезать их в Blizzard.j
Не получится, т.к Blizzard j на всех компьютерах должен быть одинаковым и по нагрузке ничем не будет отличаться, даже если импортируешь его в карту, т.к BJ подгружается наравне с jass скриптом
Чтобы оставить комментарий, пожалуйста, войдите на сайт.