Attention for non-Russian talking people! Guys, stop the flood in this area!
The Russian language is confirmed and applied in this thread as in all PW area.
Отсылайте инстранцев на этот пост, пусть читают. :)
Пропал малость, заработался. :)
Я немного пофлужу, вы не против, парни? :)
Quote:
Originally Posted by FunkU
Есть ли вообще способ передавать игре команды набора/снижения высоты при свёрнутом окне?
|
Этааа... это же самые тфу*-основы WinAPI...
PHP Code:
// php и c++ родственны, так что все норм :)
void event_presskey(Word Key, bool isSysKey = false){
Key = (VK_F1 > Key)? VkKeyScan(Key):Key;
WaitForInputIdle(hTargetProcess,100);
if(isSysKey){
PostMessage(hWTarget,WM_SYSKEYDOWN,(WPARAM)VK_MENU,(LPARAM)(0x60380001));
PostMessage(hWTarget,WM_SYSKEYDOWN,(WPARAM)Key,(LPARAM)(0x20020001));
// что здесь было, не покажу, это все еще тайна элегантности ввода в ПВ ;)
SendMessage(hWTarget,WM_SYSKEYDOWN,(WPARAM)Key,(LPARAM)(0x60020001));
SendMessage(hWTarget,WM_SYSKEYUP,(WPARAM)Key,(LPARAM)(0xE0020001));
SendMessage(hWTarget,WM_KEYUP,(WPARAM)VK_MENU,(LPARAM)(0xC0380001));
}else{
SendMessage(hWTarget,WM_KEYDOWN,(WPARAM)Key,(LPARAM)0x00020001);
SendMessage(hWTarget,WM_KEYUP,(WPARAM)Key,(LPARAM)0xC0020001);
};
};
Эта функция позволяет нажимать клавиши даже в стиле Alt+Key, для этого надо только установить isSysKey в true.
Quote:
Originally Posted by FunkU
А подбор непосредственно самого лута (вместо подлёта к нему), его надо как и координаты моба вычислять, то есть каждый раз сканировать 768 значений?
|
Да, там надо будет сканить все листы лута, это 3*768 указателей, проверять ячейки, выцеплять WID лута, вписывать эти WID персу в поле MobTargetWID+0x08 (вроде +8), а потом делать все то же самое, что и при автоперемещении перса. В этом случае координаты лута не нужны, перс дальше сам все сделает. Кстати, это же является решением автореса ;) ресурсы находятся тоже в листах лута!
Quote:
Originally Posted by FunkU
Кстати как имя моба, ресурса, лута правильно читать в автоите?
|
Смотри :) У тебя есть конечный адрес в листе мобов, назовем его MBA.
Так вот, смотри сюда, это для версии 1.3:
PHP Code:
// Напомню лишний раз, это C++ ;-)
typedef struct SMobDataV3{
struct{
DWord dwClassRef;
DWord dwTmp_1[2];
struct {
DWord dwTmp[12];
float fX;
float fZ;
float fY;
float fTmp;
} sGlobePos,
sGlobePos2;
DWord dwTmp_2[36];
DWord dwWID;
DWord dwClass;
DWord dwLevel; // i-74
DWord dwThunk_1;
DWord dwHP;
DWord dwThunk_2[9];
DWord dwMHP;
DWord dwTemp_3[46];
DWord dwData_1[8];
DWord dwNamePtr;
DWord dwData_2[6];
DWord dwTimer;
DWord dwTemp_4[15];
} sData; // Total 208 x4b Values
// нуу... тут кой какие секретные сервисные данные и все такое.
// память читается только полем sData, это вся необходимая вам память.
} SMobDataV3;
typedef struct SObjData {
struct {
DWord dwSIGN;
DWord dwThunk1[2];
struct {
DWord dwThunk1[12];
float fX;
float fZ;
float fY;
DWord dwThunk2;
} sJunk2[2];
DWord dwJunk2[31];
DWord dwPrevPtr;
DWord dwWID;
DWord dwTypeID;
DWord dwNextPtr;
DWord dwThunk3;
float fX;
float fZ;
float fY;
DWord dwThunk4[10];
DWord dwMinLvl;
DWord dwThunk5[4];
DWord dwNamePtr;
} sObject;
// угу, то же самое, секретная сервисная информация :)
} SObjData, *PObjData;
Если не охота читать память целиком, посчитай смещения и читай только указатели. Все строки в ПВ содержатся в UNICODE кодировке, читать их надо только типом
wchar_t, а потом переводить через
WideCharToMultibyte, если охота :)
Еще на счет банок... ааай тфу на вас! :D
Внизу поста есть архив с моей ексельной-раскраской, там есть все нужное для раздумий. Чего там нет - так это телепатора чтоб подогнать понимание таблички под каждого пользователя. И коментариев еще почти нет. :) Вам прийдется самим все разобрать в этой табличке.
Ну и я буду признателен если табличка будет пополняться, будет пополнятсья в моем стиле и я буду знать, что она пополняется. :)
На самый последний оф клиент у меня пока нет времени, да и я малость другими делами заниматься стал. Все эти моменты могут подтолкнуть к решениям :) я на это надеюсь по крайней мере.
И если что то поможет, неплохо будет нажать кнопко "Thanks" внизу этого поста, мы ведь русские! :)