• Уважаемые пользователи!
    За решением проблем с работой плагинов, компиляцией, падением сервера и прочими обращайтесь в раздел Помощи!
    Данная тема предназначена для обсуждения плагина, его функционала, принципа работы и предложений.
Иконка ресурса

Плагин АМХХ GameCMS Achievements CS 1.6 1.3

Нет прав для скачивания

Karaulov

Участник
Сообщения
23
Реакции
2
Баллы
3
Если до mysql сервера пинг 50-100, сервер намертво зависнет?)

Всмысле плагин блокирует сервер на время запроса и отправки данных или используются многопоточные функции?
 

Karaulov

Участник
Сообщения
23
Реакции
2
Баллы
3
zhorzh78, это не ответ на вопрос. Сервер ждёт ответа или вызывается callback функция ?
 

zhorzh78

Администратор
Сообщения
2,252
Решения
8
Реакции
904
Баллы
113
Если вам не понятен ответ, он от этого не перестаёт быть ответом.
 

Karaulov

Участник
Сообщения
23
Реакции
2
Баллы
3
zhorzh78, поточные это многопоточные или однопоточные?)))) Или это очень сложный вопрос?
 

zhorzh78

Администратор
Сообщения
2,252
Решения
8
Реакции
904
Баллы
113

Это был первый вариант в поиске по фразе Поточный запрос. Там дан развёрнутый ответ.
Не нужно каверкать понятия. Так их до двух-трехпоточных недалеко.
 

Karaulov

Участник
Сообщения
23
Реакции
2
Баллы
3
zhorzh78, я понял уже) скачивание не было доступно когда писал сообщение.
 

iPlague

Участник
Сообщения
17
Реакции
3
Баллы
3
o/
Не знаю, реализованы ли такие вот ачивки, если не сложно попробуй добавить их.

Набор ачивок "Необычные убийства" (идею подсмотрел тут)
- убийство через стену в голову
- убийство без прицела с awp/scout в голову
- убийство в прыжке в голову
- убийство с уроном < 5 dmg (добить игрока с глока через всю карту, например)

Набор ачивок "Выживание"
- получить более 95 DMG_FALL и выжить
- получить более 95 DMG_HEGRANADE и выжить до конца раунда
- получить более 95 урона от выстрела в голову и выжить до конца раунда
- получить более 95 урона и выжить будучи полностью ослеплённым

Набор ачивок "Мастер гранат"
- ослепить N+ игроков команды противника
- нанести урон НЕ гранатой N+ игроков команды противника
- убить НЕ гранатой N+ игроков команды противника
- ослепить и зарезать противника
 

SergeyPanov

Участник
Сообщения
43
Реакции
1
Баллы
8
iPlague, добавьте, как добавите прикрепите sma чтобы поделиться с остальными;)
 

pqvz

Участник
Сообщения
4
Реакции
1
Баллы
3
Не знаю в правильный ли раздел пишу, но:

Сделали отображение всех ачивок в профиле по кнопке. Если кому нужно, забирайте.
/ajax/ajax-user,js (заменить функцию)
Код:
function get_user_achievs(user_auth, all=false){
  var token = $('#token').val();

  var data_extend = "";
  if(all){
    $('#btn_show_achieves_all').hide();
    $('#btn_show_achieves').show();
    data_extend = "&all=y";
  }else{
    $('#btn_show_achieves_all').show();
    $('#btn_show_achieves').hide();
  }

  $.ajax({
    type: "POST",

    url: "../ajax/actions.php",
    data: "phpaction=1&get_user_achievs=1&token="+token+"&user_auth="+user_auth+data_extend,

    success: function(html) {
      $("#achievs").empty();
      $("#achievs").append(html);
    }
  });
}

/templates/maincs/tpl/home/profile.tpl (добавить кнопки над выводом таблицы)
Код:
<p>
        <a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a>
        <a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a>
      </p>

