Я думаю что выполнить это с помощью скриптов почти невозможно. Разве что с мемхаком. Возможно существуют похожие способности в РО, вроде пассивной способности лучниц ночных эльфов.
У всех у объектов, пивоты которых не попадает в камеру выключается рендер, исключение только Doodads. Поэтому при генерации ландшафта или просто при необходимости заспавнить большой объект, возникает дофига проблем. Решал это только спавном одновременно нескольких одинаковых объектов с разными пивотами, это то еще извращение. Понятно что близы хотели облегчить рендер и с видом сверху в основном все должно влезать. Но иметь возможность поставить галочку в ро для переключения обрезки было бы очень полезно. Какбы к джазу это мало относится, но вдруг.
Господи, да! Я имел столько головной боли из-за этого.
Объявил переменную (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
Говоря о сборщике кампаний. Когда вписываю название карты получаю сообщение об ошибке "Unknown error in plugin". Причем, если ввести заведомо неправильное название карты, такой ошибки не возникает. Не смог найти в логах подробностей. Версия игры 1.26а. Кто-то сталкивался с этим?
+
"ScExpMPQed.exe", я так понимаю ядро расширения, не работает. Даже запуская программу через Batch script ничего не происходит. Есть ли исходники для этого?
+
Лгу! Оказывается что-то происходит если задать относительные пути к файлам и сами файлы поместить в папку с программой! Изучаю дальше...
Я тоже думаю в этом направлении. Вот только не могу придумать как это сделать точно.
Я рассуждал, мол, каждая запись в лог сопровождается 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. Не могу проверить прямо сейчас.
Вся идея состоит в том, чтобы собирать данные с компьютеров игроков и аггрегировать их на сервере. И я не могу посылать запросы в Веб напрямую из игры (Lua), поэтому нужен отдельный клиент (2).
Аддон (1), который Lua, лишь слушает события в игре и пишет лог. Клиент (2) который читает лог написан на Java, следовательно компилируется. prog,
Если аддон Lua модифицирован, скажем токен заменён, я ожидаю клиент Java заметить и отвергнуть лог.
Кстати да, я ведь могу клиентом (Java) проверять hash файла Lua. Таким образом можем исходить из того, что Lua не изменяем.
Вопрос в том, насколько я понял, как расставить группу юнитов по "лагерю". Вроде как сторожи по периметру. Как тут без точек?
Или вопрос был в том почему не:
real array x
real array y
Тогда ответ: просто ради примера - меньше кода. Extremator:
Zahanc, а создание псевдо-двумерного массива разве уходит от использования цикла?
В некоторой мере, в зависимости от использования. Вопрос в том насколько точно можно представить систему в виде графа, что я не могу угадать, пока автор не ответит.
Как соотнести один лагерь ко множеству локаций без переборов циклом? Я могу вымыслить только поделив массив локаций. В примере я использовал vJass для ясности.
Весь вечер сегодня танцую с бубном пытаясь заставить JNGP работать с заплаткой 1.27 и выше. Пробовал буржуйский SharpCraft WEX, так он засоряет память без остановки пока не заполнит полностью! И убить поток до конца не могу на долбанном Windows. Приходилось перезапускать ПК.
Мораль в том, что я решил дальше делать свою кампанию на 1.26a, на которой работают старые наработки. Даже если 1.28+ введут функции которые расширяют саму вселенную.
Не понимаю зачем нужны какие-то пустышки. 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
Легально всё должно быть в порядке, раз владеете лицензионной копией.
Технически думаю зависит от способа установки. Нужно предотвратить лаунчер устанавливать обновления поверх пиратской копии. Не знаю как правильно это сделать на Windows.
Мне не интересно делать игры профессионально. Я хочу гонять виртуальных солдатиков по монитору в свободное время. С WarCraft 3 я могу делать новые сценарии быстро. Это лишь увлечение для меня. Воображаю, для многих здесь также.
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4
Sir_Lambert: Да, проверяю JNGP Rebuild 1.3 на игре 1.26а.
Ред. Zahanc
» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4
+
"ScExpMPQed.exe", я так понимаю ядро расширения, не работает. Даже запуская программу через Batch script ничего не происходит. Есть ли исходники для этого?
+
Лгу! Оказывается что-то происходит если задать относительные пути к файлам и сами файлы поместить в папку с программой! Изучаю дальше...
» Программирование / Аутентификация с нуля. Предотвратить подмену записей.
» Программирование / Аутентификация с нуля. Предотвратить подмену записей.
+
Наверное буду "шифровать" XOR'ом или что-то вроде. Чтобы нужно было-бы по крайней мере понимать Lua, чтобы понять что происходит.
+
Lua таки можно компилировать в байткод: www.lua.org/manual/4.0/luac.html Проверял на luac53. Вот только WoW не загружает такие файлы (ожидаемо). Может ещё что раскопаю.
К тому же существуют obfuscator'ы. Не могу запустить ни один, правда.
+
Рабочий obfuscator: github.com/jkusner/LuaObfuscator Не уверен работает ли он с 30300 WoW API. Не могу проверить прямо сейчас.
Ред. Zahanc
» Программирование / Аутентификация с нуля. Предотвратить подмену записей.
prog,
Кстати да, я ведь могу клиентом (Java) проверять hash файла Lua. Таким образом можем исходить из того, что Lua не изменяем.
Ред. Zahanc
» XGM Конкурсы / Fun Spell Contest 2018
Ред. Zahanc
» WarCraft 3 / Гулаги
Extremator: В некоторой мере, в зависимости от использования. Вопрос в том насколько точно можно представить систему в виде графа, что я не могу угадать, пока автор не ответит.
Ред. Zahanc
» WarCraft 3 / Гулаги
» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
Ред. Zahanc
» WarCraft 3 / Гулаги
» WarCraft 3 / Гулаги
» WarCraft 3 / ОСТРОВНОЙ БЕСПРЕДЕЛ (new)
» WarCraft 3 / Пиратки и лицензия
» WarCraft 3 / ОСТРОВНОЙ БЕСПРЕДЕЛ (new)
» WarCraft 3 / Галерея скриншотов ландшафта
» Администрация XGM / Баги на XGM
Ред. Zahanc
» WarCraft 3 / Галерея скриншотов ландшафта
<< spoiler
» WarCraft 3 / Модели в разработке (WIP)
» WarCraft 3 / Нужна модель? - Вам сюда!
Ред. Zahanc
» WarCraft 3 / Дозорный отряд "Вепрь"