Технический вопрос
Moderators: Murderator+, Murderator
Технический вопрос
Как можно получить имя предмета, который есть в УО, если знаешь только тип? Например, я знаю, что тип гориллы 0x20f5, но как мне зделать, что бы я узнал, что объект с таким типом есть горилла?
Собственно, почему спрашиваю. На 13 Деменшене новый антимакрос, собственно вот он сам http://boards.spot.lv/?showtopic=2159
На этом гампе меняеться картинка и ответы. Зделал несколько инфогампов :
В первом случае это forge, во втором члучае это crossbow bolts.
как видите, в инфогампе отличаются только строчка с 15] ilepic 120 50 716, а конкретнее последнее число. Заметил закономерность: если взять тип объекта через инжект и перевести его в 10-ти ричную систему, то тогда получится это чило без последней цифры. Например: тип forge в инжекте 0x0fb1, перевлдим 0fb1 в 10-ти ричную систему, получаем 4017. Убираем последнюю цифру и получаем 401 - то самое число, которое выдаёт infogump.
Вот и сам вопрос: зная число в инфогампе, как узнать его имя и дать правельный ответ?
На этом гампе меняеться картинка и ответы. Зделал несколько инфогампов :
Code: Select all
_____infogump_______
serial 0x0007fc0f
gumpid 0x00000409
X 200
Y 100
657 packet size
0 reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
1] omove
2] oclose
3] esizepic 0 0 5120 320 24
4] age
5] utton 120 210 239 240 1 0
6] esizepic 015 180 5100 280 2
7] extentry 32 180 200 20 100 0
8] esizepic 100 20 5100 100 8
9] esizepic 20 120 5100 90 2
10] esizepic 120 120 5100 90 2
11] esizepic 220 120 5100 90 2
12] esizepic 20 150 5100 90 2
13] esizepic 120 150 5100 90 2
14] esizepic 220 150 5100 90 2
15] ilepic 120 50 401
16] ext 30 120 100
17] ext 130 120 100
18] ext 230 120 100
19] ext 30 150 100
20] ext 130 150 100
21] ext 230 150 100
Text: ____________
0] What is in the picture?
1] Bottles
2] Forge
3] Food
4] Everywhere
5] Sword
6] Need
Code: Select all
____infogump_______
serial 0x0007fc0f
gumpid 0x00000409
X 200
Y 100
655 packet size
0 reply packet size
Buttons: ________
Checks&Radios: __
Entryes: ________
All commands: ____
1] omove
2] oclose
3] esizepic 0 0 5120 320 24
4] age
5] utton 120 210 239 240 1 0
6] esizepic 015 180 5100 280 2
7] extentry 32 180 200 20 100 0
8] esizepic 100 20 5100 100 8
9] esizepic 20 120 5100 90 2
10] esizepic 120 120 5100 90 2
11] esizepic 220 120 5100 90 2
12] esizepic 20 150 5100 90 2
13] esizepic 120 150 5100 90 2
14] esizepic 220 150 5100 90 2
15] ilepic 120 50 716
16] ext 30 120 100
17] ext 130 120 100
18] ext 230 120 100
19] ext 30 150 100
20] ext 130 150 100
21] ext 230 150 100
Text: ____________
0] What is in the picture?
1] Bolts
2] Mouse
3] Hungry
4] Mushroom
5] Skirt
6] Bolts
В первом случае это forge, во втором члучае это crossbow bolts.
как видите, в инфогампе отличаются только строчка с 15] ilepic 120 50 716, а конкретнее последнее число. Заметил закономерность: если взять тип объекта через инжект и перевести его в 10-ти ричную систему, то тогда получится это чило без последней цифры. Например: тип forge в инжекте 0x0fb1, перевлдим 0fb1 в 10-ти ричную систему, получаем 4017. Убираем последнюю цифру и получаем 401 - то самое число, которое выдаёт infogump.
Вот и сам вопрос: зная число в инфогампе, как узнать его имя и дать правельный ответ?
-
- Posts: 2259
- Joined: 2005-04-19 18:00:29
- Location: Московская область
- Contact:
Если я не ошибаюсь, то у инжекта нет собственной базы объектов, др. словами чтобы получить имя- по этому объекту надо предварительно сделать клик, и только потом станет доступно uo.GetName.
Как выход,- иметь массив вида "ключ" - "значение" которые используются в Вашей анти-макрос системе.
Далее перебор в цикле всех значений массива типов, и когда совпадет- получение соответствующего имени из массива имен.
Как выход,- иметь массив вида "ключ" - "значение" которые используются в Вашей анти-макрос системе.
Code: Select all
dim types[5] # массив типов
dim names[5] # массив имен
types[0]='type of gorilla' #тип1
names[0]='gorilla' #соответствующее ему имя1
types[1]='type of forge'
names[1]='forge'
Далее перебор в цикле всех значений массива типов, и когда совпадет- получение соответствующего имени из массива имен.
Code: Select all
var CountOfArray = #длинна массивов
...
for i = 0 to CountOfArray
if TypeFromGump == types[i] then #если нашли
return names[i] # получаем имя
end if
next
Это был бы прекрасный вариант, но проблема в том, что этих картинок около сотни, если не больше... А картинка выскакивает одна... Тогда, такой вопрос: насколько я знаю, объекты содержит файл art.mul. Есть ли какая программа, которая даёт возможность все объекты УО и их тип записать в один текстовый файл?