Page 1 of 2

Прикрутим обработку buy листа в инжекте?

Posted: 2008-01-07 23:57:36
by Mihail
Только что когда просматривал список Requests и думал надо ли еще для кого извращаться с Win API наткнулся на тему viewtopic.php?t=589
В частности на

пишем buy при открытом окне редактирования списка -- можем узнать названия.
а в verbose log'е (если его на время "buy" включить) есть всё!
и ID, и TYPE, и количество, и (дальше) цены (в HEX), и названия...

Проделал эти нехитрые манипуляции и получил заветный кусок лога:

Code: Select all

::add(Contains: 21 items) head=0 tail=47 len=47
Making 4052BED7 empty...
   |0x4052BED7<0x4052BEC9:0E75*2 (0,0) 0000
   |0x4052BED7<0x4052BEC8:09B0*3 (1,1) 0000
   |0x4052BED7<0x4052BEC6:0E76*2 (2,2) 0000
   |0x4052BED7<0x4052BEC5:0A28*18 (3,3) 0000
   |0x4052BED7<0x4052BEC4:0F64*15 (4,4) 0000
   |0x4052BED7<0x4052BEC3:0A18*14 (5,5) 0000
   |0x4052BED7<0x4052BEBE:1C18*18 (6,6) 0000
   |0x4052BED7<0x4052BEBC:14FB*34 (7,7) 0000
   |0x4052BED7<0x4052BEBA:103B*22 (8,8) 0000
   |0x4052BED7<0x4052BEB9:160A*27 (9,9) 0000
   |0x4052BED7<0x4052BEB8:1608*31 (10,10) 0000
   |0x4052BED7<0x4052BEB7:09B7*35 (11,11) 0000
   |0x4052BED7<0x4052BEB4:0994*23 (12,12) 0000
   |0x4052BED7<0x4052BEB3:09D0*8 (13,13) 0000
   |0x4052BED7<0x4052BEB1:09AA*14 (14,14) 0000
   |0x4052BED7<0x4052BEB0:100E*7 (15,15) 0000
   |0x4052BED7<0x4052BEAE:0A57*5 (16,16) 0000
   |0x4052BED7<0x4052BEAD:0DE1*16 (17,17) 0000
   |0x4052BED7<0x4052BEAC:14EF*4 (18,18) 0000
   |0x4052BED7<0x4052BEAB:14ED*14 (19,19) 0481
   |0x4052BED7<0x4052BEAA:14ED*9 (20,20) 0225
- 000146547+0000 --- server Vendor Buy List
0000: 74 01 3a 40 52 be d7 15 00 00 00 42 09 62 61 63 : t.:@R......B.bac
0010: 6b 70 61 63 6b 00 00 00 00 10 0b 62 65 6c 74 20 : kpack......belt
0020: 70 6f 75 63 68 00 00 00 00 22 04 62 61 67 00 00 : pouch....".bag..
0030: 00 00 05 08 63 61 6e 64 6c 65 73 00 00 00 00 07 : ....candles.....
0040: 08 74 6f 72 63 68 65 73 00 00 00 00 2e 08 6c 61 : .torches......la
0050: 6e 74 65 72 6e 00 00 00 00 03 0b 6f 69 6c 20 66 : ntern......oil f
0060: 6c 61 73 6b 73 00 00 00 00 23 0a 6c 6f 63 6b 70 : lasks....#.lockp
0070: 69 63 6b 73 00 00 00 00 04 0d 62 72 65 61 64 20 : icks......bread
0080: 6c 6f 61 76 65 73 00 00 00 00 06 0d 6c 65 67 73 : loaves......legs
0090: 20 6f 66 20 6c 61 6d 62 00 00 00 00 02 0d 63 68 :  of lamb......ch
00a0: 69 63 6b 65 6e 20 6c 65 67 73 00 00 00 00 03 0d : icken legs......
00b0: 63 6f 6f 6b 65 64 20 62 69 72 64 73 00 00 00 00 : cooked birds....
00c0: 01 06 70 65 61 72 73 00 00 00 00 02 07 61 70 70 : ..pears......app
00d0: 6c 65 73 00 00 00 00 68 0b 77 6f 6f 64 65 6e 20 : les....h.wooden
00e0: 62 6f 78 00 00 00 00 61 0b 63 6f 70 70 65 72 20 : box....a.copper
00f0: 6b 65 79 00 00 00 00 76 08 62 65 64 72 6f 6c 6c : key....v.bedroll
0100: 00 00 00 00 07 09 6b 69 6e 64 6c 69 6e 67 00 00 : ......kindling..
0110: 00 c3 50 0c 56 65 6e 64 6f 72 20 64 65 65 64 00 : ..P.Vendor deed.
0120: 00 00 00 0a 06 50 61 70 65 72 00 00 00 00 0a 0a : .....Paper......
0130: 50 61 72 63 68 6d 65 6e 74 00 -- -- -- -- -- -- : Parchment.

