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

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

Нет прав для скачивания
@lis, в gamecms_achievments_core.sma
Измени измени / удали 531
C++:
client_cmd(0, "play %s", gSoundNewLevel);
->
client_cmd(id, "play %s", gSoundNewLevel); // Проиграет лишь, тому кто выполнил , либо просто удаляй её вообще
public OnAchivesComplite(id, Key, RusName[], Avatar[])
{
new Name[32];
get_user_name(id, Name, charsmax(Name));

client_cmd(0, "play %s", gSoundNewLevel);
client_print_color(0, 0, "^1Игрок ^4%s ^1открыл достижение ^4%s", Name, RusName);

if(get_pcvar_num(cpRegPlayerOnly))
if(!regUserId[id])
client_print_color(id, 0, "^4Достижения не сохраняются! ^1Для сохранения, зарегистрируйся на ^4%s", SiteUrl);

client_print_color(id, 0, "^1Для просмотра достижений пиши ^4/achievs");

if(get_pcvar_num(cpLogs))
log_to_file("gcms_achives.log", "Игрок %s открыл достижение %s", Name, RusName);
}
у меня немного по другому видимо.
я в плане ,что строк видимо больше .
разобрался .
 
@lis, должно быть меньше, если не переписывал ( Я свой подгонял под систему званий, забыл что-то уже )
 
@lis, должно быть меньше, если не переписывал ( Я свой подгонял под систему званий, забыл что-то уже )
скачал отсюда час назад ,что бы убрать звук ,так как старые исходники уже потерял.Звук пропал все отлично.спасибо.
 
Код:
L 11/01/2018 - 19:51:35: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20181101.log")
L 11/01/2018 - 19:51:35: Called dynanative into a paused plugin.
L 11/01/2018 - 19:51:35: [AMXX] Displaying debug trace (plugin "special_achievs.amxx", version "1.0")
L 11/01/2018 - 19:51:35: [AMXX] Run time error 10: native error (native "CmsCheckPlayerAchive")
L 11/01/2018 - 19:51:35: [AMXX]    [0] special_achievs.sma::FwdHamTakeDamagePre (line 322)
Что не так?
 
@l3x1s, Вызывается натив плагина, который на паузе
 
Всем доброго времени суток.
У меня будет вопрос. А есть возможность вывести для игроков на сайте или в самой КС инфу, какие есть достижения в целом и что для этого надо сделать чтобы их получить?
 
@pollfank,
PHP:
if(isset($_POST['get_user_achievs'])){
    $user_auth = checkJs($_POST['user_auth'],null);

    $tpl = new Template;
    $tpl->dir = '../templates/'.$conf->template.'/tpl/';
   
   
    $j=0;
    if(!empty($user_auth))
    {
        $STH = $pdo->query("SELECT * FROM `achievs` ORDER BY `unic_id`"); $STH->setFetchMode(PDO::FETCH_OBJ);

        while($ach = $STH->fetch()) {
            $j++;
           
            $STH2 = $pdo->prepare("SELECT * FROM `achievs_stats` WHERE `achievs_stats`.`user_auth`=:user_auth AND `achievs_stats`.`ach_id` = :ach_id"); $STH2->setFetchMode(PDO::FETCH_OBJ);
            $STH2->execute(array( ':user_auth' => $user_auth, ':ach_id' => $ach->unic_id));
            $row = $STH2->fetch();
           
            $tmpDate = $row->collect_date;
            if($tmpDate == '0000-00-00 00:00:00')
            {
                $tmpDate = ''.$row->curr_value.' из '.$ach->value.'';
                $status = 'info';
            }
            else if($row->ach_collect == 1)
                $status = 'success';
            else
                $status = 'warning';
       
            $tpl->load_template('elements/achievs.tpl');
            $tpl->set("{ach_id}", $ach->unic_id);
            $tpl->set("{rus_name}", $ach->rus_name);
            $tpl->set("{value}", $ach->value);
            $tpl->set("{ach_img}", $ach->ach_img);
            $tpl->set("{description}", $ach->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();
        }
    }
   
    if($j == 0){
        $tpl->result['achievs'] = '<tr><td colspan="10">Нет достижений</td></tr>';
    }
    $tpl->show($tpl->result['achievs']);
    $tpl->global_clear();
    exit();
}
2018-11-30_18-09-51.png
 
@zhorzh78, скажите пожалуйста, я просматривал код, есть места где код закомментирован /*.....*/. Что с этим делать? Будет ли нужен он?
И большое спасибо за подсказку вывода достижений на сайт профиля).
 
