Page 1 of 2
					
				гамп на uolife.ru
				Posted: 21.12.2009 9:56
				by pickwill
				Время от времени, каждые пол часа, появляется такое окошко:
содержащее:
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  

 
			 
			
					
				
				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)
снежок наверное подбирать надо

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

 (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 в конце строки.