Manual Отображения сыгранного времени на серверах, в слайдере шаблона "standart"

sania886

Пользователь
Отображения сыгранного времени на серверах проекта
в слайдере шаблона "standart"


1.png2.png3.png4.png5.png6.png7.png
Вид на сайте

Принцип работы
Игрок прописывает STEAM ID у себя в профиле, после чего GameCMS API, по указанному STEAM ID видит профиль игрока, и вписывает отыгранное время в таблицу users, данному аккаунту. Время записывается в секундах, в столбец game_time.
Скрипт разбирает секунды в месяца, недели, дни, часы, минуты, секунды. И выводит их, в один из слайдеров. С отсевом нулевых значений.
Так же он понимает: гостя, STEAM ID не указан, игрок еще не играл (после указания steam id).
Если игрок сменит STEAM ID, данные о времени, останутся, и будут считаться дальше.



Инструкция

Разрешить вписывать STEAM ID в формате VALVE..
Заходим в через FTP клиент к своим файлам, по пути /www/igra-hp.com/inc/classes. Находим файл class.steamidoperations.php
Меняем его содержимое, на ...
PHP:
<?php
class SteamIDOperations {
    private function SteamID32to3($steamid32) {
        if (preg_match('/^STEAM_1\:*\:(.*)$/', $steamid32, $res)) {

            $st = '[U:1:';
            $st .= $res[1] * 2 + 1;
            $st .= ']';
            return $st;
        }
        return false;
    }

    private function SteamID3to32($steamid3) {
        if (preg_match("/\[U:1:(\d+)\]/", $steam3)) {
            $steam3 = preg_replace("/\[U:1:(\d+)\]/", "$1", $steamid3);
            $A = $steam3 % 2;
            $B = intval($steam3 / 2);
            return "STEAM_1:" . $A . ":" . $B;
        }
        return false;
    }

    private function SteamID32to64($steamid32) {
        if (preg_match('/^STEAM_1\:*\:(.*)$/', $steamid32, $res)) {
            list(, $m1, $m2) = explode(':', $steamid32, 3);
            list($steam_cid,) = explode('.', bcadd((((int)$m2 * 2) + $m1), '76561197960265728'), 2);
            return $steam_cid;
        }
        return false;
    }

    private function SteamID64to32($steamid64) {
        $pattern = "/^(7656119)([0-9]{10})$/";
        if (preg_match($pattern, $steamid64, $match)) {
            $const1 = 7960265728;
            $const2 = "STEAM_1:";
            $steam32 = '';
            if ($const1 <= $match[2]) {
                $a = ($match[2] - $const1) % 2;
                $b = ($match[2] - $const1 - $a) / 2;
                $steam32 = $const2 . $a . ':' . $b;
            }
            return $steam32;
        }
        return false;
    }

    public function is3($steamid) {
        if (preg_match("/^(\[U:1:[0-9]+\])$/", $steamid)) {
            return true;
        } else {
            return false;
        }
    }

    public function is32($steamid) {
        if (preg_match("/^(STEAM_[0-5]:[01]:\d+|VALVE_[0-9]:[0-1]:\d+)$/", $steamid)) {
            return true;
        } else {
            return false;
        }
    }

    public function is64($steamid) {
        if (preg_match("/^([0-9]{17})$/", $steamid)) {
            return true;
        } else {
            return false;
        }
    }

    public function ValidateSteamID($steamid) {
        if (preg_match("/^(STEAM_[0-5]:[01]:\d+|VALVE_[0-9]:[0-1]:\d+|\[U:1:[0-9]+\]|[0-9]{17})$/", $steamid)) {
            return true;
        } else {
            return false;
        }
    }

    public function GetSteamID32($steamid) {
        if(!$this->ValidateSteamID($steamid)) {

            return false;
        }

        if($this->is3($steamid)) {
            return $this->SteamID3to32($steamid);
        }
        if($this->is64($steamid)) {
            return $this->SteamID64to32($steamid);
        }
        if($this->is32($steamid)) {
            return $steamid;
        }

        return false;
    }
}
Проверяем!


Добавляем стиль CSS
Заходим в Админ центр сайта, переходим в Редактор шаблонов в окне Стили шаблона standart, открываем файл mystyles.css.
Добавляем туда скрипт.
CSS:
html {
  height: 100%;
  font: 62.5%/1 "Lucida Sans Unicode","Lucida Grande",Verdana,Arial,Helvetica,sans-serif;
}

.time_slaid {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#wrapper_zvez {
  text-align: center;
  color: #000;
  font-weight: bold;
  font-size: 2em;
}

span_3d {
  text-shadow: -0.06em 0 red,  0.06em 0 cyan;
  letter-spacing: 0.08em;
}

p {
  margin: 0;
}

