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

1.2.6 (1.3.4) [ РЕШЕНО ] Вопрос на засыпку пакет Roleid2Uid

Тема в разделе 'PW Вопросник', создана пользователем wsok, 5 дек 2015.

  1. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    В общем ищу способ получить по айди перосонажа - айди аккаунта в 1.3.6

    Некоторые из вас могут сказать, юзай пакет Roleid2Uid, да, все верно, но он как выяснилось работает в 1.4.4+
    Но вот в 1.3.6 не получается, либо в 1.3.6 другой опкод, либо пакета просто нет этого, в общем прошу помощи либо найти пакет и его опкод в 1.3.6 или есть ли вообще любые пакеты в 1.3.6, которые хранят информацию об аккаунте персонажа?
    --- добавлено: 5 дек 2015 в 10:46 ---
    И ещё, в GetRoleBase и GetRoleInfo тоже нет userid.
    Последнее редактирование модератором: 13 дек 2015
  2. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Напиши в саппорт китая, чтобы они переделали 1.3.6 с юзерайдишником.
    deadamag нравится это.
  3. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    т.е. такого пакета там в принципе нет?
  4. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    на 1.3.6 все делается без пакетов
    $userid = floor($roleid / 16) * 16;
    wsok нравится это.
  5. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Спасибо, видимо придется так и делать.
    Кстати, заметил, что в 136 нету пакета ForbidUser (8004), но при бане из ГМ панели в игре отловил пакет

    Код:
    \x81\x62\x2d\x00\x00\x00\x21\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x38\x1c\x74\x00\x65\x00\x73\x00\x74\x00\x20\x00\x75\x00\x73\x00\x65\x00\x72\x00\x20\x00\x74\x00\x65\x00\x73\x00\x74\x00
    
    Так понимаю опкод 81(Dec:129), второе 62(Dec: 98 ) неизвестный параметр, возможно тип операции, далее длина и тело пакета (банящий юзер, тот кого банят, время и причина бана). Если честно, то информации по структуре этого пакета в 136 я не нашел. Попытки составить код под этот пакет не привели к рабочему результату...

    PHP:
        $ForbidUserArg = new WritePacket();
    $ForbidUserArg->WriteUInt32(-1); // retcode
    $ForbidUserArg->WriteUByte(98); // operation
    $ForbidUserArg->WriteUInt32(-1); // gmuserid
    $ForbidUserArg->WriteUInt32(0); // source
    $ForbidUserArg->WriteUInt32(32); // userid
    $ForbidUserArg->WriteUInt32(160); // time
    $ForbidUserArg->WriteUString("TEST""UTF-16LE");
    $ForbidUserArg->Pack(129);
    if (!
    $ForbidUserArg->Send("127.0.0.1",29100)) return;
    $ForbidUserRes = new ReadPacket($ForbidUserArg);
    print_r($ForbidUserRes->ReadPacketInfo());
    Увы не работает, однако если отсылаю тот код, который поймал в ТСП лог - напрямую в сокет gdlivery, то бан срабатывает, так и не понял, как устроен данный пакет.
    --- добавлено: 5 дек 2015 в 17:39 ---
    конечно в 136 банить акк можно и просто добавив запись в таблицу SQL forbid, но все же хотелось разобраться, как устроен пакет, который я отловил.
    Последнее редактирование модератором: 13 дек 2015
  6. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Первый байт 0x80+, что значит за ним следует второй байт этого же числа. Опкод получается 0x162 или 354, что есть пакет GMKickOutRole, который имеет структуру
    Код:
        int gmroleid;
        int localsid;
        int kickroleid;
        int forbid_time;
        Octets reason;
    
    На каждый пакет новый топик?
    wsok нравится это.
  7. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Да было подумал, создать новую тему, потом решил в этой же теме спросить о другом пакете )
    --- добавлено: 5 дек 2015 в 19:15 ---
    int localsid;
    какое значение там может быть?
    --- добавлено: 5 дек 2015 в 19:17 ---
    кстати, странно GMKickOutRole, ароде предназначен для операции с персонажем, но в 136 я ведь банил аккаунт и тот пакет сниферил..
    Последнее редактирование модератором: 13 дек 2015
  8. Deron Old school Пользователи

    Сообщения:
    1.123
    Лайки:
    533
    Пол:
    Мужской
    Репутация:
    4
    Блин, я не шарю во всём этом.
    Но так и хочется написать - возьми pwAdmin Ронни, там всё работает на 1.2.6. База по игроку выводится не только в xml но и картинки даёт - что где у игрока есть.
    Пошарься там, думаю что многие вопросы отпадут, у тебя, автоматически.
  9. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    кстати, странно GMKickOutRole, ароде предназначен для операции с персонажем, но в 136 я ведь банил аккаунт и тот пакет сниферил..
    да изучаю уже, что там и как работает, просто предполагал, что в версиях ниже 144 есть отличия, но не думал, что они настолько радикальны... Под 136 уже процентов на 70% переписал функции и ещё продолжаю переписывать, а думал, что лишь процентов на 10-20 там различий.
  10. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Нашел пакет, благодаря Джо (спасибо, навел на нужный пакет), в 136 оказывается используется
    http://pwdev.ru/index.php?title=GMKickoutUser
    да и он в 144+ используется.
    Однако просто для записи (чтения) в БД добавлен ForbidUser там(144), хоть и совместим с отправкой в GDLIVERYD.
  11. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    [​IMG]
    wsok нравится это.
  12. TopicStarter Overlay

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

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    ну я понимаю иронию, человек, который ищет информацию всегда вызывает улыбку.
Черновик сохранён Черновик удалён

Поделиться этой страницей