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

Помогите с гампом пожалуйста.

тут можно задать вопрос по скриптингу
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Помогите с гампом пожалуйста.

Post by Tomers »

Здравствуйте, всех с рождеством.
Перлопатил форум, так и не нашел ответа. Кроме того еще и подробное инфо по командам исчезло с форума.
Собственно суть вопроса:
Есть объект (рунбука). Даблклик по ней дает окно:
Image
Выбор первой страницы открывает:
Image

при вызове её открывается гамп:

Code: Select all

Serial: 3F2D
GumpID: 98F2406
X: 0096
Y: 0096
Pages: 10
Gump Options:

GumpPics: X Y ID  Page
GumpPic: 100  10  2200  0
GumpPic: 125  50  57  0
GumpPic: 145  50  58  0
GumpPic: 160  50  58  0
GumpPic: 175  50  58  0
GumpPic: 190  50  58  0
GumpPic: 205  50  58  0
GumpPic: 220  50  58  0
GumpPic: 230  50  59  0
GumpPic: 290  50  57  0
GumpPic: 310  50  58  0
GumpPic: 325  50  58  0
GumpPic: 340  50  58  0
GumpPic: 355  50  58  0
GumpPic: 370  50  58  0
GumpPic: 385  50  58  0
GumpPic: 395  50  59  0

GumpTexts: X   Y   Color   Text_ID   Page
0   GumpText: 135  80  0  12  2
1   GumpText: 135  95  0  13  2
2   GumpText: 295  80  0  14  2
3   GumpText: 295  95  0  15  2
4   GumpText: 135  80  0  14  3
5   GumpText: 135  95  0  16  3
6   GumpText: 295  80  0  17  3
7   GumpText: 295  95  0  18  3
8   GumpText: 135  80  0  19  4
9   GumpText: 135  95  0  20  4
10   GumpText: 295  80  0  21  4
11   GumpText: 295  95  0  22  4
12   GumpText: 135  80  0  23  5
13   GumpText: 135  95  0  24  5
14   GumpText: 295  80  0  25  5
15   GumpText: 295  95  0  26  5
16   GumpText: 135  80  0  27  6
17   GumpText: 135  95  0  28  6
18   GumpText: 295  80  0  29  6
19   GumpText: 295  95  0  30  6

Text Lines:
0
20
Банк Умбра
Шадов
Copper
Shadow
Home
Kirki
Freee
Trins_bank
КонецЪ
Empty
24° 41'N
51° 7'E
8° 57'N
0° 37'W
0° 8'E
8° 47'N
0° 42'E
7° 38'N
8° 38'W
22° 40'N
46° 11'E
125° 56'N
4° 4'E
93° 4'S
40° 0'E
88° 35'N
33° 2'E
7° 22'N
9° 33'W

GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page
0   GumpButton: 130  187  2225  2225  0  2  0  0
1   GumpButton: 165  187  2226  2226  0  3  0  0
2   GumpButton: 200  187  2227  2227  0  4  0  0
3   GumpButton: 235  187  2228  2228  0  5  0  0
4   GumpButton: 300  187  2229  2229  0  6  0  0
5   GumpButton: 335  187  2230  2230  0  7  0  0
6   GumpButton: 370  187  2231  2231  0  8  0  0
7   GumpButton: 405  187  2232  2232  0  9  0  0
8   GumpButton: 125  15  2472  2473  1  0  1  1
9   GumpButton: 130  65  2103  2104  1  0  2  1
10   GumpButton: 130  80  2103  2104  1  0  8  1
11   GumpButton: 130  95  2103  2104  1  0  14  1
12   GumpButton: 130  110  2103  2104  1  0  20  1
13   GumpButton: 130  125  2103  2104  1  0  26  1
14   GumpButton: 130  140  2103  2104  1  0  32  1
15   GumpButton: 130  155  2103  2104  1  0  38  1
16   GumpButton: 130  170  2103  2104  1  0  44  1
17   GumpButton: 290  65  2103  2104  1  0  50  1
18   GumpButton: 290  80  2103  2104  1  0  56  1
19   GumpButton: 290  95  2103  2104  1  0  62  1
20   GumpButton: 290  110  2103  2104  1  0  68  1
21   GumpButton: 290  125  2103  2104  1  0  74  1
22   GumpButton: 290  140  2103  2104  1  0  80  1
23   GumpButton: 290  155  2103  2104  1  0  86  1
24   GumpButton: 290  170  2103  2104  1  0  92  1
25   GumpButton: 393  14  2206  2206  0  2  0  1
26   GumpButton: 125  14  2205  2205  0  1  0  2
27   GumpButton: 393  14  2206  2206  0  3  0  2
28   GumpButton: 130  65  2103  2104  1  0  2  2
29   GumpButton: 135  115  2437  2438  1  0  3  2
30   GumpButton: 160  20  2361  2361  1  0  4  2
31   GumpButton: 135  140  2103  2104  1  0  5  2
32   GumpButton: 135  158  2103  2104  1  0  6  2
33   GumpButton: 135  176  2103  2104  1  0  7  2
34   GumpButton: 290  65  2103  2104  1  0  8  2
35   GumpButton: 295  115  2437  2438  1  0  9  2
36   GumpButton: 300  20  2361  2361  1  0  10  2
37   GumpButton: 295  140  2103  2104  1  0  11  2
38   GumpButton: 295  158  2103  2104  1  0  12  2
39   GumpButton: 295  176  2103  2104  1  0  13  2
40   GumpButton: 125  14  2205  2205  0  2  0  3
41   GumpButton: 393  14  2206  2206  0  4  0  3
42   GumpButton: 130  65  2103  2104  1  0  14  3
43   GumpButton: 135  115  2437  2438  1  0  15  3
44   GumpButton: 160  20  2361  2361  1  0  16  3
45   GumpButton: 135  140  2103  2104  1  0  17  3
46   GumpButton: 135  158  2103  2104  1  0  18  3
47   GumpButton: 135  176  2103  2104  1  0  19  3
48   GumpButton: 290  65  2103  2104  1  0  20  3
49   GumpButton: 295  115  2437  2438  1  0  21  3
50   GumpButton: 300  20  2361  2361  1  0  22  3
51   GumpButton: 295  140  2103  2104  1  0  23  3
52   GumpButton: 295  158  2103  2104  1  0  24  3
53   GumpButton: 295  176  2103  2104  1  0  25  3
54   GumpButton: 125  14  2205  2205  0  3  0  4
55   GumpButton: 393  14  2206  2206  0  5  0  4
56   GumpButton: 130  65  2103  2104  1  0  26  4
57   GumpButton: 135  115  2437  2438  1  0  27  4
58   GumpButton: 160  20  2361  2361  1  0  28  4
59   GumpButton: 135  140  2103  2104  1  0  29  4
60   GumpButton: 135  158  2103  2104  1  0  30  4
61   GumpButton: 135  176  2103  2104  1  0  31  4
62   GumpButton: 290  65  2103  2104  1  0  32  4
63   GumpButton: 295  115  2437  2438  1  0  33  4
64   GumpButton: 300  20  2361  2361  1  0  34  4
65   GumpButton: 295  140  2103  2104  1  0  35  4
66   GumpButton: 295  158  2103  2104  1  0  36  4
67   GumpButton: 295  176  2103  2104  1  0  37  4
68   GumpButton: 125  14  2205  2205  0  4  0  5
69   GumpButton: 393  14  2206  2206  0  6  0  5
70   GumpButton: 130  65  2103  2104  1  0  38  5
71   GumpButton: 135  115  2437  2438  1  0  39  5
72   GumpButton: 160  20  2361  2361  1  0  40  5
73   GumpButton: 135  140  2103  2104  1  0  41  5
74   GumpButton: 135  158  2103  2104  1  0  42  5
75   GumpButton: 135  176  2103  2104  1  0  43  5
76   GumpButton: 290  65  2103  2104  1  0  44  5
77   GumpButton: 295  115  2437  2438  1  0  45  5
78   GumpButton: 300  20  2361  2361  1  0  46  5
79   GumpButton: 295  140  2103  2104  1  0  47  5
80   GumpButton: 295  158  2103  2104  1  0  48  5
81   GumpButton: 295  176  2103  2104  1  0  49  5
82   GumpButton: 125  14  2205  2205  0  5  0  6
83   GumpButton: 393  14  2206  2206  0  7  0  6
84   GumpButton: 130  65  2103  2104  1  0  50  6
85   GumpButton: 135  115  2437  2438  1  0  51  6
86   GumpButton: 160  20  2361  2361  1  0  52  6
87   GumpButton: 135  140  2103  2104  1  0  53  6
88   GumpButton: 135  158  2103  2104  1  0  54  6
89   GumpButton: 135  176  2103  2104  1  0  55  6
90   GumpButton: 290  65  2103  2104  1  0  56  6
91   GumpButton: 295  115  2437  2438  1  0  57  6
92   GumpButton: 295  140  2103  2104  1  0  59  6
93   GumpButton: 295  158  2103  2104  1  0  60  6
94   GumpButton: 295  176  2103  2104  1  0  61  6
95   GumpButton: 125  14  2205  2205  0  6  0  7
96   GumpButton: 393  14  2206  2206  0  8  0  7
97   GumpButton: 130  65  2103  2104  1  0  62  7
98   GumpButton: 290  65  2103  2104  1  0  68  7
99   GumpButton: 125  14  2205  2205  0  7  0  8
100   GumpButton: 393  14  2206  2206  0  9  0  8
101   GumpButton: 130  65  2103  2104  1  0  74  8
102   GumpButton: 290  65  2103  2104  1  0  80  8
103   GumpButton: 125  14  2205  2205  0  8  0  9
104   GumpButton: 130  65  2103  2104  1  0  86  9
105   GumpButton: 290  65  2103  2104  1  0  92  9
В экселе распарсерил строки с кнопками по колонкам для удобства работы. Судя по координатам то страницы (самые нижние 8 кнопок) это кнопки:

