22

» WarCraft 3 / Способности и алгоритмы на заказ

Я думаю что выполнить это с помощью скриптов почти невозможно. Разве что с мемхаком. Возможно существуют похожие способности в РО, вроде пассивной способности лучниц ночных эльфов.
22

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Jack-of-shadow:
У всех у объектов, пивоты которых не попадает в камеру выключается рендер, исключение только Doodads. Поэтому при генерации ландшафта или просто при необходимости заспавнить большой объект, возникает дофига проблем. Решал это только спавном одновременно нескольких одинаковых объектов с разными пивотами, это то еще извращение. Понятно что близы хотели облегчить рендер и с видом сверху в основном все должно влезать. Но иметь возможность поставить галочку в ро для переключения обрезки было бы очень полезно. Какбы к джазу это мало относится, но вдруг.

Господи, да! Я имел столько головной боли из-за этого.
22

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Объявил переменную (GrimPath) в регистре, а также добавил следующий код в Lua script:
function scexpCampaignExport()
  -- ...
        if not grim.exists(camppath) then
            wehack.messagebox("Extracting error!\nFile \"" ..camppath.. "\" not found." ,scexpTITLESTR,false)
            return 1
        end
-- ...
end
Заработало. Как? Почему? Не знаю.
Sir_Lambert:
Как я понял, он будет работать на 1.26а, так?
Да, проверяю JNGP Rebuild 1.3 на игре 1.26а.
22

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Говоря о сборщике кампаний. Когда вписываю название карты получаю сообщение об ошибке "Unknown error in plugin". Причем, если ввести заведомо неправильное название карты, такой ошибки не возникает. Не смог найти в логах подробностей. Версия игры 1.26а. Кто-то сталкивался с этим?
+
"ScExpMPQed.exe", я так понимаю ядро расширения, не работает. Даже запуская программу через Batch script ничего не происходит. Есть ли исходники для этого?
+
Лгу! Оказывается что-то происходит если задать относительные пути к файлам и сами файлы поместить в папку с программой! Изучаю дальше...
22

» Программирование / Аутентификация с нуля. Предотвратить подмену записей.

все обращения к WoW API придется оставить не обфусцированными
Я как-то упустил этот момент. Благодарю за наводку.
обфускация имееет смысл только на больших объемах кода
Попробую декларировать десяток другой чуши в исходнике.
Закрою вопрос когда закончу с реализацией; пару недель. Спасибо за помощь.
22

» Программирование / Аутентификация с нуля. Предотвратить подмену записей.

Я тоже думаю в этом направлении. Вот только не могу придумать как это сделать точно.
Я рассуждал, мол, каждая запись в лог сопровождается md5 хэшем: токен+данные записи. Клиент пересчитывает хэш во время чтения и сопоставляет. Вот только токен можно подсмотреть в исходниках Lua, так что это не работает.
Между прочим понял что неизменяемость файла Lua не играет роли. Враг может скопировать Lua, модифицировать копию и таким образом воспроизвести любую логику.
Когда думал писать свой алгоритм, то упираюсь в разницу в имплементации. Можно ли как-то гарантировать что RNG будет вести себя одинаково в Java и Lua?
+
Наверное буду "шифровать" XOR'ом или что-то вроде. Чтобы нужно было-бы по крайней мере понимать Lua, чтобы понять что происходит.
+
Lua таки можно компилировать в байткод: www.lua.org/manual/4.0/luac.html Проверял на luac53. Вот только WoW не загружает такие файлы (ожидаемо). Может ещё что раскопаю.
К тому же существуют obfuscator'ы. Не могу запустить ни один, правда.
+
Рабочий obfuscator: github.com/jkusner/LuaObfuscator Не уверен работает ли он с 30300 WoW API. Не могу проверить прямо сейчас.
22

» Программирование / Аутентификация с нуля. Предотвратить подмену записей.

Вся идея состоит в том, чтобы собирать данные с компьютеров игроков и аггрегировать их на сервере. И я не могу посылать запросы в Веб напрямую из игры (Lua), поэтому нужен отдельный клиент (2).
Аддон (1), который Lua, лишь слушает события в игре и пишет лог. Клиент (2) который читает лог написан на Java, следовательно компилируется.
prog,
Если аддон Lua модифицирован, скажем токен заменён, я ожидаю клиент Java заметить и отвергнуть лог.
Кстати да, я ведь могу клиентом (Java) проверять hash файла Lua. Таким образом можем исходить из того, что Lua не изменяем.
22

