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

1.5.1 (101) скрипт для кланов

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

Статус темы:
Закрыта.
  1. TopicStarter Overlay

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

    Сообщения:
    122
    Лайки:
    12
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Belarus Belarus
    Подскажите, пожалуйста, пакет для получения списка всех кланов.
  2. Nanaya B L A C K    L I S T Пользователи

    Сообщения:
    470
    Лайки:
    135
    Пол:
    Мужской
    Репутация:
    -7
    Страна:
    Russian Federation Russian Federation
    cd /home/gamedbd
    ./gamedbd gamesys.conf listfaction
  3. TopicStarter Overlay

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

    Сообщения:
    122
    Лайки:
    12
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Belarus Belarus
    Это я знаю, спасибо. Но меня через скрипт интересует.
  4. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    DBRawRead для версий 1.4.2+, для версий ниже нет таких возможностей.
  5. Roymike Old school Пользователи

    Сообщения:
    1.030
    Лайки:
    1.005
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    AncientPW
    [​IMG]
    b3nz1n, NEO и CoolMan нравится это.
  6. Nanaya B L A C K    L I S T Пользователи

    Сообщения:
    470
    Лайки:
    135
    Пол:
    Мужской
    Репутация:
    -7
    Страна:
    Russian Federation Russian Federation
    Не смешно уже) честно)
    Клоун)
  7. Roymike Old school Пользователи

    Сообщения:
    1.030
    Лайки:
    1.005
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    AncientPW
    а вот пупас с шарком поржали)
  8. Nanaya B L A C K    L I S T Пользователи

    Сообщения:
    470
    Лайки:
    135
    Пол:
    Мужской
    Репутация:
    -7
    Страна:
    Russian Federation Russian Federation
    Я искренне рад за них)
    p.s понятия не имею кто такой шарк.
  9. TopicStarter Overlay

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

    Сообщения:
    122
    Лайки:
    12
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Belarus Belarus
    это есть что и с чем его едят?
    Я вообще думал через opcode 4606 вытащить... не?
  10. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    RPC_DBRAWREAD = 3055
    насчет RPC_GETFACTIONINFO сильно сомневаюсь, что там будет список кланов
    Joslian нравится это.
  11. wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    сам уже давно задавался вопросом о получении списка кланов, но структуры пакета так и не нашел, в игровом клиенте вообще нет опции, где бы выводился список всех кланов на сервере, иначе бы отловил бы пакет и попробовал бы разобрать его.
  12. Stranger B L A C K    L I S T Пользователи

    Сообщения:
    71
    Лайки:
    66
    Репутация:
    0
    Код:
    type = struct DBRawReadArg : public Rpc::Data {
        Octets table;
        Octets handle;
        Octets key;
    }
    type = struct DBRawReadRes : public Rpc::Data {
        int retcode;
        Octets handle;
        vector<GNET::RawKeyValue, std::allocator<GNET::RawKeyValue> > values;
    }
    Например читаем FactionInfo (0x11FE) - values = { key FactionId; value FactionInfo; };

    [​IMG]
    Последнее редактирование: 13 фев 2015
    alexp нравится это.
  13. wsok Программист Пользователи

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

    Код:
    <?
    function cuint($data)
    {
        if($data < 64)
            return strrev(pack("C", $data));
        else if($data < 16384)
            return strrev(pack("S", ($data | 0x8000)));
        else if($data < 536870912)
            return strrev(pack("I", ($data | 0xC0000000)));
        return strrev(pack("c", -32) . pack("i", $data));
    }
    
        $Socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
       
            if(socket_connect($Socket,"127.0.0.1","29400"))
        {
            socket_set_block($Socket);
            $Data = cuint(3055)."\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
            $send = socket_send($Socket,$Data,8192,0);
            $recv = socket_recv($Socket,$buf,8192,0); 
            socket_set_nonblock($Socket);
            socket_close($Socket);
        }
        $var = bin2hex($Data)."<br>-";
        $var2 = bin2hex($buf)."<br>";
        echo $var.$var2;
    ?>
    Специально сделал с выводом в браузер хекс кода запроса и результата. Итог работы этого скрипта в бразуер виден лишь хекс код запроса, хекс кода результата не получаю... это и понятно, видимо потому что нет аргументов в запросе. Хотелось бы понять как правильно выстроить пакет данных на получение списка кланов.

    Код:
    $Data = cuint(3055)."\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
  14. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Одним запросом можно получить не больше 16 (вроде так, точно не помню) строк из таблицы, остальные надо получать в цикле примерно как с получением списка персонажей онлайн через GMListOnlineUser. Готового решения давать не буду, информации выше вполне достаточно, чтобы его сделать.
  15. wsok Программист Пользователи

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

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    [​IMG]
    PHP:
    ffffffff8008726f6c656e616d650000
    P.S. Вроде возвращал не 16, а 33 записи.
    wsok нравится это.
  17. wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    это хекс код именно запроса? пакет?
  18. vieraw Пользователи

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    Да запроса на получение, без opcode и длины пакета.
    P.S. Пакет для FW, но отличий для PW в запросе нет. Отличия только в ответе, в структуре values.
  19. wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    просто попробовал составить пакет, на основе данного хекс кода запроса
    Код:
    $Data = cuint(3055)."\xff\xff\xff\xff\x80\x08\x72\x6f\x6c\x65\x6e\x61\x6d\x65\x00\x00";
    в итоге ответ не получаю вообще никакой.
  20. vieraw Пользователи

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    А длина где?

Черновик сохранён Черновик удалён
Similar Threads
  1. chetoss
    Ответов:
    40
    Просмотров:
    13.522
  2. Misha900005
    Ответов:
    11
    Просмотров:
    2.817
  3. akademik
    Ответов:
    5
    Просмотров:
    1.082
  4. Besaba
    Ответов:
    4
    Просмотров:
    1.543
  5. Roymike
    Ответов:
    32
    Просмотров:
    4.886
Загрузка...
Статус темы:
Закрыта.

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