#stars span_3d {
  display: inline-block;
  transform: scale(1);
  transition: transform 2s cubic-bezier(0, 1, 0, 1);
}
#stars span_3d:hover {
  cursor: crosshair;
  transform: scale(1.3);
  transition: transform .2s cubic-bezier(0, 0.75, 0, 1);
}
#stars span_3d:active {
  text-shadow: none;
}

#stars span_3d:nth-child(1), #stars span_3d:nth-child(5) { font-size: 0.9em; animation-delay: 0.2s; }
#stars span_3d:nth-child(2), #stars span_3d:nth-child(4) { font-size: 1.5em; animation-delay: 0.1s; }
#stars span_3d:nth-child(3) { font-size: 2.4em; animation-delay: 0s; }

#stars span_3d { animation: stars-animation 3s 50 ease-in-out; }

@-webkit-keyframes stars-animation {
  0% { transform: scale(1); }
  90% { transform: scale(1); }
  95% { transform: scale(1.3); }
  100% { transform: scale(1); }
}

#stars:hover span_3d {
  animation: none;
}

#title {
  font-family: Helvetica, Geneva, sans-serif;
}
#title:focus {
  outline: none;
}
#title span_3d {
  vertical-align: middle;
  line-height: 3.5em;
  transition: font-size 2s cubic-bezier(0, 1, 0, 1);
}
#title span_3d:hover {
  font-size: 1.2em;
  line-height: 1em;
  transition: font-size .2s cubic-bezier(0, 0.75, 0, 1);
}
#title span_3d:active {
  font-size: 2em;
  text-shadow: none;
}
#title span_3d::selection {
  background-color: red;
}

#slogan { font-size: 1.25em; }
#slogan span_3d:active { text-shadow: none; }

#meta {
  color: #777;
  font-size: 0.7em;
  line-height: 1.6em;
  text-align: center;
  text-shadow: rgba(255,255,255,0.5) 0 1px 0;
  margin: 30px;
}
#meta strong { font-weight: bold; color: #000; }
#meta p:first-child { margin-bottom: 20px; }
#meta a { text-decoration: none; color: #7276ff; }
#meta a:hover { color: rgba(114,118,255,0.5); }
Сохраняем.


Продолжение в нижнем сообщении
 

sania886

Пользователь
Вписываем слайдер
В Редакторе шаблонов, в окне Файлы шаблона standart, открываем папку index, переходим в файл body.tpl.
Находим строку с текстом <div id="main-slider" class="carousel slide" data-ride="carousel">

Выделяем её до закрытия </div> (после </div> идет пустая строка).
Меняем на ...
HTML:
<div id="main-slider" class="carousel slide" data-ride="carousel">
        <div class="carousel-inner">
        <?php $steamid = $user->steam_id;
        $gametime = $user->game_time;
        $month = floor($gametime/2419200);
        $sec = $gametime - ($month *2419200);
        $week = floor($sec/604800);
        $sec = $sec - ($week*604800);
        $days = floor($sec/86400);
        $sec = $sec - ($days*86400);
        $hour = floor($sec/3600);
        $sec = $sec - ($hour*3600);
        $min = floor($sec/60);
        $sec = $sec - ($min*60);?>
            {for($i=0;$i < count($slider);$i++)}
                <div class="carousel-item {if($i==0)}active{/if}">
                    {if(($slider[$i]['slaid'])==1)}
                        <img class="d-block w-100" src="{{$slider[$i]['image']}}">
                        <div class="carousel-caption">
                            <div class="time_slaid">
                                <div id="wrapper_zvez">
                                    <p id="stars"><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d></p>
                                    {if (!(is_auth()))}
                                        <p id="title" contenteditable="true" spellcheck="false"><span_3d>Получай </span_3d><span_3d>админку </span_3d><span_3d>за </span_3d><span_3d>время </span_3d><span_3d>на  </span_3d><span_3d>сервере</span_3d></p>
                                        <button class="btn btn-outline-primary" data-toggle="modal" data-target="#registration">Зарегестрироватся</button>
                                    {else}
                                        {if ($steamid == "0")}
                                            <p id="title" contenteditable="true" spellcheck="false"><span_3d>Укажите </span_3d><span_3d>STEAM </span_3d><span_3d>ID</span_3d></p>
                                            <p id="slogan"><span_3d><a href="http://igra-hp.com/settings">Перейти к настройкам</a></span_3d></p>
                                        {else}
                                            <p id="slogan"><span_3d>Провёл на серверах проекта</span_3d></p>
                                            <p id="title" contenteditable="true" spellcheck="false">
                                            {if ($gametime == 0)}
                                                <span_3d>Вы еще не играли</span_3d>
                                            {else}
                                                {if ($month >= 1)} <span_3d>{{$month}} Мес.</span_3d> {/if}
                                                {if ($week >= 1)} <span_3d>{{$week}} Нед.</span_3d> {/if}
                                                {if ($days >= 1)} <span_3d>{{$days}} Дн.</span_3d> {/if}
                                                {if ($hour >= 1)} <span_3d>{{$hour}} Час.</span_3d> {/if}
                                                {if ($min >= 1)} <span_3d>{{$min}} Мин.</span_3d> {/if}
                                                {if ($sec >= 1)} <span_3d>{{$sec}} Сек.</span_3d> {/if}
                                                {/if}
                                            </p>
                                            <div id="meta">
                                                Узнать больше <a href="http://igra-hp.com/game_time"><img src="http://igra-hp.com/photo/icons83415.png" alt="3D Glasses" />Перейти</a>
                                            </div>
                                        {/if}
                                    {/if}
                                </div>
                            </div>
                        </div>
                    {else}
                        <img class="d-block w-100" src="{{$slider[$i]['image']}}">
                        <div class="carousel-caption">
                            <h1>
                                {if(!empty($slider[$i]['link']))}<a href="{{$slider[$i]['link']}}" target="_blank">{/if}
                                {{$slider[$i]['title']}}
                                {if(!empty($slider[$i]['link']))}</a>{/if}
                            </h1>
                            <p class="d-none d-lg-block">{{$slider[$i]['content']}}</p>
                            {if(($slider[$i]['time'])==1)}
                            {/if}
                            {if(!empty($slider[$i]['link']))}
                                <a href="{{$slider[$i]['link']}}" class="px-4 btn btn-primary d-none d-lg-inline-block" target="_blank">Подробнее</a>
                            {/if}
                        </div>
                    {/if}
                </div>
            {/for}
        </div>
        <a class="carousel-control-prev" href="#main-slider" role="button" data-slide="prev">
            <span class="carousel-control-prev-icon" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
        </a>
        <a class="carousel-control-next" href="#main-slider" role="button" data-slide="next">
            <span class="carousel-control-next-icon" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
        </a>
    </div>
