Здесь делается вжух 🪄

test

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

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


Вы здесь » test » Тестовый форум » кубики


кубики

Сообщений 1 страница 30 из 47

1

.

0

2

[html]<div id="lotto-card"></div>

<script>
function generateCard() {
    let card = Array.from({length: 3}, () => Array(9).fill(''));
    let ranges = [
        [1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]
    ];

    for (let col = 0; col < 9; col++) {
        let nums = [];
        while (nums.length < 3) {
            let n = Math.floor(Math.random() * (ranges[col][1] - ranges[col][0] + 1)) + ranges[col][0];
            if (!nums.includes(n)) nums.push(n);
        }
        nums.sort((a,b)=>a-b);
        for (let row = 0; row < 3; row++) {
            card[row][col] = nums[row];
        }
    }

    // Убираем по 4 числа в каждой строке, чтобы остались только 5
    for (let row = 0; row < 3; row++) {
        let indices = Array.from({length:9}, (_,i)=>i);
        indices.sort(()=>0.5-Math.random());
        for (let i = 0; i < 4; i++) card[row][indices[i]] = '';
    }

    return card;
}

function renderCard(card) {
    let html = '<table border="1" cellspacing="0" cellpadding="5">';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) {
            html += `<td style="width:30px; text-align:center">${num}</td>`;
        }
        html += '</tr>';
    }
    html += '</table>';
    document.getElementById('lotto-card').innerHTML = html;
}

let card = generateCard();
renderCard(card);
</script>[/html]

0

3

[html]<h3>🎲 Генератор ЗЛА</h3>
<button id="makeCard">Сгенерировать карточку</button>
<textarea id="result" style="width:100%;height:200px;"></textarea>

<script>
document.getElementById('makeCard').onclick = function() {
    function generateCard() {
        let card = Array.from({length: 3}, () => Array(9).fill(''));
        let ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
        for (let col=0; col<9; col++) {
            let nums = [];
            while (nums.length<3) {
                let n = Math.floor(Math.random()*(ranges[col][1]-ranges[col][0]+1))+ranges[col][0];
                if(!nums.includes(n)) nums.push(n);
            }
            nums.sort((a,b)=>a-b);
            for (let row=0; row<3; row++) card[row][col] = nums[row];
        }
        for (let row=0; row<3; row++) {
            let indices = Array.from({length:9},(_,i)=>i).sort(()=>0.5-Math.random());
            for (let i=0;i<4;i++) card[row][indices[i]]='';
        }
        return card;
    }
    let card = generateCard();
    let html = '<div class="lotto-card"><table border="1" cellspacing="0" cellpadding="5" style="border-collapse:collapse;text-align:center;">';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) {
            html += `<td>${num?num:' '}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';
    document.getElementById('result').value = html;
};
</script>[/html]

0

4

[html]<div class="lotto-card"><table border="1" cellspacing="0" cellpadding="5" style="border-collapse:collapse;text-align:center;"><tr><td> </td><td> </td><td>21</td><td>35</td><td>41</td><td>53</td><td> </td><td>72</td><td> </td></tr><tr><td>9</td><td> </td><td>22</td><td> </td><td>44</td><td>54</td><td>63</td><td> </td><td> </td></tr><tr><td>10</td><td> </td><td> </td><td>38</td><td> </td><td>57</td><td>69</td><td> </td><td>90</td></tr></table></div>[/html]

0

5

[html]<h3>🎲 Генератор карточки Русского лото</h3>

<button id="makeCard">Сгенерировать карточку</button>
<button id="copyCard" disabled>Скопировать код для форума</button>
<br><br>

<textarea id="result" style="width:100%;height:200px;" readonly></textarea>

<script>
const makeBtn = document.getElementById('makeCard');
const copyBtn = document.getElementById('copyCard');
const resultArea = document.getElementById('result');

makeBtn.onclick = function() {
    function generateCard() {
        let card = Array.from({length: 3}, () => Array(9).fill(''));
        let ranges = [
            [1,10],[11,20],[21,30],[31,40],
            [41,50],[51,60],[61,70],[71,80],[81,90]
        ];
        for (let col = 0; col < 9; col++) {
            let nums = [];
            while (nums.length < 3) {
                let n = Math.floor(Math.random() * (ranges[col][1] - ranges[col][0] + 1)) + ranges[col][0];
                if (!nums.includes(n)) nums.push(n);
            }
            nums.sort((a,b)=>a-b);
            for (let row = 0; row < 3; row++) card[row][col] = nums[row];
        }
        // убираем по 4 числа в каждой строке
        for (let row = 0; row < 3; row++) {
            let indices = Array.from({length:9}, (_,i)=>i).sort(()=>0.5-Math.random());
            for (let i = 0; i < 4; i++) card[row][indices[i]] = '';
        }
        return card;
    }

    let card = generateCard();
    let html = '<div class="lotto-card"><table border="1" cellspacing="0" cellpadding="5" style="border-collapse:collapse;text-align:center;">';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) html += `<td>${num ? num : ' '}</td>`;
        html += '</tr>';
    }
    html += '</table></div>';

    let bbcode = `[html]\n${html}\n[/html]`;
    resultArea.value = bbcode;
    copyBtn.disabled = false;
};

copyBtn.onclick = function() {
    resultArea.select();
    document.execCommand('copy');
    copyBtn.textContent = '✅ Скопировано!';
    setTimeout(()=>copyBtn.textContent='Скопировать код для форума',1500);
};
</script>[/html]

0

6

[signed-dice data="eyJudW1zIjpbNjYsNjMsODEsOCwzMiwyNCwxMCw1OSw4MywxOCwyNywzMSwzMCw2Miw3MV0sInRvdGFsIjo5MCwidHMiOjE3NjA1NjA4NzUwNzZ9" sig="1fYjfWshHYNypQrsZ31mmcnfgHHwK89yjJFhNJ6w-mA"]

0

7

[html]<h3>🎲 Генератор карточки Русское лото</h3>

<button id="makeCard">Сгенерировать карточку</button>
<button id="copyCard" disabled>Скопировать код для форума</button>
<br><br>

<textarea id="result" style="width:100%;height:180px;" readonly placeholder="После генерации здесь появится готовый код..."></textarea>

<div id="preview" style="margin-top:10px;"></div>

<style>
.lotto-card table {
  border-collapse: collapse;
  text-align: center;
  margin-top: 10px;
}
.lotto-card td {
  width: 35px;
  height: 35px;
  border: 2px solid #333;
  vertical-align: middle;
  font-weight: bold;
  font-size: 16px;
}
</style>

<script>
var makeBtn = document.getElementById('makeCard');
var copyBtn = document.getElementById('copyCard');
var resultArea = document.getElementById('result');
var preview = document.getElementById('preview');

makeBtn.onclick = function() {
    // создаём сетку 3х9
    var card = [[],[],[]];
    var ranges = [
        [1,10],[11,20],[21,30],[31,40],[41,50],
        [51,60],[61,70],[71,80],[81,90]
    ];
    for (var c=0;c<9;c++) {
        var nums=[];
        while(nums.length<3){
            var n=Math.floor(Math.random()*(ranges[c][1]-ranges[c][0]+1))+ranges[c][0];
            if(nums.indexOf(n)===-1) nums.push(n);
        }
        nums.sort(function(a,b){return a-b});
        for(var r=0;r<3;r++) card[r][c]=nums[r];
    }
    // убираем по 4 числа в строке
    for (var r=0;r<3;r++){
        var inds=[0,1,2,3,4,5,6,7,8].sort(()=>Math.random()-0.5);
        for (var i=0;i<4;i++) card[r][inds[i]]='';
    }

    // генерируем HTML
    var html = '<div class="lotto-card"><table>';
    for (var r=0;r<3;r++){
        html += '<tr>';
        for (var c=0;c<9;c++){
            html += '<td>' + (card[r][c]||'') + '</td>';
        }
        html += '</tr>';
    }
    html += '</table></div>';

    // вставляем результат и превью
    resultArea.value = "[html]\n" + html + "\n[/html]";
    preview.innerHTML = html;
    copyBtn.disabled = false;
};

copyBtn.onclick = function() {
    resultArea.select();
    document.execCommand('copy');
    copyBtn.innerText = '✅ Скопировано!';
    setTimeout(function(){copyBtn.innerText='Скопировать код для форума';}, 1500);
};
</script>[/html]

0

8

[html]
<h3>🎲 Генератор ЗЛА</h3>
<button id="makeCard">Сгенерировать карточку</button>
<textarea id="result" style="width:100%;height:200px;"></textarea>

<div id="preview" style="margin-top:10px;"></div>

<style>
.lotto-card table {
    border-collapse: collapse;
    text-align: center;
}
.lotto-card td {
    width: 35px;
    height: 35px;
    border: 2px solid #000; /* толстая видимая граница */
    vertical-align: middle;
    font-weight: bold;
    font-size: 16px;
}
</style>

<script>
document.getElementById('makeCard').onclick = function() {
    function generateCard() {
        let card = Array.from({length: 3}, () => Array(9).fill(''));
        let ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
        for (let col=0; col<9; col++) {
            let nums = [];
            while (nums.length<3) {
                let n = Math.floor(Math.random()*(ranges[col][1]-ranges[col][0]+1))+ranges[col][0];
                if(!nums.includes(n)) nums.push(n);
            }
            nums.sort((a,b)=>a-b);
            for (let row=0; row<3; row++) card[row][col] = nums[row];
        }
        for (let row=0; row<3; row++) {
            let indices = Array.from({length:9},(_,i)=>i).sort(()=>0.5-Math.random());
            for (let i=0;i<4;i++) card[row][indices[i]]='';
        }
        return card;
    }

    let card = generateCard();
    let html = '<div class="lotto-card"><table>';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) {
            html += `<td>${num?num:' '}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';

    document.getElementById('result').value = html;
    document.getElementById('preview').innerHTML = html; // показываем превью
};
</script>
[/html]

