PDA

Просмотр полной версии : SMSG_UPDATE_OBJECT


Lordronn
27.02.2011, 12:49
Может ли в SMSG_UPDATE_OBJECT прийти один и тот же НПС, но уже с другими данными(другой флаг\фракция\вехиклИД)?

zhenya
27.02.2011, 16:09
очень врядли.

zergtmn
27.02.2011, 17:56
В одном пакете?

Lordronn
27.02.2011, 18:13
Нет.

В общем похоже на то, что есть возможность прихода одного ентри с разными данными. В скриптах меняются флаги, вехИДы, фракции и прочее

zergtmn
27.02.2011, 18:28
Может, конечно. В первом пакете Create, в следующем Values.

RomanRom2
27.02.2011, 20:53
ни что не мешает спавниться n волкам в голшире. ентри 69 - у всех один. даже больше скажу, у многих отспавненных волков все поля абсолютно одинаковы.

нет никаких ограничений на создание объектов, за исключением гуида. клиенту нельзя креатить разные объекты с одинаковым гуидом. остально - всё разрешено. даже в одном create пакете.

Minimajack
12.05.2011, 15:42
пожалуйста. Поделитесь пакетом и его разобранным дампом( текстовым файлом, скриншотом или чем нибудь )...
2 дня парю мозг, с UPDATETYPE_MOVEMENT = 1,UPDATETYPE_CREATE_OBJECT = 2
никак не могу понять где ошибка лезет...
updateType=2
CreateObject
guid 2d333336313837363731 //hex
objectTypeId=1
movement
UpdateFlags=24
Flags=2796032
Flags2=65536
TimeStamp=1138688512
Position
X=4.4841550858394E-44
Y=1.0550138540566E-10
Z=1.5083296410299E-40
.....

дальше еще хуже...в аттаче пакет SMSG_COMPRESSED_UPDATE_OBJECT

RomanRom2
12.05.2011, 15:51
у итема откуда мувемент то =)

TOM_RUS
12.05.2011, 15:53
И гуид какой-то левый, где-то до этого уже ошибка.

Lordronn
12.05.2011, 15:54
Все просто

.:: Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 71 сообщение(ий)) ::.

Компресед пакеты также читаются, но их сначало надо разжать

Minimajack
12.05.2011, 17:55
build 12340
пока флага UpdateFlags::UPDATEFLAG_LIVING
структура похожа на правду...
updateType 2
CreateObject
guid 892344523
objectTypeId 3
movement
UpdateFlags 96
Flags 0
Flags2 0
TimeStamp 3530595483
Position
X -9018.015625
Y 461.82659912109
Z 95.128944396973
FallTime 1081152657
speeds
0 = 0
1 = 2.5
2 = 10
3 = 4.5
4 = 4.722222328186
5 = 2.5
6 = 7
7 = 4.5
8 = 3.1415927410126
LowGuid 1078530011
HighGuid 2147491589
AttackingTarget = 56313
TransportTime = 327710
VehicleId = 67108864
VehicleAimAdjustement = 3.6734198463196E-40
GoRotationULong = 1.7379390963164E+19
но как только он есть...косяки :sorry:
может не тот формат MovementInfo? я в печали...

TOM_RUS
12.05.2011, 18:22
Откуда

LowGuid 1078530011
HighGuid 2147491589
AttackingTarget = 56313
TransportTime = 327710
VehicleId = 67108864
VehicleAimAdjustement = 3.6734198463196E-40
GoRotationULong = 1.7379390963164E+19

если у вас флаги 0x20 | 0x40 только?

Lordronn
12.05.2011, 18:44
может не тот формат MovementInfo? я в печали..

Конечно не тот. Я думал вы пишите для 4.0.6а)

Вот тут есть все под 3.3.5
http://code.google.com/p/mywowtools/source/browse/#svn%2Ftrunk%2FWowTools%2Fsrc%253Fstate%253Dclosed

Minimajack
13.05.2011, 11:58
всем спасибо, пакет разобран, ошибки учтены =)
а ошибки простые:
использование не к месту логических операций - вместо бинарных
контейнер BitArray пришлось заменить конструкцией вида...
int k = 0
for (int i = 0; i < blocksCount; ++i)
for (int j = 0; j < 32; ++j)
if ( ( updatemask[i] & (1 << j ) ) > 0)
values[k++] = ReadUInt32();

зы осталось описать все через хмл =)))

zergtmn
14.05.2011, 19:47
Вопрос на счет UPDATEFLAG_LOWGUID и UPDATEFLAG_HIGHGUID (так они называются в мангосе). Для итемов приходят значения, не имеющие отношения к гуиду: http://paste2.org/p/1415633
Есть идеи, откуда берутся эти значения?

Lordronn
14.05.2011, 20:08
Кстати, никто не знает как из итем гуида вытащить ентри? Пытался также как и для юнитов\го - получал постоянно ентри = 2

RomanRom2
14.05.2011, 21:35
zergtmn, это не гуиды. не знаю что это, но это не гуиды. какие то другие данные. TOM_RUS?

Lordronn, энтри в гуидах был только у юнитов. вообще это неправильно вынимать энтри из гуида. я понимаю, что это вам облегчает жизнь =), но на это полагаться нельзя. тем более что месторасположение энтри менялось несколько раз.

вместо этого вы должны распарсить А9 пакет, в котором вы должны вынуть тип и гуид объекта, а в апдейтполях найти его энтри. только этому можно достоверно верить.

LordJZ
14.05.2011, 22:14
Вопрос на счет UPDATEFLAG_LOWGUID и UPDATEFLAG_HIGHGUID (так они называются в мангосе). Для итемов приходят значения, не имеющие отношения к гуиду: http://paste2.org/p/1415633
Есть идеи, откуда берутся эти значения?Кстати в 4.0 они удалены