[html]<div id="bank-container"></div>[/html]
[hideprofile]
Блаблабла здесь может быть полный список позиций
Бла-блапример пример

「 она была как луна — никому не принадлежала,
но все смотрели на нее с восхищением 」
は「彼女は月のように、誰のものでもなかったが、皆が彼女を賞賛の眼差しで見ていた」という意味です。
welkin moon |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » welkin moon » испытательная » автоматический банк
[html]<div id="bank-container"></div>[/html]
[hideprofile]
Блаблабла здесь может быть полный список позиций
Бла-блапример пример
ИНСТРУКЦИЯ ПО УСТАНОВКЕ
Код вставляем в ХТМЛ-низ
Меняем адрес в строчке if(location.href.indexOf('viewtopic.php?id=2') на свой (адрес странички темы банка, первое сообщение)
Можно добавить позиции, настроить цвета, поменять цены и тд
<!-- //автоматический банк welkin+bellberrycat (.autobank версия) -->
<script>
(function(){
if (location.href.indexOf('viewtopic.php?id=2') === -1) return;
// === CSS ===
var style = document.createElement('style');
style.textContent = `
.autobank * { box-sizing: border-box; }
.autobank {
font-family: Arial, Helvetica, sans-serif;
width: 100% !important;
max-width: 100% !important;
margin: 0 auto !important;
padding: 0;
}
.autobank .bank-columns { display: flex; gap: 10px; flex-wrap: wrap; }
.autobank .column {
flex: 1;
background: #fff;
padding: 12px;
border-radius: 8px;
box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
min-width: 280px;
}
.autobank .position {
display: flex;
align-items: center;
padding: 4px;
margin: 2px 0;
background: #f5f6f5;
border-radius: 4px;
flex-wrap: wrap;
}
.autobank .position span { flex: 1; font-size: 13px; }
.autobank .position input[type=text] {
width: 80px;
margin-left: 5px;
padding: 2px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 12px;
}
.autobank .btn {
border: 0;
padding: 0 auto;
border-radius: 4px;
cursor: pointer;
font-size: 12px;
margin-left: 4px;
width: 41px;
height: 18px;
}
.autobank .btn2 {
border: 0;
padding: 4px 6px;
border-radius: 4px;
cursor: pointer;
font-size: 12px;
margin-left: 4px;
width: 175px;
}
.autobank .btn-add { background: #506B76; color: #fff; }
.autobank .btn-remove { background: #909090; color: #fff; margin-left: 3px; font-size: 12px; }
.autobank #selection-box {
margin-top: 10px;
background: #636363;
color: #fff;
padding: 10px;
border-radius: 6px;
font-size: 13px;
}
.autobank #selected-list li { margin-bottom: 4px; }
.autobank label { font-weight: 600; font-size: 13px; }
.autobank h4 { margin-top: 0; color: #506B76; font-size: 17px; font-family: Lighthaus;}
`;
document.head.appendChild(style);
// === HTML банка ===
var html = `
<div class="autobank">
<div style="margin-bottom:8px;">
<label>Какой профиль используете:</label>
<input type="text" id="profile-name" placeholder="Введите имя">
</div>
<div class="bank-columns">
<div class="column" id="col-earn">
<h4>Пополнить счёт</h4>
<div class="position" data-code="Пост от 1К до 3К символов" data-amount="10" data-type="earn">
<span>Любой пост от 1К до 3К символов</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">10</button>
</div>
<div class="position" data-code="Пост свыше 3К символов" data-amount="20" data-type="earn">
<span>Пост свыше 3К символов</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">20</button>
</div>
<div class="position" data-code="Время ожидания вашего поста составило менее 3х дней (в локации)" data-amount="20" data-type="earn">
<span>Время ожидания вашего поста составило менее 3х дней (в локации)</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">20</button>
</div>
<div class="position" data-code="Отыгрыш тренировки с учеником (в локации/эпизоде)" data-amount="40" data-type="earn">
<span>Отыгрыш тренировки с учеником (в локации/эпизоде)</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">40</button>
</div>
<div class="position" data-code="Отыгрыш охотничьего/пограничного патруля (в локации)" data-amount="30" data-type="earn">
<span>Отыгрыш охотничьего/пограничного патруля (в локации)</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">30</button>
</div>
<div class="position" data-code="Получена коллекционная ачивка за локацию (только впервые каждым персонажем)" data-amount="50" data-type="earn">
<span>Получена коллекционная ачивка за локацию (только впервые каждым персонажем)</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">50</button>
</div>
<div class="position" data-code="Получено новое достижение" data-amount="20" data-type="earn">
<span>Получено новое достижение</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">20</button>
</div>
<div class="position" data-code="Каждые 100 позитива (с любого профиля)" data-amount="20" data-type="earn">
<span>Каждые 100 позитива (с любого профиля)</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">20</button></div>
<div class="position" data-code="Ищем котиков" data-amount="10" data-type="earn">
<span>Ищем котиков</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">10</button></div>
<div class="position" data-code="Заполнение бинго" data-amount="20" data-type="earn">
<span>Заполнение бинго</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">20</button></div>
<div class="position" data-code="Выполнение задания челленджа" data-amount="5" data-type="earn">
<span>Выполнение задания челленджа (х5)</span><input type="text" placeholder="кол-во"><button class="btn btn-add add-item">*5</button></div>
<div class="position" data-code="Вы в таблице постописцев на последний день месяца" data-amount="100" data-type="earn">
<span>Вы в таблице постописцев на последний день месяца</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">100</button></div>
<div class="position" data-code="Доигранный эпизод" data-amount="100" data-type="earn">
<span>Доигранный эпизод</span><input type="text" placeholder="пруф"><button class="btn btn-add add-item">100</button></div>
<div class="position" data-code="Пополнение фонда форума (*3)" data-amount="3" data-type="earn">
<span>Пополнение фонда форума (х3)</span><input type="text" placeholder="сумма"><button class="btn btn-add add-item">*3</button></div>
</div>
<div class="column" id="col-spend">
<h4>Потратить</h4>
<div class="position" data-code="Бонус +2 к атаке на следующие 5 бросков кубика" data-amount="600" data-type="spend">
<span>Бонус +2 к атаке на следующие 5 бросков кубика</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">600</button></div>
<div class="position" data-code="Бонус +2 к охоте на на следующие 5 бросков кубика" data-amount="300" data-type="spend">
<span>Бонус +2 к охоте на следующие 5 бросков кубика</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">300</button></div>
<div class="position" data-code="Одна из стандартных иконок на мини-профиле (также необходимо иметь данное достижение)" data-amount="200" data-type="spend">
<span>Одна из стандартных иконок на мини-профиле</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">200</button></div>
<div class="position" data-code="Уникальная иконка на мини-профиле (прикрепите её к сообщению)" data-amount="400" data-type="spend">
<span>Уникальная иконка на мини-профиле</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">400</button></div>
<div class="position" data-code="Заказ стикерпака" data-amount="400" data-type="spend">
<span>Заказать стикерпак со своим котом</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">400</button></div>
<div class="position" data-code="Подарок другому игроку (прикрепите скрытым текстом картинку, имя получателя и текст)" data-amount="100" data-type="spend">
<span>Подарок другому игроку</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">100</button></div>
<div class="position" data-code="Стандартный фон для мини-профиля (на выбор из темы)" data-amount="300" data-type="spend">
<span>Стандартный фон для мини-профиля</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">300</button></div>
<div class="position" data-code="Уникальный статичный фон для мини-профиля (скиньте ссылку на фон)" data-amount="400" data-type="spend">
<span>Уникальный статичный фон для мини-профиля</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">400</button></div>
<div class="position" data-code="Уникальный анимированный фон для мини-профиля (скиньте ссылку на фон)" data-amount="500" data-type="spend">
<span>Уникальный анимированный фон для мини-профиля</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">500</button></div>
<div class="position" data-code="Твинк сверх лимита" data-amount="100" data-type="spend">
<span>Твинк сверх лимита</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">100</button></div>
<div class="position" data-code="Пропуск дня в *вопросе дня*" data-amount="50" data-type="spend">
<span>Пропуск дня в *вопросе дня*</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">50</button></div>
<div class="position" data-code="Нужный на главной странице на месяц" data-amount="200" data-type="spend">
<span>Нужный на главной странице на месяц</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">200</button></div>
<div class="position" data-code="Нужный на главной странице бессрочно" data-amount="2000" data-type="spend">
<span>Нужный на главной странице бессрочно</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">2000</button></div>
<div class="position" data-code="Купить необычное яйцо" data-amount="10000" data-type="spend">
<span>Купить необычное яйцо</span><input type="text" placeholder="ссылка"><button class="btn btn-add add-item">10000</button></div>
</div>
</div>
<div id="selection-box">
<div style="margin-bottom:6px;">
<label>Было на счету:</label>
<input type="number" id="start-amount" value="0" min="0" style="width:80px;padding:2px;">
</div>
<ol id="selected-list"></ol>
<div id="calculation"></div>
<div style="margin-top:6px;">
<button id="copy-all" class="btn2 btn-add">Скопировать результат</button>
</div>
</div>
</div>
`;
var post = document.querySelector('.post-content');
if (post) post.insertAdjacentHTML('beforeend', html);
// === JS логика ===
var selected = [];
function renderSelected() {
var ol = document.getElementById('selected-list');
ol.innerHTML = '';
var start = parseInt(document.getElementById('start-amount').value) || 0;
var total = start;
var steps = [];
selected.forEach(function(it, idx) {
var li = document.createElement('li');
// Чистим название от технических пометок типа (*3) для красоты в списке
var cleanCode = it.code.replace(/\s*\(\*3\)/g, '');
// Выводим: начислить: Название — Сумма (Комментарий если есть)
li.innerHTML = '<strong>' + (it.type === 'earn' ? 'начислить' : 'потратить') + '</strong>: ' +
cleanCode + ' — ' + it.amount + (it.comment ? ' [' + it.comment + ']' : '') +
' <button data-idx="' + idx + '" class="btn btn-remove">×</button>';
ol.appendChild(li);
var val = it.type === 'earn' ? it.amount : -it.amount;
steps.push((val > 0 ? '+' : '') + val);
total += val;
});
var calcDiv = document.getElementById('calculation');
calcDiv.innerHTML = 'Начислено: ' + (steps.length > 0 ? steps.join(' ') : '0');
calcDiv.style.color = '#fff';
calcDiv.style.backgroundColor = '#2b2b2b';
calcDiv.style.padding = '6px';
calcDiv.style.borderRadius = '4px';
ol.querySelectorAll('.btn-remove').forEach(function(b) {
b.onclick = function() {
selected.splice(parseInt(this.getAttribute('data-idx')), 1);
renderSelected();
};
});
window.finalTotal = total;
window.stepsText = steps.join(' ');
}
document.querySelectorAll('.add-item').forEach(function(btn) {
btn.addEventListener('click', function() {
var parent = btn.closest('.position');
var code = parent.getAttribute('data-code');
var type = parent.getAttribute('data-type');
var inputField = parent.querySelector('input[type=text]');
var inputVal = inputField.value.trim();
var amount = 0;
var comment = "";
// ЛОГИКА ДЛЯ ФОНДА (УМНОЖЕНИЕ)
if (code.includes("Пополнение фонда форума")) {
var enteredSum = parseInt(inputVal) || 0;
amount = enteredSum * 3; // Умножаем введенное на 3
comment = "сумма: " + enteredSum + " x3"; // Пометка в комментарий
} else {
// ОБЫЧНАЯ ЛОГИКА
// Если в поле введено число — используем его как сумму, иначе берем из data-amount
amount = parseInt(inputVal) || parseInt(parent.getAttribute('data-amount')) || 0;
// Если введено НЕ число, считаем это просто комментарием
if (isNaN(parseInt(inputVal))) {
comment = inputVal;
}
}
selected.push({code: code, type: type, amount: amount, comment: comment});
renderSelected();
inputField.value = '';
});
});
document.getElementById('start-amount').addEventListener('input', renderSelected);
document.getElementById('copy-all').addEventListener('click', function() {
var profile = document.getElementById('profile-name').value || '[не указан]';
var text = 'Профиль: ' + profile + '\n\n';
text += 'Получаю/трачу:\n';
selected.forEach(function(it) {
var cleanCode = it.code.replace(/\s*\(\*3\)/g, '');
text += (it.type === 'earn' ? 'начислить' : 'потратить') + ': ' + cleanCode + ' — ' + it.amount + (it.comment ? ' (' + it.comment + ')' : '') + '\n';
});
text += '\nБыло на счету: ' + (parseInt(document.getElementById('start-amount').value) || 0);
text += '\nНачислено: ' + (window.stepsText || '0');
text += '\nФинальная сумма: ' + (window.finalTotal || 0);
navigator.clipboard.writeText(text).then(() => alert('Данные для отчета скопированы!'));
});
})();
</script>
В само сообщение темы банка вставляем (до либо после требуемого доп контента):
[html]<div id="bank-container"></div>[/html]
Желательно использовать hideprofile, чтобы встало на всю ширину окна.
[hideprofile]
Вы здесь » welkin moon » испытательная » автоматический банк