Нужна функция, возвращающая widget, на которого указывает определённый игрок
к примеру так:
function GetSelectedWidget takes player p returns widget
нету особого представления как всё это работает. Искал насчёт именно memory hack в варе, но почти ничего не нашёл. Укажите литературу, если это поможет решить проблему

Принятый ответ

ну есть такая возможность
в [[gameClass2]+0x1B4]+0x14 хранится адрес виджета под мышкой. естественно, деревья не в счет, может, только у рабочих они учитываются
RMem(RMem(RMem(gameClass2)+0x1B4)+0x14)==address
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
16
7 лет назад
0
что значит "указывает"?
0
5
7 лет назад
0
DracoL1ch:
что значит "указывает"?
Мышкой указывает (она тогда ещё моргать начинает)
0
27
7 лет назад
Отредактирован MpW
0
DracoL1ch, мб имеет в виде выделен игроком (зеленым/желтым/красным отображаются круги под ногами юнитов и мышка, а еще у юнитов отображается в интерфейсе отображаются морды - хотел сказать портреты лица главаря и отряды - иконки тех, кто выделен)? вот определить типа как с юнитами, там можно вычислить выделен юнит игроком или нет. А тут то widget (объект). Вроде итем и декорации, и все, есть что еще выделить можно в игре
0
5
7 лет назад
0
Steal nerves:
DracoL1ch, мб имеет в виде выделен игроком? вот определить типа как с юнитами, там можно вычислить выделен юнит игроком или нет. А тут то widget (объект). Вроде итем и декорации, и все, есть что еще выделить можно в игре?
имею ввиду не выделен. Просто навёл мышкой - указывает мышкой на объект. Нужно его возвратить или хотя бы его адрес
0
32
7 лет назад
0
Эмм, выделяются тока разрушаемые объекты да и то не все, деревья не выделяются игроком...
Если не секрет зачем вам знать над каким разрушаемым объектом сейчас курсор игрока?
0
5
7 лет назад
0
quq_CCCP:
Эмм, выделяются тока разрушаемые объекты да и то не все, деревья не выделяются игроком...
Если не секрет зачем вам знать над каким разрушаемым объектом сейчас курсор игрока?
так ведь widget может быть и юнит? Мне это даст полную информацию о курсоре. Таким образом смогу квикасты сделать. (а что если захочу горячей клавишей мгновенно съесть дерево, где находится курсор?)
0
27
7 лет назад
Отредактирован MpW
0
quq_CCCP, можно настроить так, чтобы дерево выделялось)) в РО настраивается, но это значит у дерева будет видно полоска здоровья и круг. типа будет это как обычные железные ворота. если ты не знал. ладно. но мне кажется это дереву не нужно.
0
5
7 лет назад
Отредактирован Lenivex
0
Steal nerves:
quq_CCCP, можно настроить так, чтобы дерево выделялось)) если ты не знал. ладно
во 1 я сказал к примеру. Во вторых я хочу сделать - квикасты. Т.е. - нажал горячую кнопку и после этого юнит юзает спелл в точку курсора если это возможно
0
32
7 лет назад
0
Steal nerves:
quq_CCCP, можно настроить так, чтобы дерево выделялось)) если ты не знал. ладно
Знал, но мы обсуждаем дефолт.
Lenivex, автор очень обобщенно написал про виджеты, мне показалась что речь идет именно о разрушаймом декоре, ибо про предметы или юнитов так бы и написал. Для каста быстрого каста абилок есть всякие кликкеры, мапперы и так далее - стороннее по, всякие инвокер кеии и течис боты для доты тому яркий пример, незачем это делать на уровне карты.
1
16
7 лет назад
1
ну есть такая возможность
в [[gameClass2]+0x1B4]+0x14 хранится адрес виджета под мышкой. естественно, деревья не в счет, может, только у рабочих они учитываются
RMem(RMem(RMem(gameClass2)+0x1B4)+0x14)==address
Принятый ответ
0
5
7 лет назад
Отредактирован Lenivex
0
DracoL1ch:
ну есть такая возможность
в [[gameClass2]+0x1B4]+0x14 хранится адрес виджета под мышкой. естественно, деревья не в счет, может, только у рабочих они учитываются
RMem(RMem(RMem(gameClass2)+0x1B4)+0x14)==address
Кажется я опять что то перепутал. Как нужно функцию построить? Я просто возвращаю адрес (оба пробовал). Выдаёт Фатал
Загруженные файлы
0
16
7 лет назад
0
у тебя старая версия мб? у меня всё без деления на 4, если в ReadMemory деления нет - то сам дели перед продолжением. И проверяй везде на то, что в адресе >0
function RMem takes integer addr returns integer
if addr<0x500 or addr>0x7FFFFFFF then
return 0
endif
return Memory[addr/4]
endfunction
0
5
7 лет назад
0
DracoL1ch:
у тебя старая версия мб? у меня всё без деления на 4, если в ReadMemory деления нет - то сам дели перед продолжением. И проверяй везде на то, что в адресе >0
function RMem takes integer addr returns integer
if addr<0x500 or addr>0x7FFFFFFF then
return 0
endif
return Memory[addr/4]
endfunction
Использовал RMem(), также фатал выкидывает
Загруженные файлы
0
16
7 лет назад
0
а гейм класс-то ты определил?
0
5
7 лет назад
0
DracoL1ch:
а гейм класс-то ты определил?
set pGameClass2 = base + 0xAB4F80 / 4 Это Init26
его инициалицировать нужно? Я его в initizlizer добавил. Тоже самое
3
16
7 лет назад
3
его восстановить надо, у тебя разбодяженный делением на 4. сделай себе новую глобалку pGameClass24 = pGameClass2*4
0
5
7 лет назад
Отредактирован Lenivex
0
DracoL1ch:
его восстановить надо, у тебя разбодяженный делением на 4. сделай себе новую глобалку pGameClass24 = pGameClass2*4
вот это точно. Теперь всё правильно выдаёт. С делением на 4 непонятно, почему так и можно ли скачать последнюю версию Memory Hack?
0
16
7 лет назад
0
потому что с релиза прошло 4 месяца, а мне некогда чистить код для перезалива
Чтобы оставить комментарий, пожалуйста, войдите на сайт.