(дефолтный вендор с провизией)

у самого на шарде много раз подобную вещь реализовывали но на UO Script'е, который умеет нормально работать с листом покупок.
Давайте совместными услиями сделаем универсальный инструмент создания листа покупок с сервера? Начиная с обходилки\опрашивалки вендоров командой buy, заканчивая онлайн БД для обработки готовых списков?

Кто что готов на себя взвалить?:) Для приведения вышеизложенного куска кода в читабельный вид впринципе хватит и возможностей инжекта, но можно использовать и сторонние программы включая обратоку файла injection_log.txt на сервере каким-нибудь php..


Можно будет довести процесс до полной автоматизации

--
хотя может я зря тут разошелся и у всех кого надо есть прога из того топика, просто я не в теме ?:)

Posted: 2008-01-08 12:45:20
by I'm
Ёху! :)
Я до сих пор не в курсе :)
Я готов на себя взвалить пока только сессию :(

Posted: 2008-01-08 12:49:42
by Grin
Нах никмоу не надо;)
а только потому что в качестве актуального листа цен это вещь никак не годится так как время обновления очень большое, актуальности мало.
А для личных целий хз как это можно особо прикрутить, только если подошел к венду и узнал сколько унего чего стоит...

Posted: 2008-01-08 12:59:11
by Grin
да и потом писать посути ничего не надо, как видно из лога, создается новый контейнер... так поройтесь в нем findtype'ом накопаете много интересного...

Posted: 2008-01-08 18:23:35
by Mihail
Пытался работать с таким контейнером

Code: Select all

sub sp()
uo.ignorereset()
uo.findtype(-1,-1,'0x4052BED7')
uo.textopen()
uo.textclear()
repeat
if uo.findcount() then
checklag()
uo.textprint(uo.getserial('finditem')+" "+uo.getgraphic('finditem')+" "+uo.getcolor('finditem')+" "+uo.getname('finditem')+" "+str(uo.getquantity('finditem')))
uo.ignore(uo.getserial('finditem'))
end if
until uo.findcount()==0
end sub


предметы не игнорятся (uo.ignore("finditem") тоже пробывал) - работа идет только с первым предметом из списка - и имя у него кстати тоже не определяется.. кликнуть по нему чтобы вызвать имя нельзя получается вобщем-то все то же самое что в логе инжекта.. - тогда проще парсить прямо оттуда

p.s. объясню суть всей идеи - наша задача создать что-то на подобие этого, только на инжекте
схема работы:
чар оббегает всех вендоров на маркете - получая со всех лист покупок, потом лог инжекта парсится специальным парсером, полученный результат заливается на сервер, там уже либо БД создается либо еще что - чтобы обрабатывать поисковые запросы игроков..
достаточно обновляться раз-два в сутки
получается удобный и встребованный ресурс - а уж делать его платным\размещать рекламу и т.д. дело владельца

Posted: 2008-01-08 20:39:41
by Grin
ну так скрипт корявый а так все гуд, только цен нет;))

Posted: 2008-01-08 21:46:44
by Mihail
ну скрипт что вспомнил написал.. там вроде еще uo.forget было только для других целей.. не помню вобщем..

а поводу цен называется слона-то я и не заметил :))
во-первых где они там должны быть? обращая внимание на множетсво пропусков где hex значение не 00 на скорую руку написал hex>ascii но чуда не произошло - цены не появились.. за то появился мусор в виде спец. символов, латиницы и т.д. :)
ГДЕ ЦЕНЫ?

