Rus. server

01/26/2010 16:29 AlexGD#1366
Quote:
Originally Posted by Shamanpovt View Post
ППЦ... прочитал за несоклько часов всю эту ветку... Поэтому задам вопрос, на который ответ не нашёл - как заинжектрировать функцию копки ресов? А то не хочется заниматься онанизмом через выборм моба и подмену ID.
Плохо искал ;)

Code:
procedure CullCall(aPParams:PParams); Stdcall;
var
  Address1: pointer;
  P1,p2,p3: dword;
begin
  Address1:=Pointer(W2I_Cull_Call);
  P1:=aPParams^.Param1;           // їуІщАаРН
  p2:=aPParams^.Param6;           //їуІщФЪ°ьё¤µДО»ЦГ
  P3:=aPParams^.Param2;           // Дї±кID
  asm
    pushad
    push 0
    push p1
    push 0
    push p2
    push P3
    call Address1
    add esp,$14
    popad
  end;
end;
procedure TMan.Cull(a,b,c:Cardinal);
var
  aParams : TParams;
  aParamsSize: DWORD;
begin
  aParams.Param1:=a; // їуІщАаРН callci_ID,callci_ID_wp,callci_wp_ID
  aParams.Param2:=b;//їуІщФЪ°ьё¤µДО»ЦГ
  aParams.Param3:=c;// Дї±кID
  aParamsSize:=SizeOf(aParams);
  if GHwnd<>0 then
  begin
    injectfunc(@CullCall, @aParams, aParamsSize);
  end;
end;
Адрессочки тут тоже публиковались. Ровняй напильником и юзай ;)
01/26/2010 16:40 AlexGD#1367
Quote:
Originally Posted by Barmank View Post
Очень все просто, но работает тока в диалоговом акне для выбора пункта ответа!!!! Код на Delphi

координаты берем так:
X=30
Y=300+i*20
X,Y относительно диалогового окна I номер строки (1я = 0)

К сожалению данный способ, как я уже писал выше, не работает для кнопок в трейд окне:(
На выходных проверю, прям похоже на фантастику. Хотя были у меня подозрения, что именно там читается не буфер директинпута, но я их даже проверять не стал )

Кстати, а как нажать, например, 7ю строчку? ;)
01/27/2010 01:34 Vasilij3#1368
Ребят, помогите плиз. Пытаюст на автоите сборщик ресов написать, какой адрес для инжектирования использовать? а то найти не могу(((
01/27/2010 03:40 AlexGD#1369
Quote:
Originally Posted by dwar View Post
Добрались таки до массива контролов (или окошек, не важно как называть) ;)… Держите, если будет сие полезно (можно передвигать окна, получать описание предметов под курсором…).

[BA] + $1C + $04:: controls
$08 - Controls, wnd Ptr (PTR, 4b)

[BA] + $1C + $04 + $08:: Controls, wnd
$18 - Current Wnd (PTR, 4b)
$D0 - Movements count (float, 4b)
$D4 - Wnd under mouse (PTR, 4b)
$D8 - Wnd object under mouse (PTR, 4b)
$DC - Wnd object usable under mouse (PTR, 4b)
$E0-E4 - Hint Pos XY (dword, 4x2b)
$218 - Inv wnd (PTR, 4b)
$264 - Dialog wnd (PTR, 4b)
$310 - Trader wnd (PTR, 4b)

[BA] + $1C + $04 + $08 + wnd PTR:: Wnd description
$54-58 - Wnd Pos XY (dword, 4x2b)
$60 - If drag (bool1b) (1: if dragging)
$61 - is draggable (bool1b)(1: true)
$64-68 - Mouse point, drag point (dword, 4x2b)
$6C - Is wnd opened (dword, 4b)
$90 - Usable control (PTR, 4b)
$94 - Wnd object under mouse (PTR, 4b) (same as [BA] + $1C + $04 + $08 + $D8)
$168 - Dialog options (PTR, 4b)

[BA] + $1C + $04 + $08 + $wnd PTR + $168:: Dialog options
$A0 - Dialogs count (dword, 4b)
$B0 - Current dialogs line (dword, 4b)
$E0 - Dialogs count (dword, 4b)

В [BA] + $1C + $04 + $08 + $18 записан указатель на текущее активное окно (по которому кликнули). До параметров окна можно добраться и через wndPTR (например, инвентарь - $218), не важно, открыто оно или нет.

P.S. Надеюсь, после последнего апдейти в данном массиве ничего не поменялось и большая часть указанных адресов действительна
Sorry, but:
$6C - Is wnd opened: BYTE
01/27/2010 06:02 Barmank#1370
Quote:
Originally Posted by AlexGD View Post
На выходных проверю, прям похоже на фантастику. Хотя были у меня подозрения, что именно там читается не буфер директинпута, но я их даже проверять не стал )

Кстати, а как нажать, например, 7ю строчку? ;)
I=6 ([номер строки] - 1)