0

9

[html]<div class="lotto-card"><table><tr><td>4</td><td> </td><td> </td><td> </td><td>44</td><td>52</td><td>62</td><td>75</td><td> </td></tr><tr><td>5</td><td> </td><td> </td><td>37</td><td> </td><td>57</td><td>66</td><td>76</td><td> </td></tr><tr><td>8</td><td>20</td><td> </td><td> </td><td> </td><td> </td><td>69</td><td>79</td><td>89</td></tr></table></div>[/html]

0

10

[html]
<h3>🎲 Генератор ЗЛА — Красивые карточки</h3>
<button id="makeCard">Сгенерировать карточку</button>
<button id="copyCard" disabled>Скопировать код для форума</button>

<textarea id="result" style="width:100%;height:200px;margin-top:10px;" readonly></textarea>

<div id="preview" style="margin-top:10px;"></div>

<style>
.lotto-card table {
    border-collapse: collapse;
    text-align: center;
    border: 3px solid #000; /* рамка вокруг всей карточки */
}
.lotto-card td {
    width: 40px;
    height: 40px;
    border: 2px solid #000; /* границы ячеек */
    vertical-align: middle;
    font-weight: bold;
    font-size: 16px;
    background-color: #f0f0f0; /* цвет пустой ячейки */
}
.lotto-card td.filled {
    background-color: #fff; /* цвет с числом */
}
</style>

<script>
var makeBtn = document.getElementById('makeCard');
var copyBtn = document.getElementById('copyCard');
var resultArea = document.getElementById('result');
var preview = document.getElementById('preview');

