Steal nerves, сомневаюсь, что такое может происходить из-за скрипта.
Другие карты не глючат?
Локальные файлы включены?
Попробуй запустить напрямую через игру. Может быть, твой редактор при сохранении ломает что-то.
При создании юнита и первом получении его хендла, количество ссылок равно единице.
Каждая ссылающаяся на handle переменная, добавляет к счетчику единицу.
Уничтожение юнита уменьшает счетчик на единицу.
По достижению нуля ссылок, handle освобождается и может быть переиспользован.
А значит, пока есть переменная, которая держит ссылку на юнита, его handle не будет использован для других объектов, даже после его уничтожения.
При объявлении скаляра ему не присваивается начальное значение его типа. Инициализировать его нужно отдельно, при этом, если его не инициализировать, выполнение программы остановится при чтении неинициализированного скаляра.
Массивная переменная - несколько скаляров, расположенных в памяти друг за другом. Эти скаляры называются элементами массива, а их количество называется размером массива.
Каждому элементу массива присваивается начальное значение его типа, то есть элементы массива в отличие от скаляров инициализируются при объявлении массива.
то есть он приобретет false по умолчанию только в случае, если это элемент массива, а не самостоятельная переменная?
Да.
Что касается обычной переменной, думаю, в памяти игры у неё значение 0 (false), но это не важно, так как игра не даст его прочитать.
Поэтому, необходимо явно задавать их значение перед использованием.
avuremybe, при обращении к неинициализированной переменной, поток выполнения обрывается.
Исключение — массивы, элементы которых имеют значения по-умолчанию.
Скачай карту и скопируй все триггеры, кроме тех, что находятся в папке demo.
Из ресурса тоже можно взять код, но он здесь для тех, кому лень качать или у кого нет редактора.
Был вопрос, в котором хотели спрятать тень предмета. Не знаю зачем, но раз спросили, значит нужно. Ответ на тот вопрос, собственно, и сподвиг меня проверить: как это работает и на что оно еще способно.
JaBeN_Симфер, очевидно, что нет. Она лишь позволяет добавлять нативки перед компиляцией скрипта.
С такими потребностями, тебе следует зайти в тему мемхака. Возможно, там есть сетевые функции.
quq_CCCP, они лишь для демонстрации работоспособности загрузчика.
Если появится полноценная библиотека с множеством нативок, то её можно будет использовать вместе с этой системой.
Хотя, конечно же, можно обойтись и без них вовсе.
Разве синхронизация долгая? Для синхронизации кеша используется тот же механизм, что и для отдачи приказов и прочего. Сколько времени проходит между отдачей приказа и его выполнением, столько же должно уходить и на синхронизацию. Единственный неприятный момент — ограничение на количество данных.
Дело не в размере, а в количестве файлов.
Архив в этом ресурсе может вмещать не более чем 4096 файлов.
Чтобы добавить больше, нужно изменить лимит на количество файлов (Ladik умеет).
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
"Вырубается" и "зависает" — разные вещи.
Вместо того, чтобы плодить 100-500 уровней для улучшений, лучше поищи менее китайский способ.
Удали все толстые улучшения и ситуация исправится.
Это взломанная версия карты. Никакой не "open source".
Обфусцированные имена переменных, весь код в одной куче.
Еще и читы вставлены.
Ты не сможешь нормально редактировать эту карту.
Новая версия была давно как готова, но вышла только сейчас, так как я не знал, что делать с непонятными вылетами. Как оказалось, проблема была в менеджере памяти, неспособном освободить память, выделенную в уже завершившемся потоке. Поменял его на другой.
Вылет произошел во время обращения к элементу jass массива с индексом 21.
Так как это был мемхакнутый массив, произошла попытка чтения памяти по адресу 0x54.
Крашнулся твой код, так что переписывай.
Данные о jass коде хранятся в war3map.wct (Warcraft Custom Triggers?).
war3map.wtg (Warcraft Triggers Gui?) содержит категории, gui триггеры и глобальные переменные.
Во время сохранения карты, все это компилируется в war3map.j файл. Внутреннее устройство карты
В случае вылета игры, следует всегда прикреплять к вопросу отчет об ошибке.
Он находится в: "%папка_с_игрой%\Errors\%дата_вылета% Crash.txt".
Вылетает при загрузке данных о предметах.
Удали все предметы и проверь, не перестанет ли вылетать.
Если перестанет, то удаляй предметы по одному, пока не найдешь виновника.
Еще не помешала бы сама карта/кампания, которую нужно было прикрепить вместе с отчетом с самого начала.
» WarCraft 3 / Манипуляции с кругом выделения и не только
Другие карты не глючат?
Локальные файлы включены?
Попробуй запустить напрямую через игру. Может быть, твой редактор при сохранении ломает что-то.
Ред. IceFog
» WarCraft 3 / Передача аргументов в функции callback'ов
Каждый её вызов создает абсолютно новую функцию.
» WarCraft 3 / Утечка или не утечка.
Каждая ссылающаяся на handle переменная, добавляет к счетчику единицу.
Уничтожение юнита уменьшает счетчик на единицу.
По достижению нуля ссылок, handle освобождается и может быть переиспользован.
» WarCraft 3 / Синхронизация строк
» WarCraft 3 / JASS: Курс молодого бойца
Ред. IceFog
» WarCraft 3 / JASS: Курс молодого бойца
Поэтому, необходимо явно задавать их значение перед использованием.
» WarCraft 3 / JASS: Курс молодого бойца
Исключение — массивы, элементы которых имеют значения по-умолчанию.
» WarCraft 3 / Манипуляции с кругом выделения и не только
Из ресурса тоже можно взять код, но он здесь для тех, кому лень качать или у кого нет редактора.
» WarCraft 3 / Манипуляции с кругом выделения и не только
» WarCraft 3 / убрать круг выбора
» WarCraft 3 / Memory Hack: Загрузчик native функций
С такими потребностями, тебе следует зайти в тему мемхака. Возможно, там есть сетевые функции.
Ред. IceFog
» WarCraft 3 / Memory Hack: Загрузчик native функций
Если появится полноценная библиотека с множеством нативок, то её можно будет использовать вместе с этой системой.
Хотя, конечно же, можно обойтись и без них вовсе.
» RenderEdge / [RenderEdge] Memory Hack
» WarCraft 3 / Import Exploit - чудеса импорта (MIX)
Архив в этом ресурсе может вмещать не более чем 4096 файлов.
Чтобы добавить больше, нужно изменить лимит на количество файлов (Ladik умеет).
» WarCraft 3 / Критические ошибки
Ред. IceFog
» WarCraft 3 / Вылетает карта
При очередной попытке выделения, игра упала.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
» WarCraft 3 / "Вырубается WE при нажатии на . . ."
Вместо того, чтобы плодить 100-500 уровней для улучшений, лучше поищи менее китайский способ.
Удали все толстые улучшения и ситуация исправится.
» WarCraft 3 / Ошибка компиляции Jass(Function redeclared)
Обфусцированные имена переменных, весь код в одной куче.
Еще и читы вставлены.
Ты не сможешь нормально редактировать эту карту.
Ред. IceFog
» WarCraft 3 / MapHack для реплея
» WarCraft 3 / Почему фатал?
Так как это был мемхакнутый массив, произошла попытка чтения памяти по адресу 0x54.
Крашнулся твой код, так что переписывай.
Ред. IceFog
» WarCraft 3 / JNGP не запоминает war3map.j, отредактированный через Блокнот?
war3map.wtg (Warcraft Triggers Gui?) содержит категории, gui триггеры и глобальные переменные.
Во время сохранения карты, все это компилируется в war3map.j файл.
Внутреннее устройство карты
» WarCraft 3 / Что за ошибка и как с ней бороться?
Ред. IceFog
» WarCraft 3 / Что за ошибка и как с ней бороться?
Он находится в: "%папка_с_игрой%\Errors\%дата_вылета% Crash.txt".
Удали все предметы и проверь, не перестанет ли вылетать.
Если перестанет, то удаляй предметы по одному, пока не найдешь виновника.
Еще не помешала бы сама карта/кампания, которую нужно было прикрепить вместе с отчетом с самого начала.
» WarCraft 3 / MapHack для реплея
» WarCraft 3 / MapHack для реплея