Page 1 of 2

гамп на uolife.ru

Posted: 21.12.2009 9:56
by pickwill
Время от времени, каждые пол часа, появляется такое окошко:

Image

содержащее:

Code: Select all

_____infogump_______
serial	0x000062c4
gumpid	0x00f45c4e
X	0
Y	0
90	packet size
0	reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
    1] page 0
    2] text 268 51 1355 0
Text: ____________
    0] IAO           AA
обе кнопки кликабельны, и всё делаю по схеме:

Code: Select all

You must:

1 step: Use gump in normal client with injection and CLICK to button what you need!

2 step: Type ,infogump command in client

3 step: Check text box and find "reply" section:

4 step: Get code of button from [...].
Но никак не вычислить какое return_value и что тут reaply. Помогите пожалуйста, если кто в курсе что делать.

Posted: 21.12.2009 9:59
by Vizit0r
почему это не вычислить?

инжовый инфогамп работает только после отправки зактытия гампа.

Стелсовый "инфогамп" работает отлично при появлении гампа, и вся нужная инфа в нем имеется, даже с избытком.

все функции и примеры работы с ними тут есть

Posted: 21.12.2009 10:00
by WladL
там всего 2 кнопки, попробуй номер 1 и 2 :lol:

Posted: 21.12.2009 11:03
by pickwill
Пробовал, не реагирует.

Не знаю возможно ли такое, но тут походу два гампа, и один передаёт инфу в другой и тот уже отвечает серверу.
Т.е. окошко с кнопками "окей" это один гамп, а "ДА" и "НЕТ" либо другой гамп либо слой. И так как они "не вместе", то окошко можно вертеть по всему экрану, а текст статичен.

",infogump" выдаёт всегда однообразную информацию, без каких либо зацепок.

два варианта гампа:
1)

Code: Select all

_____infogump_______
serial	0x000062c4
gumpid	0x0076fefa
X	0
Y	0
89	packet size
0	reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
    1] page 0
    2] text 170 202 1355 0
Text: ____________
    0] AA          IAO
2)

Code: Select all

_____infogump_______
serial	0x000062c4
gumpid	0x007a921f
X	0
Y	0
90	packet size
0	reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
    1] page 0
    2] text 62 160 1355 0
Text: ____________
    0] IAO           AA
Т.е. сами по себе они как-бы ничего не возвращают, вот в чём весь секс.

Posted: 21.12.2009 11:06
by Vizit0r
повторяю второй раз - выкинь инжект, пользуйся стелсом.

сколько еще раз тебе повторить, чтобы ты услышал?

Posted: 21.12.2009 11:08
by pickwill
Буду пробовать Уважаемый, спасибо
---------------------------------------------
Вот что выдаёт Стелс:
1)

Code: Select all

Serial: 62EB
GumpID: 67E935
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X Y ID  Page
GumpPic: 219  103  2070  0

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 259  133  1355  0  0

Text Lines:
 

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page
0   GumpButton: 249  178  2130  2129  1  0  632  0
1   GumpButton: 309  178  2130  2129  1  0  263  0

Serial: 62EB
GumpID: FA8B03
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 221  138  1355  0  0

Text Lines:
НЕТ           ДА
2)

Code: Select all

Serial: 94E0
GumpID: 67E9AB
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X Y ID  Page
GumpPic: 152  239  2070  0

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 192  269  1355  0  0

Text Lines:
 

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page
0   GumpButton: 182  314  2130  2129  1  0  25  0
1   GumpButton: 242  314  2130  2129  1  0  569  0

Serial: 94E0
GumpID: FADCC9
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 154  290  1355  0  0

Text Lines:
ДА          НЕТ
3)

Code: Select all

Serial: 94FD
GumpID: 67EA2F
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X Y ID  Page
GumpPic: 152  166  2070  0

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 192  196  1355  0  0

Text Lines:
 

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page
0   GumpButton: 182  241  2130  2129  1  0  921  0
1   GumpButton: 242  241  2130  2129  1  0  514  0

Serial: 94FD
GumpID: F9AFDC
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 162  203  1355  0  0

Text Lines:
НЕТ           ДА


Posted: 21.12.2009 12:06
by pickwill
Опытным путём установлено, что Return_value "ДА" рандомный и всегда меньше, чем Return_value у "НЕТ"

Подскажите, как их можно сравнивать и отправлять меньший из них, пожалуйста.

Posted: 21.12.2009 12:10
by Vizit0r
писать парсер, выдирать из гампа, и сравнивать :)