makeBtn.onclick = function() {
    // генерируем карточку 3x9
    var card = [[],[],[]];
    var ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
    for (var c=0;c<9;c++) {
        var nums=[];
        while(nums.length<3){
            var n=Math.floor(Math.random()*(ranges[c][1]-ranges[c][0]+1))+ranges[c][0];
            if(nums.indexOf(n)===-1) nums.push(n);
        }
        nums.sort(function(a,b){return a-b});
        for(var r=0;r<3;r++) card[r][c]=nums[r];
    }
    // убираем по 4 числа в строке
    for(var r=0;r<3;r++){
        var inds=[0,1,2,3,4,5,6,7,8].sort(()=>Math.random()-0.5);
        for(var i=0;i<4;i++) card[r][inds[i]]='';
    }

    // создаём HTML карточки с классами
    var html = '<div class="lotto-card"><table>';
    for(var r=0;r<3;r++){
        html += '<tr>';
        for(var c=0;c<9;c++){
            var val = card[r][c];
            var cls = val ? 'filled' : '';
            html += `<td class="${cls}">${val || ''}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';

    // показываем превью
    preview.innerHTML = html;

};
</script>
[/html]

0

11

[html]<h3>🎲 Генератор ЗЛА</h3>
<button id="makeCard">Сгенерировать карточку</button>

<!-- Контейнер для превью карточки -->
<div id="preview" style="margin-top:15px;"></div>

<style>
.lotto-card {
    display: inline-block;
    border: 4px solid #f39c12;
    border-radius: 10px;
    padding: 10px;
    background: linear-gradient(to bottom right, #fff3e0, #ffe0b2);
    box-shadow: 2px 2px 12px rgba(0,0,0,0.2);
}

.lotto-card table {
    border-collapse: collapse;
    text-align: center;
    font-family: 'Arial', sans-serif;
    font-weight: bold;
    font-size: 18px;
}

.lotto-card td {
    width: 40px;
    height: 40px;
    border: 1px solid #f39c12;
    border-radius: 5px;
    background-color: #fff8e1;
}
</style>

<script>
document.getElementById('makeCard').onclick = function() {
    function generateCard() {
        let card = Array.from({length: 3}, () => Array(9).fill(''));
        let ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
        for (let col=0; col<9; col++) {
            let nums = [];
            while (nums.length<3) {
                let n = Math.floor(Math.random()*(ranges[col][1]-ranges[col][0]+1))+ranges[col][0];
                if(!nums.includes(n)) nums.push(n);
            }
            nums.sort((a,b)=>a-b);
            for (let row=0; row<3; row++) card[row][col] = nums[row];
        }
        for (let row=0; row<3; row++) {
            let indices = Array.from({length:9},(_,i)=>i).sort(()=>0.5-Math.random());
            for (let i=0;i<4;i++) card[row][indices[i]]='';
        }
        return card;
    }

    let card = generateCard();
    let html = '<div class="lotto-card"><table>';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) {
            html += `<td>${num?num:' '}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';

    // Вставляем превью в контейнер
    document.getElementById('preview').innerHTML = html;
};
</script>[/html]

0

12

[html]<h3>🎲 Генератор ЗЛА</h3>
<button id="makeCard">Сгенерировать карточку</button>
<button id="copyCard" style="display:none;">📋 Скопировать код карточки</button>

<div id="preview" style="margin-top:15px;"></div>
<p id="message" style="color:green; font-weight:bold; display:none;">✅ Код карточки скопирован!</p>

<style>
.lotto-card {
    display: inline-block;
    border: 4px solid #f39c12;
    border-radius: 10px;
    padding: 10px;
    background: linear-gradient(to bottom right, #fff3e0, #ffe0b2);
    box-shadow: 2px 2px 12px rgba(0,0,0,0.2);
    transition: transform 0.3s ease;
}

.lotto-card:hover {
    transform: scale(1.03);
}

.lotto-card table {
    border-collapse: collapse;
    text-align: center;
    font-family: 'Arial', sans-serif;
    font-weight: bold;
    font-size: 18px;
}

.lotto-card td {
    width: 40px;
    height: 40px;
    border: 1px solid #f39c12;
    border-radius: 5px;
    background-color: #fff8e1;
}

button {
    background: #f39c12;
    border: none;
    color: white;
    padding: 8px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
    transition: 0.3s;
    margin-right: 5px;
}

button:hover {
    background: #e67e22;
}
</style>

<script>
document.getElementById('makeCard').onclick = function() {
    function generateCard() {
        let card = Array.from({length: 3}, () => Array(9).fill(''));
        let ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
        for (let col=0; col<9; col++) {
            let nums = [];
            while (nums.length<3) {
                let n = Math.floor(Math.random()*(ranges[col][1]-ranges[col][0]+1))+ranges[col][0];
                if(!nums.includes(n)) nums.push(n);
            }
            nums.sort((a,b)=>a-b);
            for (let row=0; row<3; row++) card[row][col] = nums[row];
        }
        for (let row=0; row<3; row++) {
            let indices = Array.from({length:9},(_,i)=>i).sort(()=>0.5-Math.random());
            for (let i=0;i<4;i++) card[row][indices[i]]='';
        }
        return card;
    }

    let card = generateCard();
    let html = '<div class="lotto-card"><table>';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) {
            html += `<td>${num?num:' '}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';

    document.getElementById('preview').innerHTML = html;
    document.getElementById('copyCard').style.display = 'inline-block';
    document.getElementById('message').style.display = 'none';

    // Сохраняем HTML для копирования
    document.getElementById('copyCard').onclick = function() {
        let textToCopy = html;
        navigator.clipboard.writeText(textToCopy).then(() => {
            let msg = document.getElementById('message');
            msg.style.display = 'block';
            msg.textContent = '✅ Код карточки скопирован!';
            setTimeout(() => msg.style.display = 'none', 2500);
        });
    };
};
</script>[/html]

0

13

[html]<h3>🎲 Генератор ЗЛА</h3>
<button id="makeCard">Сгенерировать карточку</button>
<button id="showCode" style="display:none;">📋 Показать код карточки</button>

<div id="preview" style="margin-top:15px;"></div>

<div id="codeBox" style="display:none; margin-top:15px;">
    <p><b>Скопируйте этот код и вставьте в сообщение:</b></p>
    <textarea id="codeArea" style="width:100%; height:180px; font-family:monospace;"></textarea>
</div>

<style>
.lotto-card {
    display: inline-block;
    border: 4px solid #f39c12;
    border-radius: 10px;
    padding: 10px;
    background: linear-gradient(to bottom right, #fff3e0, #ffe0b2);
    box-shadow: 2px 2px 12px rgba(0,0,0,0.2);
    transition: transform 0.3s ease;
}
.lotto-card:hover { transform: scale(1.03); }
.lotto-card table {
    border-collapse: collapse;
    text-align: center;
    font-family: 'Arial', sans-serif;
    font-weight: bold;
    font-size: 18px;
}
.lotto-card td {
    width: 40px;
    height: 40px;
    border: 1px solid #f39c12;
    border-radius: 5px;
    background-color: #fff8e1;
}
button {
    background: #f39c12;
    border: none;
    color: white;
    padding: 8px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
    transition: 0.3s;
    margin-right: 5px;
}
button:hover { background: #e67e22; }
</style>

<script>
document.getElementById('makeCard').onclick = function() {
    function generateCard() {
        let card = Array.from({length: 3}, () => Array(9).fill(''));
        let ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
        for (let col=0; col<9; col++) {
            let nums = [];
            while (nums.length<3) {
                let n = Math.floor(Math.random()*(ranges[col][1]-ranges[col][0]+1))+ranges[col][0];
                if(!nums.includes(n)) nums.push(n);
            }
            nums.sort((a,b)=>a-b);
            for (let row=0; row<3; row++) card[row][col] = nums[row];
        }
        for (let row=0; row<3; row++) {
            let indices = Array.from({length:9},(_,i)=>i).sort(()=>0.5-Math.random());
            for (let i=0;i<4;i++) card[row][indices[i]]='';
        }
        return card;
    }

    let card = generateCard();
    let html = '<div class="lotto-card"><table>';
    for (let row of card) {
        html += '<tr>';
        for (let num of row) {
            html += `<td>${num?num:' '}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';

    };
};
</script>[/html]

0

14

[html]<h3>🎲 Генератор ЗЛА</h3>
<button id="makeCard">Сгенерировать карточку</button>
<button id="copyCard" style="display:none;">📋 Скопировать код карточки</button>

<div id="preview" style="margin-top:15px;"></div>
<p id="message" style="color:green; font-weight:bold; display:none;"></p>

<!-- Скрытое текстовое поле для хранения и ручного копирования кода -->
<textarea id="hiddenCardCode" style="width:100%; height:150px; margin-top:15px; display:none; font-family:monospace; white-space:pre; word-wrap:normal; overflow-x:auto; resize:vertical; border:1px solid #ccc; padding:5px; box-sizing:border-box;" readonly></textarea>

<style>
/* Эти стили используются только на странице генератора для предпросмотра карточки.
   Для копирования на форумы генерируется HTML с инлайн-стилями. */
.lotto-card {
    display: inline-block;
    border: 4px solid #f39c12;
    border-radius: 10px;
    padding: 10px;
    background: linear-gradient(to bottom right, #fff3e0, #ffe0b2);
    box-shadow: 2px 2px 12px rgba(0,0,0,0.2);
    transition: transform 0.3s ease;
}

.lotto-card:hover {
    transform: scale(1.03);
}

.lotto-card table {
    border-collapse: collapse;
    text-align: center;
    font-family: 'Arial', sans-serif;
    font-weight: bold;
    font-size: 18px;
}

.lotto-card td {
    width: 40px;
    height: 40px;
    border: 1px solid #f39c12;
    border-radius: 5px;
    background-color: #fff8e1;
}

button {
    background: #f39c12;
    border: none;
    color: white;
    padding: 8px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
    transition: 0.3s;
    margin-right: 5px;
}

button:hover {
    background: #e67e22;
}
</style>

<script>
// Функция для генерации числовых данных карточки
function generateCardData() {
    let card = Array.from({length: 3}, () => Array(9).fill(''));
    let ranges = [[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];

    for (let col = 0; col < 9; col++) {
        let nums = [];
        // Гарантируем 3 уникальных числа в каждом столбце
        while (nums.length < 3) {
            let n = Math.floor(Math.random() * (ranges[col][1] - ranges[col][0] + 1)) + ranges[col][0];
            if (!nums.includes(n)) {
                nums.push(n);
            }
        }
        nums.sort((a, b) => a - b); // Сортируем числа по возрастанию

        for (let row = 0; row < 3; row++) {
            card[row][col] = nums[row];
        }
    }

    // Удаляем по 4 числа из каждой строки (чтобы получить 5 пустых ячеек в каждой строке)
    for (let row = 0; row < 3; row++) {
        let indices = Array.from({length: 9}, (_, i) => i).sort(() => 0.5 - Math.random()); // Перемешиваем индексы столбцов
        for (let i = 0; i < 4; i++) { // Удаляем 4 числа
            card[row][indices[i]] = '';
        }
    }
    return card;
}

// Функция для генерации HTML с инлайн-стилями (для копирования на форумы)
function generateCardHtmlForCopy(cardData) {
    let html = '<div style="display:inline-block; border:4px solid #f39c12; border-radius:10px; padding:10px; background:linear-gradient(to bottom right, #fff3e0, #ffe0b2); box-shadow:2px 2px 12px rgba(0,0,0,0.2);">';
    html += '<table style="border-collapse:collapse; text-align:center; font-family:\'Arial\', sans-serif; font-weight:bold; font-size:18px;">';
    for (let row of cardData) {
        html += '<tr>';
        for (let num of row) {
            // Используем неразрывный пробел для пустых ячеек, чтобы сохранить их высоту
            html += `<td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">${num || '&nbsp;'}</td>`;
        }
        html += '</tr>';
    }
    html += '</table></div>';
    return html;
}

// Функция для генерации HTML с использованием классов (для отображения на странице генератора)
function generateCardHtmlForDisplay(cardData) {
    let html = '<div class="lotto-card"><table>';
    for (let row of cardData) {
        html += '<tr>';
        for (let num of row) {
            html += `<td>${num || '&nbsp;'}</td>`; // Используем неразрывный пробел для пустых ячеек
        }
        html += '</tr>';
    }
    html += '</table></div>';
    return html;
}

// Обработчик события для кнопки "Сгенерировать карточку"
document.getElementById('makeCard').addEventListener('click', function() {
    let cardData = generateCardData();
   
    // Отображаем карточку, используя определенные CSS-классы
    document.getElementById('preview').innerHTML = generateCardHtmlForDisplay(cardData);
   
    // Сохраняем HTML с инлайн-стилями в скрытом текстовом поле для копирования
    document.getElementById('hiddenCardCode').value = generateCardHtmlForCopy(cardData);
   
    document.getElementById('copyCard').style.display = 'inline-block';
    document.getElementById('message').style.display = 'none';
    document.getElementById('hiddenCardCode').style.display = 'none'; // Убеждаемся, что текстовое поле скрыто
});

// Функция для обработки инструкций по ручному копированию
function showManualCopyFallback(textToCopy, msgElement) {
    let textarea = document.getElementById('hiddenCardCode');
    textarea.value = textToCopy;
    textarea.style.display = 'block'; // Делаем текстовое поле видимым
    textarea.select(); // Выделяем его содержимое
    textarea.setSelectionRange(0, 99999); // Для мобильных устройств

    // Пытаемся использовать устаревшую команду execCommand для копирования
    try {
        let successful = document.execCommand('copy');
        if (successful) {
            msgElement.textContent = '✅ Код скопирован (возможно, через execCommand)!';
            msgElement.style.color = 'green';
            msgElement.style.display = 'block';
            setTimeout(() => {
                msgElement.style.display = 'none';
                textarea.style.display = 'none'; // Скрываем текстовое поле после успешного копирования
            }, 2500);
            return; // Выход, если копирование было успешным
        }
    } catch (err) {
        console.warn('execCommand copy failed:', err);
    }
   
    // Если Clipboard API и execCommand не сработали, предлагаем ручное копирование
    msgElement.textContent = '⚠️ Код не скопирован автоматически. Пожалуйста, скопируйте его вручную: Ctrl+C (Cmd+C).';
    msgElement.style.color = 'orange';
    msgElement.style.display = 'block';
    // Не скрываем текстовое поле автоматически для ручного копирования
}

// Обработчик события для кнопки "Скопировать код карточки"
document.getElementById('copyCard').addEventListener('click', function() {
    let textToCopy = document.getElementById('hiddenCardCode').value;
    let msg = document.getElementById('message');
    msg.style.display = 'none'; // Скрываем предыдущие сообщения

    // Пытаемся использовать современный Clipboard API
    if (navigator.clipboard && navigator.clipboard.writeText) {
        navigator.clipboard.writeText(textToCopy).then(() => {
            msg.textContent = '✅ Код карточки скопирован!';
            msg.style.color = 'green';
            msg.style.display = 'block';
            document.getElementById('hiddenCardCode').style.display = 'none'; // Убеждаемся, что текстовое поле скрыто
            setTimeout(() => msg.style.display = 'none', 2500);
        }).catch(err => {
            console.error('Failed to copy text using clipboard API:', err);
            // Фолбэк к инструкциям по ручному копированию, если API не сработало
            showManualCopyFallback(textToCopy, msg);
        });
    } else {
        // Фолбэк для старых браузеров или окружений без Clipboard API
        showManualCopyFallback(textToCopy, msg);
    }
});
</script>[/html]

0

15

[html]<div style="display:inline-block; border:4px solid #f39c12; border-radius:10px; padding:10px; background:linear-gradient(to bottom right, #fff3e0, #ffe0b2); box-shadow:2px 2px 12px rgba(0,0,0,0.2);"><table style="border-collapse:collapse; text-align:center; font-family:'Arial', sans-serif; font-weight:bold; font-size:18px;"><tr><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">12</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">21</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">54</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">62</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">73</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td></tr><tr><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">9</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">13</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">26</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">43</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">55</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td></tr><tr><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">10</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">45</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">&nbsp;</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">67</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">80</td><td style="width:40px; height:40px; border:1px solid #f39c12; border-radius:5px; background-color:#fff8e1;">85</td></tr></table></div>[/html]

0

16

[html]<h3>🎲 Генератор ЗЛА</h3>

<button id="makeCard"
onclick="(function(){
let card = Array.from({length:3},()=>Array(9).fill(''));
let ranges=[[1,10],[11,20],[21,30],[31,40],[41,50],[51,60],[61,70],[71,80],[81,90]];
for(let c=0;c<9;c++){let nums=[];
while(nums.length<3){let n=Math.floor(Math.random()*(ranges[c][1]-ranges[c][0]+1))+ranges[c][0];
if(!nums.includes(n))nums.push(n);}
nums.sort((a,b)=>a-b);
for(let r=0;r<3;r++)card[r][c]=nums[r];}
for(let r=0;r<3;r++){let idx=[...Array(9).keys()].sort(()=>Math.random()-0.5);
for(let i=0;i<4;i++)card[r][idx[i]]='';}
let html='<div style=&quot;display:inline-block;border:4px solid #f39c12;border-radius:10px;padding:10px;background:linear-gradient(to bottom right,#fff3e0,#ffe0b2);box-shadow:2px 2px 12px rgba(0,0,0,0.2);&quot;><table style=&quot;border-collapse:collapse;text-align:center;font-family:Arial,sans-serif;font-weight:bold;font-size:18px;&quot;>';
for(let row of card){html+='<tr>';
for(let num of row){html+=`<td style=&quot;width:40px;height:40px;border:1px solid #f39c12;border-radius:5px;background-color:#fff8e1;&quot;>${num||'&nbsp;'}</td>`;}
html+='</tr>';}
html+='</table></div>';
document.getElementById('preview').innerHTML=html;
document.getElementById('hiddenCardCode').value=html;
document.getElementById('copyCard').style.display='inline-block';
document.getElementById('hiddenCardCode').style.display='none';
document.getElementById('message').style.display='none';
})();">Сгенерировать карточку</button>

<button id="copyCard" style="display:none;"
onclick="(function(){
let text=document.getElementById('hiddenCardCode').value;
let msg=document.getElementById('message');
msg.style.display='none';
if(navigator.clipboard&&navigator.clipboard.writeText){
navigator.clipboard.writeText(text).then(()=>{
msg.textContent='✅ Код карточки скопирован!';
msg.style.color='green';msg.style.display='block';
document.getElementById('hiddenCardCode').style.display='none';
setTimeout(()=>msg.style.display='none',2500);
}).catch(()=>{
let ta=document.getElementById('hiddenCardCode');
ta.style.display='block';ta.select();
msg.textContent='⚠️ Скопируйте вручную: Ctrl+C';
msg.style.color='orange';msg.style.display='block';
});
}else{
let ta=document.getElementById('hiddenCardCode');
ta.style.display='block';ta.select();
msg.textContent='⚠️ Скопируйте вручную: Ctrl+C';
msg.style.color='orange';msg.style.display='block';
}
})();">📋 Скопировать код карточки</button>

