ну саму строку меняй в GetLocalPlayer, не вопрос) у меня там берется текущее значение золота локального игрока. Но никаких адресов локально не меняется)
set pGoldUbertipDescriptionAddress=GetGlobalStringAddress("RESOURCE_UBERTIP_GOLD")
function UpdateGoldUbertip takes nothing returns nothing
if pGoldUbertipDescriptionAddress>0 then
call AddNewOffsetToRestoreFast(pGoldUbertipDescriptionAddress)
call WMem(pGoldUbertipDescriptionAddress,GetStringAddress(yourString))
endif
endfunction
хештебл будет быстрее любой твоей реализации
единственное место, где хт уступает массиву - при сравнении LoadInt с чтением из статического адреса Array[32]
Во всех остальных случаях дешевле сразу использовать хт
function ChangeUnitPortraitTo takes unit u, string modelpath returns nothing
set LastConvertedHandle=ConvertHandle(u)
if LastConvertedHandle>0 then
call CallThisCallWith3Args(GameDLL+0x33ADC0,LastConvertedHandle,GetStringAddress(modelpath),1)
endif
endfunction
насколько помню, это меняет на одно выделение, нужно постоянно заново вызывать,если хочешь на постоянку
ThrowTargetSpellTargetUnit создан как раз для бросков дефолтных заклинаний вместо даммиков, обеспечивает сугубо базовый эффект. если тебе нужен триггерный эффект, так вызывай ту функцию сразу после, не? С параметрами вместо GetTrigger*
ну ты ж понимаешь, что компилятор пережевал их реализацию в нечитаемую битовую магию?) Местами используется ассемблеровский sqrt, местами - самопальный
Я тестил производительность с обычным количеством переменных и с 30 тысячами дополнительных глобалок, разницы не было никакой. По сути, игра не перебирает их как стек, а берет хеш имени и почти сразу попадает в нужный регион памяти. Поэтому спамь больше глобалок, разных и полезных - багов меньше будет.
это выше в нашем мире, где точность флоатов неограничена, а под капотом вполне нормальная дельта расхождения, не говоря уже о том, что само представление координат не идеальное
да хоспади, там всё проще паренной репы
выбираете, что вам надо, и ищете в WinAPI подобное
а потом делаете вызов с нужным кол-вом аргументов с конкретными параметрами
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
туда отправляется длл, имя функции, параметры, всё крайне просто. гугл в помощь
Да неважно, зачем. Суть в том, что любая публичная защита вскрывается, а непубличную даже варкрафт не откроет. Я слышал о китайских ломателях, которые портят карту так, что европейцы пока не могут их открыть. Но на практике это лишь вопрос времени, не более.
данные о том, что "скил можн оучить только на уровне Х". хранятся неподалеку, ты мог их побить или игра их сама стерла, если увидела, что все скилы изучены, например. Десятки вариантов поломок)
лучшая защита - никому не давать карту
во всех остальных случаях ты либо создаешь самостоятельно защиту, которая еще неизвестна миру (и только это даст тебе фору времени)
либо забиваешь и всё
» WarCraft 3 / RenderEdge(memhak)
» WarCraft 3 / Почему не удается отключить в константах отмену скиллов?
» WarCraft 3 / Почему не удается отключить в константах отмену скиллов?
а вообще аватар тоже имеет эту опцию, и тоже нерабочую, просто наследие бета-версий
» WarCraft 3 / [Мемхак] Как менять потрет но остается герой!
ну раз не пашет, значит без вариантов) я её не использую
» WarCraft 3 / Я так понимаю что память обведен для каждого игрока?
» WarCraft 3 / Я так понимаю что память обведен для каждого игрока?
» WarCraft 3 / Я так понимаю что память обведен для каждого игрока?
» WarCraft 3 / Я так понимаю что память обведен для каждого игрока?
» WarCraft 3 / Есть ли словарь или его аналог?
единственное место, где хт уступает массиву - при сравнении LoadInt с чтением из статического адреса Array[32]
Во всех остальных случаях дешевле сразу использовать хт
» WarCraft 3 / [Мемхак] Как менять потрет но остается герой!
» WarCraft 3 / Я так понимаю что память обведен для каждого игрока?
» WarCraft 3 / Заставить ИИ кастовать заклинания из спеллбука
» WarCraft 3 / Нативный AOE поиск юнитов в JASS
» WarCraft 3 / Нативный AOE поиск юнитов в JASS
» WarCraft 3 / Баг ;(
» WarCraft 3 / Нативный AOE поиск юнитов в JASS
» WarCraft 3 / Что лучше стандартный или нестандартный обьекты?
» WarCraft 3 / Скорость смены видимости боевой единицы
туман войны только мемхак способен ускорить
Ред. DracoL1ch
» WarCraft 3 / Защита карты в 2019
» WarCraft 3 / Мемхак 1 + Мемхак 2 = ?
выбираете, что вам надо, и ищете в WinAPI подобное
а потом делаете вызов с нужным кол-вом аргументов с конкретными параметрами
Ред. DracoL1ch
» WarCraft 3 / Защита карты в 2019
» WarCraft 3 / Ошибка
» WarCraft 3 / 7 спеллов у героя
Ред. DracoL1ch
» WarCraft 3 / Защита карты в 2019
во всех остальных случаях ты либо создаешь самостоятельно защиту, которая еще неизвестна миру (и только это даст тебе фору времени)
либо забиваешь и всё
» WarCraft 3 / Разрушение диструктиблов в АОЕ