на всякий случай вот новый более полный кусок лога

Code: Select all

- 000019125+0062 --- client Client Talk
0000: 03 00 10 00 02 b2 00 03 62 75 79 20 61 6c 6c 00 : ........buy all.
- 000019141+0016 --- server Unicode Server Talk
0000: ae 00 42 01 67 0a 6a 01 90 00 02 b2 00 03 65 6e : ..B.g.j.......en
0010: 75 00 43 61 72 72 69 6f 6e 00 00 00 00 00 00 00 : u.Carrion.......
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
0030: 00 62 00 75 00 79 00 20 00 61 00 6c 00 6c 00 00 : .b.u.y. .a.l.l..
0040: 60 d0 -- -- -- -- -- -- -- -- -- -- -- -- -- -- : `.
uuconvert: buy all
::add(Carrion: buy all) head=0 tail=17 len=17
- 000019141+0000 --- server Server Talk
0000: 1c 00 5e 00 52 be d8 01 91 03 03 b2 00 03 4b 61 : ..^.R.........Ka
0010: 63 6c 79 6e 00 00 00 00 00 00 00 00 00 00 00 00 : clyn............
0020: 00 00 00 00 00 00 00 00 00 00 00 00 45 78 63 75 : ............Excu
0030: 73 65 20 6d 65 20 42 6c 61 63 6b 2c 20 62 75 74 : se me Black, but
0040: 20 43 61 72 72 69 6f 6e 20 77 61 6e 74 73 20 74 :  Carrion wants t
0050: 6f 20 73 70 65 61 6b 20 74 6f 20 6d 65 00 -- -- : o speak to me.
::add(Kaclyn: Excuse me Black, but Carrion wants to speak to me) head=0 tail=18 len=18
- 000019141+0000 --- server Unicode Server Talk
0000: ae 00 78 00 52 be d8 01 91 03 03 b2 00 03 65 6e : ..x.R.........en
0010: 75 00 4b 61 63 6c 79 6e 00 00 00 00 00 00 00 00 : u.Kaclyn........
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
0030: 04 2f 00 20 04 3f 04 40 04 3e 04 34 04 30 04 4e : ./. .?.@.>.4.0.N
0040: 00 20 04 3c 04 3d 04 3e 04 36 04 35 04 41 04 42 : . .<.=.>.6.5.A.B
0050: 04 32 04 3e 00 20 04 3f 04 3e 04 3b 04 35 04 37 : .2.>. .?.>.;.5.7
0060: 04 3d 04 4b 04 45 00 20 04 32 04 35 04 49 04 35 : .=.K.E. .2.5.I.5
0070: 04 39 00 21 00 00 00 00 -- -- -- -- -- -- -- -- : .9.!....
uuconvert: Я продаю множество полезных вещей!
::add(Kaclyn: Я продаю множество полезных вещей!) head=0 tail=19 len=19
- 000019141+0000 --- server Pause Control
0000: 33 01 -- -- -- -- -- -- -- -- -- -- -- -- -- -- : 3.
- 000019141+0000 --- server Update Object
0000: 78 00 42 00 52 be d8 01 91 05 ba 06 84 00 02 03 : x.B.R...........
0010: fd 00 01 40 52 be ce 0e 75 15 40 52 be cf 97 0b : ...@R...u.@R....
0020: 03 07 29 40 52 be d0 95 16 17 06 5b 40 52 be d1 : ..)@R......[@R..
0030: 95 17 05 01 bb 40 52 be d2 a0 47 0b 04 72 00 00 : .....@R...G..r..
0040: 00 00 -- -- -- -- -- -- -- -- -- -- -- -- -- -- : ..
0x0052BED8 0x0191 NPC    0x4052BECE:0E75 [21] 0000
   0x4052BECF:970B [3] 0729
   0x4052BED0:9516 [23] 065B
   0x4052BED1:9517 [5] 01BB
   0x4052BED2:A047 [11] 0472
interresting=1
- 000019141+0000 --- server Server Equip Item
0000: 2e 40 52 be d7 2a f8 00 1a 00 52 be d8 03 84 -- : .@R..*....R....
- 000019141+0000 --- server Update Contained Items
0000: 3c 01 ba 00 17 40 52 be aa 14 ed 00 00 09 00 00 : <....@R.........
0010: 00 00 40 52 be d7 02 25 40 52 be ab 14 ed 00 00 : ..@R...%@R......
0020: 0e 00 01 00 01 40 52 be d7 04 81 40 52 be ac 14 : .....@R....@R...
0030: ef 00 00 04 00 02 00 02 40 52 be d7 00 00 40 52 : ........@R....@R
0040: be ad 0d e1 00 00 10 00 03 00 03 40 52 be d7 00 : ...........@R...
0050: 00 40 52 be ae 0a 57 00 00 05 00 04 00 04 40 52 : .@R...W.......@R
0060: be d7 00 00 40 52 be b0 10 0e 00 00 07 00 05 00 : ....@R..........
0070: 05 40 52 be d7 00 00 40 52 be b1 09 aa 00 00 0e : .@R....@R.......
0080: 00 06 00 06 40 52 be d7 00 00 40 52 be b3 09 d0 : ....@R....@R....
0090: 00 00 08 00 07 00 07 40 52 be d7 00 00 40 52 be : .......@R....@R.
00a0: b4 09 94 00 00 17 00 08 00 08 40 52 be d7 00 00 : ..........@R....
00b0: 40 52 be b7 09 b7 00 00 23 00 09 00 09 40 52 be : @R......#....@R.
00c0: d7 00 00 40 52 be b8 16 08 00 00 1f 00 0a 00 0a : ...@R...........
00d0: 40 52 be d7 00 00 40 52 be b9 16 0a 00 00 1b 00 : @R....@R........
00e0: 0b 00 0b 40 52 be d7 00 00 40 52 be ba 10 3b 00 : ...@R....@R...;.
00f0: 00 16 00 0c 00 0c 40 52 be d7 00 00 40 52 be bc : ......@R....@R..
0100: 14 fb 00 00 22 00 0d 00 0d 40 52 be d7 00 00 40 : ...."....@R....@
0110: 52 be be 1c 18 00 00 12 00 0e 00 0e 40 52 be d7 : R...........@R..
0120: 00 00 40 52 be c3 0a 18 00 00 0e 00 0f 00 0f 40 : ..@R...........@
0130: 52 be d7 00 00 40 52 be c4 0f 64 00 00 0f 00 10 : R....@R...d.....
0140: 00 10 40 52 be d7 00 00 40 52 be c5 0a 28 00 00 : ..@R....@R...(..
0150: 12 00 11 00 11 40 52 be d7 00 00 40 52 be c6 0e : .....@R....@R...
0160: 76 00 00 02 00 12 00 12 40 52 be d7 00 00 40 52 : v.......@R....@R
0170: be c8 09 b0 00 00 03 00 13 00 13 40 52 be d7 00 : ...........@R...
0180: 00 40 52 be c9 0e 75 00 00 02 00 14 00 14 40 52 : .@R...u.......@R
0190: be d7 00 00 40 52 be ca 1b fb 00 00 38 00 15 00 : ....@R......8...
01a0: 15 40 52 be d7 00 00 40 52 be cb 0f 3f 00 00 30 : .@R....@R...?..0
01b0: 00 16 00 16 40 52 be d7 00 00 -- -- -- -- -- -- : ....@R....

::add(Contains: 23 items) head=0 tail=20 len=20
Making 4052BED7 empty...
   |0x4052BED7<0x4052BEAA:14ED*9 (0,0) 0225
   |0x4052BED7<0x4052BEAB:14ED*14 (1,1) 0481
   |0x4052BED7<0x4052BEAC:14EF*4 (2,2) 0000
   |0x4052BED7<0x4052BEAD:0DE1*16 (3,3) 0000
   |0x4052BED7<0x4052BEAE:0A57*5 (4,4) 0000
   |0x4052BED7<0x4052BEB0:100E*7 (5,5) 0000
   |0x4052BED7<0x4052BEB1:09AA*14 (6,6) 0000
   |0x4052BED7<0x4052BEB3:09D0*8 (7,7) 0000
   |0x4052BED7<0x4052BEB4:0994*23 (8,8) 0000
   |0x4052BED7<0x4052BEB7:09B7*35 (9,9) 0000
   |0x4052BED7<0x4052BEB8:1608*31 (10,10) 0000
   |0x4052BED7<0x4052BEB9:160A*27 (11,11) 0000
   |0x4052BED7<0x4052BEBA:103B*22 (12,12) 0000
   |0x4052BED7<0x4052BEBC:14FB*34 (13,13) 0000
   |0x4052BED7<0x4052BEBE:1C18*18 (14,14) 0000
   |0x4052BED7<0x4052BEC3:0A18*14 (15,15) 0000
   |0x4052BED7<0x4052BEC4:0F64*15 (16,16) 0000
   |0x4052BED7<0x4052BEC5:0A28*18 (17,17) 0000
   |0x4052BED7<0x4052BEC6:0E76*2 (18,18) 0000
   |0x4052BED7<0x4052BEC8:09B0*3 (19,19) 0000
   |0x4052BED7<0x4052BEC9:0E75*2 (20,20) 0000
   |0x4052BED7<0x4052BECA:1BFB*56 (21,21) 0000
   |0x4052BED7<0x4052BECB:0F3F*48 (22,22) 0000

- 000019141+0000 --- server Vendor Buy List
0000: 74 01 59 40 52 be d7 17 00 00 00 0a 0a 50 61 72 : t.Y@R........Par
0010: 63 68 6d 65 6e 74 00 00 00 00 0a 06 50 61 70 65 : chment......Pape
0020: 72 00 00 00 c3 50 0c 56 65 6e 64 6f 72 20 64 65 : r....P.Vendor de
0030: 65 64 00 00 00 00 07 09 6b 69 6e 64 6c 69 6e 67 : ed......kindling
0040: 00 00 00 00 86 08 62 65 64 72 6f 6c 6c 00 00 00 : ......bedroll...
0050: 00 61 0b 63 6f 70 70 65 72 20 6b 65 79 00 00 00 : .a.copper key...
0060: 00 6f 0b 77 6f 6f 64 65 6e 20 62 6f 78 00 00 00 : .o.wooden box...
0070: 00 02 07 61 70 70 6c 65 73 00 00 00 00 01 06 70 : ...apples......p
0080: 65 61 72 73 00 00 00 00 04 0d 63 6f 6f 6b 65 64 : ears......cooked
0090: 20 62 69 72 64 73 00 00 00 00 02 0d 63 68 69 63 :  birds......chic
00a0: 6b 65 6e 20 6c 65 67 73 00 00 00 00 06 0d 6c 65 : ken legs......le
00b0: 67 73 20 6f 66 20 6c 61 6d 62 00 00 00 00 07 0d : gs of lamb......
00c0: 62 72 65 61 64 20 6c 6f 61 76 65 73 00 00 00 00 : bread loaves....
00d0: 23 0a 6c 6f 63 6b 70 69 63 6b 73 00 00 00 00 03 : #.lockpicks.....
00e0: 0b 6f 69 6c 20 66 6c 61 73 6b 73 00 00 00 00 30 : .oil flasks....0
00f0: 08 6c 61 6e 74 65 72 6e 00 00 00 00 07 08 74 6f : .lantern......to
0100: 72 63 68 65 73 00 00 00 00 07 08 63 61 6e 64 6c : rches......candl
0110: 65 73 00 00 00 00 1d 04 62 61 67 00 00 00 00 0e : es......bag.....
0120: 0b 62 65 6c 74 20 70 6f 75 63 68 00 00 00 00 38 : .belt pouch....8
0130: 09 62 61 63 6b 70 61 63 6b 00 00 00 00 08 0e 63 : .backpack......c
0140: 72 6f 73 73 62 6f 77 20 62 6f 6c 74 00 00 00 00 : rossbow bolt....
0150: 0b 07 61 72 72 6f 77 73 00 -- -- -- -- -- -- -- : ..arrows.

- 000019141+0000 --- server Server Equip Item
0000: 2e 40 52 bd cd 2a f8 00 1b 00 52 be d8 03 84 -- : .@R..*....R....
- 000019141+0000 --- server Vendor Buy List
0000: 74 00 08 40 52 bd cd 00 -- -- -- -- -- -- -- -- : t..@R...
- 000019141+0000 --- server Open Container
0000: 24 00 52 be d8 00 30 -- -- -- -- -- -- -- -- -- : $.R...0
- 000019141+0000 --- server Character Status
0000: 11 00 42 01 67 0a 6a 43 61 72 72 69 6f 6e 00 00 : ..B.g.jCarrion..
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
0020: 00 00 00 00 00 00 2a 00 2a 00 01 00 00 2a 00 0d : ......*.*....*..
0030: 00 aa 00 0d 00 0d 00 aa 00 aa 00 01 10 73 00 00 : .............s..
0040: 00 19 -- -- -- -- -- -- -- -- -- -- -- -- -- -- : ..
- 000019141+0000 --- server Update Character
0000: 77 00 52 be d8 01 91 05 ba 06 84 00 00 03 fd 00 : w.R.............
0010: 01 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- : .
- 000019141+0000 --- server Pause Control
0000: 33 00 -- -- -- -- -- -- -- -- -- -- -- -- -- -- : 3.
- 000019219+0078 --- client Client Talk
0000: 03 00 0c 00 02 b2 00 03 62 79 65 00 -- -- -- -- : ........bye.
- 000019281+0062 --- server Unicode Server Talk
0000: ae 00 3a 01 67 0a 6a 01 90 00 02 b2 00 03 65 6e : ..:.g.j.......en
0010: 75 00 43 61 72 72 69 6f 6e 00 00 00 00 00 00 00 : u.Carrion.......
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
0030: 00 62 00 79 00 65 00 00 22 40 -- -- -- -- -- -- : .b.y.e.."@
uuconvert: bye
::add(Carrion: bye) head=0 tail=21 len=21
- 000019281+0000 --- server Unicode Server Talk
0000: ae 00 4c 00 52 be d8 01 91 03 03 b2 00 03 65 6e : ..L.R.........en
0010: 75 00 4b 61 63 6c 79 6e 00 00 00 00 00 00 00 00 : u.Kaclyn........
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................
0030: 04 14 04 3e 00 20 04 41 04 32 04 38 04 34 04 30 : ...>. .A.2.8.4.0
0040: 04 3d 04 38 04 4f 00 2e 00 00 74 20 -- -- -- -- : .=.8.O....t
uuconvert: До свидания.
::add(Kaclyn: До свидания.) head=0 tail=22 len=22
- 000019281+0000 --- server Pause Control


p.s. еще тыкая вручную info по ID-шникам товаров в логе наковырял что X и Y соответствует порядковому номеру товара в контейнере-листе.. но с ценой всеравно косяк

Posted: 2008-01-08 22:57:15
by Grin
0x74 инфа только по цене и названию, ему предшествует пакет о содержании 0x3C, соотнося 2 пакета строется полный бай лист.

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

Posted: 2008-01-09 00:57:59
by Mihail
надо полагать:

Code: Select all

# 0x3C
Packet Build: BYTE[1] cmd
BYTE[2] blockSize
BYTE[2] # of Item segments
Item Segments:
� BYTE[4] itemID
� BYTE[2] model
� BYTE unknown1 (0x00)
� BYTE[2] # of items in stack
� BYTE[2] xLoc
� BYTE[2] yLoc
� BYTE[4] Container ItemID
� BYTE[2] color

0x3C wrote:::add(Contains: 23 items) head=0 tail=20 len=20
Making 4052BED7 empty...
|0x4052BED7<0x4052BEAA:14ED*9 (0,0) 0225
|0x4052BED7<0x4052BEAB:14ED*14 (1,1) 0481
|0x4052BED7<0x4052BEAC:14EF*4 (2,2) 0000
|0x4052BED7<0x4052BEAD:0DE1*16 (3,3) 0000
|0x4052BED7<0x4052BEAE:0A57*5 (4,4) 0000
|0x4052BED7<0x4052BEB0:100E*7 (5,5) 0000
|0x4052BED7<0x4052BEB1:09AA*14 (6,6) 0000
|0x4052BED7<0x4052BEB3:09D0*8 (7,7) 0000
|0x4052BED7<0x4052BEB4:0994*23 (8,8) 0000
|0x4052BED7<0x4052BEB7:09B7*35 (9,9) 0000
|0x4052BED7<0x4052BEB8:1608*31 (10,10) 0000
|0x4052BED7<0x4052BEB9:160A*27 (11,11) 0000
|0x4052BED7<0x4052BEBA:103B*22 (12,12) 0000
|0x4052BED7<0x4052BEBC:14FB*34 (13,13) 0000
|0x4052BED7<0x4052BEBE:1C18*18 (14,14) 0000
|0x4052BED7<0x4052BEC3:0A18*14 (15,15) 0000
|0x4052BED7<0x4052BEC4:0F64*15 (16,16) 0000
|0x4052BED7<0x4052BEC5:0A28*18 (17,17) 0000
|0x4052BED7<0x4052BEC6:0E76*2 (18,18) 0000
|0x4052BED7<0x4052BEC8:09B0*3 (19,19) 0000
|0x4052BED7<0x4052BEC9:0E75*2 (20,20) 0000
|0x4052BED7<0x4052BECA:1BFB*56 (21,21) 0000
|0x4052BED7<0x4052BECB:0F3F*48 (22,22) 0000

тут все впорядке - все как описно в описании пакета и т.д.

Code: Select all

# 0x74
BYTE[1] cmd
BYTE[2] blockSize
BYTE[4] (vendorID | 0x40000000)
BYTE[1] # of items
# of items worth of item segments
� BYTE[4] price
� BYTE length of text description
� BYTE[text length] item description


0x74 ? wrote:- 000019141+0000 --- server Vendor Buy List
0000: 74 01 59 40 52 be d7 17 00 00 00 0a 0a 50 61 72 : t.Y@R........Par
0010: 63 68 6d 65 6e 74 00 00 00 00 0a 06 50 61 70 65 : chment......Pape
0020: 72 00 00 00 c3 50 0c 56 65 6e 64 6f 72 20 64 65 : r....P.Vendor de
0030: 65 64 00 00 00 00 07 09 6b 69 6e 64 6c 69 6e 67 : ed......kindling
0040: 00 00 00 00 86 08 62 65 64 72 6f 6c 6c 00 00 00 : ......bedroll...
0050: 00 61 0b 63 6f 70 70 65 72 20 6b 65 79 00 00 00 : .a.copper key...
0060: 00 6f 0b 77 6f 6f 64 65 6e 20 62 6f 78 00 00 00 : .o.wooden box...
0070: 00 02 07 61 70 70 6c 65 73 00 00 00 00 01 06 70 : ...apples......p
0080: 65 61 72 73 00 00 00 00 04 0d 63 6f 6f 6b 65 64 : ears......cooked
0090: 20 62 69 72 64 73 00 00 00 00 02 0d 63 68 69 63 : birds......chic
00a0: 6b 65 6e 20 6c 65 67 73 00 00 00 00 06 0d 6c 65 : ken legs......le
00b0: 67 73 20 6f 66 20 6c 61 6d 62 00 00 00 00 07 0d : gs of lamb......
00c0: 62 72 65 61 64 20 6c 6f 61 76 65 73 00 00 00 00 : bread loaves....
00d0: 23 0a 6c 6f 63 6b 70 69 63 6b 73 00 00 00 00 03 : #.lockpicks.....
00e0: 0b 6f 69 6c 20 66 6c 61 73 6b 73 00 00 00 00 30 : .oil flasks....0
00f0: 08 6c 61 6e 74 65 72 6e 00 00 00 00 07 08 74 6f : .lantern......to
0100: 72 63 68 65 73 00 00 00 00 07 08 63 61 6e 64 6c : rches......candl
0110: 65 73 00 00 00 00 1d 04 62 61 67 00 00 00 00 0e : es......bag.....
0120: 0b 62 65 6c 74 20 70 6f 75 63 68 00 00 00 00 38 : .belt pouch....8
0130: 09 62 61 63 6b 70 61 63 6b 00 00 00 00 08 0e 63 : .backpack......c
0140: 72 6f 73 73 62 6f 77 20 62 6f 6c 74 00 00 00 00 : rossbow bolt....
0150: 0b 07 61 72 72 6f 77 73 00 -- -- -- -- -- -- -- : ..arrows.

а тут че-та не сходится.. либо это не 0x74-й пакет, либо недописали его протоколирование в логе инжекта.. я так понимаю?

если я понимаю так, то действительно других способов кроме как сторонней программой помимо инжекта лезть в память клиента.. Image

Posted: 2008-01-09 01:54:39
by Grin
первый байт ЛЮБОГО пакета есть его идентификационный номер.
Протоколирование и так и дет всех пкетов, только в случаи с 3C решили сделать красивую табличку полностью дублирующию то что на писано выше...
Ни чего сложного нет, инжект хранит масив (линейный) адресов функций обработки на КАЖДЫЙ отдельный пакетик (не сложно догадаться, что массив примерно равен 256)...
Зализаем к инжекту и переписываем эту таблицу в 2-х местах. И все...

Posted: 2008-01-09 02:24:30
by Mihail
не приходилось сталкиваться с влезанием в память других процессов плюс я себе этот процесс действиц очень смутно представляю..
вобщем я не понял :) можно еще раз, только вариант для тупых :D
куда по каким адресам нужно лезть и что оттуда читать? более того, я даже не знаю как процесс инжекта определить :)
Спасибо за терпение :)

Posted: 2008-01-09 11:26:00
by Grin
Ну вот как раз перей дешь от писания "плагинов" к более серьезным вещям;)

Posted: 2008-01-09 13:46:31
by Mihail
ну блин :)
как-то слова "низкоуровневое программирование" и "VB 6" у меня в голове не очень вяжутся :)))

--
так народ - отбой, пока кукуем без buy-листа в инжекте :)

Posted: 2008-01-09 17:54:50
by Grin
никакого низкоуровнего программирования...
конечно ВБ тут нафиг не надо;) ибо гемороя будет больше.

Вопрос в другом, ну допустим можем мы получить даные о цене и тд... а дальше чего? куда и чего сними делать?

Posted: 2008-01-09 18:15:40
by Mihail
ну если делать как моими "плагинами" то в передаваемых параметрах функции так же указываем easyuo ключ, который она и создаст с полученными данными, переконвертированными в нормальный вид..
для реализации сабжа топика достаточно получить цену, название и количество товара

Posted: 2008-01-09 18:25:35
by Grin
Вопрос в другом... что с этим листом делать...

Posted: 2008-01-09 19:41:45
by Destruction
Grin wrote:Вопрос в другом... что с этим листом делать...

Анализировать ситуацию на рынке, составлять статистику :)

Posted: 2008-01-09 21:41:32
by I'm
Скупать все дешевле ХХХ gp. =)

Posted: 2008-01-09 22:48:24
by Mihail
Выкладывать в онлайн для игроков твоего шарда - с поиском товара по минимальной цене - чтобы игрок посмотрел, пошел - купил..

На оскоме человека 4 разных в разное время по-разному организовывали этот процесс, один на протяжении нескольких лет руками раз в сутки заливал отчет в виде текстового файла на сервер - поиск осуществлялся CTRL+F :), второй продавал на своем вендоре книжки в которых был адрес сайта и логин пароль - допустим книжка стоит 50к, один поисковый запрос - 500гп (для оскома цены очень приемлимые) - за WM ессесно тоже продавались доступы.. - еще несколько человек делали все это в виде БД и поиск автоматом выдавал список найденных товаров, сортируя по цене - ресурсы так же как и в первом случае был бесплатными но протянули по паре месяцев..

Posted: 2008-01-10 01:27:19
by Grin
Во люди то...
я спрашиваю в каком виде и куда они хоть эти даные сохранять... ва не что будет сними в дальнейшем и для чего это...

Причел пакет с бай листа, ну выдрал я то что вам нужно, что мне с этим сделать???? вам на мыло высылать? увольте...