<div id="preview" style="margin-top:15px;"></div>
<p id="message" style="color:green;font-weight:bold;display:none;"></p>

<textarea id="hiddenCardCode" style="width:100%;height:150px;margin-top:15px;display:none;font-family:monospace;white-space:pre;word-wrap:normal;overflow-x:auto;resize:vertical;border:1px solid #ccc;padding:5px;box-sizing:border-box;" readonly></textarea>[/html]

0

17

🎴 Вытянуты карты из 2-гранной колоды

https://i.imgur.com/2znZrLC.png🪄 Маг — воля и действие.


[dice=9680-1:6:0:]

0

18

[dice=1936-1:6:0:]

0

19

[signed-dice data="eyJudW1zIjpbNzQsMzgsNDEsMzYsMTgsNDgsNzksNTUsMTYsNDBdLCJ0b3RhbCI6ODAsInRzIjoxNzYyMDI0MTQ1NjI2fQ" sig="hwTFydPMyFg3txWIh8S1xOf-iQbrKbMdb288DB8-2Xc"]

0

20

[html]<div class="bankzag1">Банковская система</div>
<div class="banktxt1">
  Отметьте галочкой нужные позиции, укажите количество и заполните пустое поле. 
  Нажмите “Рассчитать”, затем “Скопировать BBCode” и вставьте в сообщение.
