15

» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III

Есть какие-то способы увеличить производительность? С тенями с отдалённой камерой подлагивает.
Понимаю, что Варкрафт однопоточный, но всё же.
15

» WarCraft 3 / unknown software exception

quq_CCCP:
Их может быть 100500, карту в студию и файлы ошибки. Мемхак может быть причиной фаталов.
Это может быть из-за 100-200 вызовов ExecuteFunc в одном фрейме? У меня создаётся большой отряд из 100-200 юнитов, я юзаю тяжёлые функции мемхака по типу SetUnitDamage, SetUnitAttackRange и т.д. для этого отряда, и у меня обрывается поток на ~100 юнитах, поэтому заменил прямой вызов на ExecuteFunc. Стоит ли выполнять вызовы параллельно через таймер с малой периодичностью?
15

» WarCraft 3 / Крашит варкарфт

Может модель сломанная есть? Или настройки графики неправильно выставлены?
15

» IrInA Host Bot / Почему при запуске файла irina_connector_v5 удаляеться

ScorpioT1000:
JackFastGame, а какой не мусорный?) который пускает такие трояны? (с технической точки зрения это троян - он внедряется в память игры)
Мусорный, потому что штатными способами его не отключить. Лично у меня жопа горит с тем, как десятка навязывает пользователю свои ненужные службы и программы.
15

» WarCraft 3 / Разнообразие save/load кода

Как вариант можно вместо или дополнительно к привязке к имени игрока дополнительно привязываться к имени компьютера через функцию GetComputerNameA.
15

» WarCraft 3 / Рассинхронизация в реплее из-за использования кэша

quq_CCCP:
JackFastGame, просто без синхры ставишь всем героям нужное кол-во опыта, т.к у тебя одна машина и нет живых игроков, ты 1 зритель, остальные все боты и действия синхронизации не требуются для реплея, просто выставление напрямую всем игрокам експы.
Всё работает, спасибо. Только TriggerSleepAction( 2.00 ) и TriggerSyncReady() в реплее обязательно должны выполняться. А вот SyncStoredInteger и прочие не нужны.
Хотя скорее всего без слипа ломается из-за того, что у меня после него идут ещё действия.
15

» WarCraft 3 / Неизвестная причина критов.

PT153:
Какие настройки графики у кританувших?
Слышал, что из-за каких-то эффектов на низких настройках графики фаталит. Это так?
15

» WarCraft 3 / Рассинхронизация в реплее из-за использования кэша

quq_CCCP:
Проверять на реплей, мемхак вроде у тебя в карте есть? Ну и делать ветвление, ибо локальные действия происходят в реплее только у хоста.
А что делать в случае успешной проверки на реплей? Просто проигнорить часть кода, где идёт сохранение в кэш? В реплей вообще запоминается инфа о том, какие данные игроками были загружены в кэш?
15

» WarCraft 3 / Какая версия варкрафта сейчас актуальна?

Bergi_Bear:
На момент написания этого коммента онлайн рефа 17.10.2021 - 298 подсчитано руками с сайта wc3maps.com/live, но если ты делаешь карту на русском, ты там не нужен
Онлайн ирины irinabot.ru 414 человек - твой выбор
Онлайл иккапа iccup.com 9000 но не уверен в правдивости этой цифры 200%
Так на wc3maps онлайн именно в лобби, а на Ирине и те кто в лобби, и те кто в игре. Сколько в Рефорджеде в катках людей навряд ли можно узнать.
Ещё я бы лучше смотрел с этого сайта стату wc3stats.com/gamelist, wc3maps почему-то иногда не все хосты отображает. Один раз сравнивал, на Америке половину хостов не отображал.

Есть два пруда: в одном онлайн низкий, но люди нормальные, в другом онлайн высокий, но куча узбеков)
15

» WarCraft 3 / Point Tag v0.3.6

Konstantin19:
Это же "Скиллшот Арена", тока в другой обертке
Интересно, чем же?
15

» WarCraft 3 / Карта не запускается: распространённые причины

quq_CCCP:
На айкапе если играете? Кикает антихак, нужно скрывать мемхак, это умеет делать анрайз. И другие, кто активно юзает мемхак в своих проектах.
Точно, проблема была в узбекском Варкрафте. Спасибо!
Удивительно, но на Ирине много людей, играющих с лаунчера Ракапа.
15

» WarCraft 3 / Как сделать подгрузку текстовой команды из папки с вариком

quq_CCCP:
Можно, юзать прелоад или мемзак
А как заставить игрока отправить сообщение мемхаком (без использования сторонних dll)? Или как синхронизировать локальные данные, полученные из файла? Через игровой кэш?
15

» WarCraft 3 / Что меньше влияет на память?

Разница настолько мала, что лучше вообще так не делать.
Не убивайте читабельность в угоду мнимой производительности. Оптимизация и архитектура проекта эффективны по Парето, поэтому ищите золотую середину.
15

» WarCraft 3 / Как отловить то что юнит находится в движение?

Создаёшь краба, отдаёшь ему приказ двигаться, затем сравниваешь его приказ с приказом нужного тебе юнита.
Так реализовано в Desert Fury)
15

» WarCraft 3 / Просьба проверить мой код

