Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Нужен хел по гампу

тут можно задать вопрос по скриптингу
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Нужен хел по гампу

Post by Enkidoo »

Плохо с пониманием, помогите разобратся кому не сложно.
Стоит такой себе антимакрос

Code: Select all

 Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 189  243  2231  0  0  1
GumpPic: 242  237  2227  0  0  2
GumpPic: 190  242  2225  0  0  3
GumpPic: 243  234  2225  0  0  4
GumpPic: 191  224  2227  0  0  18
GumpPic: 232  241  2227  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 140  170  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 195  172  152  0  0  8
1   GumpText: 170  195  0  1  0  9
2   GumpText: 170  253  0  2  0  20
3   GumpText: 170  265  0  3  0  21
4   GumpText: 280  265  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
0

GumpButtons:	 X   Y    Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 160  175  2227  	2227  		1    1  	1  	    0 		 5
1   GumpButton: 340  175  2227  	2227  		1    1 	 	2  	    0 		 6
2   GumpButton: 313  303  2228  	2228  		1    1  	9   	    0 		 10
3   GumpButton: 196  321  2225  	2225  		1    1  	10  	    0 		 11
4   GumpButton: 231  320  2226  	2226  		1    1  	3  	    0 		 12
5   GumpButton: 269  303  2227  	2227  		1    1  	4  	    0 		 13
6   GumpButton: 238  363  2230  	2230  		1    1  	5  	    0 		 14
7   GumpButton: 321  364  2232  	2232  		1    1  	6   	    0 		 15
8   GumpButton: 187  357  2229  	2229  		1    1  	7   	    0  		16
9   GumpButton: 265  356  2231  	2231  		1    1  	8   	    0  		17

Previous gump reply:
  Button id: 4 
В gumpinfo 2 верхние цыфры 3 3 ( картинка просто как пример вида гампа)
Attachments
Вид гампа
Вид гампа
Anty.jpg (74.76 KiB) Viewed 11867 times
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужен хел по гампу

Post by Vizit0r »

просто как пример не надо.

надо полный лист гампа + его картинка к нему. один гамп и картинка с другого гампа - это бессмысленно.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Re: Нужен хел по гампу

Post by Enkidoo »

Ет да, сглупил...

Гамп с кодом 76

Code: Select all

Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 269  324  2227  0  0  1
GumpPic: 306  321  2232  0  0  2
GumpPic: 287  325  2230  0  0  3
GumpPic: 314  333  2230  0  0  4
GumpPic: 286  319  2231  0  0  18
GumpPic: 321  313  2230  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 220  260  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 275  262  152  0  0  8
1   GumpText: 250  285  0  1  0  9
2   GumpText: 250  343  0  2  0  20
3   GumpText: 250  355  0  3  0  21
4   GumpText: 360  355  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
0

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 240  265  2231  2231  1  1  1  0  5
1   GumpButton: 420  265  2230  2230  1  1  2  0  6
2   GumpButton: 399  391  2228  2228  1  1  9  0  10
3   GumpButton: 272  394  2225  2225  1  1  10  0  11
4   GumpButton: 318  395  2226  2226  1  1  3  0  12
5   GumpButton: 363  395  2227  2227  1  1  4  0  13
6   GumpButton: 309  435  2230  2230  1  1  5  0  14
7   GumpButton: 403  430  2232  2232  1  1  6  0  15
8   GumpButton: 278  443  2229  2229  1  1  7  0  16
9   GumpButton: 355  444  2231  2231  1  1  8  0  17
Гамп с кодом 48

Code: Select all


Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 213  371  2227  0  0  1
GumpPic: 259  394  2227  0  0  2
GumpPic: 222  373  2225  0  0  3
GumpPic: 248  394  2226  0  0  4
GumpPic: 227  380  2228  0  0  18
GumpPic: 246  377  2232  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 160  320  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 215  322  152  0  0  8
1   GumpText: 190  345  0  1  0  9
2   GumpText: 190  403  0  2  0  20
3   GumpText: 190  415  0  3  0  21
4   GumpText: 300  415  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
0

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 180  325  2228  2228  1  1  1  0  5
1   GumpButton: 360  325  2232  2232  1  1  2  0  6
2   GumpButton: 341  451  2228  2228  1  1  9  0  10
3   GumpButton: 223  466  2225  2225  1  1  10  0  11
4   GumpButton: 252  471  2226  2226  1  1  3  0  12
5   GumpButton: 296  460  2227  2227  1  1  4  0  13
6   GumpButton: 262  513  2230  2230  1  1  5  0  14
7   GumpButton: 336  497  2232  2232  1  1  6  0  15
8   GumpButton: 212  494  2229  2229  1  1  7  0  16
9   GumpButton: 298  492  2231  2231  1  1  8  0  17

