PDA

Просмотр полной версии : Проблема с ID мобов


Maker700
22.02.2009, 04:25
Здравствуйте, может кто подскажет как проблемку решить.
Играю на сервере gracia p2, сервер vlineage.ru Мне нужен был патч на сундуки, но для этого сервера изменение файла npcname-e.dat не помогает, замучался уже.
Вот теперь пытаюсь написать скрипт, при взятии сундука с сокровищами в таргет, он должен писать в чат что сундук либо box, либо chest. Но для этого надо знать id сундуков и как я понял, число которое будет прибавляться к этому id. И оказалось, что для разных сундуков, значение NpcTypeId пакета NpcInfo, одинаковое.

То есть, id честа 21811, а id указанный в NpcTypeId – 1021811.
У бокса id 18257, но NpcTypeId тоже равен 1021811. И вот теперь непонятно, как определить где бокс, а где чест.

QaK
23.02.2009, 10:28
То есть, id честа 21811, а id указанный в NpcTypeId – 1021811.
У бокса id 18257, но NpcTypeId тоже равен 1021811. И вот теперь непонятно, как определить где бокс, а где чест.
рассказываю на данном примере:
вот смотри, для любого НПЦ существует такая ботва:
NpcTypeID-NpcID=const
в большинстве случаев const=1000000
соответственно: чтобы узнать NpcID надо из NpcTypeId вычесть const.
Усё =)

Maker700
23.02.2009, 12:43
Про константу то я понял, дело в другом. Вот есть Treasure Chest id=21811, и Treasure Box id=18257. Потом я смотрю NpcTypeID честа, получается 1021811, всё правильно. Далее нахожу сундук который открывается, то есть бокс и у него тот же NpcTypeID - 1021811, и соответственно id. То есть получается что у разных мобов показывает одинаковое id. Такое может быть?

Grinch
23.02.2009, 12:55
Maker700, да у мобов может быт одинаковое ид. разное только обжект ид. в единственом роде тока наверное у тараса и валаса не повторяется ид

QaK
23.02.2009, 13:12
Такое может быть?нет, у честов один тип NpcTypeId у боксов - другой. Всегда.

Maker700
23.02.2009, 15:10
Я пакеты для боксов и честов выложу, посмотришь?

QaK
23.02.2009, 16:38
Maker700, давай.

dmitry501
23.02.2009, 17:30
нет, у честов один тип NpcTypeId у боксов - другой. Всегда.

Неверно.
Начиная с Камаэлей на Java серверах ID одинаков

QaK
23.02.2009, 19:51
Начиная с Камаэлей на Java серверах ID одинаковтолько на джава? А как тогда различает клиент?

dmitry501
24.02.2009, 03:32
Клиент не различает. Внешне они одинаковы. Чест/Бокс определяет сервер при открытии. Видел на Java. Сейчас, например на руоффе, чест/бокс имеют разные ID

Maker700
24.02.2009, 06:33
Вот пакеты NpcInfo.

чест:

Tип: 0x0C (NpcInfo)
Pазмер: 192+2
Время прихода: 04:43:41:734
0002 d ObjectID: 268515943 (0x10013A67)
0006 d NpcTypeId: Сундук с Сокровищами ID:1021811 (0xF9773)
0010 d IsAttackable: 1 (0x00000001)
0014 d X: 54387 (0x0000D473)
0018 d Y: 206691 (0x00032763)
0022 d Z: -3696 (0xFFFFF190)
0026 d Heading: 663 (0x00000297)
0030 d 0: 0 (0x00000000)
0034 d CastSpd: 253 (0x000000FD)
0038 d AtkSpd: 278 (0x00000116)
0042 d RunSpd: 165 (0x000000A5)
0046 d WalkSpd: 80 (0x00000050)
0050 d SwimRunSpd: 165 (0x000000A5)
0054 d SwimWalkSpd: 80 (0x00000050)
0058 d FlRunSpd: 165 (0x000000A5)
0062 d FlWalkSpd: 80 (0x00000050)
0066 d FlyRunSpd: 165 (0x000000A5)
0070 d FlyWalkSpd: 80 (0x00000050)
0074 f MoveMultiplier: 1,1
0082 f AtkSpdMultiplier: 1
0090 f CollisionRadius: 8
0098 f CollisionHeight: 8
0106 d RHand: 0 (0x00000000)
0110 d 0: 0 (0x00000000)
0114 d LHand: 0 (0x00000000)
0118 c 1: 1 (0x01)
0119 c isRunning: 1 (0x01)
0120 c isInCombat: 0 (0x00)
0121 c isALikeDead: 0 (0x00)
0122 c isSummoned: 0 (0x00)
0123 s Name:
0125 s Title:
0127 d 0: 0 (0x00000000)
0131 d 0: 0 (0x00000000)
0135 d 0: 0 (0x00000000)
0139 d AbnormalEffect: 0 (0x00000000)
0143 d 0: 0 (0x00000000)
0147 d 0: 0 (0x00000000)
0151 d 0: 0 (0x00000000)
0155 d 0: 0 (0x00000000)
0159 c 0: 0 (0x00)
0160 c 0: 0 (0x00)
0161 f CollisionRadius: 8
0169 f CollisionHeight: 8
0177 d 0: 0 (0x00000000)
0181 d 0: 0 (0x00000000)
0185 d 0: 0 (0x00000000)
0189 d 0: 0 (0x00000000)


