|
You last visited: Today at 16:32
Advertisement
Rus. server
Discussion on Rus. server within the Perfect World forum part of the MMORPGs category.
01/11/2010, 09:05
|
#1231
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|
Quote:
|
С созданием локальной базы данных есть небольшая трудность. Часть описаний, параметры мобов и лут, падающий с них, все это в «elements.data», для которого нужно сделать собственный экстрактор…
|
Оно то конечно так, но мне лично из параметров мобов достаточно их координат, уровня и максимум хп. Какой из кого сыплется лут можно постепенно статистику составить.
Для чего мне координаты мобов?
1. для прокачки младших персов. Посмотрел, кого надо ему бить по квестам, накидал задания боту- таких мобов столько то таких столько то итд.
десяток квестов за ночь гарантирован.
2. для фарма
3. координаты ресов- для того чтобы можно было целенаправленный сбор делать.
4. координаты мобов и уровень- чтобы младшие персы не залетали за ресами в зоны старших мобов.
Пригодилась бы еще информация какие мобы агрятся какие нет- но ее тоже можно накопить со временем. Сейчас мой бот уже умеет отбиваться он напавших мобов при сборе ресов.
Кстати, совет для реализации серии атакующих скиллов:
Посылайте вызов следующего скилла серии, если текущий скил=тому который посылали в прошлый раз или =0.
Если не поняли, то идея в том, чтобы посылать следующий скилл заранее, не дожидаясь окончания текущего. Это позволяет обыграть сетевую задержку и использовать скиллы намного чаще.
Я долго парился, но это того стоило: так клавиатурой никогда не получалось))
|
|
|
01/11/2010, 16:12
|
#1232
|
elite*gold: 0
Join Date: Jan 2009
Posts: 137
Received Thanks: 19
|
Ух потерял я былую сноровку ) Чож сам не допер попробовать жарить без остановки-то? А в ПВП представляешь как вшарашить-то можно!!!
|
|
|
01/11/2010, 18:08
|
#1233
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|
Quote:
|
А в ПВП представляешь как вшарашить-то можно!!!
|
Да я уже пробовал- жжет! правда я пока не закладывал никакой логики особо- у меня тупо есть основной скилл и не основные. Если кулдаун основного =0 то юзает основной (у меня это Тысячетонный молот), иначе юзает случайный из неосновных.
Кстати, как бы обойти необходимость держать нажатой Ctrl?
По идее нужно куда то что то прописать..
моя идея в том чтобы нужный JZ заменить на JMP прям в памяти- самый первый прием всех патчей и лоадеров. тока где он- пока не знаю, а искать некогда. Если кто знает, подскажите плиз)
|
|
|
01/11/2010, 18:26
|
#1234
|
elite*gold: 0
Join Date: Jan 2010
Posts: 1
Received Thanks: 0
|
Народ всем доброго!
Интересует вопрос по поводу бота для сбора ресов в нете нашел что вроде этот умете PW-MS-Bot 3.8 но его самого пока не нашел тут на сайте сцилке битые! просвятите может у кого есть он ну или другой для сбора?!
все при много благодарен за помощь.
_______________________________________
Крепкого вам пинга и стабильного коннекта!
|
|
|
01/11/2010, 19:20
|
#1235
|
elite*gold: 0
Join Date: Sep 2009
Posts: 85
Received Thanks: 27
|
У меня свой собственный. Давать его никому пока не собираюсь, по крайней мере пока он не готов. Все что нужно для его самоделания есть тут в этой теме. Почти готовое. Как конструктор лего. Просто собирай себе что нужно, если умеешь)
|
|
|
01/11/2010, 19:52
|
#1236
|
elite*gold: 0
Join Date: May 2009
Posts: 66
Received Thanks: 6
|
у меня тоже свой собственный, и я его тоже никому давать не собираюсь
|
|
|
01/11/2010, 23:38
|
#1237
|
elite*gold: 0
Join Date: Nov 2009
Posts: 69
Received Thanks: 5
|
подскажите, есть ли возможность определить активен ли пет или нет. проверка нр часто подводит. даже если пет убран его нр отображается. при респе друли пробую призвать пета. если нр > 0 то ок иначе воскрешение и заново вызов пета.
|
|
|
01/12/2010, 06:46
|
#1238
|
elite*gold: 0
Join Date: Apr 2009
Posts: 237
Received Thanks: 403
|
Quote:
|
подскажите, есть ли возможность определить активен ли пет или нет
|
[BA] + 1C + 20 + DF4: Pet
$08 - is called? ( dword, 4b)
$0C - Pet number ( dword, 4b)
$10 - pet array ( PTR, 4b)
$34 - current pet ID ( dword, 4b)
|
|
|
01/12/2010, 17:09
|
#1239
|
elite*gold: 0
Join Date: Oct 2009
Posts: 5
Received Thanks: 0
|
ячейки квестового инвентаря
Скажите пожалуйста, можно ли каким либо образом просмотреть содержимое ячейки квестового инвентаря?
Заранее благодарен за ответ.
|
|
|
01/13/2010, 10:06
|
#1240
|
elite*gold: 0
Join Date: Apr 2009
Posts: 237
Received Thanks: 403
|
Quote:
|
содержимое ячейки квестового инвентаря
|
[BA] + 1C + 20 + C24: Quest inventory
$0C - Cells PTR array ( PTR, 4b)
$10 - Cells Count ( dword, 4b)
--------------------
[BA] + 1C + 20 + C24 + c + i: Quest Inv cell
$08 - ID ( dword, 4b)
$10 - Count ( dword, 4b)
$4C - ItemDesc ( PTR, 4b)
|
|
|
01/13/2010, 12:03
|
#1241
|
elite*gold: 0
Join Date: Dec 2009
Posts: 57
Received Thanks: 24
|
помогите сделать инжект таргета. по скачанным сдесь примерам или валится клиент, или нету таргета. пишу на С++ MFC в 2005 студии. Почитал у буржуев в ветке, так там оказывается есть разница в версиях С++ Сам я только начинающий в С++ , по этому много не понятно пока для меня
static DWORD WINAPI SelectMonster(LPCVOID lpParam )
{
DWORD BaseAddress = 0x0098ADDC;
DWORD CallAddress = 0x005B7B70;
DWORD MonsterID = (DWORD)lpParam;
__try
{ __asm
{
mov eax, BaseAddress;
mov eax, dword ptr[eax];
mov edi, MonsterID;
mov edi, [edi];
push edi;
mov ecx, dword ptr[eax+0x20];
add ecx, 0xEC;
mov edx, CallAddress;
call edx;
}
}
__except(1){}
return 0;
}
bool CbotDlg::CallRemoteFunction(HANDLE hProcess, LPVOID lpParam)
{
HANDLE hThread = NULL;
LPVOID ThreadCodeAddr = NULL; //Inject Fuction Address after allocate
LPVOID ThreadDataAddr = NULL; //Inject Fuction Stack Address after allocate
LPVOID Func = SelectMonster; //Inject Function
DWORD ThreadID; //
DWORD dwWritten; //
ThreadCodeAddr=VirtualAllocEx(hProcess,NULL,4096,M EM_COMMIT,PAGE_READWRITE);
WriteProcessMemory(hProcess,ThreadCodeAddr,Func,40 96,&dwWritten);
ThreadDataAddr=VirtualAllocEx(hProcess,NULL,256,ME M_COMMIT,PAGE_READWRITE);
WriteProcessMemory(hProcess,ThreadDataAddr,&lpPara m,256,&dwWritten);
hThread = CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START _ROUTINE)ThreadCodeAddr,ThreadDataAddr,NULL,&Threa dID);
if (!hThread) return false;
else WaitForSingleObject(hThread,INFINITE);
CloseHandle(hThread);
VirtualFreeEx(hProcess,ThreadCodeAddr,4096,MEM_REL EASE);
VirtualFreeEx(hProcess,ThreadDataAddr, 256,MEM_RELEASE);
CloseHandle(hProcess);
return true;
}
|
|
|
01/13/2010, 13:23
|
#1242
|
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
|
Из инжектируемой функции выкинь блок try except нафиг. Из-за него у тебя валится.
|
|
|
01/13/2010, 14:12
|
#1243
|
elite*gold: 0
Join Date: Dec 2009
Posts: 57
Received Thanks: 24
|
убрал, но не помогло. все равно валится
hThread = CreateRemoteThread(hProcess,NULL, 0,(LPTHREAD_START_ROUTINE)ThreadCodeAddr,ThreadDat aAddr,NULL,&ThreadID);
сдесь спотыкается
и еще попутно вопрос: при вызове CallRemoteFunction(HANDLE hProcess, LPVOID lpParam) поток закрывать? если поток не закрывать инжект происходит - потом вылет. если закрыть-нету инжекта. просто на форуме пробегала инфа что перед использованием таргета ндо закрывать поток. сорри за нубство, я начинающий
|
|
|
01/14/2010, 05:54
|
#1244
|
elite*gold: 0
Join Date: Jul 2008
Posts: 43
Received Thanks: 16
|
Поток перед инжектом закрывать не надо, иначе как ты в него будешь писать сам инжект и данные для него?
Приведи код инжекта, что у тебя получился, после убирания try except.
Ещё смущает:
WriteProcessMemory(hProcess,ThreadDataAddr,&lpPara m,256,&dwWritten);
попробуй вместо этого:
WriteProcessMemory(hProcess,ThreadDataAddr,lpParam ,256,&dwWritten);
Я конечно не знаю как у тебя передаются данные, но мне кажется в ентом трабла у тебя.
|
|
|
01/14/2010, 06:20
|
#1245
|
elite*gold: 0
Join Date: Dec 2009
Posts: 31
Received Thanks: 3
|
Фух! Народ тема супер, много узнал за 3 дня чтения с 1й странички.
Помогите плиз с инжектом для поднятия лута
Quote:
procedure PickUpCall(aPParams: PParams); stdcall;
var
BaseCallAddress: DWORD;
PickCall : Pointer;
ItemSn, ItemID : DWORD;
begin
BaseCallAddress := aPParams^.Param0; // $0098ADDC
ItemSn := aPParams^.Param1; // [0098ADDC] + $1C + $8 + $28 + $18 + $i*4 + $4 + $10C
ItemID := aPParams^.Param2; // [0098ADDC] + $1C + $8 + $28 + $18 + $i*4 + $4 + $11C
PickCall := Pointer(aPParams^.Param7); // $005B7B00
asm
pushad
mov edx, DWORD PTR [BaseCallAddress]
push ItemSn // Item SN
push ItemID // Item ID
mov ecx, DWORD PTR [edx+$20]
add ecx, $EC
call PickCall
popad
end;
end;
|
Жмакаю батон а он не бежит до лута, или надо стоять на очень близком расстоянии от него помогите!
|
|
|
All times are GMT +1. The time now is 16:32.
|
|