Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Бонус за голосование

Тема в разделе "[Архив] Помощь", создана пользователем Suzka, 6 май 2013.

  1. Автор темы
    Suzka

    Suzka Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Suzka
    Добрый день, форумчане. Простите за не правильно обращение. Я недавно занимаюсь сервером, но достиг уже довольно таки приятной высоты ( 80 место в топе McTop )
    С названия темы ясно, что мне требуется подключить McTop к базе данных таким образом, что игрок, проголосовал, должен получить бонус в виде денег. Я морочился, морочился над этим, да так ничего и не вышло. Десятки раз перечитывал тему о бонусе, наслышался о PHP запросах. Ну что делать если баран.. В общем, спасайте.
    За работу я выдам вознаграждение.

    P.S Iconomy я подключил к БД, это было не трудно)
    Выручайте, ребят. Я знаю вы гении.
    Мой скайп suzanskiy_sergey
     
  2. Хостинг MineCraft
    <
  3. REZAYS

    REZAYS Старожил Пользователь

    Баллы:
    153
    Тут
    Надеюсь, помог.
     
  4. Автор темы
    Suzka

    Suzka Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Suzka
    Cпасибо за отзыв. Но я не понимаю этого. Я ж говорю, перчитал очень много. Везде играет вот этот скрипт
    Код:
    <?php
     
    $config = array(
        'db' => array(
            'driver' => 'mysql',
            'host' => 'sr1.firolab.org.ua',
            'username' => 'rootty',
            'password' => 'ug0.jpg',
            'database' => 'minecraft',
        ),
        'security-code' => 'GkvPzrnA',
        'jobs' => array(
            array(
                'active' => true,
                'table-name' => 'w2v_bonus',
                'type' => 4,
                /*
    * # ДОБАВЛЕНИЕ К ЧИСЛЕННОМУ ЗНАЧЕНИЮ
    * 0 - только обновление (пополнение).
    * 1 - вставка нового параметра если нет такой записи (поле user-column дожно быть уникально в схеме (уникальный индекс)).
    * # ВЫСТАВЛЕНИЕ ЗНАЧЕНИЯ
    * 2 - выставления значения
    * 3 - вставка или выставление значения (поле user-column дожно быть уникально в схеме (уникальный индекс)).
    * 4 - Моя дорисовка. Которая записывает в таблицу w2v_bonus 4 алмаза(id=264) проголосовавшему игроку.
    * */
                'change-column' => 'item_amount',
                'item_amountfromtable' => 'item_amount',
                'item_count' => 4,
                'item_id' => 264,
                'user-column' => 'player',
                'nicknamefromtable' => 'nickname',
                'item_idfromtable' => 'item_id',
     
                'default' => 30, // Стандартный баланс
                'change' => 1 // Бонус или значение
            )
        )
    );
     
    if (isset($_GET['hash']) && isset($_GET['player']) && strlen($_GET['hash']) == 32 && strlen($_GET['player']) >= 3 && $_GET['hash'] == md5($config['security-code'] . $_GET['player'])) {
        try {
      $player=mysql_escape_string($_GET['player']);
      $player=mysql_real_escape_string($player);
            $db = new PDO($config['db']['driver'] . ':host=' . $config['db']['host'] . ';dbname=' . $config['db']['database'], $config['db']['username'], $config['db']['password']);
     
            foreach ($config['jobs'] as $item) {
                if ($item['active'] == true) {
                    switch ($item['type']) {
                        case 0:
                        {
                            $query = $db->prepare("UPDATE " . $item['table-name'] . " SET `" . $item['change-column'] . "`=`" . $item['change-column'] . "`+" . $item['change'] . " WHERE `" . $item['user-column'] . "`=?");
                            $query->execute(array($_GET['player']));
                            break;
                        }
                        case 1:
                        {
                            $query = $db->prepare("INSERT INTO " . $item['table-name'] . " (`" . $item['user-column'] . "`,`" . $item['change-column'] . "`) VALUES (?, " . $item['default'] + $item['change'] . ") ON duplicate KEY UPDATE `" . $item['change-column'] . "`=`" . $item['change-column'] . "`+" . $item['change']);
                            $query->execute(array($_GET['player']));
                            break;
                        }
                        case 2:
                        {
                            $query = $db->prepare("UPDATE " . $item['table-name'] . " SET `" . $item['change-column'] . "`=`? WHERE `" . $item['user-column'] . "`=?");
                            $query->execute(array($item['change'], $_GET['player']));
                            break;
                        }
                        case 3:
                        {
                            $query = $db->prepare("INSERT INTO " . $item['table-name'] . " (`" . $item['user-column'] . "`,`" . $item['change-column'] . "`) VALUES (?, ?) ON duplicate KEY UPDATE `" . $item['change-column'] . "`=?");
                            $query->execute(array($_GET['player'], $item['change'], $item['change']));
                            break;
                            }
                        case 4:
                        {
                        //var_dump($item);
                            $query = $db->prepare("INSERT INTO " . $item['table-name'] . " (`".$item['nicknamefromtable'] . " `,`" . $item['item_idfromtable'] . "`, `" . $item['item_amountfromtable'] . "`) VALUES (`". $item['user-column'] ."`, `". $item['item_id'] ."`, `". $item['change-column'] ."`");
                            $query->execute(array($_GET['player']));
                            break;
     
                        }
                        //Добавил кейс 4. Посмотри плз соответствие в названиях и правильно ли они тут приведены. Спс.
     
     
                    if ($db->errorCode() != 0000) {
                        $error_array = $db->errorInfo();
                        die("SQL error: " . $error_array[2] . '');
                    }
                }
            }
     
            echo 'ok';
        } catch (PDOException $e) {
            die('Error: ' . $e->getMessage());
        }
    } else {
      die('DO NOT HACK ME!');
    }

    А куда его вставлять, или что с ним делать я не понимаю. Хоть убей.
     
  5. REZAYS

    REZAYS Старожил Пользователь

    Баллы:
    153
    Хм.
    В настройках mctop должно быть свойство - путь до этого файла.
    кидаешь куда хочешь на сайт, и прописываешь путь...
     
  6. Автор темы
    Suzka

    Suzka Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Suzka
    Да, есть. Так этот скрипт сохранять как Script.php, кидать на сайт, на Mctop указывать адресс? Я правильно вас понял?
     
  7. REZAYS

    REZAYS Старожил Пользователь

    Баллы:
    153
    Да, называйте как хотите, и указываете адрес вместе со скриптом(http://ваш_сайт/ainosg.php)
    Желательно, чтобы никто не знал, как называется файл(усложнит взлом)
     
  8. Автор темы
    Suzka

    Suzka Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Suzka
    Не работает:([DOUBLEPOST=1367934406,1367863738][/DOUBLEPOST]Актуально!
     

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