Вернуться   D3Scene.Ru Софт портал игр | Хаки | Проги | Статьи > Основные игры > WarCraft 3 > WarCraft 3 Хаки
Присоединяйся к нам

WarCraft 3 Хаки Хаки, читы в Wc3



Ответ
 
Опции темы Опции просмотра
Старый 09.12.2013, 16:23   #1
Рядовой
 
Аватар для kaliban
 
Регистрация: 12.12.2012
Сообщений: 24
Репутация: 0
Автор По умолчанию

получить unit героя за которого я играю


Привет всем.

Собственно вопрос: как получать координаты моего героя ? или же, как получить "unit" непосредственно моего перса ?

Для нативок GetUnitX/Y в качестве параметра нужен этот "unit". ( который определяет кого собственно координату мы хотим получить)

Поискал тут:
[Ссылки скрыты от гостей.]
Ничего не нашел.


С Jass никогда дела не имел. Заранее спасибо за любой совет.
  Ответить с цитированием Наверх
Старый 09.12.2013, 16:26   #2
HOLLY SHIT





 
Аватар для Misery
 
Регистрация: 07.04.2010
Адрес: Виртуальный Разум
Сообщений: 1,309
Монетки D3Scene.Ru: 1
Репутация: 890
Отправить сообщение для Misery с помощью AIM Отправить сообщение для Misery с помощью Yahoo Отправить сообщение для Misery с помощью Skype™
По умолчанию

Жди врыва Абсо,он как раз писал микрохак на джасе,позвал его в скайпе
__________________
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
kaliban (09.12.2013)
Старый 09.12.2013, 17:28   #3
Support GuAI



 
Аватар для Abso!
 
Регистрация: 31.10.2009
Адрес: BY
Сообщений: 1,428
Монетки D3Scene.Ru: 200
Репутация: 700
Отправить сообщение для Abso! с помощью Skype™
По умолчанию

Цитата:
Сообщение от kaliban Посмотреть сообщение
Привет всем.

Собственно вопрос: как получать координаты моего героя ? или же, как получить "unit" непосредственно моего перса ?

Для нативок GetUnitX/Y в качестве параметра нужен этот "unit". ( который определяет кого собственно координату мы хотим получить)

Поискал тут:
[Ссылки скрыты от гостей.]
Ничего не нашел.


С Jass никогда дела не имел. Заранее спасибо за любой совет.
UINT GetMaxUnitForMap()
{
UINT tmp = 0;
DWORD tmpaddr = *(DWORD*) (GameDll + 0xAAE2FC);
tmp += *(UINT*) (tmpaddr + 0x428);
tmp += 0x100000;
return tmp;
}

(или просто *(UINT*) (*(DWORD*) (GameDll + 0xAAE2FC)+ 0x428) + 0x100000 )
перебирай начиная с 0x100000 до GetMaxUnitForMap

Сразу узнаешь ID (если нужен любой юнит) или уровень (если нужен герой) , если больше чем 0 значит это юнит. Потом проверить кому он принадлежит, и если твой то делаешь с ним что хочешь)))

Последний раз редактировалось Abso!; 09.12.2013 в 17:32.
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
kaliban (09.12.2013)
Старый 09.12.2013, 17:48   #4
Рядовой
 
Аватар для kaliban
 
Регистрация: 12.12.2012
Сообщений: 24
Репутация: 0
Автор По умолчанию

Спасибо.

Как получить всех героев я знаю

из исходника AutoSS-RE+Src:
PHP код:
void CALLBACK UpdateHeroList(HWNDUINTUINTDWORD)
{

    if (
IsGame() && IsActiveWindow())
    {
        
HeroList.clear();
        for (
DWORD i 0x1000000x200000i++) // Знаю что начинается первый юнит с 0x100000 , + ~18 на каждого юнита, 0x200000 достаточно.
        
{
        
            if (
GetHeroLevel(i) > 0)
            {
                
HeroList.push_back(i);
            }
        }

    }

Цитата:
Потом проверить кому он принадлежит
Мне именно это и интересно.






найденный адрес ( в том диапазоне ) и есть тот unit которой нужен для getUnitX/Y ?

Вот нашел я 10 героев, по моему нику потом своего вычленять ?




p.s Прошу прощения за возможно глупые вопросы, хаки, читы и прочее никогда не писал, и в низкоуровневом программировании не силен.

Последний раз редактировалось kaliban; 09.12.2013 в 17:54. Причина: дополнение
  Ответить с цитированием Наверх
Старый 09.12.2013, 18:04   #5
Support GuAI



 
Аватар для Abso!
 
Регистрация: 31.10.2009
Адрес: BY
Сообщений: 1,428
Монетки D3Scene.Ru: 200
Репутация: 700
Отправить сообщение для Abso! с помощью Skype™
По умолчанию

Цитата:
Сообщение от kaliban Посмотреть сообщение
< 0x200000

Это вызывает ошибку :) Не заметную, но используй новый вариант:GetMaxUnitForMap