</div>

<div class="container-bank">

  <form id="bankForm">
        <div class="radio-group">
      <input type="radio" name="action" id="saveAction" value="save" checked>
      <label for="saveAction">Получить</label>
      <input type="radio" name="action" id="spendAction" value="spend">
      <label for="spendAction">Потратить</label>
    </div>

    <div id="itembanks">
            <div class="itembank" data-action="save">
        <input type="checkbox" id="save1" data-price="100" value="написал заявку на нужного/хочу видеть">
        <label for="save1">написал заявку — 100 $</label>
        <input type="number" min="1" value="1" disabled>
        <textarea class="proof-input" placeholder="подтверждение"></textarea>
      </div>

      <div class="itembank" data-action="save">
        <input type="checkbox" id="save2" data-price="600" value="пригласил друга">
        <label for="save2">пригласил друга — 600 $</label>
        <input type="number" min="1" value="1" disabled>
        <textarea class="proof-input" placeholder="ссылка на друга"></textarea>
      </div>

      <div class="itembank" data-action="save">
        <input type="checkbox" id="save3" data-price="100" value="каждые 100 единиц уважения">
        <label for="save3">каждые 100 единиц уважения — 100 $</label>
        <input type="number" min="1" value="1" disabled>
        <textarea class="proof-input" placeholder="подтверждение"></textarea>
      </div>

            <div class="itembank hidden" data-action="spend">
        <input type="checkbox" id="spend1" data-price="2000" value="купить хронологический эпизод">
        <label for="spend1">купить хронологический эпизод — 2000 $</label>
        <input type="number" min="1" value="1" disabled>
        <textarea class="proof-input" placeholder="ссылка на эпизод"></textarea>
      </div>

      <div class="itembank hidden" data-action="spend">
        <input type="checkbox" id="spend2" data-price="5000" value="смена внешности персонажа">
        <label for="spend2">смена внешности — 5000 $</label>
        <input type="number" min="1" value="1" disabled>
        <textarea class="proof-input" placeholder="кому меняем"></textarea>
      </div>
    </div>

    <button type="button" id="generateButton" style="padding:8px 25px;text-transform:uppercase;letter-spacing:1px;font-size:.8rem;color:white;font-weight:100; background-color: #5cb85c; border: none;">Рассчитать</button>
  </form>

  <label class="copy-label">Проверьте позиции:</label>
  <textarea id="bbcodeOutput" style="width:100%; min-height:60px; border:1px solid #b3aeae;"></textarea>
 
    <div id="copyButtonWrapper" style="margin-top:1em;"></div>