/ajax/actions.php (заменить блок кода в if'е isset($_POST['get_user_achievs']))
Код:
if(!empty($user_auth))
  {

    if($_POST['all'] === 'y'){
            $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` RIGHT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` AND `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs`.`unic_id`");
        }else{
            $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` LEFT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` WHERE `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs_stats`.`ach_id`");
        }

    $STH->setFetchMode(PDO::FETCH_OBJ);
        $STH->execute(array( ':user_auth' => $user_auth ));

        while($row = $STH->fetch()) {
            $j++;

            $status = '';
            $tmpDate = $row->collect_date;
            if($tmpDate == '0000-00-00 00:00:00') {
                $tmpDate = ''.$row->curr_value.' из '.$row->value.'';
                $status = 'info';
            } else if($row->ach_collect == 1) {
                $status = 'success';
            }

            $tpl->load_template('elements/achievs.tpl');
            $tpl->set("{ach_id}", $row->unic_id);
            $tpl->set("{rus_name}", $row->rus_name);
            $tpl->set("{value}", $row->value);
            $tpl->set("{ach_img}", $row->ach_img);
            $tpl->set("{description}", $row->description);
            $tpl->set("{curr_value}", $row->curr_value);
            $tpl->set("{ach_collect}", $row->ach_collect);
            $tpl->set("{collect_date}", $tmpDate);
            $tpl->set("{status}", $status);
            $tpl->compile( 'achievs' );
            $tpl->clear();
        }
  }
 

SergeyPanov

Участник
Сообщения
43
Реакции
1
Баллы
8
Не знаю в правильный ли раздел пишу, но:

Сделали отображение всех ачивок в профиле по кнопке. Если кому нужно, забирайте.
/ajax/ajax-user,js (заменить функцию)
Код:
function get_user_achievs(user_auth, all=false){
  var token = $('#token').val();

  var data_extend = "";
  if(all){
    $('#btn_show_achieves_all').hide();
    $('#btn_show_achieves').show();
    data_extend = "&all=y";
  }else{
    $('#btn_show_achieves_all').show();
    $('#btn_show_achieves').hide();
  }

  $.ajax({
    type: "POST",

    url: "../ajax/actions.php",
    data: "phpaction=1&get_user_achievs=1&token="+token+"&user_auth="+user_auth+data_extend,

    success: function(html) {
      $("#achievs").empty();
      $("#achievs").append(html);
    }
  });
}

/templates/maincs/tpl/home/profile.tpl (добавить кнопки над выводом таблицы)
Код:
<p>
        <a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a>
        <a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a>
      </p>

/ajax/actions.php (заменить блок кода в if'е isset($_POST['get_user_achievs']))
Код:
if(!empty($user_auth))
  {

    if($_POST['all'] === 'y'){
            $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` RIGHT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` AND `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs`.`unic_id`");
        }else{
            $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` LEFT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` WHERE `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs_stats`.`ach_id`");
        }

    $STH->setFetchMode(PDO::FETCH_OBJ);
        $STH->execute(array( ':user_auth' => $user_auth ));

        while($row = $STH->fetch()) {
            $j++;

            $status = '';
            $tmpDate = $row->collect_date;
            if($tmpDate == '0000-00-00 00:00:00') {
                $tmpDate = ''.$row->curr_value.' из '.$row->value.'';
                $status = 'info';
            } else if($row->ach_collect == 1) {
                $status = 'success';
            }

            $tpl->load_template('elements/achievs.tpl');
            $tpl->set("{ach_id}", $row->unic_id);
            $tpl->set("{rus_name}", $row->rus_name);
            $tpl->set("{value}", $row->value);
            $tpl->set("{ach_img}", $row->ach_img);
            $tpl->set("{description}", $row->description);
            $tpl->set("{curr_value}", $row->curr_value);
            $tpl->set("{ach_collect}", $row->ach_collect);
            $tpl->set("{collect_date}", $tmpDate);
            $tpl->set("{status}", $status);
            $tpl->compile( 'achievs' );
            $tpl->clear();
        }
  }
А как смотреть не ОТКРЫТЫЕ?
 

SergeyPanov

Участник
Сообщения
43
Реакции
1
Баллы
8
pqvz, так при нажатии на кнопку какие показываются ачивки?
Добавлено:

pqvz, или когда нажимаешь переключается?
 

SergeyPanov

Участник
Сообщения
43
Реакции
1
Баллы
8
Не знаю в правильный ли раздел пишу, но:

Сделали отображение всех ачивок в профиле по кнопке. Если кому нужно, забирайте.
/ajax/ajax-user,js (заменить функцию)
Код:
function get_user_achievs(user_auth, all=false){
  var token = $('#token').val();

  var data_extend = "";
  if(all){
    $('#btn_show_achieves_all').hide();
    $('#btn_show_achieves').show();
    data_extend = "&all=y";
  }else{
    $('#btn_show_achieves_all').show();
    $('#btn_show_achieves').hide();
  }

  $.ajax({
    type: "POST",

    url: "../ajax/actions.php",
    data: "phpaction=1&get_user_achievs=1&token="+token+"&user_auth="+user_auth+data_extend,

    success: function(html) {
      $("#achievs").empty();
      $("#achievs").append(html);
    }
  });
}

/templates/maincs/tpl/home/profile.tpl (добавить кнопки над выводом таблицы)
Код:
<p>
        <a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a>
        <a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a>
      </p>

/ajax/actions.php (заменить блок кода в if'е isset($_POST['get_user_achievs']))
Код:
if(!empty($user_auth))
  {

    if($_POST['all'] === 'y'){
            $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` RIGHT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` AND `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs`.`unic_id`");
        }else{
            $STH = $pdo->prepare("SELECT *, `achievs`.`rus_name`, `achievs`.`value`, `achievs`.`ach_img`, `achievs`.`description` FROM `achievs_stats` LEFT JOIN `achievs` ON `achievs`.`unic_id` = `achievs_stats`.`ach_id` WHERE `achievs_stats`.`user_auth`=:user_auth ORDER BY `achievs_stats`.`ach_id`");
        }

    $STH->setFetchMode(PDO::FETCH_OBJ);
        $STH->execute(array( ':user_auth' => $user_auth ));

        while($row = $STH->fetch()) {
            $j++;

            $status = '';
            $tmpDate = $row->collect_date;
            if($tmpDate == '0000-00-00 00:00:00') {
                $tmpDate = ''.$row->curr_value.' из '.$row->value.'';
                $status = 'info';
            } else if($row->ach_collect == 1) {
                $status = 'success';
            }

            $tpl->load_template('elements/achievs.tpl');
            $tpl->set("{ach_id}", $row->unic_id);
            $tpl->set("{rus_name}", $row->rus_name);
            $tpl->set("{value}", $row->value);
            $tpl->set("{ach_img}", $row->ach_img);
            $tpl->set("{description}", $row->description);
            $tpl->set("{curr_value}", $row->curr_value);
            $tpl->set("{ach_collect}", $row->ach_collect);
            $tpl->set("{collect_date}", $tmpDate);
            $tpl->set("{status}", $status);
            $tpl->compile( 'achievs' );
            $tpl->clear();
        }
  }
Попробовал сделать, на стандарт шаблоне не работает, достижения не скрываются, кнопка не активная. Есть кто за денюшку сделает? Пишите в лс.
 

KiMi

Пользователь
Сообщения
2
Реакции
0
Баллы
1
<a id="btn_show_achieves_all" onclick="get_user_achievs('<?echo $profile->steam_id ?>', true);" class="btn2">Показать все возможные ачивки</a>
<a id="btn_show_achieves" onclick="get_user_achievs('<?echo $profile->steam_id ?>');" class="btn2" style="display: none;">Показать только заработанные ачивки</a>
Не обязательно писать через echo в профиле выведено все с users по этому можно было {$profile->steam_id}
 
Сверху