Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Перемещение, назначение последних 5 байт

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 20.07.2012, 20:07   #1
 Разведчик
Аватар для faantoom
 
faantoom никому не известный тип
Регистрация: 03.04.2011
Сообщений: 2
Популярность: 18
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
Отправить сообщение для faantoom с помощью Skype™
 
По умолчанию Перемещение, назначение последних 5 байт

Всем доброго времени суток.

Кто может подсказать, что передается в последних 5 байтах пакета перемещения? (s2c 22/0F)

Пытаюсь сделать синхронизацию перемещений, и получается такая фигня - когда один персонаж бежит, второй видит как он идет шагом =)
________________
PW Emu Development
  Ответить с цитированием
Старый 20.07.2012, 21:49   #2
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Перемещение, назначение последних 5 байт

Цитата:
Сообщение от faantoomПосмотреть сообщение
(s2c 22/0F)

1. У сервера нет 22 контейнера, он есть у клиента
2. 22-0F это DropEquipmentItem

Если речь идет об S00-0x0F ObjectMove, то структура такая:
Код:
Int32 ObjectID
Point3F Position
Int16 TimeDelta
Int16 Speed
Byte Mode
Хотите понять как реализованы перемещения? Берите IDA и ковыряйте сервер. Там все очень НЕ тривиально.
Движение основано на сессиях. Сессия это нечто вроде единицы работы в представлении китайцев, которая имеет время, приоритет и т.д.
Самый простой вариант - это транслировать всем в зоне видимости те сообщения, которые присылает идущий.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
  Ответить с цитированием
Старый 20.07.2012, 22:20   #3
 Разведчик
Аватар для faantoom
 
faantoom никому не известный тип
Регистрация: 03.04.2011
Сообщений: 2
Популярность: 18
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
Отправить сообщение для faantoom с помощью Skype™
 
По умолчанию Re: Перемещение, назначение последних 5 байт

Цитата:
Сообщение от TBX1nПосмотреть сообщение
У сервера нет 22 контейнера

ну почему же, у составных пакетов внутри 00 он есть: 00 [размер] 22 [размер] [размер] 0F 00, я это имел ввиду

За структуру премного благодарен Перемещение реализовал, пока что по самому простому варианту
________________
PW Emu Development
  Ответить с цитированием
Старый 21.07.2012, 10:21   #4
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Перемещение, назначение последних 5 байт

Не стоит при подобных вопросах указывать размеры и тем более саб-тип пакета.

Смысл прост:
1. Есть серверный контейнер, он же S00
2. Контейнер содержит в себе пакеты
3. Каждый пакет обернут еще какой-то неведомой китайской фигней, которую вы упоминули как 0x22. Скорее всего это последствия слишком высокого уровня абстракции.

Получается такая картина:
  • Контейнер S00 (Type, Length)
    • Контейнер 0x22 (Type, Length)
      • Сам пакет (Length, Type, Data)

Поскольку 99.999999% пакетов обернуты именно в 0x22 контейнер, то его просто никто не упоминает. На сколько мне известно, существует всего 1 пакет, у которого тип контейнера не 0x22, а 0x45, и пакет этот Logout.

Так что можно смело употреблять: S00-0F, минуя глупое промежуточное звено аля S00-22-0F
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
  Ответить с цитированием
Старый 21.07.2012, 13:02   #5
 Разведчик
Аватар для faantoom
 
faantoom никому не известный тип
Регистрация: 03.04.2011
Сообщений: 2
Популярность: 18
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 4 сообщениях
Отправить сообщение для faantoom с помощью Skype™
 
По умолчанию Re: Перемещение, назначение последних 5 байт

Ну я в трафике пв копаюсь относительно недавно, поэтому не знал что почти везде используется 22 =)) Вот и счел нужным уточнить
________________
PW Emu Development
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Назначение клавиши для функции STIL23 Общение разработчиков 2 20.02.2012 14:03
[Баг] Точка назначение между A и B Max Payne 2010 Статьи и руководства по Aion 2 25.06.2011 15:45
[Помогите!] sql запрос на назначение патриарха. roma!sk Вопросы и ответы: RF Online 0 16.09.2010 14:45

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 09:55.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net