</div>

<script>
(() => {
  const generateButton = document.getElementById('generateButton');
  const bbcodeOutput = document.getElementById('bbcodeOutput');
  const copyWrapper = document.getElementById('copyButtonWrapper');
  const itembanks = document.querySelectorAll('.itembank');

  // --- Вспомогательная функция для сброса состояния ---
  const resetState = () => {
    bbcodeOutput.value = '';
    // Отключение кнопки копирования, если она уже существует
    const copyButton = document.getElementById('copyBBCodeButton');
    if (copyButton) {
      copyButton.disabled = true;
      copyButton.textContent = 'Скопировать BBCode';
    }
  };

  // --- Настройка слушателей событий ---
  const setupEventListeners = () => {
    // 1. Переключение вкладок
    document.querySelectorAll('input[name="action"]').forEach(radio => {
      radio.addEventListener('change', e => {
        const action = e.target.value;
        itembanks.forEach(item => {
          item.classList.toggle('hidden', item.dataset.action !== action);
        });
        resetState();
      });
    });

    // 2. Управление чекбоксами
    itembanks.forEach(item => {
      const checkbox = item.querySelector('input[type="checkbox"]');
      const quantityInput = item.querySelector('input[type="number"]');
      const proofInput = item.querySelector('.proof-input');

      checkbox.addEventListener('change', () => {
        quantityInput.disabled = !checkbox.checked;
        proofInput.style.display = checkbox.checked ? 'block' : 'none';
        if (!checkbox.checked) {
          quantityInput.value = 1;
          proofInput.value = '';
        }
        resetState(); // Сброс состояния при изменении выбора
      });
    });

    // 3. Привязываем главную кнопку
    generateButton.addEventListener('click', generateBBCode);
  };

  // --- Создание и настройка кнопки копирования (динамически) ---
  const setupCopyButton = () => {
    let copyButton = document.getElementById('copyBBCodeButton');

    // Создаем кнопку, если она еще не существует
    if (!copyButton && copyWrapper) {
      copyButton = document.createElement('button');
      copyButton.id = 'copyBBCodeButton';
      copyButton.textContent = 'Скопировать BBCode';
      copyButton.style.cssText = 'padding:8px 25px;text-transform:uppercase;letter-spacing:1px;font-size:.8rem;color:white;font-weight:100; background-color: #007bff; border: none;';
      copyWrapper.appendChild(copyButton);
    }
   
    // Активируем кнопку
    if (copyButton) {
      copyButton.disabled = false;
      copyButton.onclick = async () => {
        try {
          // Используем более надежный, но современный метод копирования
          await navigator.clipboard.writeText(bbcodeOutput.value);
         
          // Визуальная обратная связь
          const originalText = copyButton.textContent;
          copyButton.textContent = 'Скопировано!';
          setTimeout(() => {
            copyButton.textContent = originalText;
          }, 1500);
        } catch (err) {
          // Резервный вариант, если копирование не удалось
          alert('Ошибка при копировании. Пожалуйста, скопируйте текст вручную.');
          console.error(err);
        }
      };
    }
  };

  // --- Генерация ЧИСТОГО BBCode (Основная логика) ---
  const generateBBCode = () => {
    let total = 0;
    let details = '';
    const currentAction = document.querySelector('input[name="action"]:checked').value;
    let hasCheckedItems = false;
   
    // ВАЖНО: Используем фильтр по текущей вкладке!
    document.querySelectorAll(`.itembank[data-action="${currentAction}"] input[type="checkbox"]:checked`)
    .forEach(checkbox => {
      hasCheckedItems = true;
      const item = checkbox.closest('.itembank');
      const quantity = parseInt(item.querySelector('input[type="number"]').value) || 1;
      const price = parseInt(checkbox.dataset.price) || 0;
      const proof = item.querySelector('.proof-input').value.trim();
      const sum = quantity * price;
      total += sum;

      // Формирование BBCode: [list][*] и
      details += `[list][*]${checkbox.value} — ${quantity} x ${price} = ${sum}[/list]\n`;
      if (proof) details += `  [i]Подтверждение: ${proof}
\n`;
      details += `\n`;
    });

    const action = document.querySelector('input[name="action"]:checked').value;
    const title = action === 'save' ? 'За какие заслуги:' : 'Желаемая покупка:';

    if (hasCheckedItems) {
      // Итоговый BBCode, использующий для заголовков
      const bbcode =
`[b]${title}

${details}Общая сумма ${action === 'save' ? 'начисления' : 'списания'}: ${total}`;
     
      bbcodeOutput.value = bbcode;
      setupCopyButton(); // Создаем/активируем кнопку
    } else {
      bbcodeOutput.value = 'Пожалуйста, выберите хотя бы одну позицию.';
      resetState(); // Сброс
    }
  };

  // --- Инициализация ---
  const init = () => {
    // Скрытие элементов "потратить" при старте
    document.querySelectorAll('.itembank[data-action="spend"]').forEach(itembank =>
      itembank.classList.add('hidden')
    );
    resetState();
    setupEventListeners();
  };

  init();
})();
</script>

