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

1.4.6 (70) Кланы

Тема в разделе 'PW Вопросник', создана пользователем AtomPW, 1 фев 2016.

  1. TopicStarter Overlay

    AtomPW Пользователи

    Сообщения:
    37
    Лайки:
    10
    Пол:
    Мужской
    Репутация:
    -1
    Команда:
    Администратор сервера AtomPW
    Страна:
    Russian Federation Russian Federation
    Всем привет. Подскажите как пакетно можно изменить название клана, а так-же передать клан к примеру на другого персонажа (не заходя в игру)

    Возможно с помощью скриптов.
  2. LiptoN[Triton] Пользователи

    Сообщения:
    441
    Лайки:
    209
    Пол:
    Мужской
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
  3. TopicStarter Overlay

    AtomPW Пользователи

    Сообщения:
    37
    Лайки:
    10
    Пол:
    Мужской
    Репутация:
    -1
    Команда:
    Администратор сервера AtomPW
    Страна:
    Russian Federation Russian Federation
    она платная, я же спросил пакетами какнибудь) Или хз как) В общем шарово)
  4. bradis Пользователи

    Сообщения:
    290
    Лайки:
    31
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    VioTeam
    Наверное это глупая идея но попытка не пытка, попробуй покопаться в сервере там где ты узнаешь командой id клана и там же ID мастера
    home/gamedbd
    ./gamedbd gamesys.conf listfaction
    Посредством редактирование файла мб получитсч изменить айди мастера клана.
    Ну а айди мастера клана я думаю ты найдёшь как.
  5. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    http://pwdev.ru/index.php?title=Список_пакетов
    BIOS23 нравится это.
  6. Тыщ Группа анонимных алкоголиков Art Old school Пользователи

    Сообщения:
    1.573
    Лайки:
    812
    Пол:
    Мужской
    Репутация:
    2
    В файл ты выводишь,а обратно?
  7. TopicStarter Overlay

    AtomPW Пользователи

    Сообщения:
    37
    Лайки:
    10
    Пол:
    Мужской
    Репутация:
    -1
    Команда:
    Администратор сервера AtomPW
    Страна:
    Russian Federation Russian Federation
    Эмм.... А не могли бы вы подсказать как пакетно клан перекинуть*?)
  8. Deron Old school Пользователи

    Сообщения:
    1.123
    Лайки:
    533
    Пол:
    Мужской
    Репутация:
    4
  9. TopicStarter Overlay

    AtomPW Пользователи

    Сообщения:
    37
    Лайки:
    10
    Пол:
    Мужской
    Репутация:
    -1
    Команда:
    Администратор сервера AtomPW
    Страна:
    Russian Federation Russian Federation
    Не знаю есть тут или нет такой скрипт
    Код:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Веб-панель редактор должностей в клане v1.3(C) webserverok.com</title>
    </head>
    <body style='text-align: left;'>
    <?
    
    $lvl = array(0=>1,1=>2,2=>3);
    function SocketSender($Data, $host, $port){
        $Socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
            if(socket_connect($Socket,$host,$port))
        {
            socket_set_block($Socket);
            $send = socket_send($Socket,$Data,8192,0);
            $recv = socket_recv($Socket,$buf,8192,0);
            socket_set_nonblock($Socket);
            socket_close($Socket);
        } else { getErrorMessage(7,'die','feedback'); }
      
    }  
    
      function dbread($table){
    $bdlen = pack("n*", strlen($table)+32768);
    $data = pack('N', -1).$bdlen.$table.pack('N', 0);
        $Socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
        $Data = cuint(3055).cuint(strlen($data)).$data;
            if(socket_connect($Socket,"127.0.0.1","29400"))
        {
            socket_set_block($Socket);
            $send = socket_send($Socket,$Data,8192,0);
            $recv = socket_recv($Socket,$buf,8192,0);
            socket_set_nonblock($Socket);
            socket_close($Socket);
        }
        return $buf;
      }
    
    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));
    }
    echo "<fieldset style='width: 50%; height: 500px; font-size:20px;'><legend>PW-CHANGE-APPOINTMENT-FACTION v1.3 by wsok.net</legend>";
    if($_POST['getfaction'] != ""){
      $cfaction = explode(",", $_POST['getfaction']);
    echo "<form method='post'>
    <input type='hidden' style='width: 40%; height: 35px; font-size:20px;' min='1' name='roleid1' required placeholder='ID ROLE CURRENT MASTER' value='{$cfaction[3]}'>
    <input type='number' style='width: 40%; height: 35px; font-size:20px;' min='1' name='roleid2' required placeholder='ID ROLE FOR EDIT'> ID игрока (должен состоять в этом клане!)<br><br>
        <select name='nedit' style='width: 40%; height: 35px; font-size:20px;'><option value='6'>Член</option><option value='5'>Капитан</option><option value='4'>Майор</option><option value='3'>Маршал [ Заменит текущего маршала! ]</option>
            <option value='2'>Мастер [ Заменит текущего мастера! ]</option></select> Выбор должности<br><br>
            <fieldset><legend>Информация о клане</legend>
            <pre>
    <b>НАЗВАНИЕ КЛАНА: </b> <font color=red>[ {$cfaction[0]} ] {$cfaction[1]} </font>
    <b>КОЛИЧЕСТВО ИГРОКОВ: </b> <font color=red>{$cfaction[5]} </font>
    <b>УРОВЕНЬ КЛАНА: </b> <font color=red>{$lvl[$cfaction[2]]} </font>
    <b>МАСТЕР КЛАНА (IdRole): </b> <font color=red>{$cfaction[3]}</font>
    </pre>
    </fieldset>
    <fieldset><legend>Анонс клана</legend> <pre>{$cfaction[4]}</pre> </fieldset>
    </fieldset>
    <input type='hidden' style='width: 40%; height: 35px; font-size:20px;' min='1' name='fid' required placeholder='ID FACTION' value='{$cfaction[0]}'>
    <input type='submit' value='ВЫПОЛНИТЬ НАЗНАЧЕНИЕ' style='width: 35%; height: 35px; font-size:20px;'></form> <a href=''>Вернуться к выбору клана</a><br><br>";
    }else{
                    $buf = dbread("factioninfo");
                      $strlarge = unpack( "H", substr( $buf, 2, 1 ) );
                if(substr($strlarge[1], 0, 1) == "8"){$start = 13;}else{$start = 12;}
                    $clancount = unpack( "c", substr( $buf, $start, 4 ) );
                    $start +=7;
                            for($c=0; $i<$clancount[1]; $c++)
                {
                    $i++;
                    $clanid = unpack( "N*", substr( $buf, $start, 4 ) );
                    $start += 4;
                    $namelarge = unpack( "C", substr( $buf, $start, 1 ) );
                    $start +=1;
                    $clanname = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge[1] ) );
                    $start +=$namelarge[1];
                    $lvl = unpack( "C", substr( $buf, $start, 1 ) );
                    $start +=1;
                    $masterid = unpack( "N*", substr( $buf, $start, 4 ) );
                    $start +=4;
                    $master_role = unpack( "C", substr( $buf, $start, 1 ) );
                    $start +=1;
                    $numroles = unpack( "C", substr( $buf, $start, 4) );
                    $start += (5*$numroles[1])+1;
                    $namelarge2 = unpack( "C", substr( $buf, $start, 1 ) );
                    $start +=1;
                    $news = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge2[1] ) );
                    $start +=$namelarge2[1]+7;
              
                $options .= "<option value='{$clanid[1]},{$clanname},{$lvl[1]},{$masterid[1]},{$news},{$numroles[1]}'>[ {$clanid[1]} ] {$clanname}</option>";              
                }
      if($i > 0){
    echo "<form method='post'>
        Выберите клан: <select name='getfaction' style='width: 40%; height: 35px; font-size:20px;'>$options</select><br><br>
    <input type='submit' value='ВЫБРАТЬ КЛАН' style='width: 35%; height: 35px; font-size:20px;'></form>";
    }else{
    echo "Кланов не найдено, если Вы считаете, что кланы должны быть - проверьте запущен ли игровой сервер и выданы ли права на файлы и папки.";
    }
    }
    echo "</fieldset>";
    if (isset($_POST['roleid1']) && isset($_POST['roleid2']) && isset($_POST['fid']))
    {
    $Pocket = pack("N*",-1).pack('N',$_POST['fid']).pack('N',$_POST['roleid1']).pack('N',$_POST['roleid2']).pack('C',2).pack('C',$_POST['nedit']).pack("N*",12);
    $Data = cuint(4611).cuint(strlen($Pocket)).$Pocket;
    SocketSender($Data, $host="127.0.0.1", $port = "29400");
    echo"<br><b>Запрос успешно выполнен! Указанные персонажи должны перезайти в игру.</b><br><br>";          
    }else{
    echo"<b>Введите данные в форму</b><br><br>";
    }
    echo "<br>
    <hr>Веб-панель редактор должностей в клане v1.3 (C) webserverok.com<br>";
    echo "</body></html>";
    
    В общем тут можно управлять кланами, но нельзя изменить мастера, или внести человека в клан)
    Может подскажет кто, или допишет скрипт, чтобы это было осуществимо.

    Автор Wsok как-раз)
  10. Deron Old school Пользователи

    Сообщения:
    1.123
    Лайки:
    533
    Пол:
    Мужской
    Репутация:
    4
    Он мне для 1.5.1 делал скрипт управления кланом, за определенную плату. Задача была - сменить "мертвого мастера" на "живого". Добавить тело в клан или поменять название клану - нет. А вот поменять должность - запросто.

    Пару раз игроки обращались с просьбой: сменить мастера который не играет более, на активного игрока.

    Так что обращайся к нему, запилит. Сам ему заявку делал.
    Платно это будет или нет - как договоритесь.
  11. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Можно бд отредактить.
  12. TopicStarter Overlay

    AtomPW Пользователи

    Сообщения:
    37
    Лайки:
    10
    Пол:
    Мужской
    Репутация:
    -1
    Команда:
    Администратор сервера AtomPW
    Страна:
    Russian Federation Russian Federation
    Разве редатирование БД что-то даст? Пробовал, толку нет
  13. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Переносим в реальный мир.

    — Испортил страницу с лекцией :(
    — Перепиши её заново
    — Разве это что-то даст?
    ... спустя час ...
    — Попробовал, не помогло :(

    Абсурд? Именно! Редактирование бд ВСЕГДА даёт результат — данным неоткуда браться, кроме как из бд.
    wsok нравится это.
Черновик сохранён Черновик удалён
Similar Threads
  1. v1ce0132
    Ответов:
    6
    Просмотров:
    1.394
Загрузка...

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