Code: Select all

0   GumpButton: 130  187  2225  2225  0  2  0  0 
1   GumpButton: 165  187  2226  2226  0  3  0  0 
2   GumpButton: 200  187  2227  2227  0  4  0  0 
3   GumpButton: 235  187  2228  2228  0  5  0  0 
4   GumpButton: 300  187  2229  2229  0  6  0  0 
5   GumpButton: 335  187  2230  2230  0  7  0  0 
6   GumpButton: 370  187  2231  2231  0  8  0  0 
7   GumpButton: 405  187  2232  2232  0  9  0  0
и на той странице кнопка рекола магией:

Code: Select all

45   GumpButton: 135  140  2103  2104  1  0  17  3
В скрипте ставлю:

Code: Select all

useobject(runebook);
waitgump('2');
waitgump('17');
Он даже реколится (через раз :? ) но почему-то не на ту руну. Уже и перебором пробовал, но никак не пойму закономерность.

Это я точно что-то не так высчитал, но для меня Гампы что-то туго очень даются. И почему тут аж 105 кнопок ?
Может есть какие-то функции для упрощения работы с ними, или может подскажете как правильно считать?
Я понимаю, что за меня никто не напишет тут ничего, но надеюсь хоть на подсказку какую-то.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Знакомая схема "нумерации" рун. Я уже её на днях расписывал. Формула для получения следующая:

Code: Select all

RuneIndex * 6 + SpellShift
Где:
RuneIndex - индекс руны начиная с нуля (тобишь самая первая руна - это 0, а последняя шестнадцатая - 15.
SpellShift - сдвиг нумерации кнопок. Для рекола равен 5, для GT = 6, для SJ = 7.
А для гампа советую использовать следующий механизм:

Code: Select all

CheckLag(30000);
Wait(1000);
while IsGump do CloseSimpleGump(0);
UseObject(RuneBook);
CheckLag(30000);
Wait(1000);
if IsGump then NumGumpButton(0, SpellShift + RuneIndex * 6)
Собственно, это руководство к действию.

P.S.: Если приходит сразу весь гамп, то нет необходимости переключать страницы, можно сразу "нажать" нужную кнопку.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Post by Tomers »

1. Тоесть то что у меня 105 кнопок, это все кнопки целиком со всех страниц?
2. Можна сразу нажать одну кнопку без листания страниц?
тоесть конструкцию типа:

Code: Select all

useobject(runebook); 
waitgump('2'); 
waitgump('17');
заменить на:

Code: Select all

useobject(runebook); 
waitgump('17');
3. Вместо waitgump использовать NumGumpButton ?
4. Не нашел мануала по командам работы с гампами, какие параметры у NumGumpButton ?

>>Знакомая схема "нумерации" рун. Я уже её на днях расписывал.
Mining SA читал скрипт, там встречал такую конструкцию, но думал, что там для конкретного шарда только работоспособно.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

1. Да.
2. Да.
3. Да.
4. Мануал по гампам.
В Mining SA используется другая схема нумерации кнопок. Просто помогал одному человеку "доработать напильником" тот скрипт под свой шард.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Post by Tomers »

Большое спасибо
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

проверил по IsGumpCanBeClosed - не закрывается рунбука командой CloseSimpleGump на DRW, что делать? (Не нашёл команду как кликнуть правой кнопкой мыши)
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Рунбука закрывается CloseSimpleGump, можешь сам легко проверить:

Code: Select all

UseObject(RuneBook);
Wait(1000);
CheckLag(15000);
while IsGump do CloseSimpleGump(0);
Если гамп рунбуки не закрывается через CloseSimpleGump, то скрипт упадёт в бесконечный цикл. В гампах, которые действительно не могут быть закрыты через CloseSimpleGump должна быть отдельная кнопка закрытия гампа.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

Stealth: 3.3.0-8, Шард: DRW

1)

Code: Select all

UseObject(RuneBook);
Wait(1000);
CheckLag(15000);
while IsGump do CloseSimpleGump(0);
Бесконечного цикла нет, код открывает рунбуку, завершается строкой как на скрине, при этом рунбука не закрывается.
Кнопки закрытия нет, книга закрывается если мышкой нажать на кнопку одной из рун, или правой кнопкой мыши по рунбуке.
Image