бокс:

Tип: 0x0C (NpcInfo)
Pазмер: 192+2
Время прихода: 04:45:52:171
0002 d ObjectID: 268518100 (0x100142D4)
0006 d NpcTypeId: Сундук с Сокровищами ID:1021811 (0xF9773)
0010 d IsAttackable: 1 (0x00000001)
0014 d X: 54317 (0x0000D42D)
0018 d Y: 206591 (0x000326FF)
0022 d Z: -3696 (0xFFFFF190)
0026 d Heading: 48630 (0x0000BDF6)
0030 d 0: 0 (0x00000000)
0034 d CastSpd: 253 (0x000000FD)
0038 d AtkSpd: 278 (0x00000116)
0042 d RunSpd: 165 (0x000000A5)
0046 d WalkSpd: 80 (0x00000050)
0050 d SwimRunSpd: 165 (0x000000A5)
0054 d SwimWalkSpd: 80 (0x00000050)
0058 d FlRunSpd: 165 (0x000000A5)
0062 d FlWalkSpd: 80 (0x00000050)
0066 d FlyRunSpd: 165 (0x000000A5)
0070 d FlyWalkSpd: 80 (0x00000050)
0074 f MoveMultiplier: 1,1
0082 f AtkSpdMultiplier: 1
0090 f CollisionRadius: 8
0098 f CollisionHeight: 8
0106 d RHand: 0 (0x00000000)
0110 d 0: 0 (0x00000000)
0114 d LHand: 0 (0x00000000)
0118 c 1: 1 (0x01)
0119 c isRunning: 1 (0x01)
0120 c isInCombat: 0 (0x00)
0121 c isALikeDead: 0 (0x00)
0122 c isSummoned: 0 (0x00)
0123 s Name:
0125 s Title:
0127 d 0: 0 (0x00000000)
0131 d 0: 0 (0x00000000)
0135 d 0: 0 (0x00000000)
0139 d AbnormalEffect: 0 (0x00000000)
0143 d 0: 0 (0x00000000)
0147 d 0: 0 (0x00000000)
0151 d 0: 0 (0x00000000)
0155 d 0: 0 (0x00000000)
0159 c 0: 0 (0x00)
0160 c 0: 0 (0x00)
0161 f CollisionRadius: 8
0169 f CollisionHeight: 8
0177 d 0: 0 (0x00000000)
0181 d 0: 0 (0x00000000)
0185 d 0: 0 (0x00000000)
0189 d 0: 0 (0x00000000)


Клиент не различает. Внешне они одинаковы. Чест/Бокс определяет сервер при открытии. Видел на Java. Сейчас, например на руоффе, чест/бокс имеют разные ID

То есть анализ пакетов никак не поможет определить, чест\бокс? Раз сервер сам высчитывает.

destructor
08.11.2009, 18:32
NpcTypeID-NpcID=const
в большинстве случаев const=1000000
соответственно: чтобы узнать NpcID надо из NpcTypeId вычесть const.
вот этот const, на руофе он 998341.
на гремлинах все чотко.
на НПЦ возле гремлинов тоже.

а в деревне гномов и дальше начинается каша ппц.
по npcsid.ini вместо гоблинов получается какойто левый самон.
некоторых вообще не существует, и т.д.

для разных диапазонов ID разные const?

ничо не работает, чо делать?

destructor
17.11.2009, 01:26
разобрался,
на сруофе как минимум 2 гремлина, const=1000000