Триггеры которые создаются и удаляются, нужны чаще всего для реализации нестандартных способностей.
К примеру тебе нужно отслеживать получаемый урон, смерть виджета, приказы.
Ну содержимое у restore само собой разное, в детекте урона новый хук на выход, вам нужна функция загрузки библиотеки?
Это же дело над:
function LoadLibrary takes string nDllName returns integer
if pLoadLibraryA == 0 then
set pLoadLibraryA = GetModuleProcAddress("Kernel32.dll", "LoadLibraryA" )
endif
if pLoadLibraryA != 0 then
return CallStdcallWith1Args(pLoadLibraryA,GetStringAddress(nDllName))
endif
return 0
endfunction
В теории это возможно, как дота айкапа - все в длл засунуто, но сложно и мало кому надо.
Это породит 100500 неудобств, делать это надо будет в релизной версии карты.
Тулы векста то и не защищают вовсе, а только удаляют карты редактора, да производят обфускацию кода, как таковой защиты модели с помощью этой проги сделать нельзя, как и вовсе сделать не читаемым архив - пока читает игра, читают и другие проги, щяс мб еще остались хекс протекторы, но почти все уже зезула обошел.
DarKRs, в jass размер массива 8192, так для справки, игроков вы заносите в массив каждый раз когда хотите найти рандомного, вдруг кто то ливнул?
И зачем делать рандом больше числа играющих игроков? Вы проверяете в цикле все слоты, кто играет, и заносите играющих в массив.
DarKRs, Ну для того и массив, вы заносите туда игроков по очереди, в нулевую ячейку первого играющего игрока, пусть это будет игрок на синем слоте, потом в первую ячейку массива второго играющего игрока - ну пусть далее синезеленый, и так пока все играющие игроки не кончатся, потом генерируем случайное число от 0 до максимума играющих игроков, какое выпадет, из такого номера ячейки массива и берем игрока.
rsfghd, полные изменения читайте, а так же лич уже публиковал баги - вроде того что сменились приказы у абилок, это вызвало баги с чем что даммики не могли кинуть спеллы, еще 1 прикол - лимит на запись в хештаблицу, после 30 мин дота фрога работала с приколами и багами, все ломалось.
Они в след патчах это конечно правили, добавляли новые проблемы. Тут речь не про баланс мили карт, а втом что они меняют механику работы некоторых нативок и способностей, которые в других картах были использованы без учета того что то могут поменять. Ну и широкоформатный экран от близзардов мне если честно не зашел. SixtyHz, rsfghd, можите почитать blog.d1stats.ru/blog/wc3map/324.html
Так же на хайве инфы достаточно много на эту тему.
rsfghd, багами, в новых патчах добавлено много несовместимостей и проблем. Как бы если бы это был 2002 год все бы радовались, но тут проблема в том что 100500 карт перестали работать, 100500 кастом карт, авторы многих из которых их давно забросили и патчить и чинить все эти кастомки некому, а варкравт то держится как раз на кастом картах а не мили сражениях, на которые всем давно плевать с высокой колокольни.
Итого - толку от новых возможностей и прочего, если в это некому играть, некому переписать под новые патчи огромное кол-во карт, яркий пример - дота фрога, кто её будет править? SixtyHz, мне это всегда было не понятно - зачем? Самое глупое изменение которое только могло быть, добавьте к этому еще 1000 болячек вара, связанных с кол-вом юнитов и игроков, самое оно плодить игроков.
Не больше 60 юнитов на игрока, иначе капут. Не рассчитан варик на такое кол-во юнитов, еще и одновременно что то делающих.
Обзор юнитам на минимум, как и поиск целей для автоатаки. Вовсе юнитов нужно создавать небольшими порциями и отправлять.
DracoL1ch, Да на них то никто не надеялся, ты же на собственном опыте знаешь как они идут на встречу?
Просто если это сраное меню "союзники" то думал мб вернуть все на свои места с помощью мемхака.
DracoL1ch, всем раздан контроль - взаимный и 100%, куру все контролят, но нет не десинхает, я тоже думал что кура, нет не кура, причем меня не выкинуло а выкинуло других игроков, не всех с айкапа кикает а 2-3 игрока, на последних слотах, причем есть или нет кура - никого не волнует, кикает от 45 секунды до 2 минуты. Судя по реплеям, никто куру в это время то и не юзал. Bergi_Bear, на айкапе нет разработчкиов, там админы, они в этих вопросах не компетентны, многие из них не знают что у варкравта есть редактор карт. Реальные разработчики лаунчера либо недосягаемы, либо молчат.
zogorlol, причем тут это, она ничем не отличается от фроговской в плане статистики, при этом она работает везде кроме айкапа, на других то серверах не дисинхает. zogorlol, если ты не понял - хостинг ведется сразу на 3 сервера, айкап, гарена, плейграунд, игроки в одно лобби заходят с нескольких серверов, все работает, игроки гарены и плейграунда играют и улыбаются, их не дропает, дропает игроков айкапа.
Тоже был такой баг, похоже из за дырявой структуры " там герой оставался, а при следующем юзе структуры его удаляли", хотя может и что то другое было, ввел на всякий случай комманду -recrate чтобы этот баг больше не мог испортить игру.
ArchOracle, сам ретурнд баг в краце - несколько TypeCast функций смысл которых преобразовать Некий тип обьекта в целое число, а запись памяти реализовано через "сломанный массив", вот этот участок кода
function InitBytecode takes integer id, integer k returns nothing
set l__bytecode[0] = 0x0C010900 //op: 0C(LITERAL), type: 09(integer array), reg: 01,
set l__bytecode[1] = k //value: 0x2114D008
set l__bytecode[2] = 0x11010000 //op: 11(SETVAR), reg: 01
set l__bytecode[3] = id //id of variable Memory
set l__bytecode[4] = 0x0C010400 //op: 0C(LITERAL), type: 04(integer), reg: 01, value: 0
set l__bytecode[6] = 0x27000000 //op: 27(RETURN)
set l__bytecode[8] = 0x07090000 //op: 07(GLOBAL), type: 09 (integer array) //Create new array
set l__bytecode[9] = 0x0C5F //name: C5F(“stand”)
set l__bytecode[10] = 0x0E010400 //op: 0E(GETVAR), type: 04(integer), reg: 01 //Obtain the desired amount of bytes
set l__bytecode[11] = id+1 //id of variable bytecodedata (variable ids are sequential)
set l__bytecode[12] = 0x12010100 //op: 12(SETARRAY), index=reg01, value=reg01 //Set index of the array, forcing allocation of memory
set l__bytecode[13] = 0x0C5F //name: C5F(“stand”)
set l__bytecode[14] = 0x0E010400 //op: 0E(GETVAR), type: 04(integer), reg: 01 //Read array variable as an integer
set l__bytecode[15] = 0x0C5F //name: C5F(“stand”)
set l__bytecode[16] = 0x11010000 //op: 11(SETVAR), reg: 01 //pass the value to the jass world
set l__bytecode[17] = id+1 //id of variable bytecodedata
set l__bytecode[18] = 0x27000000 //op: 27(RETURN)
endfunction
Ну и грубо говоря, ты нашел адресс code - готового алгоритма, code ссылка на "инструкцию" которая представляет из себя массив заполненный инструкциями для виртуальной JASM машины, и тебя есть так называемый "сломанный массив", у тебя есть I2C() + I2Aray условно ядресс твоего code + и адресс твоего массива, ты заполняешь массив нужными тебя инструкциями и приклеиваешь к концу code и вызываешь твой code, все вот он хак, ты записал в память свою инструкцию и заставил виртуальную JASM машину выполнить её. Ну вот как то так, несколько утрированно, но думаю ты понял.
» WarCraft 3 / Динамические триггеры
К примеру тебе нужно отслеживать получаемый урон, смерть виджета, приказы.
» WarCraft 3 / Какая версия Warcraft 3 лучше?
Ну хз.
» WarCraft 3 / Мемхак 1 + Мемхак 2 = ?
Это же дело над:
» WarCraft 3 / Защита карты в 2019
Кинь людям твой интерпретатор в байткод.
» WarCraft 3 / Защита карты в 2019
Это породит 100500 неудобств, делать это надо будет в релизной версии карты.
Тулы векста то и не защищают вовсе, а только удаляют карты редактора, да производят обфускацию кода, как таковой защиты модели с помощью этой проги сделать нельзя, как и вовсе сделать не читаемым архив - пока читает игра, читают и другие проги, щяс мб еще остались хекс протекторы, но почти все уже зезула обошел.
» WarCraft 3 / Мемхак 1 + Мемхак 2 = ?
» WarCraft 3 / Рандомный игрок
И зачем делать рандом больше числа играющих игроков? Вы проверяете в цикле все слоты, кто играет, и заносите играющих в массив.
» WarCraft 3 / Рандомный игрок
» WarCraft 3 / Рандомный игрок
» WarCraft 3 / Terrain Deformation и высота юнитов
» WarCraft 3 / Какая версия Warcraft 3 лучше?
Они в след патчах это конечно правили, добавляли новые проблемы. Тут речь не про баланс мили карт, а втом что они меняют механику работы некоторых нативок и способностей, которые в других картах были использованы без учета того что то могут поменять. Ну и широкоформатный экран от близзардов мне если честно не зашел.
SixtyHz, rsfghd, можите почитать blog.d1stats.ru/blog/wc3map/324.html
Так же на хайве инфы достаточно много на эту тему.
Ред. quq_CCCP
» WarCraft 3 / Какая версия Warcraft 3 лучше?
Итого - толку от новых возможностей и прочего, если в это некому играть, некому переписать под новые патчи огромное кол-во карт, яркий пример - дота фрога, кто её будет править?
SixtyHz, мне это всегда было не понятно - зачем? Самое глупое изменение которое только могло быть, добавьте к этому еще 1000 болячек вара, связанных с кол-вом юнитов и игроков, самое оно плодить игроков.
» WarCraft 3 / Последствия использование вейтов ?
» WarCraft 3 / Новый детект физического урона на мемхаке
» WarCraft 3 / Падает фпс, когда юниты на карте начинают драться
» WarCraft 3 / Падает фпс, когда юниты на карте начинают драться
Обзор юнитам на минимум, как и поиск целей для автоатаки. Вовсе юнитов нужно создавать небольшими порциями и отправлять.
» WarCraft 3 / Дисинх на Iccup при хостинге через бота на несколько серверов.
Просто если это сраное меню "союзники" то думал мб вернуть все на свои места с помощью мемхака.
Ред. quq_CCCP
» WarCraft 3 / Дисинх на Iccup при хостинге через бота на несколько серверов.
Bergi_Bear, на айкапе нет разработчкиов, там админы, они в этих вопросах не компетентны, многие из них не знают что у варкравта есть редактор карт. Реальные разработчики лаунчера либо недосягаемы, либо молчат.
» WarCraft 3 / Дисинх на Iccup при хостинге через бота на несколько серверов.
zogorlol, если ты не понял - хостинг ведется сразу на 3 сервера, айкап, гарена, плейграунд, игроки в одно лобби заходят с нескольких серверов, все работает, игроки гарены и плейграунда играют и улыбаются, их не дропает, дропает игроков айкапа.
» WarCraft 3 / Перестала работать инициализация
» WarCraft 3 / Удаляется герой рандомно, баг
» WarCraft 3 / выкидывает сразу всех игроков с игры, кроме меня, в моей карте..
» WarCraft 3 / Мемхак на пальцах
» WarCraft 3 / Мемхак на пальцах
» WarCraft 3 / выкидывает сразу всех игроков с игры, кроме меня, в моей карте..