Сохраняем

Продолжение в нижнем сообщении
 
Последнее редактирование:

sania886

Пользователь
Переходим в папку home, открываем файл index.tpl.
Находим строку с текстом <div id="main-slider" class="carousel slide" data-ride="carousel">

Выделяем её до закрытия </div> (после </div> идет пустая строка).
Меняем на ...
HTML:
<div id="main-slider" class="carousel slide" data-ride="carousel">
        <div class="carousel-inner">
        <?php $steamid = $user->steam_id;
        $gametime = $user->game_time;
        $month = floor($gametime/2419200);
        $sec = $gametime - ($month *2419200);
        $week = floor($sec/604800);
        $sec = $sec - ($week*604800);
        $days = floor($sec/86400);
        $sec = $sec - ($days*86400);
        $hour = floor($sec/3600);
        $sec = $sec - ($hour*3600);
        $min = floor($sec/60);
        $sec = $sec - ($min*60);?>
            {for($i=0;$i < count($slider);$i++)}
                <div class="carousel-item {if($i==0)}active{/if}">
                    {if(($slider[$i]['slaid'])==1)}
                        <img class="d-block w-100" src="{{$slider[$i]['image']}}">
                        <div class="carousel-caption">
                            <div class="time_slaid">
                                <div id="wrapper_zvez">
                                    <p id="stars"><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d><span_3d>&#9733;</span_3d></p>
                                    {if (!(is_auth()))}
                                        <p id="title" contenteditable="true" spellcheck="false"><span_3d>Получай </span_3d><span_3d>админку </span_3d><span_3d>за </span_3d><span_3d>время </span_3d><span_3d>на  </span_3d><span_3d>сервере</span_3d></p>
                                        <button class="btn btn-outline-primary" data-toggle="modal" data-target="#registration">Зарегестрироватся</button>
                                    {else}
                                        {if ($steamid == "0")}
                                            <p id="title" contenteditable="true" spellcheck="false"><span_3d>Укажите </span_3d><span_3d>STEAM </span_3d><span_3d>ID</span_3d></p>
                                            <p id="slogan"><span_3d><a href="http://igra-hp.com/settings">Перейти к настройкам</a></span_3d></p>
                                        {else}
                                            <p id="slogan"><span_3d>Провёл на серверах проекта</span_3d></p>
                                            <p id="title" contenteditable="true" spellcheck="false">
                                            {if ($gametime == 0)}
                                                <span_3d>Вы еще не играли</span_3d>
                                            {else}
                                                {if ($month >= 1)} <span_3d>{{$month}} Мес.</span_3d> {/if}
                                                {if ($week >= 1)} <span_3d>{{$week}} Нед.</span_3d> {/if}
                                                {if ($days >= 1)} <span_3d>{{$days}} Дн.</span_3d> {/if}
                                                {if ($hour >= 1)} <span_3d>{{$hour}} Час.</span_3d> {/if}
                                                {if ($min >= 1)} <span_3d>{{$min}} Мин.</span_3d> {/if}
                                                {if ($sec >= 1)} <span_3d>{{$sec}} Сек.</span_3d> {/if}
                                                {/if}
                                            </p>
                                            <div id="meta">
                                                Узнать больше <a href="http://igra-hp.com/game_time"><img src="http://igra-hp.com/photo/icons83415.png" alt="3D Glasses" />Перейти</a>
                                            </div>
                                        {/if}
                                    {/if}
                                </div>
                            </div>
                        </div>
                    {else}
                        <img class="d-block w-100" src="{{$slider[$i]['image']}}">
                        <div class="carousel-caption">
                            <h1>
                                {if(!empty($slider[$i]['link']))}<a href="{{$slider[$i]['link']}}" target="_blank">{/if}
                                {{$slider[$i]['title']}}
                                {if(!empty($slider[$i]['link']))}</a>{/if}
                            </h1>
                            <p class="d-none d-lg-block">{{$slider[$i]['content']}}</p>
                            {if(($slider[$i]['time'])==1)}
                            {/if}
                            {if(!empty($slider[$i]['link']))}
                                <a href="{{$slider[$i]['link']}}" class="px-4 btn btn-primary d-none d-lg-inline-block" target="_blank">Подробнее</a>
                            {/if}
                        </div>
                    {/if}
                </div>
            {/for}
        </div>
        <a class="carousel-control-prev" href="#main-slider" role="button" data-slide="prev">
            <span class="carousel-control-prev-icon" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
        </a>
        <a class="carousel-control-next" href="#main-slider" role="button" data-slide="next">
            <span class="carousel-control-next-icon" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
        </a>
    </div>
