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