С технической точки зрения ничего не скажу, но одним из важных аспектов программирования является соблюдение единого стиля кода и написание легко читаемого кода. Поэтому дам пару советов.
Следует избегать подобных названий:
private struct SpellStruct
Если вы объявляете переменную типа Spell, то и так понятно, что это структура, поэтому суффикс Struct здесь лишний.
Разделяйте логические блоки кода пустой строкой:
	private struct SpellStruct
    unit Caster
    unit Target
    real Damage
    real Speed
    real Angle
    method Destroy takes nothing returns nothing
        set this.Caster = null
        set this.Target = null
        call this.destroy()
    endmethod
endstruct
В этом примере явно не хватает пустой строки между полем Angle и методом Destroy. Набор полей структуры и тело метода — два логических блока, которые нам гораздо легче отделять друг от друга, если между ними пустая строка.
Здесь проблема с именованием локальных переменных:
local timer Timer = CreateTimer()
local SpellStruct s = SpellStruct.create()
timer объявлен в PascalCase, а SpellStruct в camelCase. Определите для себя единую конвенцию именования переменных. Как правило, локальные переменные в функциях и приватные поля структур именуются в camelCase, а публичные поля структур и функции именуются в стиле PascalCase.
Подобные расхождения в стиле написания кода тоже стоит избегать:
call TriggerRegisterAnyUnitEventBJ( Chidory, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( Chidory, Condition( function Chidory_Condition ) )
и
call UnitDamageTarget(s.Caster,s.Target,s.Damage,false,false,AT_Chaos,DT_Magic,null)
Пробелы между аргументами во всех вызовах должны соблюдаться одинаково. Либо вы не ставите пробелы везде, либо ставите везде. Лучше, конечно, ставить, т.к. это читабельнее. Старайтесь придерживаться одного стиля написания кода, тогда он будет легко читаем, т.к. мозг хорошо распознаёт закономерности.
Также избегайте такого:
globals
    private integer SpellID = 'A001'// Код способности
endglobals
Во-первых, комментарии следует оставлять на пустой строке, а не впихивать в конец какой-то инструкции. Во-вторых, комментарии необходимы для пояснения каких-то сложных моментов в коде. Здесь пример плохого комментария: он поясняет очевидное. По названию переменной и так понятно, что это айди способности, поэтому и нужды что-либо комментировать нет. Называйте свои переменные, функции и методы так, чтобы их не приходилось комментировать.
Успехов.
15

» WarCraft 3 / Как через условие подключить звуковой патч mix?

Bergi_Bear:
  1. Не использовать патч микс, что реф что Ирина, не имеют лимита в 8 мегабайт это пережиток прошлого, пихайте все в карту
К сожалению, многие игроки на Ирине до сих пор сидят со старым GameDLL, из-за чего их часто кикает с больших карт, а они ничего не понимают.
15

» WarCraft 3 / Как через условие подключить звуковой патч mix?

goodlyhero:
В мемхаке - GetModuleHandle вернет вам хэндл вашего микса если вы его подключили или 0 если не подключили.
У подключаемых библиотек есть хэндл? Это же простой указатель на место модуля в памяти. А хэндл имеют все объекты, которые наследуют от типа handle.
15

» WarCraft 3 / Хэш-таблицы в vJass

PT153:
юзаю стринг хеши в качестве ключей
Я юзаю тип key от vJass.
key — это что-то типа GUID?
15

» WarCraft 3 / кое что о джассе

Vlod:
что сджасс ломал весь остальной код
Какие конкретно конструкции ломает cjass?
Вот-вот, тоже хотелось бы узнать. Я сейчас использую vJass + cJass (пишу первый раз на них), т.к. после C# хочется писать код без особого синтаксического мусора.
15

» WarCraft 3 / Утечки в коде

quq_CCCP:
ArhiMEN, а что за код, я чето не понял что это за триггер с переодическим таймером 100 раз в сек, чето делает. Каждый раз создается новая группа, зачем? Обьясни что собрался делать?
Я делал бенчмарк (на попугаях Анрайза) прохода по глобальной группе и локально создаваемой группе, разницы практически нет.
15

» WarCraft 3 / 20. Оптимизация

Больше никаких оптимизаций в современных версиях компилятора vJass нет?
15

» WarCraft 3 / Вопросы по мемхаку

DracoL1ch:
ссылаются на свою, меняй описание в завимисоти от выделенного юнита локальным игроком по таймеру
Я хочу реализовать систему, чтобы в описании предмета показывалось, сколько игрок нанёс этим предметом урона, сколько раз использовал и т.д.
В процессе вспомнил, что Варкрафт не чистит строки, а записывает их в какую-то таблицу со всеми строками, и при создании новой строки проверяет, существует ли такая же в таблице. Если да, то возвращает указатель на неё, если нет, то записывает новую строку в таблицу. Строки в таблице не удаляются до конца игры. Получается, если постоянно динамически менять описание предмета, то игра будет хранить кучу мусорных строк? Допустим у предмета за игру описание сменится 500 раз, и каждый раз строка будет уникальной, описание предмета весит 1 килобайт, значит на каждый такой предмет в процессе игры сгенерится 500 килобайт мусора. Я правильно рассуждаю? Есть лечение?
15

» WarCraft 3 / Утекают ли не обнулённые переменные типа handle

Obelick:
Привет. Интересно было почитать. А что можно сказать насчет юнитов? Решил провести свой эксперимент, но с юнитами.
Начал с гуишных функций и глобалок, закончил этим. Все возможные проделанные мною варианты утекают, включая этот
Знаю, что некропостинг, но тут локация p не удаляется.