Есть соображение что два первых гумпбатона и есть ключевые

Code: Select all

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 180  325  2228  2228  1  1  1  0  5
1   GumpButton: 360  325  2232  2232  1  1  2  0  6
Помогите написать скрипт чтоб он отслеживал первые две гумпбутоны и потом нажимал теже из остальной восмерки 8)
Attachments
48
48
48.jpg (51.82 KiB) Viewed 11861 times
76
76
76.jpg (63 KiB) Viewed 11861 times
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Нужен хел по гампу

Post by CFA »

Получаем информацию о гампа в переменную
Запоминаем в переменных значения released_id у двух первых кнопок, среди оставшихся кнопок ищем кнопки с таким же released_id, с помощью NumGumpButton нажимаем эту кнопку используя return_value.
В гампах я не силен, поэтому вероятно нажатие кнопки приведет к закрытию гампа и открытию нового.
В виде кода это выглядит примерно так

Code: Select all

GetGumpInfo(GetGumpsCount-1, gi);
code1 := gi.GumpButtons[0].released_id;  // код картинки первой кнопки
code2 := gi.GumpButtons[1].released_id;  // код картинки второй кнопки

// цикл по оставшимся кнопкам
for i := 2 to GetArrayLength(gi.GumpButtons)-1 do
begin
    if gi.GumpButton[i].released_id = code1 then // если код картинки совпадает, то...
    begin
        NumGumpButton(GetGumpsCount-1, gi.GumpButton[i].return_value); // нажимаем эту кнопку
        break; // и заканчиваем цикл
    end;
end;
Этот код нажимает только первую кнопку и считает, что первые две кнопки это и есть нужные (те нет необходимости в сортировке по координатам). И вообще гамп выглядит знакомым, где то на форуме я его видел.
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Re: Нужен хел по гампу

Post by Enkidoo »

Получился такой вот код

Code: Select all

Program New; 
var 
gi :TGumpInfo;
code1 : Cardinal;
code2 : Cardinal;
i : Integer;
released_id : Cardinal;

begin
GetGumpInfo(GetGumpsCount-1,gi);
code1 := gi.GumpButtons[0].released_id;  // код картинки первой кнопки
code2 := gi.GumpButtons[1].released_id;  // код картинки второй кнопки

// цикл по оставшимся кнопкам
i :=0
for i := 2 to GetArrayLength(gi.GumpButtons)-1 
do
 begin
    if gi.GumpButtons[i].released_id = code1 then // если код картинки совпадает, то...
    begin
        NumGumpButton(GetGumpsCount-1, gi.GumpButtons[i].return_value); // нажимаем эту кнопку
        break; // и заканчиваем цикл
    end;
end;
end.
Но работа его не совсем корректна, первую клавишу он нажимает правильно.
Но после правильного нажатия руками на первую цифру, гамп обновляется. А когда ето делает скрипт то появляется второй идентичный гам но в нем перва цифра не введена.
Читоделать?
Attachments
Двойной.jpg
Двойной.jpg (111.2 KiB) Viewed 11841 times
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужен хел по гампу

Post by Vizit0r »

я бы посмотрел отличия в пакетных логах пакет 0xB0, отправляемый скриптом, и такой же, но отправляемый руками.
результаты сюда. без картинок, просто GumpInfo обоих и пакеты 0xB0.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Re: Нужен хел по гампу

Post by Enkidoo »

Код 54. Два гампинфо, первый пустой, второй после нажатия руками пятерки

Code: Select all

Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 236  265  2229  0  0  1
GumpPic: 277  258  2231  0  0  2
GumpPic: 234  266  2229  0  0  3
GumpPic: 276  267  2226  0  0  4
GumpPic: 233  250  2229  0  0  18
GumpPic: 267  257  2228  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 180  200  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 235  202  152  0  0  8
1   GumpText: 210  225  0  1  0  9
2   GumpText: 210  283  0  2  0  20
3   GumpText: 210  295  0  3  0  21
4   GumpText: 320  295  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
0

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 200  205  2229  2229  1  1  1  0  5
1   GumpButton: 380  205  2228  2228  1  1  2  0  6
2   GumpButton: 351  344  2228  2228  1  1  9  0  10
3   GumpButton: 237  350  2225  2225  1  1  10  0  11
4   GumpButton: 279  342  2226  2226  1  1  3  0  12
5   GumpButton: 313  341  2227  2227  1  1  4  0  13
6   GumpButton: 288  391  2230  2230  1  1  5  0  14
7   GumpButton: 347  390  2232  2232  1  1  6  0  15
8   GumpButton: 234  378  2229  2229  1  1  7  0  16
9   GumpButton: 317  380  2231  2231  1  1  8  0  17

