У меня такая проблема - не умею создавать библиотеки в варе и прикреплять каждый созданный отряд к определенному индексу, отряд создается, переменная Units увеличивает значение на +1 по отношению к этому отряду, но не знаю как уменьшить Units на - 1 по отношению именно к полностью уничтоженному отряду, в результате чего спустя 2 часа игры игра вылетает т к, по общению со специалистом, ограниченное количество массива в warcraft 3 около 10 000. Очень нужна помощь от человека который поможет устранить эту проблему.
Мой проект
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
6
9 месяцев назад
0
0
27
9 месяцев назад
0
ну создай просто конструктор и деконструктор, потом переделывай всю свою систему под это дело

ограниченное количество массива в warcraft 3 около 10 000
8192
0
6
9 месяцев назад
Отредактирован blackmaker
0
ну создай просто конструктор и деконструктор, потом переделывай всю свою систему под это дело

ограниченное количество массива в warcraft 3 около 10 000
8192
Как создать конструктор и деструктор? У меня есть лишь функция удаления всех юнитов при полном уничтожении отряда, но если в этом же блоке указать Units - 1 то система ломается и у рандомных отрядов начинают открепляться юниты и присоединяться от др отрядов, в общем хаос.
0
13
9 месяцев назад
0
Нужна переменная на последний индекс "МАХ".
Юнит умирает
Если в отряде количество юнитов <= 0
Units[МАХ] = Units[индекс умершего]
МАХ = МАХ - 1
Когда добавляеш, увеличиваешь МАХ + 1 і Units ставь индекс МАХ
1
27
9 месяцев назад
1
Borodach, только наоборот
Units[индекс умершего] = Units[Max]
2
26
9 месяцев назад
2
Точнее нужно удалять юнита из группы когда он умирает. Именно из той группы, в которой он находится, а значит нужно получить индекс переменной. После удаления чекаем что эту группа пуста, и тогда уже удаляем и группу. После чего записываем в эту переменную ту группу, которая является самой последней из созданных (тут тебе предлагают вариант с переменной MAX). В итоге ты получаешь дублирование записи, у тебя текущая теперь точно такая же как и самая последняя, а значит от неё надо избавиться. Затираешь все данные в последнем используемом индексе (max), и после этого делаешь set max = ( max - 1 ).
0
6
9 месяцев назад
0
Точнее нужно удалять юнита из группы когда он умирает. Именно из той группы, в которой он находится, а значит нужно получить индекс переменной. После удаления чекаем что эту группа пуста, и тогда уже удаляем и группу. После чего записываем в эту переменную ту группу, которая является самой последней из созданных (тут тебе предлагают вариант с переменной MAX). В итоге ты получаешь дублирование записи, у тебя текущая теперь точно такая же как и самая последняя, а значит от неё надо избавиться. Затираешь все данные в последнем используемом индексе (max), и после этого делаешь set max = ( max - 1 ).
Спасибо. Надеюсь справлюсь с задачей
Чтобы оставить комментарий, пожалуйста, войдите на сайт.