1. 游客, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.1 (101) как узнать online перса

本贴由 alexp2015-02-25 发布. 版块名称: PW Вопросник

  1. TopicStarter Overlay

    alexp Программист Пользователи

    帖子:
    122
    支持:
    12
    性别:
    Репутация:
    0
    Страна:
    Belarus Belarus
    Смотрим 1й топик и не ругаемся.
    Ну и вот! Чего и требовалось давно... Но почему-то у всех просто руки отваливались от такого простого вопроса.
  2. vieraw Пользователи

    帖子:
    54
    支持:
    27
    Репутация:
    0
    А какой смысл вам помогать? Вы не пользуетесь поиском, есть темы в которых расписано это все. Вы ничего не вынесли из прошлых тем, и в этой Алекс уже говорил про порядок байт. И самое главное вы взяли готовый код для получения персонажей онлайн и не смогли его использовать. Ну и какой в этом смысл?
    已获得alexdnepro10000JonMagon的支持.
  3. TopicStarter Overlay

    alexp Программист Пользователи

    帖子:
    122
    支持:
    12
    性别:
    Репутация:
    0
    Страна:
    Belarus Belarus
    если бы он работал, то вопросов бы не было :)

    не противоречьте себе.

    действительно, создаю темы, чтобы поспамить :(

    Смысл есть во всем... я повторюсь:
  4. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    Я думаю он хотел сказать примерно следующее: есть достаточно много информации и подобных тем, и не смотря на это вам дали ответы, практически тыкнули носом, но в ответ - "Не посылайте меня читать то, что я учил 20 лет назад. Я спросил простую вещь и ждал простой ответ", т.е. Вам лень потратить 10 минут времени, чтобы ознакомиться с информацией по ссылке, и считаете, что кто-то другой горит желанием предоставить полностью готовое решение. Такие действия новичков (на форуме) всегда вызывают подобную реакцию пользователей, т.к. Вы далеко не первый, который задает подобные вопросы.
    已获得EvolutionJonMagonint 3的支持.
  5. TopicStarter Overlay

    alexp Программист Пользователи

    帖子:
    122
    支持:
    12
    性别:
    Репутация:
    0
    Страна:
    Belarus Belarus
    О, с этим я вполне согласен :) И потому не обижаюсь на подобную реакцию :) Просто я считаю что "тыкнули носом" не совсем верно. В справке есть варианты как упаковать. Но ведь не сказано каким способом формируются пакеты именно для ПВ. Если бы вопрос был чисто по программной реализации, то я бы сюда и не совался. Но ведь рассчитывал на знающих людей именно в области PW. Кодить учить меня не надо, меня интересуют тонкости формирования пакетов. И всё. Тыкните меня где лежит описание правильного формирования пакетов и я забуду дорогу сюда :) По крайней мере на время... ;)
    已获得10000的支持.
  6. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    Как делал я, и наверняка многие другие:
    1. Берем снифер пакетов
    2. Ловим нужный пакет на gamedbd (29400) или gdelivey (29100) например при входе в мир или другом нужном действии.
    3. Смотрим и изучаем его.
    Общая картина формирования пакетов такая:
    PID - CUInt айди пакета
    PLen - CUInt полный размер пакета
    на GameDB практически на всех пакетах фиксированное число 2147483648 или 2147483649 UInt32 (для чего оно не вникал, мб это localsid)
    далее сам пакет по структуре.
    При коннекте к деливери - сразу считываем данные перед отправкой своего пакета, чтобы получить потом ответ, а не то, что отправляется при коннекте.
    Структуры всех пакетов есть в дебаг символах gamedb и gdeliveryd
    У меня все.
    已获得Mr.FleksNEO的支持.
  7. JonMagon Программист Пользователи Open Source Contributor

    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Дополнение на случай, если тс запросит готовые функции для работы с куинтами:
    GNET::Marshal::OctetsStream::compact_uint32(Marshal::OctetsStream *const this, unsigned int x)
    GNET::Marshal::OctetsStream::uncompact_uint32(const Marshal::OctetsStream *const this, const unsigned int *const x)
  8. TopicStarter Overlay

    alexp Программист Пользователи

    帖子:
    122
    支持:
    12
    性别:
    Репутация:
    0
    Страна:
    Belarus Belarus
    хех... ребят, читаю и улыбаюсь :)
    Проблему я решил и она была вовсе не в формировании пакета. Что интересно, 1й пакет проходит даже такой:
    代码:
    $packdata = pack("N*", 0, 0, 0) . "\x00\x00";
    И что бы вы не говорили о правильности упаковки и порядке составляющих... туфта это все!!! Не в этом причина была.
    Нет, я не хочу сказать, что вы в целом не правы. Паковать надо так, как надо, это факт!!

    А теперь объясните мне, пожалуйста, почему при коннекте к порту 29100 первым в него прилетает (даже без отправки туда чего-либо) пакет с номером x84 ?
    Вот именно из-за него я ничего путного не получал. Выход примерно такой:
    代码:
    $rb = socket_recv($sock, $buf, 8192, 0); // 132
    $sb = socket_send($sock, $sp, 8192, 0); //352
    $rb = socket_recv($sock, $buf, 8192, 0); //353
  9. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    Прочитай внимательно мое сообщение выше.
  10. TopicStarter Overlay

    alexp Программист Пользователи

    帖子:
    122
    支持:
    12
    性别:
    Репутация:
    0
    Страна:
    Belarus Belarus
    Видел... но эту проблему я решил чуть раньше сам. Но, все равно респект и спасибо!!
    И еще, по теме. Для проверки определенных персов на мой взгляд гораздо проще опкод 7с (не знаю как он называется). Именно его я искал. И не надо перебирать списки... ну это так, к сведению.
  11. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    124 это GMQueryRoleInfo
    Параметров запроса не нашел, а ответ простой
    代码:
    type = struct GMQueryRoleInfoRes {
        int status;
    }
    Как будет время проверю его, а также версии, на которых он работает.
  12. Тыщ Группа анонимных алкоголиков Art Old school Пользователи

    帖子:
    1,573
    支持:
    812
    性别:
    Репутация:
    2
    А еще во френдлисте есть,там и онлайн и лвл и локация
  13. TopicStarter Overlay

    alexp Программист Пользователи

    帖子:
    122
    支持:
    12
    性别:
    Репутация:
    0
    Страна:
    Belarus Belarus
    Запрос:
    代码:
    int Info
    int IdRole
    Как-то так... В любом случае экономичнее. И перебирать не надо :) Запрос-ответ.
Черновик сохранён Черновик удалён

分享此页面