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

1.5.1 (101) ник перса по wid

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

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

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

    Сообщения:
    122
    Лайки:
    12
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Belarus Belarus
    Есть ли пакет, позволяющий быстренько вытащить ник перса по его ид ? Про GetRoleData знаю, но там много лишнего. А хотелось бы минимум инфы.
  2. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    753
    Лайки:
    1.311
    Пол:
    Мужской
    Репутация:
    6
  3. TopicStarter Overlay

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

    Сообщения:
    122
    Лайки:
    12
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Belarus Belarus
    opcode = 3013 ?
  4. wsok Программист Пользователи

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

    Код:
    $rid = $_GET['rid'];
    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));
    }
    
    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        socket_connect($sock, "127.0.0.1", "29400");
                $data = cuint(3013)."\x08\x80\x00\x00\x01".pack("N", $rid);
                   
                $sbytes = socket_send($sock, $data, 8192, 0);
                $rbytes = socket_recv($sock, $buf, 8192, 0);
               
                $str = 13;
               
                $roleid = unpack( "N", substr( $buf, $str, 4 ) );
                if($roleid[1] == 0){
                echo ("Персонажа или аккаунта не существует!");
                }else{
                $str = $str+4;
                $namelarge = unpack( "c*", substr( $buf, $str, 1 ) );
                $str = $str+1;
                $rolename = iconv( "UTF-16", "UTF-8", substr( $buf, $str,            $namelarge[1] ) );
                $str = $str+$namelarge[1];
                $rolerace = unpack( "N", substr( $buf, $str, 4));
                $str = $str+4;
                $rolecls = unpack ("N", substr($buf, $str, 4));
                $str = $str+4;
                $rolegender = unpack("C", substr($buf, $str, 1));
                $str = $str+3;
                $rolecustomdata = bin2hex(substr($buf,$str,172));
                $str = $str+174;
                if($rolerace[1] == 0)
                {
                $roleconfigdata = bin2hex(substr($buf,$str,308));
                $str = $str+308;
                }else{
                $roleconfigdata = bin2hex(substr($buf,$str,322));
                $str = $str+322;
                }
                $customstamp = unpack("N", substr($buf,$str,4));
                $str = $str+4;
                $rolestatus = unpack("C", substr($buf,$str,1));
                $str = $str+1;
                $roledeletetime = unpack("N", substr($buf,$str,4));
                $str = $str+4;
                $rolecreatetime = unpack("N", substr($buf,$str,4));
                $str = $str+4;
                $rolelastlogintime = unpack("N", substr($buf,$str,4));
                $str = $str+6;
                $rolehelpstates = bin2hex(substr($buf,$str,54));
                if($rolehelpstates[1] == 0){
                $str = $str;
                }else{
                $str = $str+54;
                }
                $rolereserved1 = unpack("N", substr($buf,$str,4));
                $str = $str+4;
                $rolereserved2 = unpack("N", substr($buf,$str,4));
                $str = $str+4;
                $rolereserved3 = unpack("N", substr($buf,$str,4));
                $str = $str+4;
               
    echo ("ID - " .$roleid[1]. "</br>");
    echo ("Nick - " .$rolename. "</br>");
    echo ("Race - " .$rolerace[1]. "</br>");
    echo ("Cls - " .$rolecls[1]. "</br>");
    echo ("Gender - " .$rolegender[1]. "</br>");
    echo ("Custom_data - " .$rolecustomdata. "</br>");
    echo ("Config_data - " .$roleconfigdata. "</br>");
    echo ("Custom_stamp - " .$customstamp[1]. "</br>");
    echo ("Status - " .$rolestatus[1]. "</br>");
    echo ("Delete_time - " .$roledeletetime[1]. "</br>");
    echo ("Create_time - " .$rolecreatetime[1]. "</br>");
    echo ("Lastlogin_time - " .$rolelastlogintime[1]. "</br>");
    if($rolehelpstates[1] == 0){
    }else{
    echo ("Help_states - " .$rolehelpstates. "</br>");
    }
    echo ("Reserved1 - " .$rolereserved1[1]. "</br>");
    echo ("Reserved2 - " .$rolereserved2[1]. "</br>");
    echo ("Reserved3 - " .$rolereserved3[1]. "</br>");
    
    }
    socket_close($sock);
  5. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    804
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Очень криво. Там куинты в длине. Чуть что и скрипт отвалится.
  6. wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Ну вчера единственное, что я мог, найти подобное решение и показать. Сам знаешь, я на работе был и условий чтоб написать свой скрипт и проверить не было. Это решение я взял отсюда http://mmorpg-devs.ru/threads/php-getrolebase-getroleequipments.15732/
  7. TopicStarter Overlay

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

    Сообщения:
    122
    Лайки:
    12
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Belarus Belarus
    Реализацию GetRoleBase я знаю :( Но все равно инфы переизбыток. Решил просто "урезкой" буфера приема... На том и остановился :)
Черновик сохранён Черновик удалён
Similar Threads
  1. tunes
    Ответов:
    7
    Просмотров:
    1.341
  2. tunes
    Ответов:
    1
    Просмотров:
    812
  3. Anasteisha
    Ответов:
    14
    Просмотров:
    2.229
  4. Fituchini
    Ответов:
    5
    Просмотров:
    1.267
  5. alexp
    Ответов:
    32
    Просмотров:
    5.812
Загрузка...
Статус темы:
Закрыта.

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