@zhorzh78, с этим ясно, спасибо.
У меня предложение. Если такое возможно, сделать вывода инфо в HUD или чат, как например звания, выполнение текущего достижения.
Достижение: обезвредить бомбы 10/100
Как то так.
 
@V1adJkee, ну в принципе да). Просто есть ленивые пользователи (игроки), которые не хотят пользоваться командой. А некоторые и вовсе не читают рекламы на сервере, а так будет инфа.
 
@pollfank,
- можно
- какого именно достижения, если вначале почти все начаты и не открыты
- доделывайте) с моей стороны таких планов пока нет
 
@zhorzh78, вывод в худ я наверное могу сделать. Подскажите только, какими нативывами надо пользоваться.
 
@pollfank, С нативами сложнее. До этого дело не дошло.
 
@pollfank, исходный код открыт, зачем использовать нативы?
 
@V1adJkee, ах точно Вы правы. Я уже привык что некоторые плагины CMS с закрытым кодом) Забыл что здесь код открыт)
 
@V1adJkee, С нативом можно в любой информер отдельный вставить. Не пихать в плагин. Вдруг, решу дорабатывать.
 
@pollfank,
PHP:
if(isset($_POST['get_user_achievs'])){
    $user_auth = checkJs($_POST['user_auth'],null);

    $tpl = new Template;
    $tpl->dir = '../templates/'.$conf->template.'/tpl/';
 
 
    $j=0;
    if(!empty($user_auth))
    {
        $STH = $pdo->query("SELECT * FROM `achievs` ORDER BY `unic_id`"); $STH->setFetchMode(PDO::FETCH_OBJ);

        while($ach = $STH->fetch()) {
            $j++;
         
            $STH2 = $pdo->prepare("SELECT * FROM `achievs_stats` WHERE `achievs_stats`.`user_auth`=:user_auth AND `achievs_stats`.`ach_id` = :ach_id"); $STH2->setFetchMode(PDO::FETCH_OBJ);
            $STH2->execute(array( ':user_auth' => $user_auth, ':ach_id' => $ach->unic_id));
            $row = $STH2->fetch();
         
            $tmpDate = $row->collect_date;
            if($tmpDate == '0000-00-00 00:00:00')
            {
                $tmpDate = ''.$row->curr_value.' из '.$ach->value.'';
                $status = 'info';
            }
            else if($row->ach_collect == 1)
                $status = 'success';
            else
                $status = 'warning';
     
            $tpl->load_template('elements/achievs.tpl');
            $tpl->set("{ach_id}", $ach->unic_id);
            $tpl->set("{rus_name}", $ach->rus_name);
            $tpl->set("{value}", $ach->value);
            $tpl->set("{ach_img}", $ach->ach_img);
            $tpl->set("{description}", $ach->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();
        }
    }
 
    if($j == 0){
        $tpl->result['achievs'] = '<tr><td colspan="10">Нет достижений</td></tr>';
    }
    $tpl->show($tpl->result['achievs']);
    $tpl->global_clear();
    exit();
}
Посмотреть вложение 639

Чет у меня не совсем так .И цвет другой =(
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    60.8 KB · Просмотры: 100
@Sokol, Мне кажется так и должно быть. Достижения еще не открыты.
 
Назад
Сверху