Я делал другой класс, который обрабатывает одномерные массивы юнитов group_alpha[номер юнита] , я хотел сделать методы для этой структуры , которые бы сохраняли в хэш-таблицу параметры юнита group_alpha[номер юнита].saveinteger(childid, integer) , и при присваивании присваивались через хэштаблицу также и все параметры group_alpha[номер юнита_1] = group_alpha[номер юнита_2]. Со вторым проблем нету, а вот с первым незадача.
Забей на структуры, в 99% случаев можно и без них обойтись.
У меня несколько библиотек, которые выполняют все это без структур, да. И я понимаю, что можно. Структура мне нужна , что бы 10 раз не переписывать одни и те же вещи. Аля проверка умер ли юнит из массива, если умер то на его место поставить последнего юнита из массива и разные методы дополнительные, которые работали бы через наследование.
пока адекватным решением для меня является следующее
struct UNIT
private unit un
method operator unit takes nothing returns unit
return this.un
endmethod
method SetPosition takes real X,real Y returns nothing
call SetUnitPosition(this.un, X, Y)
endmethod
static method create takes unit un returns UNIT
local UNIT this = GetHandleId(un)
set this.un = un
return this
endmethod
endstruct
Если в этом примере определение оператора unit можно заменить "немым" оператором, это будет решение
Потом очень полезная функция из теша это function list. Мне система better triggers не очень нравится именно из-за того , что там эта функция отсутствует. Часто забываешь названия функций, нужно напомнить себе. Часто помогает найти функцию в гуи , перевести в текст. В сторонней среде разработки, естественно, это невозможно, поэтому function list был бы очень хорош.
Koladik, а что за поддержка нужна? Грамматика для vJass и Zinc присутствуют, а компиляцией в JASS может и сам JassHelper справится. В IDEA уже есть все необходимые инструменты для запуска скриптов.
Ну у меня есть привычка в теше сохранять карту, включая джас хелпер, и проверять все ли нормально компилируется. Он на ошибки указывает конкретные в коде и примерное место ошибки. Обычно это реализуют так, что не понятно где ошибка, не компилируется и все. А джас хелпер хорошо в этом помогает.
Моментально. Единственное, что тестить, надо было не в инициализации, но и тем все нормально. Интересно , это реально было, или я просто заблуждался на пустом месте.
Для "динамических" хэштаблиц можно использовать наработку Vlod'a - Hashtable 8000
спасибо за наводку
Внесу ясность для чего это вообще спрашивается. Нужно подгружать N массивов Размером L*L>256^2, затем, подгружая каждый массивов, перемножать, складывать с другим массивом. Есть ощущение, что такое динамически можно только на хэштаблицах. Но я, честно говоря, немного плаваю в базе хэштаблиц. И не понимаю как это будет по скорости и вписывается ли это в ограничения.
Потесть, возможно, если в другую карту создашь то тоже не будет видно. Раньше баг был, что некоторые исправления подобного рода перетекали из карты в карту пока в вар3 не перезайдешь. Вроде названий игроков в лобби.
Дело в том., что в рефордже появилась возможность конкретные фреймы убирать, без затрагивания констант игровых.
Ты можешь записывать каждое создаваемое дерево как отдельный разрушаемый объект (в переменную), и так же записывать время его жизни (для таймера).
В момент каста просто создаёшь таким образом N деревьев и всё.
По таймеру чекаешь все деревья и их время жизни, если оно дошло до нуля - ломаешь дерево.
До мультеприменимостьи твой пример развить надо, хэштаблица, наверное, верный совет. Нужно все номера созданных деревьев в хэштаблицу этого таймера запихнуть. Тогда будет как надо, и удалять те что загрузятся при окончании таймера.
Ну добавь птиц, зверей бродящих, окружение различное, что тут еще можно посоветовать :D
Вот в том и дело что всё это есть!Но всеровно не то.
Если ты перфекционист , то покажи карту друзьям может они увидят нереальную глубину жизни , которую ты уже не видиш сам из-за того , что глаз замылелся. Это не ирония, реально помогает.
Проблема в том, что твои крипы нейтрально-враждебные у них есть так называемый лагерь преследования. Если хочешь сделать так, чтобы они шли до талого, делай их игроками.
Что мешает объявлять в своей библиотеке глобалки и использовать инициализатор для них? Или здесь более сложный случай?
Случай то тривиальный. Тут любой спел-чаннел, как пример, подойдет. Если использовать способность в двух местах карты одновременно, ну банальный близзард мага, то в этих двух местах звук дождя будет слышен, если использовать 3д звук, а во всей остальной карте нет. Так вот, такое можно реализовать триггерно с только если инициализировать массив звуков. Но вопрос заключается в том, действительно предложенная выше функция очищает память от handle'а звука при удалении, в принципе это можно проверить самому просто инициализируя ОЧЕНЬ много звуков без удаления до вылета варкрафта, а потом сравнить с удалением. Но это всё-таки запарно, я надеялся, что кто-то работал с похожими вещами.
Koladik, не через пару секунд, насколько я помню, если у модели спецэффекта присутствует только анимация birth (опционально death?), спецэффект можно удалять сразу же после создания, анимация завершится и спецэффект удалится; если модель не соответствует этим требованиям, спецэффект придется удалять после того, как пройдет анимация stand (+birth?), иначе никакого визуального эффекта не будет.
А зачем звуки динамически создавать? В редакторе звуков заранее создаются все нужные звуки и проигрываются когда нужно.
Я проверю с одной анимацией, даже интересно, я проверял только когда две анимации. Но мне кажется, что ее заного можно будет запустить после удаления, если анимация короткая.
Звук создавать динамически затем, что бы удобно было копировать алгоритм, создал в одной своей карте систему и легко ее перетащил в любую другую без захламления переменных в редакторе звука, так как динамически ты все записываешь напрямую через путь звука. Плюс, я сейчас тестировал вообще воспроизведения звука в варике. Одну переменную получается можно "приклеить" только к одной точке на карте, чтобы воспроизводился 3д звук. А если хочешь, чтобы один и тот же звук воспроизводился в двух местах сразу то нужна еще одна переменная.
Мне пока непонятно многое в воспроизведении звука в варике, поэтому могу в чем-то ошибаться. Но то, что динамически создавать переменную самостоятельно намного удобнее, чем отдавать все на откуп редактору звука, я уверен.
Зачем удалять единожды созданный при инициализации звук? При проигрывании никакой памяти не выделяется. Спецэффекты прекрасно удаляются функцией DestroyEffect.
это оффоп но спецэффекты не прекрасно удаляются. Они удаляются через пару секунд. Можешь попробовать, после выполнения команды DestroyEffect можно проиграть анимацию эффекта несколько раз, а потом он удалится, хотя сама команда прерывает любую анимацию На счет звуков, я их создаю динамически, динамически хочу и удалять.
anton1623, то насколько переменная нагружает память можно проверить сохраняя переменные пока не вылетит игра (около 8гб оперативы) и подчитать сколько ты их сохранил. Если волнует сколько таймеров ты можешь за раз запустить. То попробуй также запускать их одновременно c выполнением простой команды 2+2 пока не начнется сильная просадка fps вот ты и узнаешь это. Я думаю 30к таймеров запустить удастся.
» WarCraft 3 / Как дополнить методами структуру unit?
» WarCraft 3 / Как дополнить методами структуру unit?
» WarCraft 3 / 16. Функция как объект
» WarCraft 3 / 16. Функция как объект
» WarCraft 3 / Кривая Безье
» WarRaft / IntelliJASS
» WarRaft / IntelliJASS
» WarRaft / IntelliJASS
» WarCraft 3 / Как дать приказ юниту на которого применили способность?
» WarCraft 3 / 4. Директива //! inject
» WarCraft 3 / Так много ли по итогу памяти жрет инициализация хеш-таблицы?
Ред. Koladik
» WarCraft 3 / Так много ли по итогу памяти жрет инициализация хеш-таблицы?
» WarCraft 3 / Hashtable 8000
» WarCraft 3 / Так много ли по итогу памяти жрет инициализация хеш-таблицы?
» WarCraft 3 / Проверка проходимости юнита
Ред. Koladik
» WarCraft 3 / Почему предмет не использует 2 способности одновременно
» WarCraft 3 / Как скрыть надпись "Заклинание ещё не готово"?
» WarCraft 3 / Способность фуры из Доты
Ред. Koladik
» WarCraft 3 / Эффект жизни
» WarCraft 3 / Эффект жизни
» WarCraft 3 / Нападение крипов на героев
» WarCraft 3 / Уничтожение Handle sound'a
» WarCraft 3 / Уничтожение Handle sound'a
Мне пока непонятно многое в воспроизведении звука в варике, поэтому могу в чем-то ошибаться. Но то, что динамически создавать переменную самостоятельно намного удобнее, чем отдавать все на откуп редактору звука, я уверен.
Ред. Koladik
» WarCraft 3 / Уничтожение Handle sound'a
Ред. Koladik
» WarCraft 3 / Таймеры