=) блин вот прочитал раза три и так не понял (видать не дано) как же из мхса сделать то что мы все хотим=)
1. чтобы перс бежал на место убитого моба и брал лут
2. нормально пета хилил и кормил
ну и еще 2 весчи которые если будут то просто супер
1. нажимает на кнопку"ближайщий город" после смерти
2. бежит на место кача =)
помогите прошу если ктото сделал чтото подобное дайте попользовать буду очень благодарен =)
ээээээ читал мой пост все было перечитано раза 3 =) а то что ты думаешь что некто не поможет это зря =) есть люди которые пойдут мне на встречу это точно =) и кто сказал что это безвоздмездно?
хех.. я это еще на 15-20 странице понял, одни понты и надувание щек, а если быть объективным то на ОТКРЫТОМ портале разговаривают пара тройка человек на внутреннем языке, с оговорками, и другими ужимками. Мое мнение что им самое место гденить на закрытом форуме друг с другом разговаривать, но они там видимо друг другу будут неинтересны....Хотя не все такие....
Сорри за очень длинную ссылку - поиск ввел через гугл транслейт - по ссылке форум по ботам на пв - очень много кода, файлов и т.д.. там люди попроще чем здесь, как то даже симпатией проникся.....
пысы: странное дело, варезные группы типа релоадед или разора не умничают на разных форумах, клац и выложили кряку бесплатно, и реально опускают разные компании на миллионы... а вы тут о бабулесах...
Sdarowa pazani nu i kaneschno DEWUSCHKI
sdelal ja nakonezto swoy MT2 P server esli kto ho4et tose na mojom hama4i server poigrat
posaluysta pischiti mene na ICQ 566991577 WHOT TOLKO DLA RUSSKO GAWARASCHICH ile teh kotorie pitajutsa po russki gawarit :-)
[BA] + $1с + $20 + 02c : X поворот чара (float - 4b) 030 : Z поворот чара (float - 4b) 034 : Y поворот чара (float - 4b) 03C : Camera X (float - 4b) 040 : Camera Z (float - 4b) 044 : Camera Y (float - 4b) 04c : X2 поворот чара (float - 4b) 050 : Z2 поворот чара (float - 4b) 054 : Y2 поворот чара (float - 4b) 06c : X3 поворот чара (float - 4b) 070 : Z3 поворот чара (float - 4b) 074 : Y3 поворот чара (float - 4b) 07C : Coord X (float - 4b) 080 : Coord z (float - 4b) 084 : Coord Y (float - 4b) 0f0 : X относительно чего-то (float - 4b) 0f4 : Z относительно чего-то (float - 4b) 0f8 : Y относительно чего-то (float - 4b) 0fc : X2 относительно чего-то (float - 4b) 100: Z2 относительно чего-то (float - 4b) 104: Y2 относительно чего-то (float - 4b) 370 - 44C: (PTR - 4b) 450: WID (dword - 4b) 45C: lvl (dword - 4b) 460: Status (dword - 4b) 464: HP curr (dword - 4b) 468: MP curr (dword - 4b) 46C: Exp (dword - 4b) 470: Spirit points (dword - 4b) 478: Chi (dword - 4b) 484: const stat (dword - 4b) 488: int stat (dword - 4b) 48C: str stat (dword - 4b) 490: agi stat (dword - 4b) 494: HP max (dword - 4b) 498: MP Max (dword - 4b) 49C: Скорость вост HP (dword - 4b) 500: Скорость вост MP (dword - 4b) 4A4: fly equip bonus (float - 4b) 4A8: Speed (float - 4b) 4B4: Hit (dword - 4b) 4B8: Phys attack min (dword - 4b) 4BC: Phys attack max (dword - 4b) 4F0: Magic attack min (dword - 4b) 4F4: Magic attack max (dword - 4b) 4F8: def metal (dword - 4b) 4FC: def wood (dword - 4b) 500: def fire (dword - 4b) 504: def water (dword - 4b) 508: Def Earth (dword - 4b) 50C: Def phys (dword - 4b) 510: Flee (dword - 4b) 514: Chi max (dword - 4b) 518: Money (dword - 4b) 51C: max money aviable (dword - 4b) 520: 13x4b - player equip ( - b) 524: Weapon ( - b) 528: Helmet ( - b) 52C: Necklace ( - b) 530: Cape ( - b) 534: Armor ( - b) 538: Ornament ( - b) 53C: Gauntlets ( - b) 540: Boots Gloves ( - b) 544: Ring1 ( - b) 548: Ring2 ( - b) 54C: Arrow ( - b) 550: Fly equip ( - b) 584: Fame ( - b) 588: beast form (bool - 4b) 590: Peace zone flag (bool - 1b) 594: "Can PK" status (bool - 2b) 598: PK Timer (dword - 4b) 59C: MAX PK Ticks (dword - 4b) 5F4: name string (PTR - 4b) 5F8: 4b - possible name length (dword - 4b) 5FC: 4b - class: 0 - warrior, 1 - mage, 2 - monk, 3 - druid, 4 - werewolf, 5 - dark spirit, 6 - archer, 7 - priest (dword - 4b) 600: Is female (bool - 4b) 604: action flag (bool - 4b) 60C: BOOL 1b - run flag, BOOL 1b - fly flag ( - b) 624: float 3x4b - Position (X, Z, Y) ( - b) 63C: float 3x4b - Position2 (X, Z, Y) ( - b) 648: float 3x4b - Position3 (X, Z, Y) ( - b) 654: meditation flag (bool - 1b) 668: angry flag (bool - 1b) 6B0: skill ptr (PTR - 4b) 6B4: skill target WID (dword - 4b) 748: Camera position & view position camera x ( - b) 74C: camera z ( - b) 750: camera y ( - b) 800 - 818: Камера относит. чего-то. Не существенно (float - 4x6b) 81С: Камера подъем отн. чара. Текущее значение (float - 4b) 820: Камера подъем отн. чара. Конечное значение (float - 4b) 824: Камера поворот отн. чара. Текущее значение (float - 4b) 828: Камера поворот отн. чара. Конечное значение (float - 4b) 82с: Камера до чара. Текущее значение (float - 4b) 830: Камера до чара. Конечное значение (float - 4b) 880: при любом действии = 0 (bool - 1b) 8B8: мб количество попыток движения ( - b) 930: время для выкапывания реса ( - b) A68: [14] 4b - target's WID array. 0 :: Mob target WID, 2 :: Picked object WID ( - b) A6C: 0 :: Mob target WID ( - b) A70: 2 :: Pick object WID ( - b) A88: Unfilled… some activity while movement X (float - 4b) A8C: Unfilled… some activity while movement Z (float - 4b) A90: скорость во время движения для клавиатуры (float - 4b) B0C: скорость во время движения ( - b) B58: jump counter (float - 4b) B90: Money in bank (dword - 4b) C10: Action list (PTR - 4b) C1C: activated skill (PTR - 4b) C20: mby skills macro list (PTR - 4b) C24: pet array (PTR - 4b) C34: skills array (PTR - 4b) C38: skills count (dword - 4b) C4C: Psv skills array (PTR - 4b) C50: skills psv count (dword - 4b)
Biga73
Конечно, сидеть и требовать от других, чтобы они пахали и выкладывали с полным описанием свой труд, - дело приятное. Так вместо рассуждений о том, что никто и ничего не дает, включайтесь в работу и привнесите хоть что-нибудь полезное.
видимо я это представляю себе так (включится в работу), сесть и заново написать с нуля то что уже написано давно и никем не используется, приведите на форуме рабочий код цель + действие (таргет+удар) и поверьте, это и будет той самой удочкой о которой тут рассуждали некоторые...... - тута лежит исходник вьетнамского бота (типа MHS) на autoit, и еще одного на Си (так и не понял куда и какие там смещения ставить...)
Клиент вылетает в месте выделенным красным цветом. Но самое интересное, что этот же код работает на Дельфи.
Code:
procedure SelMonCall(MonID: PParams); Stdcall;
var
Address: pointer;
P1: DWORD;
begin
Address := Pointer($005ae040);
P1 := MonID^.Param1 ;
asm
mov eax, PW_BASE_ADDRESS
mov eax, [eax]
mov edi, P1
push edi
mov ecx, DWORD PTR [eax+$20]
add ecx,$0EC
call address
end;
end;
Помогите плиз разобраться в чем загвоздка.
"dwar" предлагал записать все регистры общего назначения в стек до начала выполнения кода, а потом вернуть их значения в исходное состояние, т.е. в начале добавить pushad, а в конце popad. Это не помогло.
ThreadAddr : pointer;
ParamAddr : pointer;
begin
if Hdl<>0 then
begin
aParamsSize := 256;
// Выделяем в открытом процессе память под имя модуля
ThreadAddr := VirtualAllocEx(Hdl, 0, {SizeOf(@SelectMonster)} 4096, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if ThreadAddr = nil then Exit;
// Пишем имя модуля в его адресное пространство
WriteProcessMemory(Hdl, ThreadAddr, Func, {SizeOf(@SelectMonster)} 4096, BytesWrite);
// Выделяем память под структуру, которая передается нашей функции, под параметры, которые передаются функции
ParamAddr := VirtualAllocEx(Hdl, nil, aParamsSize, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if ParamAddr = nil then Exit;
// Пишем саму структуру
WriteProcessMemory(Hdl, ParamAddr, aParams, aParamsSize, BytesWrite);
// Запускаем удаленный поток
hThread := CreateRemoteThread(Hdl, nil, 0, ThreadAddr, ParamAddr, 0, ThreadId);
if hThread = 0 then Exit;
// Ждем пока удаленный поток отработает...
WaitForSingleObject(hThread, INFINITE);
VirtualFreeEx(Hdl, ThreadAddr, 4096, MEM_RELEASE);
VirtualFreeEx(Hdl, ParamAddr, aParamsSize, MEM_RELEASE);
CloseHandle(hThread);
end
end;
//*********************//
// Select the Monster
//*********************//
function SelectMonster(MonID: PParams):boolean; stdcall;
var
PW_Call,
P1,
PW_BASE_ADDR: DWORD;
begin
PW_Call := $005AE040;
PW_BASE_ADDR := $00976B1C;
P1 := MonID^.Param1 ; // SN того кого хочешь взять в таргет
asm
mov eax, PW_BASE_ADDR
mov eax, [eax]
mov edi, P1
push edi
mov ecx, DWORD PTR [eax+$20]
add ecx,$0EC
call PW_Call
end;
end;
Клиент вылетает в месте выделенным красным цветом.
вылетает на этом месте по вполне понятной причине - ты создаешь в процессе поток, который крешит клиент.
Почему вылетает код - тоже легко предположить. Ты копируешь кусок кода из своей программы в чужую в непонятное место. Так как тебе никто не давал гарантий, что код будет position-independent (а я весьма подозреваю, что при использовании try/catch он таким являться не будет), код может прыгть неизвестно куда.
Плюс если ты скомпилил в дебаг режиме, то тут есть нюансы - указатель на функцию может указывать не на функцию, а на переходник. Соответственно вместо кода ты копируешь непонятно что.
Ну и не очень понятно, что ты пытался сделать с ThreadDataAddr
Дело в том, что этот же пример работает на делфи. Пример тому предыдущее сообщение, там и расписано, что и как передается. Плюс к тому вот этот пост , я за основу брал от туда пример на С++