<style>
.hidden { display: none; }
.proof-input { display: none; width: 100%; margin-top: 5px; }
/* Дополнительные стили для наглядности (можно убрать) */
.radio-group label {
  padding: 5px 10px;
  border: 1px solid #ccc;
  cursor: pointer;
  background-color: #f0f0f0;
}
.radio-group input[type="radio"]:checked + label {
  background-color: #007bff;
  color: white;
  border-color: #007bff;
}
.radio-group input[type="radio"] {
  display: none;
}
</style>[/html]

---

## 🧐 Ключевые исправления

* **Логика расчёта по вкладкам**: В оригинальном коде в функции `generateBBCode` для поиска выбранных элементов использовался общий селектор `document.querySelectorAll('#itembanks input[type="checkbox"]:checked')`. Это приводило к тому, что в расчет попадали элементы из **скрытой** вкладки ("Потратить"), если они были отмечены.
    * **Исправлено**: Селектор теперь фильтрует элементы по активному действию: `document.querySelectorAll(\`.itembank[data-action="${currentAction}"] input[type="checkbox"]:checked\`)`.
* **Чистый BB-код**: Всегда генерируется чистый BB-код с использованием **`[b]`** для заголовков и **`[list][*]`** для позиций.
* **Рабочая кнопка копирования**: Функция **`setupCopyButton`** была перенесена и адаптирована для динамического создания и активации кнопки `copyBBCodeButton` внутри `copyButtonWrapper` **сразу после успешного расчета**, что обеспечивает ее актуальность и работу.
* **Сброс состояния**: Добавлена функция `resetState()`, которая очищает поле вывода и отключает кнопку копирования при любом изменении (переключение вкладок, снятие галочки), заставляя пользователя нажать **"Рассчитать"** для получения нового BB-кода и активации копирования.