Previous gump reply:
  Button id: 0


Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 242  265  2228  0  0  1
GumpPic: 281  260  2225  0  0  2
GumpPic: 242  253  2229  0  0  3
GumpPic: 279  264  2228  0  0  4
GumpPic: 241  266  2229  0  0  18
GumpPic: 265  254  2228  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 180  200  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 235  202  152  0  0  8
1   GumpText: 210  225  0  1  0  9
2   GumpText: 210  283  0  2  0  20
3   GumpText: 210  295  0  3  0  21
4   GumpText: 320  295  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
5

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 200  205  2229  2229  1  1  1  0  5
1   GumpButton: 380  205  2228  2228  1  1  2  0  6
2   GumpButton: 360  335  2228  2228  1  1  9  0  10
3   GumpButton: 232  353  2225  2225  1  1  10  0  11
4   GumpButton: 273  333  2226  2226  1  1  3  0  12
5   GumpButton: 318  345  2227  2227  1  1  4  0  13
6   GumpButton: 288  380  2230  2230  1  1  5  0  14
7   GumpButton: 357  380  2232  2232  1  1  6  0  15
8   GumpButton: 246  388  2229  2229  1  1  7  0  16
9   GumpButton: 308  388  2231  2231  1  1  8  0  17

Previous gump reply:
  Button id: 7
Код 53. Тоже в начале пустой, потом нажатый макросом. (при етом в клиенте висит два гампа один под другим)

Code: Select all

Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 227  242  2225  0  0  1
GumpPic: 276  242  2230  0  0  2
GumpPic: 243  221  2231  0  0  3
GumpPic: 287  236  2232  0  0  4
GumpPic: 248  228  2229  0  0  18
GumpPic: 280  241  2227  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 180  170  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 235  172  152  0  0  8
1   GumpText: 210  195  0  1  0  9
2   GumpText: 210  253  0  2  0  20
3   GumpText: 210  265  0  3  0  21
4   GumpText: 320  265  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
0

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 200  175  2229  2229  1  1  1  0  5
1   GumpButton: 380  175  2227  2227  1  1  2  0  6
2   GumpButton: 346  318  2228  2228  1  1  9  0  10
3   GumpButton: 227  311  2225  2225  1  1  10  0  11
4   GumpButton: 283  314  2226  2226  1  1  3  0  12
5   GumpButton: 311  302  2227  2227  1  1  4  0  13
6   GumpButton: 265  355  2230  2230  1  1  5  0  14
7   GumpButton: 348  341  2232  2232  1  1  6  0  15
8   GumpButton: 234  350  2229  2229  1  1  7  0  16
9   GumpButton: 311  345  2231  2231  1  1  8  0  17

Previous gump reply:
  Button id: 0

бштащпгьз
Serial: 19F67
GumpID: 00B3
X: 0000
Y: 0000
Pages: 1
Gump Options:

GumpPics: X  Y  ID  Hue  Page  ElemNum
GumpPic: 226  229  2226  0  0  1
GumpPic: 276  223  2231  0  0  2
GumpPic: 246  221  2226  0  0  3
GumpPic: 279  241  2232  0  0  4
GumpPic: 239  229  2229  0  0  18
GumpPic: 267  231  2227  0  0  19

ResizePics: X   Y   ID   Width   Height   Page   ElemNum
0   ResizePic: 180  170  5170  240  240  0  7

GumpTexts: X   Y   Color   Text_ID   Page   ElemNum
0   GumpText: 235  172  152  0  0  8
1   GumpText: 210  195  0  1  0  9
2   GumpText: 210  253  0  2  0  20
3   GumpText: 210  265  0  3  0  21
4   GumpText: 320  265  0  4  0  22

Text Lines:
Antimacros System
Choose this protection code
----------------------
Entering code:
5

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page   ElemNum
0   GumpButton: 200  175  2229  2229  1  1  1  0  5
1   GumpButton: 380  175  2227  2227  1  1  2  0  6
2   GumpButton: 345  322  2228  2228  1  1  9  0  10
3   GumpButton: 243  323  2225  2225  1  1  10  0  11
4   GumpButton: 267  319  2226  2226  1  1  3  0  12
5   GumpButton: 324  308  2227  2227  1  1  4  0  13
6   GumpButton: 289  352  2230  2230  1  1  5  0  14
7   GumpButton: 365  340  2232  2232  1  1  6  0  15
8   GumpButton: 233  347  2229  2229  1  1  7  0  16
9   GumpButton: 311  344  2231  2231  1  1  8  0  17

