15

» WarCraft 3 / Принадлежность клану

разбиение кланов - константа. Ну можешь, к примеру, как бд забить. Или сделать n-e количество переменных типа force и добавить в них соответствующих игроков при инициализации и потом просто проверять какой форс принадлежит игрок.
15

» WarCraft 3 / Виды утечек

nvc123, хм. Сорь за дезинформацию. Я почему-то был уверен, что player надо обнулить, иначе будет висеть
15

» WarCraft 3 / Число А

bj_forLoopAIndex
Это название переменной, задействованной в цикле от 1 до какого-то числа для цикла А.
Соответственно для В - bj_forLoopBIndex
15

» WarCraft 3 / Виды утечек

GetLocalPlayer, в смысле? Под player так же выделяется память (о переменной). А глобальные, если они в постоянном пользовании, зачем обнулять-то?!
15

» WarCraft 3 / Виды утечек

bazeba, все, что не касается редактора триггеров, скрипта и тд и тп не будет вызывать утечек. А если и будет, то нам какая разница? Этого не избежать. Это значит кривота в движке вара. Все что зависит от тебя- оптимизация кода. Ничего более этого ты не в силах сделать. Про оптимизацию кода, как ни один уже раз в подобных вопросах отписывал nvc123: xgm.guru/p/wc3/optimisations Прочитай это и делай по этим правилам. И все будет окей. А если работаешь на гуи - библиотка ALL. Все!
А ну GetLocalPlayer меня опередил. Ну а вообще, по-моему, тебе хватит моего и предыдущего комментария, чтобы разобратся
GetLocalPlayer, но переменную player как и любую другую нужно обнулять, если она локальная
15

» WarCraft 3 / Десинхронизация от улучшения

Решения не было найдено! Самый верный способ сделать свою систему улучшений для юнитов, разбивая их на группы по признаку кол-ва грани у кости и кол-во костей, и в зависимости от этого повышать урон
15

» WarCraft 3 / Проверка зашедших игроков

Если тебе не дают первым комментарием правильный ответ, а уточняют твою писанину и отмечают твой вопрос плохой оценкой, это не означает, что нужно минусить все подряд комментарии.
Это означает, что твой вопрос непонятен и нужно детализировать, чтобы дать правльный ответ на твой примитивный вопрос, в котором не хватает точности.
15

» WarCraft 3 / Баг с бессмертным фениксом

quq_CCCP, а для багнутого юнита будет работать GetUnitState хп? Просто тогда будет достаточно 2 проверки, при этом не запоминая хп всех юнитов в группе фениксов.
Если у юнита щас 1 хп. и через 5 секунд снова 1 хп - багнутый (ну либо очень невероятное совпадение для динамического хп феникса)
15

» WarCraft 3 / Определенный игрок видит чат всех игроков

хм. Я не уверен, но мне кажется так:
Если игрок A союзник игроку B, а игрок B не союзник игроку A, то когда игрок A будет писать союзникам B будет видеть чат. А если B будет писать союзникам, то A не буде видеть.
Думаю, если чат стандартный (варкрафтовский), то может быть только так.
15

» WarCraft 3 / Устранение утечек

GF RaiseD, к слову так и хочется сказать, иногда выбор "Я САМ" задает неплохой жизненный вектор )
15

» WarCraft 3 / Изменение типов брони во время игры

Создаешь несколько одинаковых юнитов с разным типам брони и с ними работаешь. Иначе никак.
15

» WarCraft 3 / Устранение утечек

Насчет утечек: если не работаешь на jass, то включи библиотеку. Если не включается - копирую содержание библиотеки в карту. Есть и копирование не помогает, то просто прочти статьи, ибо за тебя код делать никто не будет. Максимум посмотрят локально и все.
Насчет краша - скинь код. Способ найти проблемный триггер есть и не один. Ну тебе пойдет поочередное отключение триггеров. И методом исключения найдешь нужный.
15

» WarCraft 3 / Как добавить больше 12 героя в таверне?

Способов много. Начиная от 12 спеллбуков в таверну. Каждому спеллу будет соответствовать свой герой. Кончая 11 героями + спелл, При активации которого будут удаляться ъти 11 юнитов из стока и добавлятся новые.
15

» WarCraft 3 / Нужно ваше мнение!

Не совсем в ТУ тему, но коль уже вопрос задан и интересно мнение, то вот:
То иногда ради колорита карты логику можно отбросить на 2 план.
А вообще, если все же следовать логике, то нужен 3 и 4 и 5 и тд ресурсы (железо, сера для взрывов, камень и тд), ибо юниты ведь у тебя не голые ходят? К примеру, орда. Катапульты разве только из золота? Она ведь сделаны из дерева! Рабочие, которые делали эти катапульты берут в денежом эквиваленте за свою работу, а расходный материал- дерево. Оно нужно для постройки)
А вообще еще раз скажу. Ты не в тему пишешь)
15