А вообще лучше полазь в моих исходниках DotaHelper'а

Проверяешь OwningPlayer == LocalPlayer...
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
kaliban (09.12.2013)
Старый 10.12.2013, 17:51   #6
Рядовой
 
Аватар для kaliban
 
Регистрация: 12.12.2012
Сообщений: 24
Репутация: 0
Автор По умолчанию

Спасибо, получилось вывести координаты в игру.

Есть еще пара вопросов, если не трудно, ответь )

1. Есть ли перечень нативок которые можно использовать в игре через battle.net, т.е не вызывающих рассинхрон.

2. Возможно ли каким то образом вызывать функции определенные создателем карты ? Допустим у меня есть исходник аоски, могу ли имитировать их вызов ?

3. Мое задача сейчас, сделать так, что бы при нажатии клавиши, из инвентаря выкидывалась шмотка, и сразу поднималась. Реализиемо ли это с помощью нативок ? ( пробовал на autoit, работает не стабильно )

Последний раз редактировалось kaliban; 10.12.2013 в 17:53. Причина: дополнение
  Ответить с цитированием Наверх
Старый 10.12.2013, 19:52   #7
Support GuAI



 
Аватар для Abso!
 
Регистрация: 31.10.2009
Адрес: BY
Сообщений: 1,428
Монетки D3Scene.Ru: 200
Репутация: 700
Отправить сообщение для Abso! с помощью Skype™
По умолчанию

из Jass Natives Class ( [Ссылки скрыты от гостей.] ) можно использовать все, кроме функций управляющих героем и многих других таких как изменение ресурсов создание юнитов и т.д. Возможно даже сделать чтобы можно было выкинуть аганим(сделать выкидываемым) без десинка, но заставить героя двигаться или выбросить предмет этим не получится, нужно лазить глубже
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
kaliban (10.12.2013)
Старый 10.12.2013, 19:57   #8
Рядовой
 
Аватар для kaliban
 
Регистрация: 12.12.2012
Сообщений: 24
Репутация: 0
Автор По умолчанию

хм, я таким не занимался, но можно как то сочленить c++ с ahk ? с помощью ahk выкидывать шмотку ( это просто ) потом брать ее координаты ( видел нативку такую вроде ) слать в ahk и кликать/поднимать по ним.



2. Возможно ли каким то образом вызывать функции определенные создателем карты ? Допустим у меня есть исходник аоски, могу ли имитировать их вызов ?


а насчет этого что ?

Последний раз редактировалось kaliban; 10.12.2013 в 20:02.
  Ответить с цитированием Наверх
Старый 10.12.2013, 20:24   #9
Support GuAI



 
Аватар для Abso!
 
Регистрация: 31.10.2009
Адрес: BY
Сообщений: 1,428
Монетки D3Scene.Ru: 200
Репутация: 700
Отправить сообщение для Abso! с помощью Skype™
По умолчанию

Цитата:
Сообщение от kaliban Посмотреть сообщение
2. Возможно ли каким то образом вызывать функции определенные создателем карты ? Допустим у меня есть исходник аоски, могу ли имитировать их вызов ?
Большинство функций вызовут десинк, но пробуй ExecuteFunc из Jass Natives Class
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
kaliban (10.12.2013)
Старый 13.12.2013, 01:47   #10
Рядовой
 
Аватар для kaliban
 
Регистрация: 12.12.2012
Сообщений: 24
Репутация: 0
Автор По умолчанию

Цитата:
Сообщение от Abso! Посмотреть сообщение
Возможно даже сделать чтобы можно было выкинуть аганим(сделать выкидываемым) без десинка
Можно об этом поподробнее ?
Попробовал SetItemDroppable - десинхронизация.

UnitUseItem - тоже ( хотя вроде как безобидная функция )
Возможно ли как то отсылать (для примера) прожимать предметы программно, и отсылать данные об этом событии( боты насколько я знаю работают именно по этому принципу-с протоколом), в этом случае десинхрона быть не должно(могу ошибаться).

-"выбросить предмет этим не получится"
UnitDropItemPoint эта разве не бросает ? Хоть и толка от нее 0, т.к десинх.

Существует ли какой то перечень нативок которые можно использовать в мультиплеере ?



Знаю, засыпал вопросами, буду благодарен если ответите на все =)

Последний раз редактировалось kaliban; 13.12.2013 в 01:48.
  Ответить с цитированием Наверх
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Powered by vBulletin
Copyright © 2017 vBulletin Solutions, Inc.
Перевод: zCarot | Дизайн: G-A | Верстка: OldEr
Текущее время: 01:29. Часовой пояс GMT +4.