— луна сегодня такая красивая
— да, это моя бывшая, кстати
я так понимаю, что помимо темной и светлой версии нам сверстали версию для слепых, иначе как нас нашла тоф?
- я пытаюсь насморк вылечить, так что давай не надо
- мне кажется это типа челлендж для яоши, типа как мы пытаемся проходить сложные левелы, а она контрит твои попытки отправиться к праотцам
- забавно, что первый день на форуме я думал, что мат социально неприемлем
- в теме под названием "пиздабольская"?
играя в мафию я каждый раз хожу по краю нервного алкоголизма
- бля обожаю вафли
- бля мне кстати надо учиться ездить на скейте
- я хотела у каких-нибудь друзей взять ребенка
- у меня вопрос: если мы из цирка переехали в дурку - это эволюция или деградация? или мы перестали себя обманывать
- это то, где мы должны быть
- значит, перестали себя обманывать
- ясно это только Блэйд лох ебаный
- не везет в дайсах, повезет быть ебаным
какие вы хорошие, я не могу. вас надо вместе принимать, а не порционно. по отдельности кажетесь адекватными типа, капец.
- огонек, ты придёшь на нашу свадьбу?
- у меня аллергия на свадьбы
- у него аллергия на свадьбы
ссылки в профиле голубеют, как и я при виде нового мужика в хонкае
я вижу ребенка с рюкзаком с динозавром, тебе отобрать?
я требую чтобы меня называли медсеслесарем и буду голосовать против каждого, кто так не делает. скриньте этот твит
девочки найдите того кто спасёт вашу жопу от изгнания в бункере и будьте счастливы
    Постописцы
    Активисты
    Лучший пост — Я сейчас полицию вызову. Женский голос предельно чётко прорывается сквозь схлынувшую толщу воды. Уолкер растерянно моргает от внезапно вернувшей себе ясность реальности. Chris Walker
    нужны в игру
    Лучший эпизод To Ashes and Blood Garret & Neria

    design © damask.beresklet

    Информация о пользователе

    Привет, Гость! Войдите или зарегистрируйтесь.


    Вы здесь » design © damask.beresklet » Тестовый форум » Тестовое сообщение


    Тестовое сообщение

    Сообщений 241 страница 244 из 244

    241

    [html]<!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Сообщение</title>
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }

            body {
                min-height: 100vh;
                display: flex;
                justify-content: center;
                align-items: center;
                background: #e0e0e0;
                font-family: Arial, sans-serif;
            }

            .message-block {
                width: 520px;
                background: #c9d0af;
                padding: 10px 10px 10px 10px;
                display: flex;
                flex-direction: column;
                gap: 10px;
            }

            .image-block {
                width: 500px;
                height: auto;
                display: flex;
                justify-content: center;
                align-items: center;
            }

            .image-block img {
                width: 100%;
                height: auto;
                display: block;
            }

            .image-block .text-overlay {
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                background: #f4f3f2;
                padding: 4px 24px;
                color: #464646;
                font-size: 10px;
                font-weight: bold;
                text-align: center;
                text-transform: lowercase;
                white-space: nowrap;
            }

            .image-wrapper {
                position: relative;
                width: 100%;
            }

            .text-block {
                width: 100%;
                background: #f4f3f2;
                color: #464646;
                font-size: 10px;
                line-height: 1.6;
                padding: 15px 15px;
                text-align: justify;
            }

            .text-block p {
                margin: 0 0 12px 0;
            }

            .text-block p:last-child {
                margin-bottom: 0;
            }

            .wrapper {
                display: flex;
                justify-content: center;
                align-items: center;
                min-height: 100vh;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <div class="message-block">

                <!-- Верхний блок: картинка 500px -->
                <div class="image-block">
                    <div class="image-wrapper">
                        <img src="https://upforme.ru/uploads/001c/b1/c6/8/631250.png" alt="Изображение">
                        <div class="text-overlay">аватарный флешмоб "овцы от кутюр"</div>
                    </div>
                </div>

                <!-- Нижний блок: текст на белом фоне -->
                <div class="text-block">
    надеваем аватарки на овечью тематику! флешмоб продлится 2 недели, по итогам будет начисляться шерсть. допустимо не носить в игровых разделах, пользоваться маской, но в случае маски все сообщения оставленные в неигровых разделах должны содержать "овечью" маску - иначе счетчик сбрасывается. <b>отписываемся в теме для старта флешмоба.</b> шерсть засчитывается на основной профиль <b>за каждого твинка</b>, участвующего в флешмобе.<br><br>
    <b>награда за участие:</b><br>надеть аватар - 5 шерсти<br>носить аватар 1 неделю - 10 шерсти<br>носить аватар весь период флешмоба - 15 шерсти
                </div>

            </div>
        </div>
    </body>
    </html>[/html]

    0

    242

    1 профиль - 1 лот (можно забирать за твинков)
    каждое участие в лотерее дает по 10 шерсти для гонки "стрижка овец"

    [html]<!-- включено по умолчанию -->
    <div id="nota-lottery" class="nota-lottery" data-used="здесь указываются номера занятых лотов через запятую"></div>
    <script>
    (() => {
      const ROOT_ID = 'nota-lottery';
      const root = document.getElementById(ROOT_ID);
      if (!root) return;

      // ==== �� Настройки (меняй под себя) ====
      const TICKET_COUNT = 75;     // общее количество билетов
      const COLUMNS = 15;          // количество колонок в ряду
      const GRID_WIDTH = '970px';  // ЖЁСТКАЯ ширина сетки (пример: '900px', '100%', 'min(100%, 920px)')

      // Полные URL изображений (можно указывать с любых хостингов)
      const variantImages = [
        'https://upforme.ru/uploads/001c/b1/c6/8/891430.png'
      ];
      const usedImage = 'https://upforme.ru/uploads/001c/b1/c6/8/924985.png';

      const T = { gridCls:'nl-grid', ticketCls:'nl-ticket', numCls:'nl-num', usedCls:'used' };

      // ==== Стили ====
      (function injectStyles(){
        if (document.getElementById('nl-core-styles')) return;
        const css = `
          #${ROOT_ID}.{grid}{
            display:grid;
            grid-template-columns:repeat(${COLUMNS},minmax(0,1fr));
            gap:8px;
            width:100%;
            max-width:${GRID_WIDTH};
          }
          #${ROOT_ID} .${T.ticketCls}{
            display:flex;
            flex-direction:column;
            align-items:center;
            gap:4px;
          }
          #${ROOT_ID} .${T.ticketCls} img{
            width:100%;
            height:auto;
            display:block;
            user-select:none;
            -webkit-user-drag:none;
            opacity:0.7;
          }
          #${ROOT_ID} .${T.numCls}{
            display:block;
            font-size:12px;
            line-height:1;
            text-align:center;
          }
          #${ROOT_ID} .${T.ticketCls}.${T.usedCls} img{
            filter:grayscale(100%);
            opacity:.5;
          }
        `.replace('{grid}', T.gridCls);
        const st = document.createElement('style');
        st.id = 'nl-core-styles';
        st.textContent = css;
        document.head.appendChild(st);
      })();

      // ==== Утилиты ====
      const parseUsed = (str) => new Set(
        (str||'').split(/[,\s]+/).map(s=>s.trim()).filter(Boolean)
          .map(x=>parseInt(x,10)).filter(n=>Number.isInteger(n)&&n>=1&&n<=TICKET_COUNT)
      );
      const serializeUsed = (set) => Array.from(set).sort((a,b)=>a-b).join(', ');

      // Детерминированный выбор варианта по номеру
      const pickVariantIndex = (n) => {
        const len = Math.max(variantImages.length, 1);
        let x = (n * 9301 + 49297) % 233280;
        return x % len;
      };

      // ==== Построение ====
      root.classList.add(T.gridCls);
      const build = () => {
        root.innerHTML = '';
        const usedSet = parseUsed(root.getAttribute('data-used')||'');
        const frag = document.createDocumentFragment();
        for (let i = 1; i <= TICKET_COUNT; i++){
          const wrap = document.createElement('div');
          wrap.className = T.ticketCls;
          wrap.dataset.id = String(i);

          const img = document.createElement('img');
          if (usedSet.has(i)){
            img.src = usedImage;
            wrap.classList.add(T.usedCls);
          } else {
            img.src = variantImages[pickVariantIndex(i)];
          }
          img.alt = `#${i}`;

          const num = document.createElement('span');
          num.className = T.numCls;
          num.textContent = `#${i}`;

          wrap.appendChild(img);
          wrap.appendChild(num);
          frag.appendChild(wrap);
        }
        root.appendChild(frag);
      };
      build();

      // ==== API ====
      const API = {
        getUsed: ()=>Array.from(parseUsed(root.getAttribute('data-used')||'')).sort((a,b)=>a-b),
        setUsed: (val)=>{
          let set;
          if (val instanceof Set) set=val;
          else if (Array.isArray(val)) set=new Set(val.map(n=>parseInt(n,10)));
          else set=parseUsed(String(val||''));

          root.setAttribute('data-used', serializeUsed(set));
          root.querySelectorAll('.'+T.ticketCls).forEach(div=>{
            const id=parseInt(div.dataset.id,10);
            const img=div.querySelector('img');
            if(!img) return;
            if(set.has(id)){ div.classList.add(T.usedCls); img.src = usedImage; }
            else{ div.classList.remove(T.usedCls); img.src = variantImages[pickVariantIndex(id)]; }
          });
          return set;
        },
        toggle:(id)=>{
          const set=new Set(API.getUsed());
          id=parseInt(id,10);
          if(!Number.isInteger(id)||id<1||id>TICKET_COUNT) return set;
          if(set.has(id)) set.delete(id); else set.add(id);
          return API.setUsed(set);
        },
        serialize:()=>serializeUsed(new Set(API.getUsed()))
      };
      window.NL = API;
    })();
    </script>[/html]

    [hideprofile]

    0

    243

    [hideprofile][html]<!-- ===== ДАННЫЕ УЧАСТНИКОВ ГОНКИ ===== -->
    <!-- РЕДАКТИРУЙТЕ ТОЛЬКО ЭТУ ЧАСТЬ -->
    <div id="owPlayers" style="display:none;">
    [
        { nick: "Шерстяной", score: 42 },
        { nick: "Стригаль", score: 38 },
        { nick: "Клубок", score: 35 },
        { nick: "Пастух", score: 29 },
        { nick: "Баран", score: 24 },
        { nick: "Быстрый", score: 18 },
        { nick: "Страж", score: 15 },
        { nick: "Меткий", score: 12 },
        { nick: "Тень", score: 8 },
        { nick: "Вихрь", score: 5 }
    ]
    </div>
    <!-- ===== КОНЕЦ ДАННЫХ ===== -->

    <script>
    setTimeout(function() {
        try {
            const listEl = document.querySelector('.ow-list') || document.getElementById('owList');
            if (!listEl) return;

            // Получаем данные из скрытого блока
            const dataEl = document.getElementById('owPlayers');
            if (!dataEl) {
                console.error('Блок с данными #owPlayers не найден');
                return;
            }

            // Парсим JSON из содержимого блока
            let sheepPlayers;
            try {
                sheepPlayers = JSON.parse(dataEl.textContent.trim());
            } catch(e) {
                console.error('Ошибка парсинга данных:', e);
                return;
            }

            if (!Array.isArray(sheepPlayers) || sheepPlayers.length === 0) {
                console.error('Нет данных об участниках');
                return;
            }

            // Сортировка и максимальный балл
            const sorted = [...sheepPlayers].sort((a, b) => b.score - a.score);
            const maxScore = sorted[0]?.score || 1;

            listEl.innerHTML = '';

            sorted.forEach((player, index) => {
                const rank = index + 1;
                const isTop1 = rank === 1;
                const isTop2 = rank === 2;
                const isTop3 = rank === 3;

                let percent = maxScore > 0 ? (player.score / maxScore) * 100 : 0;
                if (percent < 3 && player.score > 0) percent = 3;
                percent = Math.min(100, Math.round(percent));

                const item = document.createElement('div');
                item.className = 'ow-item';
                if (isTop1) item.classList.add('ow-top1');
                if (isTop2) item.classList.add('ow-top2');
                if (isTop3) item.classList.add('ow-top3');

                const rankDiv = document.createElement('div');
                rankDiv.className = 'ow-rank';
                rankDiv.textContent = rank;

                const infoDiv = document.createElement('div');
                infoDiv.className = 'ow-info';

                const nickSpan = document.createElement('span');
                nickSpan.className = 'ow-nick';
                nickSpan.innerHTML = player.nick;
                infoDiv.appendChild(nickSpan);

                const scoreWrap = document.createElement('div');
                scoreWrap.className = 'ow-score';

                const scoreVal = document.createElement('span');
                scoreVal.className = 'ow-val';
                scoreVal.textContent = player.score;

                const scoreLbl = document.createElement('span');
                scoreLbl.className = 'ow-lbl';
                scoreLbl.innerHTML = 'шт';

                scoreWrap.appendChild(scoreVal);
                scoreWrap.appendChild(scoreLbl);

                const progressWrap = document.createElement('div');
                progressWrap.className = 'ow-progress';

                const progressFill = document.createElement('div');
                progressFill.className = 'ow-fill';
                progressFill.style.width = '0%';
                progressFill.dataset.targetWidth = percent + '%';

                progressWrap.appendChild(progressFill);

                const leaderBadge = document.createElement('span');
                leaderBadge.className = 'ow-badge';
                leaderBadge.innerHTML = isTop1 ? '🥇' : isTop2 ? '🥈' : isTop3 ? '🥉' : '';

                item.appendChild(rankDiv);
                item.appendChild(infoDiv);
                item.appendChild(scoreWrap);
                item.appendChild(progressWrap);
                item.appendChild(leaderBadge);

                listEl.appendChild(item);
            });

            setTimeout(() => {
                document.querySelectorAll('.ow-fill').forEach((el) => {
                    const target = el.dataset.targetWidth;
                    if (target) el.style.width = target;
                });
            }, 100);

        } catch(e) {
            console.error('Ошибка в скрипте лидеров:', e);
        }
    }, 300);
    </script> [/html]

    0

    244

    https://upforme.ru/uploads/0017/24/ab/2/115069.png
    https://upforme.ru/uploads/0017/24/ab/2/359169.png

    0


    Вы здесь » design © damask.beresklet » Тестовый форум » Тестовое сообщение


    Рейтинг форумов | Создать форум бесплатно