PDA

Просмотр полной версии : паравозы


destructor
08.12.2009, 19:33
как пакетам определить:
1)по каким мобам дамажит пика
2)на каких мобов прошел массовый споил

alexteam
08.12.2009, 19:58
массовый спойл - никак. ты же в клиенте не видишь какой конкретно моб заспойлен при массовом спойле.
а по поводу атаки просто -
33=Attack:d(AttackerID)d(TargetID)d(Damage)c(Flags )d(X)d(Y)d(Z)h(HitsSize:Loop.01.0003)d(TargetID)d( Damage)c(Flags)

h(HitsSize:Loop.01.0003)d(TargetID)d(Damage)c(Flag s)
список.. как бэ..

destructor
08.12.2009, 20:11
например массовый споил выглядит так:
54=MagicSkillLaunched:d(моеИД)d(массовыйспоил)d(Sk illLevelСтопицот)d(3000)d(ИДмоейцели)
тут я точно вижу что споил полетел только одного.
как определить остальных мобов, на которых он попал?

Добавлено через 1 минуту
h(HitsSize:Loop.01.0003)d(TargetID)d(Damage)c(Flag s)
список.. как бэ..тру, спс.

Добавлено через 1 минуту
массовый спойл - никак. ты же в клиенте не видишь какой конкретно моб заспойлен при массовом спойле.подейсвовало это или нет - неважно,
я вижу в клиенте анимацию "типа салюта" , откуда клиент это знает?

Добавлено через 53 секунды
или допустим массовый нюк водичкой у светлого мага, клиент както это отображает...

Добавлено через 7 минут
33=Attack:d(AttackerID)d(TargetID)d(Damage)
h(HitsSize:Loop.01.0003)d(TargetID)d( Damage)c(Flags)
нафига тут 2 дамага? типо отражения?

alexteam
08.12.2009, 20:44
например массовый споил выглядит так:
54=MagicSkillLaunched:d(моеИД)d(массовыйспоил)d(Sk illLevelСтопицот)d(3000)d(ИДмоейцели)
тут я точно вижу что споил полетел только одного.
MagicSkillLaunched означает что скил будет запущен в любом случае, т.е. после прихода этого пакета каст невозможно сбить, так же это означает принудительное начало анимации "дамага" и направлении в котором этот эффкт дамага рисовать в клиенте. и только.

я вижу в клиенте анимацию "типа салюта" , откуда клиент это знает?
или допустим массовый нюк водичкой у светлого мага, клиент както это отображает...
кх.. кх.. откуда откуда... ему сервер же говорит. "начинай рисовать вот такой то скил вот такого то левела по отношению к обьекту с таким то обжектайди"

нафига тут 2 дамага? типо отражения?
не туппиииии %)

все после HitsSize это дополнительный список целей которым был нанесен урон. исключая первоначальную.
в сурсах джавы это выглядит вот так

124 protected final void writeImpl()
125 {
126 writeC(0x33);
127 writeD(_attackerObjId);
128 writeD(_targetObjId);
129 writeD(_hits[0]._damage);
130 writeC(_hits[0]._flags);
131 writeD(_x);
132 writeD(_y);
133 writeD(_z);
134 writeH(_hits.length - 1);
135 // prevent sending useless packet while there is only one target.
136 if (_hits.length > 1)
137 {
138 for (int i = 1; i < _hits.length; i++)
139 {
140 writeD(_hits[i]._targetId);
141 writeD(_hits[i]._damage);
142 writeC(_hits[i]._flags);
143 }
144 }
145 writeD(_tx);
146 writeD(_ty);
147 writeD(_tz);
148 }

destructor
08.12.2009, 21:02
не туппиииии %)все понял, "список" может быть пустым.


так же это означает принудительное начало анимации "дамага" и направлении в котором этот эффкт дамага рисовать в клиенте. и только.вот, нюкаю их массовым спойлом.
приходит этот пакет "нарисовать салют" над targetID

но пакет приходит один, а мобов на которых попал нюк четыре... как клиент это узнал?

Добавлено через 48 секунд
системные сообщения точно не при чем....

Добавлено через 36 секунд
зы: может переехать в раздел "пакеты" ?

alexteam
08.12.2009, 22:29
ня, отстань XD
54=MagicSkillLaunched:d(CasterObjectID)d(SkillID:G et.Skill)d(SkillLevel)d(numberOfTargets:Loop.01.00 01)d(TargetID)

destructor
08.12.2009, 23:12
ппц, все надо выпытывать :D

alexteam
08.12.2009, 23:18
я вот думаю.. а не обновить мне пакетс ини на свн... а то у меня с десяток правок к нему ужо есть...