Сохраняем


Настраиваем config слайдера

В Редакторе шаблонов, в окне Файлы шаблона standart, открываем файл config.tpl.
Заменяем данные о слайдере на
Код:
// Слайдер (850x360)
// -----------------
// 1й слайд
{var:slider[0]['slaid']}1{/var}
{var:slider[0]['image']} http://igra-hp.com/templates/standart/img/setka.jpg {/var}
// 2й слайд
{var:slider[1]['title']} Магазин - продажа услуг в онлайн режиме. {/var}
{var:slider[1]['content']} В магазине Вы можете оплатить любую из представленных услуг и сразу же воспользоваться ею на игровом сервере. {/var}
{var:slider[1]['image']} ../templates/standart/img/slide-1.jpg {/var}
{var:slider[1]['link']} ../store {/var}
// 3й слайд
{var:slider[2]['title']} Забанили, но Вы считаете себя невиновным? {/var}
{var:slider[2]['content']} Раздел разбана поможет Вам обжаловать несправедливый бан. Оформите заявку, приложите скриншоты и ожидайте разбана, если Вы невиновны. {/var}
{var:slider[2]['image']} ../templates/standart/img/slide-2.jpg {/var}
{var:slider[2]['link']} ../bans/ {/var}
// 4й слайд
{var:slider[3]['title']} Есть вопрос? Обратитесь к администрации. {/var}
{var:slider[3]['content']} Если у Вас имеются вопросы, Вы можете открыть тикет в разделе поддержки и своевременно получить ответ администрации на него. {/var}
{var:slider[3]['image']} ../templates/standart/img/slide-3.jpg {/var}
{var:slider[3]['link']} ../support/ {/var}
Сохраняем
Если у Вас, уже имеются изменения в данных пунктах, перенесите их.

Создаем станицу для подробной информации
В меню Админ центра, открываем пункт Редактор страниц,переходим в Добавить страницу.
Устанавливаем настройки страницы.
  • Приватность - Только авторизованным
  • Адрес - game_time
  • Заголовок - Время на серверах
  • Описание страницы - Проведённое время на серверах проекта
  • Ключевые слова - Время, cs, game_time
  • Меняем изображение
    Посмотреть вложение 556
Контент страницы придумываем сами.
Сохраняем



На этом настройка слайдера закончена.
 
Последнее редактирование:

sania886

Пользователь
Думал, что бы быстрее и легче сделать, что бы использовать игрокам свое время (что бы это были не только цифры). Самое простое, упало в голову, это, по достижению определенного времени, выдавались деньги.
Если время = 10000 сек, то выдается 100 руб
Если время = 50000 сек, то выдается 200 руб
И тд
 

eto no name

Участник
Все как ты сделал , нечего нету 😟
Подскажите в чем проблема может быть ?
 
Сверху