Пробовал ещё так:

Code: Select all

UseObject($4044629D);// ID моей рунбуки
Wait(5000);
NumGumpTextEntry(GetGumpsCount-1, 11, '21')
NumGumpButton(GetGumpsCount-1, 21)
CloseSimpleGump(0);
CloseSimpleGump(GetGumpsCount-1);
Телепортируется, но не закрывает, и снова сообщение: "Send Gump reply from stealth"

2) В стелс-вики опечатка в примере (http://stealth.od.ua/wiki/doku.php?id=numgumptextentry):

Code: Select all

 WaitTargetGround($1BF5); 
  a := GetGumpsCount; 
  UseObject(FindType($1EB9,backpack));
  while a = GetGumpsCount do
    Wait(50);
  NumGumpTextEntry(GetGumpsCount-1,513, '30');
  NumGumpButton(GetGumpsCount-1,'7956');
NumGumpButton(GetGumpsCount-1,7956); - нужно без кавычек
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Post by CFA »

стелс не может закрыть гамп в клиенте. гамп уже отработал, но клиент об этом не знает и картинка продолжает висеть. в клиентах 4.0 и выше, вроде должен закрываться, но точно не скажу.
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

я использую ваш патченный 2.0.3 (на дрв 2.0.3).
Тогда как навести курсор мыши и кликнуть по нужной кнопке руны? Книга открывается в разных местах со смещением всегда.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

GuitarMonster wrote:Пробовал ещё так:

Code: Select all

UseObject($4044629D);// ID моей рунбуки
Wait(5000);
NumGumpTextEntry(GetGumpsCount-1, 11, '21')
NumGumpButton(GetGumpsCount-1, 21)
CloseSimpleGump(0);
CloseSimpleGump(GetGumpsCount-1);
Телепортируется, но не закрывает, и снова сообщение: "Send Gump reply from stealth"
1. Зачем вызывать NumGumpTextEntry? Тебе же в рунбуке не надо нигде текст вводить.
2. После использование кнопки гампа гамп сам закрывается. Следовательно, нет необходимости закрывать уже использованый гамп (тем более два раза). Видимо код ты используешь совершенно бездумно.
3. Гамп остаётся только в клиенте, т.к. твоя версия клиента не поддерживает закрытие гампа по команде сервера (Пакет 0xBF, Subcommand 4). В стелсе гамп уже закрылся, для сервера гамп тоже закрыт.

P.S.: "Вам шашечки или ехать?". Он же телепортируется, в чем ещё проблема?
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
nikbk
Neophyte
Neophyte
Posts: 45
Joined: 11.09.2009 0:02
Contact:

Post by nikbk »

Да на дрв много проблем с этими гампами, там можно гостом порунбуке летать.
"Совершенного кода не бывает, вседа найдется какой нибудь фрик который все испортит." © Cклонный к насилию Психопат
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

Fenix wrote:1. Зачем вызывать NumGumpTextEntry? Тебе же в рунбуке не надо нигде текст вводить.
2. После использование кнопки гампа гамп сам закрывается. Следовательно, нет необходимости закрывать уже использованый гамп (тем более два раза).
1) Эти команды я привёл для примера - как перебирал варианты. Я использую код:

Code: Select all

UseObject(RuneBook)
NumGumpButton(0, 21)
2) Да где ж он закрывается если висит?
Fenix wrote: P.S.: "Вам шашечки или ехать?". Он же телепортируется, в чем ещё проблема?
У меня 5 рунбук, пусть все 5 гампов висят? Как быть с гампами других объектов? Ну если это нормально то пусть завесят весь экран так чтоб карты было не видно, хрен с ними, и вот такое мне не надо писать, я это тоже умею:
Fenix wrote: Видимо код ты используешь совершенно бездумно.
Stealth: 3.3.0-8
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

GuitarMonster wrote:2) Да где ж он закрывается если висит?
Fenix wrote:3. Гамп остаётся только в клиенте, т.к. твоя версия клиента не поддерживает закрытие гампа по команде сервера (Пакет 0xBF, Subcommand 4). В стелсе гамп уже закрылся, для сервера гамп тоже закрыт.
Ты вообще ощущаешь разницу между стелсом, обычным клиентом и клиентом, который к стелсу подключен?
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
GuitarMonster
Neophyte
Neophyte
Posts: 26
Joined: 12.01.2011 1:52

Post by GuitarMonster »

Феникс скажи плз: допустим клиент вызван через стелс (кнопка START CLIENT). Появляется окно клиента, перс на нём и т.п. Стелс в принципе может управлять курсором мыши в окне клиента открытом через стелс? Да или нет и я успокоюсь.
Stealth: 3.3.0-8
Post Reply