Previous gump reply:
  Button id: 7
Но есть мысли что он просто не нажимает вторую из-за обновления гампа
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужен хел по гампу

Post by Vizit0r »

не вижу различий...

тебе надо нажимать сначала кнопку с первой цифрой в первом гампе, потом проверять последнюю строку из TextLines на = '0' (как в первом гампе). Если не ноль - значится это второй гамп, и надо жать на вторую кнопку.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Re: Нужен хел по гампу

Post by Enkidoo »

Все-же думаю скрипт не нажимает вторую, если нажать скриптом первую а потом руками вторую то клиент пишет, что проверка пройдена.
Но гамп с невведеным кодом остается висеть ( и на гампинфо ничего не выводит)

Как поправить код чтоб он после нажатия первой клавиши и обновления гампа нажал вторую?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужен хел по гампу

Post by Vizit0r »

Enkidoo wrote:Все-же думаю скрипт не нажимает вторую, если нажать скриптом первую а потом руками вторую то клиент пишет, что проверка пройдена.
я тоже так думаю - ведь в скрипте ни слова про использование второй кнопки :)

а как дописать на второй гамп - я написал в общих чертах выше, пробуй. не получится - я или CFA завтра напишу(ет).
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Re: Нужен хел по гампу

Post by Enkidoo »

Получился вот такой кривокод
Вводит значения правильно, клиент информирует об етом но окно гампов не закрывает 8(
Подправьте если не сложно 8)

И как его в писать в тело другого скрипта чтоб при появлении гампа срабатывал етот скрипт?

Еще он почемуто не хочет работать когда две одинаковые цифры 8(

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

Code: Select all

Program New;
var
gi :TGumpInfo;
code1 : Cardinal;
code2 : Cardinal;
i : Integer;
released_id : Cardinal;

begin
GetGumpInfo(GetGumpsCount-1,gi);
code1 := gi.GumpButtons[0].released_id;  // код картинки первой кнопки
  // код картинки второй кнопки

// цикл по оставшимся кнопкам
i :=0
for i := 1 to GetArrayLength(gi.GumpButtons)-1
do
 begin
    if gi.GumpButtons[i].released_id = code1 then // если код картинки совпадает, то...
    begin
        NumGumpButton(GetGumpsCount-1, gi.GumpButtons[i].return_value); // нажимаем эту кнопку
        If IsGump then
        if IsGumpCanBeClosed(GetGumpsCount-1) then
        CloseSimpleGump(GetGumpsCount-1);
        wait (1000)
        GetGumpInfo(GetGumpsCount-1,gi);
        code2 := gi.GumpButtons[1].released_id;
        for i := 2 to GetArrayLength(gi.GumpButtons)-1
        do
         begin
          if gi.GumpButtons[i].released_id = code2 then // если код картинки совпадает, то...
        begin
        NumGumpButton(GetGumpsCount-1, gi.GumpButtons[i].return_value);
        
        break; // и заканчиваем цикл
        If IsGump then
        if IsGumpCanBeClosed(GetGumpsCount-1) then
        CloseSimpleGump(GetGumpsCount-1);
    end;
 end;
 end;
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужен хел по гампу

Post by Vizit0r »

в клиенте не закрывает, потому что клиент версии меньше чем 4.

а код может и рабочий, но невеселый :)

когда будет время - перепишу полностью на ивент.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Enkidoo
Neophyte
Neophyte
Posts: 26
Joined: 22.08.2012 15:58

Re: Нужен хел по гампу

Post by Enkidoo »

Всем спасибо за помощь, зхапилил рабочий код, добавил как процедуру в инклюд, и потом вставил после юза топора.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Нужен хел по гампу

Post by Vizit0r »

на ивент гампа переделай лучше, это правильнее.
мне сейчас не до скриптов, потому отмалчиваюсь)
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
admir
Novice
Novice
Posts: 97
Joined: 28.10.2008 20:44

Re: Нужен хел по гампу

Post by admir »

Уххх честно говоря с возможностями стелса этот антимакрос просто ни о чем :) Даже инжектом можно словить 2 подряд гампа и протыкать кнопки...
Эт на каком шарде такое ?
Post Reply