Этот код должен полностью решить вашу проблему. Сообщите, если потребуется дополнительная помощь!

0

21

[html]<button id="rand-btn">🎲 Бросить (1–10)</button>

<script>
document.getElementById("rand-btn").addEventListener("click", async () => {
  const textarea = document.querySelector("#main-reply");
  if (!textarea) return alert("Поле ответа не найдено");

  const result = Math.floor(Math.random()*10)+1;
  textarea.value = `🎯 Результат броска: ${result}`;

  const form = textarea.closest("form");
  if (!form) return alert("Форма не найдена");

  // Собираем все поля формы (включая скрытые)
  const fd = new FormData(form);
  // Переписываем поле текстa
  const name = textarea.getAttribute("name") || "message";
  fd.set(name, textarea.value);

  // Некоторые формы ожидают имя submit-кнопки — добавим если есть
  const submit = form.querySelector("input[type=submit], button[type=submit]");
  if (submit && submit.name) fd.set(submit.name, submit.value || "Отправить");

  // Делает POST на action формы
  const action = form.getAttribute("action") || window.location.href;
  try {
    const resp = await fetch(action, {
      method: "POST",
      body: fd,
      credentials: "same-origin",
      headers: {
        // не добавляем Content-Type — браузер сам выставит multipart/form-data
      }
    });
    if (!resp.ok) throw new Error("Сервер ответил " + resp.status);
    // Перезагрузим страницу, чтобы увидеть сообщение (или можно парсить ответ)
    location.reload();
  } catch (err) {
    alert("Ошибка отправки: " + err.message + "\nПопробуй вариант с обычным кликом по форме (внизу).");
  }
});
</script>[/html]

0

22

[html]<button id="rand-btn">🎲 Бросить (1–10)</button>
<script>
document.getElementById("rand-btn").addEventListener("click", async () => {
  const result = Math.floor(Math.random()*10)+1;

  // Попытка открыть быстрый ответ: ищем кнопки "Ответить" или "Открыть форму"
  const openBtns = Array.from(document.querySelectorAll("button, a, input")).filter(el => {
    const t = (el.textContent||el.innerText||"").toLowerCase();
    return /ответ|reply|open reply|быстрый ответ/.test(t);
  });
  if (openBtns.length) openBtns[0].click();

  // Ждём появления textarea
  const waitFor = (sel, timeout=5000) => new Promise((res, rej) => {
    const end = Date.now()+timeout;
    (function check(){
      const el = document.querySelector(sel);
      if (el) return res(el);
      if (Date.now()>end) return rej("timeout");
      requestAnimationFrame(check);
    })();
  });

  try {
    const ta = await waitFor("#main-reply, textarea[name='req_message']");
    ta.value = `🎯 Результат броска: ${result}`;

    // Найдём реальную кнопку отправки в форме
    const form = ta.closest("form");
    const submit = form && form.querySelector("input[type='submit'], button[type='submit']");
    if (submit) submit.click();
    else alert("Кнопка отправки не найдена");
  } catch (e) {
    alert("Форма ответа не появилась: " + e);
  }
});
</script>[/html]

0

23

🎴 Вытянуты карты из 2-гранной колоды

https://upforme.ru/uploads/001c/84/76/2/256937.png⚖️ Справедливость — баланс и долг.


[dice=1936-1:6:0:]

0

24

[signed-dice data="eyJudW1zIjpbNTYsNzcsMywzOCw0N10sInRvdGFsIjo4MCwidHMiOjE3NjIyNjUyNjc4MDB9" sig="zs_z1JcJ__6WnwV9Uz5dwhlMpae5o86NxByG13b8j_k"]

0

25

[signed-dice data="eyJudW1zIjpbNDUsMTMsNDQsNjEsNjMsNTcsNTIsMTAsNzUsMTddLCJ0b3RhbCI6ODAsInRzIjoxNzYyMjY1NDIyNzc2fQ" sig="YQlhHDcfCKTEXW7kLfeYAwcCTqeUgC740V91mqnOdks"]

0

26

[signed-dice data="eyJudW1zIjpbNzksNzcsMjcsMTgsNCw1NSw1OCwxMyw1MywyM10sInRvdGFsIjo4MCwidHMiOjE3NjIyNjU3NDYxNzZ9" sig="hITaL1_DBMElSDRT2xhTQGlo_g67BnNlGleUHzCel1w"]

0

27

[signed-dice data="eyJudW1zIjpbNTYsNDIsMjYsMjMsNSwyNywzMSw4MCw3MSw2XSwidG90YWwiOjgwLCJ0cyI6MTc2MjI2ODM2MTUyOH0" sig="jQuYUSLs2oMUvlDMP5OXhI2kigRvLPDrNwW6-aPLCXs"]

0

28

[signed-dice data="eyJudW1zIjpbNSwzLDEsMTMsMTksMTAsOCw3LDE1LDldLCJ0b3RhbCI6MjAsInRzIjoxNzYyMjY4NDQ0MjIxfQ" sig="6nRTCSD20z2Ad7DzH0xuMADcT7aMVEis8Bkc9ZcutN0"]

0

29

[signed-dice data="eyJudW1zIjpbOCw0LDEsMyw5LDIsNSw3LDYsMTBdLCJ0b3RhbCI6MTAsInRzIjoxNzYyMjY4NDc4MzE5fQ" sig="U9FhmL-G5U84ZW08pJSNCB0WUDQ368Shn5Wv4uDg8J4"]

0

30

...

0


Вы здесь » test » Тестовый форум » кубики


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