Технический вопрос

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Igore6ka
Posts: 51
Joined: 2006-05-12 06:52:11

Технический вопрос

Post by Igore6ka »

Как можно получить имя предмета, который есть в УО, если знаешь только тип? Например, я знаю, что тип гориллы 0x20f5, но как мне зделать, что бы я узнал, что объект с таким типом есть горилла?
Igore6ka
Posts: 51
Joined: 2006-05-12 06:52:11

Post by Igore6ka »

Собственно, почему спрашиваю. На 13 Деменшене новый антимакрос, собственно вот он сам http://boards.spot.lv/?showtopic=2159

На этом гампе меняеться картинка и ответы. Зделал несколько инфогампов :

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.

Вот и сам вопрос: зная число в инфогампе, как узнать его имя и дать правельный ответ?
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Если я не ошибаюсь, то у инжекта нет собственной базы объектов, др. словами чтобы получить имя- по этому объекту надо предварительно сделать клик, и только потом станет доступно 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
Igore6ka
Posts: 51
Joined: 2006-05-12 06:52:11

Post by Igore6ka »

Это был бы прекрасный вариант, но проблема в том, что этих картинок около сотни, если не больше... А картинка выскакивает одна... Тогда, такой вопрос: насколько я знаю, объекты содержит файл art.mul. Есть ли какая программа, которая даёт возможность все объекты УО и их тип записать в один текстовый файл?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

tiledata.mul вам нужна, там соответствие имя - тип.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

инсайдом посмотри да все типы в файл загони.
Igore6ka
Posts: 51
Joined: 2006-05-12 06:52:11

Post by Igore6ka »

Спасибо! Уже так и зделал, работает :)
Post Reply