» XGM Конкурсы / Fun Spell Contest 2018

Я написал на vJass. Мне что, дослать JNGP который я использовал?
22

» WarCraft 3 / Гулаги

16GB:
Zahanc,
зачем тебе точки?
Вопрос в том, насколько я понял, как расставить группу юнитов по "лагерю". Вроде как сторожи по периметру. Как тут без точек?
Или вопрос был в том почему не:
real array x
real array y
Тогда ответ: просто ради примера - меньше кода.
Extremator:
Zahanc, а создание псевдо-двумерного массива разве уходит от использования цикла?
В некоторой мере, в зависимости от использования. Вопрос в том насколько точно можно представить систему в виде графа, что я не могу угадать, пока автор не ответит.
22

» WarCraft 3 / Гулаги

Как соотнести один лагерь ко множеству локаций без переборов циклом? Я могу вымыслить только поделив массив локаций. В примере я использовал vJass для ясности.
22

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

ScExp 0.1 - сборщик карт кампаний
Позволяет ли это компилировать vjass в кампаниях? Если да, то где я могу получить этот компонент отдельно?
22

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Весь вечер сегодня танцую с бубном пытаясь заставить JNGP работать с заплаткой 1.27 и выше. Пробовал буржуйский SharpCraft WEX, так он засоряет память без остановки пока не заполнит полностью! И убить поток до конца не могу на долбанном Windows. Приходилось перезапускать ПК.
Мораль в том, что я решил дальше делать свою кампанию на 1.26a, на которой работают старые наработки. Даже если 1.28+ введут функции которые расширяют саму вселенную.
22

» WarCraft 3 / Гулаги

Не понимаю зачем нужны какие-то пустышки. Kакие-либо приказы так или иначе придется отдавать с помощью скрипта.
Используйте регионы. (Я подразумеваю что каждый "флаг" может относится к одному и только к одному лагерю). Единственное что неудобно это двумерный массив для регионов, чтобы соотнести регионы ("флаги") и лагерь.
Я бы сделал что-то в духе (псевдокод):
struct Camp
  public location array locs
 // Define locs post instantiation.
endstruct
function SpreadUnitsOnCamp takes Camp targetCamp, group monsters returns nothing
  local integer i = 0
  local unit f = null
  local group g = CopyGroup(monsters)
  loop
  set f = FirstOfGroup(g)
  exitwhen null == f
  call IssueOrderMoveToLoc(f, targetCamp.locs[i])
  set i = i + 1
  call GroupRemoveUnit(g, f)
  endloop
endfunction
22

» WarCraft 3 / ОСТРОВНОЙ БЕСПРЕДЕЛ (new)

Застрял после того как убил всех пурпурных рыцарей когда они впервые появились.
22

» WarCraft 3 / Пиратки и лицензия

Легально всё должно быть в порядке, раз владеете лицензионной копией.
Технически думаю зависит от способа установки. Нужно предотвратить лаунчер устанавливать обновления поверх пиратской копии. Не знаю как правильно это сделать на Windows.
Могу ошибаться.
22

» WarCraft 3 / Галерея скриншотов ландшафта

Дуэль ландшафтов, кто-нибудь? Предпочитаю манеру старой школы. Тема: затопленные руины.
22

» Администрация XGM / Баги на XGM

У меня всё в порядке. Пользуюсь Mozilla Firefox с Windows 10 x64 сейчас. Также был порядок с Mozilla Firefox на Arch Linux x64 с i3wm.
22

» WarCraft 3 / Галерея скриншотов ландшафта

Мне не интересно делать игры профессионально. Я хочу гонять виртуальных солдатиков по монитору в свободное время. С WarCraft 3 я могу делать новые сценарии быстро. Это лишь увлечение для меня. Воображаю, для многих здесь также.
Yashka,
<< spoiler
>>
Закройте край карты. Видимость края карты уничтожает всё настроение.
22

» WarCraft 3 / Дозорный отряд "Вепрь"

Не было этого отряда. Зато было два десятка других.
Спасибо. Порадовали.