32

» WarCraft 3 / Не работает мемхак

Вроде расставлял!no cjass но оно у меня так стабильно и не заработало, я забил и написал что несовместимо в текущем виде с Cjass
Кстати лич подкинул более надежный хук на выход для восстановления памяти,
Код от DracoL1ch
unction InitExtrasPageDisplayOnExit takes integer pTriggerHandle returns nothing
local integer oldprotection = ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,0x40)
local integer address=GameDLL+0x5C4120
set FinalTableHookRealValue1=RMem(GameDLL+0x5C4120)
set FinalTableHookRealValue2=RMem(GameDLL+0x5C4120+4)

call WMem(address, 0xE9E9E9E9)

call WMem(address + 1, pFinalTableHook - (address + 1) - 4)

call WMem(pFinalTableHook + 0, 0x68609090 )
call WMem(pFinalTableHook + 4, pTriggerHandle )
call WMem(pFinalTableHook + 8, 0xB890C08B )
call WMem(pFinalTableHook + 12, pTriggerExecute )
call WMem(pFinalTableHook + 16, 0xC483D0FF )
call WMem(pFinalTableHook + 20, 0xE9906104 )
call WMem(pFinalTableHook + 24, GameDLL+0x5C4120 - (pFinalTableHook + 24) - 4 )

call ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,oldprotection)
endfunction

function DisplayExtrasPageDisplayOnExit takes nothing returns nothing
local integer oldprotection = ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,0x40)
call WMem(GameDLL+0x5C4120,FinalTableHookRealValue1)
call WMem(GameDLL+0x5C4120+4,FinalTableHookRealValue2)
call ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,oldprotection)
//your code on exit here
endfunction


activation:
set pFinalTableHook = AllocateExecutableMemory(60*4)
set t=CreateTrigger()
call TriggerAddAction(t,function DisplayExtrasPageDisplayOnExit)
call InitExtrasPageDisplayOnExit(GetHandleId(t))
Не спешим бездумно копипастить, я сделаю карту с новым детектом урона, зарядами и функциями активации абилок без приказа, когда-нибудь...
32

» WarCraft 3 / Мапа не запускается.

Принятый ответ
удалять атрибутс обязательно потом проверить код на ретур не тот тип.
32

» WarCraft 3 / Неслучайный рандом

PT153:
Такая же ситуация.
А Seed помог?
quq_CCCP:
ну задать RamdomSeed реально случаным числом, к примеру погрешностью вейта.
Можно тут поподробнее?
Вейты имеют погрешность, чем выше вейт тем сильнее, она всегда разная +-, достаточно просто запустить таймер и вейт и смотреть сколько времени прошло по таймеру после вейта, вы удивитесь но там будут чудеса, вейт 0.00 сек на деле будет 0.1-0.2 и так далее.
32

» WarCraft 3 / Фиксированный рандом в синематике

Принятый ответ
Потому что от рандома зависят анимации персонажей и многое другое.
32

» WarCraft 3 / Неслучайный рандом

ну кроме вейта еще вроде погрешность деления, 22\7 будет или не будет равно 22\7
32

» WarCraft 3 / Неслучайный рандом

native SetRandomSeed takes integer seed returns nothing
А так же смотреть текущий сид можно.
32

» WarCraft 3 / Неслучайный рандом

ArchOracle, ну задать RamdomSeed реально случаным числом, к примеру погрешностью вейта.
32

» WarCraft 3 / Jass времён 1.24

Все ретурн баг функции на хештаблицу меняешь и все прекрасно работает.
32

» WarCraft 3 / Очень странный архив карты

В доте ракапе нет файла скрипта, весь код карты эмитирует айкап лаунчер, работать карту айкапа без лаунчера вы не заставите, там весь скрипт доты Фрога в байткодах - как есть и несколько хаков для изменения, писал все это Фуккей-тян, и судя по всему он запарился это делать и послал всех на...
Почти все изменения можно сделать и в карте Фрога, как у айкапа. Ненадо 100500 хаков и прочее.
32