Насчет кнопочек вот инжект починки
Quote:
procedure BtnReparAllCall (aPParams: PParams); stdcall;
var
address :pointer;
BaseCallAddress : DWORD;
begin
address := Pointer(aPParams^.Param7);
asm
pushad
push $0FFFFFFFF
push 0
push 0
call address
add esp, $0C
popad
end;
end;
Работает сразу минуя все вопросы выполнил и все починено:)
Можно с помощью нее и починку из инвентаря сделать, все волшебство в волшебных пузырьках, кх то есть первых 3х пушах, если поковыряться можно найти что туда класть:)
Также работает и инжект выше, вызов функции происходит уже после нажатия "Да",тока я ёё полноценно запустить не могу, кстати ижект покупки как брат близнец, 1й пуш ХЗ что а 2й количество занятых ячеек при покупке/продаже.
01/27/2010 06:38 Barmank#1371
Quote:
Originally Posted by Vasilij3 View Post
Ребят, помогите плиз. Пытаюст на автоите сборщик ресов написать, какой адрес для инжектирования использовать? а то найти не могу(((
Quote:
procedure MiningCall(aPParams: PParams); stdcall;
var
BaseCallAddress: DWORD;
MiningCall : Pointer;
ItemSn : DWORD;
Pos:Dword;

begin
BaseCallAddress := aPParams^.Param0; // $0098ADDC
ItemSn := aPParams^.Param1;
Pos := aPParams^.Param2;
MiningCall := Pointer(aPParams^.Param7); // $005DADD0

asm
pushad
push 0
push $C01 // ID кирки
push Pos // номер Ячейка
push 0
push ItemSN // SN ресурса
call MiningCall
add esp, 14h
popad
end;
end;
надеюсь сам на автоит переработаешь!
01/27/2010 06:58 AlexGD#1372
Quote:
Originally Posted by Barmank View Post
I=6 ([номер строки] - 1)
Так строк в окне ж тока 5 ;)
01/27/2010 07:35 Barmank#1373
Quote:
Originally Posted by AlexGD View Post
Так строк в окне ж тока 5 ;)
Прикалываешься?
01/27/2010 08:19 maxxxx26#1374
Quote:
Originally Posted by moob1 View Post
Пацаны прикиньте черти с ач взяли и с моего кряка копирайты убрали и запостили там . )))

Я мля в шоке как так ? ))

харе спать вы куда все подевались ? ))
они ещё и забанить могут чтоб втихую как своё выложить))
01/27/2010 08:34 dwar#1375
Хм, забавные картинки (+ карты высот) получаются после распаковки файлов с картами (опираясь на наработки luke с [Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

Остается лишь до конца понять, как клиент определяет пересечение с «непроходимыми» объектами (заборы, дома), можно будет смело забыть обо всех трудностях передвижения бота…
01/27/2010 08:43 AlexGD#1376
Quote:
Originally Posted by Barmank View Post
Прикалываешься?
С чего бы мне прикалываться-то... В окне диалога с неписем 5 строк. А мне нужно нажать 6ю или 7ю. Или СендМессадж и туда дотягивается с помощью того же волшебства, что и до первых 5ти?

Или жто только к меня в диалоге видно только 5 строк?
01/27/2010 09:20 Barmank#1377
Тю дошло, нет это не прокатит, тока если ползунок прокрутить:)

А что с помощью эвент мауса можно?
01/27/2010 09:24 Barmank#1378
Quote:
Originally Posted by dwar View Post
Хм, забавные картинки (+ карты высот) получаются после распаковки файлов с картами (опираясь на наработки luke с [Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

Остается лишь до конца понять, как клиент определяет пересечение с «непроходимыми» объектами (заборы, дома), можно будет смело забыть обо всех трудностях передвижения бота…
Кто бы дал код программулины, чтоб в нем покапать и понять как они эту картинку получили.
А программка, что на скрине, твоя или скрин с сайта?
01/27/2010 10:54 Barmank#1379
Quote:
Originally Posted by dwar View Post
нуууу, опять ... дать исходник программы, дать готового бота...
есть же алгоритм распаковки, - идеальное описание, больше ничего и не надо.
P.S. скомпилированную программу, может быть, в скором времени выложу, но никак не ее код.
я не просил прям все!! (хотя это и было бы замечательно).
Я бы может и сам написал эту программу, но вот знаний маловато, и самостоятельно разобраться вряд ли смогу.
Поэтому и просил хотя бы код чтоб так сказать на примере!
Хотя наверно и это слишком сложно будет:(
01/27/2010 13:01 AlexGD#1380
dwar. Раз уж все помощи просят, то и я попрошу...
Не могу разобраться как в чат писать... Особенно интересно, как писать в отдельные группы...
Есть идеи, как это сделать?