Yoko
http://forum.yoko.com.ua/

Технический вопрос
http://forum.yoko.com.ua/viewtopic.php?f=3&t=15191
Page 1 of 1

Author:  Igore6ka [ 2009-10-16 15:18:26 ]
Post subject:  Технический вопрос

Как можно получить имя предмета, который есть в УО, если знаешь только тип? Например, я знаю, что тип гориллы 0x20f5, но как мне зделать, что бы я узнал, что объект с таким типом есть горилла?

Author:  Igore6ka [ 2009-10-16 15:49:42 ]
Post subject: 

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

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

Code:


_____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:

____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.

Вот и сам вопрос: зная число в инфогампе, как узнать его имя и дать правельный ответ?

Author:  Scripts Writer [ 2009-10-16 16:04:01 ]
Post subject: 

Если я не ошибаюсь, то у инжекта нет собственной базы объектов, др. словами чтобы получить имя- по этому объекту надо предварительно сделать клик, и только потом станет доступно uo.GetName.

Как выход,- иметь массив вида "ключ" - "значение" которые используются в Вашей анти-макрос системе.

Code:
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:
var CountOfArray = #длинна массивов

...

for i = 0 to CountOfArray
  if TypeFromGump == types[i] then #если нашли
    return names[i] # получаем имя
  end if
next

Author:  Igore6ka [ 2009-10-16 16:52:49 ]
Post subject: 

Это был бы прекрасный вариант, но проблема в том, что этих картинок около сотни, если не больше... А картинка выскакивает одна... Тогда, такой вопрос: насколько я знаю, объекты содержит файл art.mul. Есть ли какая программа, которая даёт возможность все объекты УО и их тип записать в один текстовый файл?

Author:  Grin [ 2009-10-16 18:33:00 ]
Post subject: 

tiledata.mul вам нужна, там соответствие имя - тип.

Author:  Mirage [ 2009-10-16 20:48:44 ]
Post subject: 

инсайдом посмотри да все типы в файл загони.

Author:  Igore6ka [ 2009-10-17 09:36:21 ]
Post subject: 

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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/