» WarCraft 3 / Attack speed

В РО у юнита есть графа, где указывается его скорость атаки. В константах- повышение скорости атаки за единицу ловкости. А как еще влиять? Улучшения? Способности предметом? Если ты о верхней границе, которая где-то задается, то ее нет. Устанавливай в РО с учетом всех всевозможных бонусов
15

» WarCraft 3 / Оптимизация триггеров, борьба с утечками?

Тебе будет проще подсказывать по конкретным вопросам. Ты говоришь, что тебе что-то там неясно. Неясность - это всегда вопрос. Так вот формулируй их, и снова иди на Q/A и тебе разжуют!!!!!!!!!!!
Тебе рассказать что такое переменная? Или что она хранит в себе?
На примере того же GetTriggerUnit()- нативная фукнция, написанная близзардами, функция, которая вернет ссылку(область памяти) в которой располагается сей объект (объект). Помни, это существующий объект. Он уже занимает место в памяти (пусть будет это ячейка 1000). Этот объект-юнит не утекает, ни притекает, не вытекает, вообще не течет) Что мы делаем дальше?! А мы определяем переменную типа unit T и инициализируем ее. Тебе компилятор выделит память под эту переменную (пусть будет это ячейка 1100) .К слову, почему компилятор не разрешает исползовать одинаковые имена переменных? Потому что имя переменной- это ее идентификатор. Компилятор не распознает твои закорючки- имя переменной компилятор использует как ее адрес. А по этому адресу распологается ссылка.
Что мы имеет в сухом остатке? Юнит-объект, лежащий по адресу 1000. Переменная T типа unit, которая удобно устроилась в ячейке 1100. И получается когда мы пишем вот так:
unit T=GetTriggerUnit() мы кладем по адресу 1100 адрес 1000. И при обращение к переменной T мы будем получать адрес 1000- наш юнит!
Далее утечки!
Все ок. Мы ужасно криво отлично сделали все дейсвтия. Пришел конец нашей функции, в которой мы исполняли дейсвтия. А куда же девается наша переменная и наш юнит? А никуда. Юнит как висел в памяти, так и висит в ячейки 1000. Его никак функция не колышит. (Ну если ты его не удалишь в действиях. Тогда ячейка 1000 освобождается и ее займет другой счастливый объект.) А ты скажешь. Хм а переменная? Ну стоит разделять локальные и глобальные. О глобальных я умолчу, ибо их обнулять не обязательно. А вот что касается локальных? Локальная переменная- та переменная, которая действует внутри функции, в которой она была определена и удаляется, когда функция подходит к концу. Но компилятор тебе зарезервировал слот 1100, помнишь?! Компилятор удаляет идентификатор. Ты скажешь: и в чем тут проблема. Удалил- это же хорошо?
Не-а. Не хорошо. Эта ячейка была зарезервирована. И несмотря на то, что ты кончил функцию, память остается висеть. Как 1100 была зарезервирована. Как в ней лежала ссылка на объект по андресу 1000- так и лежит. Как этого избежать? Обнули. Положи туда null.
15

» WarCraft 3 / Оптимизация триггеров, борьба с утечками?

Работаешь на GUI - пропиши в шапке #include "ALL.j" . Работаешь на jass- чатай пока не поймешь. Понял- молодец. Еще раз прочитай! Там очень хорошие статьи.
К слову джаз- музыкальное направление. джасс- ЯП
15

» WarCraft 3 / Шулер

nvc123, да. Псевдорандом шляпа. К слову, можно его зацепить на игровое время и замутить свой алгоритм, например.
15

» WarCraft 3 / Как сделать превью карты - Картинку в лобби?

Берешь картинку в формате tga размером 128х128 или 256х256 , называешь ее war3mapPreview.tga и импортируешь в карту.
15

» WarCraft 3 / Шулер

bOris, тоже мне проблема. Тут несколько решений начиная от дачи контролля игроку до нейтрального здания, способность которого может юзать любой. Можешь способность реализовать как покупку юнита. Только в триггер тогда придется делать другое событие, условие и добавить дейсвтие на удаление проданного юнита
15

» WarCraft 3 / Шулер

nvc123, 26...100 - победа? Это ведь не 25%. Да и шанс тут получается надо брать 1-100, иначе у тебя выходит 101 число, если от 0-100