пример парсера тут:
http://stealth.od.ua/forum/viewtopic.ph ... shortlines
первая функция, в частности.
Там мне нужны были четко заданные кнопки (не все), так что здесь 2\3 под нож можно отправить

Posted: 21.12.2009 12:12
by Vizit0r
1) проверять наличие гампа
2) проверять по GumpID или Gump Serial

Code: Select all

function GetGumpSerial(GumpIndex: Integer): 
Cardinal; // Получить номер гампа, если указанного гампа нет - возвращает ноль 
function GetGumpID(GumpIndex: Integer): 
Cardinal; // Получить ID гампа, если указанного гампа нет - возвращает ноль
если да - тогда натравливать на этот гамп парсер

Posted: 21.12.2009 12:25
by pickwill
Там (на шарде) скриптеры-мегаМозги. Как результат: идентификаторы и серийники на этот гамп рандомные и единственная зацепка это на больше/меньше.
Времени много, буду ковырять. Спасибо за помощь.

Posted: 21.12.2009 12:28
by Vizit0r
ну и фиг с ним. какие-то параметры ведь общие.
пусть даже X Y общие, но, например, тут всегда есть 2 кнопки с определенной графикой.
и т.д.

все нельзя сделать рендомом :)

P.S. А по GetGumpFullLines - еще больше инфы, которую для ориентирования можно использовать

Posted: 21.12.2009 12:31
by Vizit0r
pickwill wrote:Там (на шарде) скриптеры-мегаМозги.
о скриптерах :)
Vizit0r[SG] (23:04:01 18/12/2009)
снежок наверное подбирать надо

:-D (23:04:08 18/12/2009)
он в пак падает.

Vizit0r[SG] (23:04:38 18/12/2009)
добрый у вас скриптер

:-D (23:04:46 18/12/2009)
всмысле?)

Vizit0r[SG] (23:05:08 18/12/2009)
нормальный скриптер сделал бы чтоб он падал на пол, причем исчезал почти сразу, и т.д.

Vizit0r[SG] (23:05:15 18/12/2009)
а тут сразу в пак...

Vizit0r[SG] (23:06:01 18/12/2009)
а злой скриптер сделал бы, чтоб имелся шанс при ударе выбить не снежок, а какого-нить злобного элементаля например

Vizit0r[SG] (23:06:52 18/12/2009)
а наш скриптер что-то придумал бы, к чему прикрутить вероятность джайла или блока :)

Posted: 21.12.2009 12:42
by pickwill
Я Ваш скрипт и использовал, как раз с GetGumpFullLines. Нашел где-то по форуму:

Code: Select all

Program takegump; 
 
var 
b : TStringList;
i : Integer;
 
Begin
b := TStringList.Create; 
SetSilentMode(False);
for  i := 0 to GetGumpsCount - 1 do
  GetGumpFullLines(i,b);
b.free;
End.

Posted: 22.12.2009 9:15
by pickwill
прикрутил ещё следующий код, Miralex'а:

Code: Select all

procedure StrBreakApart(const S, Delimeter : string; Parts : TStrings);
var
  CurPos: integer;
  CurStr: string;
begin
  Parts.clear;
  Parts.BeginUpdate();
  try
    CurStr:= S;
    repeat
      CurPos:= Pos(Delimeter, CurStr);
      if (CurPos>0) then
      begin
        Parts.Add(Copy(CurStr, 1, Pred(CurPos)));
        CurStr:= Copy(CurStr, CurPos+Length(Delimeter),
                    Length(CurStr)-CurPos-Length(Delimeter)+1);
      end else
        Parts.Add(CurStr);
    until CurPos=0;
  finally
    Parts.EndUpdate();
  end;
end;
И всё бы было хорошо, если-бы скрипт не вылетал по "Exception: List index out of bounds"

Как можно предвидеть, что List index out of bounds?

Posted: 22.12.2009 15:16
by WladL
например:
Delimeter = ';'
CurStr = 'abcd;'
CurPos:= Pos(Delimeter, CurStr); = 5

Copy(CurStr, CurPos+Length(Delimeter),Length(CurStr)-CurPos-Length(Delimeter)+1); = copy(CurStr,5+1,5-5-1+1) = copy(CurStr,6,0) < попытка скопировать 0 символов начиная с 6го!!! , а их там всего 5!!

если Length(Delimeter)>1 тогда такого не будет

Т.е. нужна проверка не находится ли Delimeter в конце строки.