» WarCraft 3 / Карта Троли против эльфов...

На сколько помню это очень простая и старая TAG карта, там минимум кода, не проблема выдернуть рельеф с обьектами и написать код с нуля на гуи.
32

» WarCraft 3 / Группа или как правильно сделать pick

PT153, потому что тебе так или иначе нужна группа, не говоря о случаях когда нужно сохранить юнитов. Разница практически нулевая в скорости, между циклами и фор групом, Get функции наследуют будут работаеть только если вызов фильтра был из функции триггера который сработал на нужное событие, в данном случаи каст скилла.
globals
	player PLAYER=Player(0)
	unit TARGET=GetSpellTargetUnit()
endglobals
Вот это никогда работать небудет, т.к все Get функции такого типа, работают только в потоке триггера который сработал на соответствующие событие, если их вызвать вне потока триггера - они вернут null.
Нужно сначала обьявить глобалку а потом в спеле юзать вместо локалки, присваивая значение, т.к не будет тратится время на создание и обнуление локалок. Скорость работы что у локалок что у глобалок одинаковая.
32

» WarCraft 3 / Способность "Пустить корни"

Принятый ответ
Ну в теории тегами анимации, но можно же запретить абилку - выкопать корни, а её эффект останется.
32

» WarCraft 3 / Группа или как правильно сделать pick

Нафиг это делать в фильтре?
Когда в фильтре нудно фильтровать юнитов чтобы в группу попали только нужные юниты, а перебирать их ForGroup или циклом.
32

» WarCraft 3 / Цикл не выполняется нужное кол-во раз

ArchOracle, вот xgm.guru/p/wc3/w3datatypes
немного инфы, так же в статьях про jass разжевано как и что работает и почему такие чудеса возможны?
32

» WarCraft 3 / Цикл не выполняется нужное кол-во раз

Принятый ответ
В том что нанося урон - ты вызываешь новый поток, новый поток триггера который срабатывает на получения урона, и в этом триггере используются те же переменные что и тут, вот и все. Глобалки нужно использовать с умом.
32

» WarCraft 3 / Можно ли сделать воскрешение в Алтаре более чем на 7 героев?

Как насчет таверны, она показывает героя которого можно воскресить только для его игрока владельца.
32

» WarCraft 3 / Статы, дополняющие урон

PyCCKuu_4eJl, на мемхаке тоже есть, но вопрос про стандарт - никак, не могут дефолтные абилки изменятся от статов, работают только так как работают и точка, никаких изменений их механики работы никак сделать нельзя. Исходя из этого ледяная звезда может наносить урон который заранее прописан в параметрах, никакого взаимодействия с героем или другими способностями не сделать.
Только кастомный вариант, где вы будите наносить урон триггерно.
32

» WarCraft 3 / Освещение

Ты включаешь\выключаешь освещение как в игре, т.к в игре есть туман войны, время суток и видимость, а в редакторе это можно вырубить для удобства разработки. Ну в игре макс что можно врубить день.
32

» WarCraft 3 / Сокрытие иконки пассивной способности

8gabriel8, все что не подвержены продвинутому сайленсу, это все ауры, все прямые бонусы вроде защиты или чего еще. Что небудет работать - промахи, всякие каменные защиты. Проверяйте методом тыка.
32

» WarCraft 3 / Проверка на рут, на наличие корней, цепей, сеток и всего прочего

Насколько помню все руты отдают цели приказ, а так же наносят 0.00 ед урона при появление дебаффа в статусе.
PT153, кстати это вариант тоже работает.
32

» WarCraft 3 / Как сделать выбор способности как в AbilityDraft из DoTA?

PT153, геройских абилок в плюсике всего 5 шт макс, не разгонишся. В лод и имба дотах насколько помню лич делал через морфы, там пздц целая система...
Так же есть мемхак который позволяет устанавливать какие хочешь геройские абилки герою, чтобы они были доступны для изучения.