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

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



Ответ
 
Опции темы Опции просмотра
Старый 24.04.2019, 00:34   #1
Рядовой
 
Аватар для LPVOID
 
Регистрация: 28.10.2016
Сообщений: 33
Репутация: 6
Автор Лампочка

[Обсуждение] Warcraft 3 PrintChat, SendPacket?


Всем привет!

Собственно, мне необходимо, через хоткей, как то отправить всем цветной текст в чате.
На текущий момент пришел к выводу, что мне нужно каким-то образом отправить пакет

Код:
W3GS_CHAT_FROM_HOST
или
Код:
W3GS_CHAT_TO_HOST
Склоняюсь более ко второму пакету, так как хостом являюсь не я, а бот ICCup.

Сейчас моя проблема, найти функцию WC3, отправляющую эти пакеты.
В открытом доступе ничего дельного не нашел.

Есть вот это
Код:
/*------------------------------------------------------------------------------
	SendPacket
------------------------------------------------------------------------------*/

void SendPacket(BYTE* packetData, DWORD size)
{
	// @warning: this function thread-unsafe, do not use it in other thread.
	// note: this is very useful function, in fact this function
	// does wc3 ingame action, so you can use it for anything you want,
	// including unit ***mands and and gameplay ***mands,
	// i suppose its wc3 single action W3GS_IN***ING_ACTION (c) wc3noobpl.

	if(!IsInGame())
		return;

	Packet packet;
	memset(&packet, 0, sizeof(Packet));

	packet.PacketClassPtr = (DWORD)GAME_PacketClassPtr; // Packet Class
	packet.PacketData = packetData;
	packet.Size = size;
	packet._3 = 0xFFFFFFFF;
	GAME_SendPacket(&packet, 0);
}
Но оно не работает. Убедился, что комментарий не зря написали.

Так как в ревёрсе я не силен, обращаюсь за помощью к своим соратникам.
Уже второй день мучаюсь над этим вопросом.

Любые идеи, догадки, предположения и помощь будут очень полезны.
  Ответить с цитированием Наверх
Старый 05.05.2019, 16:15   #2
Новичок
 
Аватар для Tаiler007
 
Регистрация: 18.12.2013
Адрес: Тбилиси
Сообщений: 1
Репутация: 2
Отправить сообщение для Tаiler007 с помощью Skype™
По умолчанию

Re: [Обсуждение] Warcraft 3 PrintChat, SendPacket?


DotaHelper в помощь, там это реализовано, или используй мою программу WFE, там это тоже реализовано.

Ну или на крайний GarenaTotal.
  Ответить с цитированием Наверх
Старый 06.05.2019, 18:46   #3
Рядовой
 
Аватар для LPVOID
 
Регистрация: 28.10.2016
Сообщений: 33
Репутация: 6
Автор По умолчанию

Re: [Обсуждение] Warcraft 3 PrintChat, SendPacket?


Tаiler007, Всё не то, всё не то.
  Ответить с цитированием Наверх
Старый 14.05.2019, 11:16   #4
Новичок
 
Аватар для sanyok2020
 
Регистрация: 16.01.2015
Сообщений: 3
Репутация: 2
По умолчанию

Re: [Обсуждение] Warcraft 3 PrintChat, SendPacket?


Цветной текст всем послать нельзя, только вывести у себя на экране (не в чате), локально. Можно отправить обычное сообщение в общий чат, раскрасив его с помощью тэгов цветов, но они будут работать только в окне лога чата (f12), а в окне игры они фильтруются вариком, поэтому сообщение будет выглядеть обыкновенным.

W3GS_CHAT_FROM_HOST это от сервера к клиентам, точно не подойдет.

А та процедура, насколько помню, отправляет W3GS_OUTGOING_ACTION. Список большинства in-game actions с параметрами можно тут глянуть: [Ссылки скрыты от гостей.]
Вот так например можно передавать голд:
PHP код:
void push_back_bytes(vector<BYTE>& destBYTEvalunsigned int count) { for (unsigned i=0i<count; ++idest.push_back(val[i]); }
void push_back_bytes(vector<BYTE>& destDWORD val) { push_back_bytes(dest, (BYTE*)&valsizeof(val)); }

// ----------------------------------------
// 0x51 - Transfer resources[10 bytes][APM - ]
// - ---------------------------------------
// 1 byte - player slot number(0 - 11)(including ***puter AI players)
// 1 dword - Gold to transfer
// 1 dword - Lumber to transfer
//
// Note :
// o Transfering resources to multiple players results in an action for every
// involved player.
// (c) http://w3g.deepnode.de/files/w3g_actions.txt

#define TRANSFER_RESOURCES_ID 0x51
#define TRANSFER_RESOURCES_SIZE 10

void SendAction_TransferResources(BYTE playerSlotNumDWORD goldDWORD lumber)
{
    
vector<BYTEpacket(TRANSFER_RESOURCES_SIZE);
    
packet.push_back(TRANSFER_RESOURCES_ID);
    
packet.push_back(playerSlotNum);
    
push_back_bytes(packetgold);
    
push_back_bytes(packetlumber);
    
SendPacket(packet.data(), packet.size());

Код не проверял, но должен работать.

Последний раз редактировалось sanyok2020; 14.05.2019 в 17:22. Причина: Добавлено сообщение
  Ответить с цитированием Наверх
Пользователь сказал cпасибо:
LPVOID (22.05.2019)
Старый 22.05.2019, 23:43   #5
Рядовой
 
Аватар для LPVOID
 
Регистрация: 28.10.2016
Сообщений: 33
Репутация: 6
Автор По умолчанию

Re: [Обсуждение] Warcraft 3 PrintChat, SendPacket?


Если кому то интересно. Это сделать не возможно. Потому что, даже после отправки корректного пакета, каждый из клиентов подменяет для себя эту цветную строку на обычную.
Выяснил опытным путём.
Warcraft 1.26a

Game.dll+676D54 - Точка, перед формированием пакета для сообщения типа "Всем"
Game.dll+6DF08E - Точка, перед отправкой пакета (WS2_32.send)

Используем CheatEngine
1) Ставим break в точке Game.dll+676D54
2) В wc3 жмём shift+enter, пишем любое уникальное сообщение, и забиваем место для описания цветов.
например xx123456ccHello worldxx
забить пространство необходимо, потому что мы будем подменять строку в уже сформированном пакете определенной длины.
3) Отправляем это сообщение, CE остановится
4) Прыгаем jump внутрь до момента Game.dll+6DF08E
5) Сканером ищем нашу строку, отправленную нами выше, и подменяем её на форматную, той же длины
например |cffffcc00Hello world|r
6) Продолжаем выполнение игры.
7) ???
8) Профит!
  Ответить с цитированием Наверх
Ответ

Метки
PrintChat, SendChat, SendPacket, W3GS_CHAT_FROM_HOST, W3GS_CHAT_TO_HOST, Warcraft 3, WarCraft III


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

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

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

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


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