Здесь будут собраны полезные и популярные скрипты для форумов mybb.
ФОРМА ОТВЕТА
Горячие клавиши
Дополнительные символы в форуму ответа
Дополнительные кнопки в BB-панель
Кнопки оформления диалогов
Модераторские теги
Новые иконки в форме ответа
Новые шрифты в форме быстрого ответа
Регулирование размера формы ответа
ОБЪЯВЛЕНИЕ
Выпадающее меню на форум
Информационная панель с данными пользователей
Сокрытие содержимого в Объявлении от гостей с заменой на свое сообщение
ВХОД НА ФОРУМ
Пиар-вход
Удобный вход
ПОСТЫ
Бегущая строка в посте
Возможность удаления только последнего сообщения
Возможность редактирования только последнего сообщения темы
Для того, что бы не пропадали посты
Закладки в сообщениях
Кнопка обтекания изображений текстом
Кнопка "Вверх" в каждом сообщении справа от Цитировать
Копирование картинок и смайлов в постах по кнопке цитирования сообщения
Комментарии при редактировании сообщения
'Ленивое' копирование по кнопке 'Цитировать'
Модификация скрытого текста
Переход на авторский пост по клику на ник в цитате
Первый пост на всех страницах темы
Простенький счетчик символов в форму ответа
Скрываем посты с отрицательным рейтингом
Спойлер
Сделать все ссылки в сообщениях невидимыми для гостей
Цитирование с BB-кодами
ПРОФИЛЬ
Замена "мужской/женский" (пол) на картинки
Запрет для Рекламы на изменение аватара и подписи
Запрет редактировать свой профиль определённой группе пользователей
Индивидуальный статус картинкой
Любимая мелодия в профиле
Медальки на форум в Профиле, в топике
Новый скрипт наград
Окантовка профиля в сообщении
Профиль справа (опционально для каждого пользователя)
Сокрытие информации под аватаром с помощью кнопки
УКРАШЕНИЯ
Визуальное оформление результатов опроса
Георгиевская ленточка
Изменение шрифта на форуме
Легенда иконок форума
Переливающиеся ссылки
Подсвечиваем разделы при наведении мышью
НАДПИСИ
Замена надписей Самые активные и прочие в Статистике
Замена всех ссылок под сообщением на кнопки (ЛС, профиль, мыло, цитировать, редактировать, удалить)
Замена надписей Профиль - ЛС - Email картинками
Изменение слова "Позитив" на свое
Меняющийся текст
Надпись "Отредактировано" видна только администрации
Скрипт для замены надписи "Привет..."
Убрать "Важно:" возле названия темы
ЛС
Оповещение о новой ЛС со звуком
Система оповещения о личных сообщениях
ПРОЧЕЕ
Абсолютный помощник по дизайну
Автоматическое поздравление именинников
Всплывающий поиск
Всплывающий поиск
Закрытие доступа к форуму гостям, кроме некоторых категорий и форумов
Запрет писать личные сообщения администратору простым пользователям
Контейнер скрытия банеров без загрузки контента в закрытом состоянии
Кубики (дайсы)
Накрутка пользователей онлайн на главной странице
Подпись по умолчанию
Последние 10 сообщений в статистику
Показывает поисковых ботов на главной
Портал или главная страница на форум
Просмотр фотографий без перехода на новую страницу
Профилактика форума by Zebra
Разделение важных и обычных тем на блоки
Реклама во втором посте
Реклама после первого поста
Ротатор произвольного контента по кругу
Своё описание к каждой теме, отображаемое в соответствующем форуме
Создание списка запрещённых к регистрации логинов
Скрытия Админского ника или пребывание Админа на форуме
Скрипт рекомендаций "Это интересно!"
Скрытие и разворачивание подписи по клику
Убираем промежуточную страницу
Установка пароля на раздел
Убираем пользователя из списка модеров
Форма быстрого перехода между разделами
Каталог скриптов
Сообщений 1 страница 10 из 10
Поделиться1Пн, 21 Окт 2013 12:09
Поделиться2Пн, 21 Окт 2013 12:29
Регулирование размера формы ответа. rps
Данный скрипт позволяет увеличивать или уменьшать размер поля для ввода текста в форме ответа. В ХТМЛ-низ добавьте:
<script type="text/javascript">
if ((document.URL.indexOf("viewtopic.php") != -1) || (document.URL.indexOf("post.php") != -1) || (document.URL.indexOf("edit.php") != -1)) {
var imgb = document.createElement("img");
var imgs = document.createElement("img");
imgb.title='Увеличить';
imgs.title='Уменьшить';
imgb.src='http://i060.radikal.ru/1008/9e/c3d4d47a3df4.png';
imgs.src='http://s60.radikal.ru/i170/1008/e2/07b91996e8e2.png';
imgb.setAttribute("style", "width: 15px; height: 15px; cursor: pointer !important; margin-left: 15px; margin-bottom: -10px;");
imgs.setAttribute("style", "width: 15px; height: 15px; cursor: pointer !important; margin-bottom: -10px;");
var m = document.getElementById("post").getElementsByTagName("span");
for(j in m) {
if(m[j].className == "input") {
m[j].appendChild(imgs);
m[j].appendChild(imgb);
}}
imgb.onclick = function() {
var rr = document.getElementById("main-reply");
rr.rows = parseInt(rr.rows) + 1;
}
imgs.onclick = function() {
var rr = document.getElementById("main-reply");
if (rr.rows > 1)
rr.rows = parseInt(rr.rows) - 1;
}}
</script>
Две выделенные красным цифры - размер, на который будет увеличиваться форма ответа. Можно ставить абсолютно любое число.
Поделиться3Пн, 21 Окт 2013 12:31
Кнопки Оформления Диалогов
<!-- Кнопки Оформления диалогов -->
<div class="container" id="my_replic" width:200px">
<table cellspacing="0" height="118px">
<tr><td><span style="color: fuchsia"><span style="font-size: 14px"><strong><u>Кнопки выделения реплик</u></strong></span></span><br/><b><u>*Пост не менее 25 строчек</u> !</b><br/><br/></td></tr><tr>
<td style="background-color:#B4B4B4;" height:15px" onclick="bbcode('', ''); return changeVisibility('my_replic', this)"><span style="color: fuchsia"><b>Жирным и цветом</b>- своя речь</span></td></tr><tr>
<td style="background-color:#B4B4B4;" height:15px" onclick="bbcode('', ''); return changeVisibility('my_replic', this)"><span style="font-family: Times New Roman"><span style="font-style: italic"><span style="font-size: 14px"><span style="color: fuchsia"><span style="font-style: italic">Курсивом и цветом- свои мысли</span> </span></td></tr><tr>
<td style="background-color:#B4B4B4;" height:15px" onclick="bbcode('', ''); return changeVisibility('my_replic', this)"><b><u>Подчёркнутым жирным</u></b> - чужая речь</td></tr><tr>
<td style="background-color:#B4B4B4;" height:15px" onclick="bbcode('', ''); return changeVisibility('my_replic', this)"><span style="font-family: Times New Roman"><u><span style="font-style: italic"><span style="font-size: 14px">Подчёркнутым курсивом</span></span></u></span> - мысли других героев <span style="font-size: 9px">
</span></td>
</tr>
</table>
</div>
<!-- Конец Оформления диалогов -->
Вставляем в HTML в форме ответа
Поделиться4Пн, 21 Окт 2013 12:36
Дополнительные символы в форуму ответа.
Вставляем в HTML в форме ответа
<div class="main" id="spo_all">
<div id="spoiler4" style="display: none;">
<input type="button" value="¢" name="H" title="¢" onclick="bbcode('¢','')" />
<input type="button" value="£ " name="H" title="£ " onclick="bbcode('£','')" />
<input type="button" value="€ " name="H" title="€" onclick="bbcode('€','')" />
<input type="button" value="₪" name="H" title="₪" onclick="bbcode('₪','')" />
<input type="button" value="¤" name="H" title="¤ " onclick="bbcode('¤','')" />
<input type="button" value="¥ " name="H" title="¥" onclick="bbcode('¥','')" />
<input type="button" value="¦" name="H" title="¦ " onclick="bbcode('¦','')" />
<input type="button" value="§" name="H" title="§" onclick="bbcode('§','')" />
<input type="button" value="¨" name="H" title="¨ " onclick="bbcode('¨','')" />
<input type="button" value="©" name="H" title="©" onclick="bbcode('©','')" />
<input type="button" value=" ª " name="H" title=" ª " onclick="bbcode(' ª ','')" />
<input type="button" value=" º " name="H" title=" º " onclick="bbcode(' º ','')" />
<input type="button" value="«" name="H" title="«" onclick="bbcode('«','')" />
<input type="button" value="» " name="H" title="»" onclick="bbcode('»','')" />
<input type="button" value="¬ " name="H" title="¬ " onclick="bbcode('¬','')" />
<input type="button" value="®" name="H" title="®" onclick="bbcode('®','')" />
<input type="button" value="¯" name="H" title="¯" onclick="bbcode('¯','')" />
<input type="button" value="‰" name="H" title="‰" onclick="bbcode('‰','')" />
<input type="button" value=" µ " name="H" title=" µ " onclick="bbcode(' µ ','')" />
<input type="button" value="¶" name="H" title="¶" onclick="bbcode('¶','')" />
<input type="button" value="•" name="H" title="•" onclick="bbcode('•','')" />
<input type="button" value="¹" name="H" title="¹" onclick="bbcode('¹','')" />
<input type="button" value="¿" name="H" title="¿" onclick="bbcode('¿','')" />
<input type="button" value="←" name="H" title="←" onclick="bbcode('←','')" />
<input type="button" value="↑" name="H" title="↑" onclick="bbcode('↑','')" />
<input type="button" value="→" name="H" title="→" onclick="bbcode('→','')" />
<input type="button" value="↓" name="H" title="↓" onclick="bbcode('↓','')" />
<input type="button" value="↔" name="H" title="↔" onclick="bbcode('↔','')" />
<input type="button" value="⇒" name="H" title="⇒" onclick="bbcode('⇒','')" />
<input type="button" value="⇐" name="H" title="⇐" onclick="bbcode('⇐','')" />
<input type="button" value="⇔" name="H" title="⇔" onclick="bbcode('⇔','')" />
<input type="button" value="⇑" name="H" title="⇑" onclick="bbcode('⇑','')" />
<input type="button" value="⇓" name="H" title="⇓" onclick="bbcode('⇓','')" />
<input type="button" value="↵" name="H" title="↵" onclick="bbcode('↵','')" />
<input type="button" value="♠" name="H" title="♠" onclick="bbcode('♠','')" />
<input type="button" value="♣" name="H" title="♣" onclick="bbcode('♣','')" />
<input type="button" value="♥" name="H" title="♥" onclick="bbcode('♥','')" />
<input type="button" value="♦" name="H" title="♦" onclick="bbcode('♦','')" />
<input type="button" value="◊" name="H" title="◊" onclick="bbcode('◊','')" />
<input type="button" value="○" name="H" title="○" onclick="bbcode('○','')" />
<input type="button" value="●" name="H" title="●" onclick="bbcode('●','')" />
<input type="button" value="◄" name="H" title="◄" onclick="bbcode('◄','')" />
<input type="button" value="▼" name="H" title="▼" onclick="bbcode('▼','')" />
<input type="button" value="►" name="H" title="►" onclick="bbcode('►','')" />
<input type="button" value="▲" name="H" title="▲" onclick="bbcode('▲','')" />
<input type="button" value="■" name="H" title="■" onclick="bbcode('■','')" />
<input type="button" value="▪" name="H" title="▪" onclick="bbcode('▪','')" />
<input type="button" value="▫" name="H" title="▫" onclick="bbcode('▫','')" />
<input type="button" value="♀" name="H" title="♀" onclick="bbcode('♀','')" />
<input type="button" value="♂" name="H" title="♂" onclick="bbcode('♂','')" />
<input type="button" value="™" name="H" title="™" onclick="bbcode('™','')" />
<input type="button" value="≤" name="H" title="≤" onclick="bbcode('≤','')" />
<input type="button" value="≥" name="H" title="≥" onclick="bbcode('≥','')" />
<input type="button" value="≈ " name="H" title="≈" onclick="bbcode('≈','')" />
<input type="button" value="≠" name="H" title="≠" onclick="bbcode('≠','')" />
<input type="button" value="≡" name="H" title="≡" onclick="bbcode('≡','')" />
<input type="button" value="±" name="H" title="±" onclick="bbcode('±','')" />
<input type="button" value="²" name="H" title="²" onclick="bbcode('²','')" />
<input type="button" value="³" name="H" title="³" onclick="bbcode('³','')" />
<input type="button" value="∀" name="H" title="∀" onclick="bbcode('∀','')" />
<input type="button" value="∃" name="H" title="∃" onclick="bbcode('∃','')" />
<input type="button" value="∅" name="H" title="∅" onclick="bbcode('∅','')" />
<input type="button" value="∴" name="H" title="∴" onclick="bbcode('∴','')" />
<input type="button" value="≅" name="H" title="≅" onclick="bbcode('≅','')" />
<input type="button" value="⊕" name="H" title="⊕" onclick="bbcode('⊕','')" />
<input type="button" value="⊗" name="H" title="⊗" onclick="bbcode('⊗','')" />
<input type="button" value=" " name="H" title=" " onclick="bbcode(' ','')" />
</div>
<input type="button" value="Дополнительные символы" onclick="obj=this.parentNode.childNodes[1]; tmp=(obj.style.display!='block') ? 'block' : 'none'; obj.style.display=tmp; return false;">
</div>
Поделиться5Пн, 21 Окт 2013 13:20
Скрываем посты с отрицательным рейтингом.
Вместо сообщений с отрицательным рейтингом будет показано предупреждение, что сообщение "плохое". Открыть текст можно кликнув на предупреждение.
Вы сами можете изменить глубину репутации, при котором пост будет считаться плохим.
<script type="text/javascript">
var ratingPostMsgHide = -1; // репутация, при которой пост будет считаться плохимdocument.getElementByClassName = function(clsName){
var retVal = new Array();
var elements = document.getElementsByTagName("*");
for(var i = 0;i < elements.length;i++){
if(elements[i].className.indexOf(" ") >= 0){
var classes = elements[i].className.split(" ");
for(var j = 0;j < classes.length;j++){
if(classes[j] == clsName)
retVal.push(elements[i]);
}
}
else if(elements[i].className == clsName)
retVal.push(elements[i]);
}
return retVal;
}
var pozitive = document.getElementByClassName("post-rating")
for( i=0; i<pozitive.length; i++)
{rating = pozitive[i].getElementsByTagName("p")[0].getElementsByTagName("a")[0].innerHTML
rating = parseInt(rating)
if( rating <= ratingPostMsgHide )
{
postMsg = document.getElementByClassName("post-content")[i].innerHTML;
document.getElementByClassName("post-content")[i].innerHTML = "<div class=\"quote-box\"><blockquote><p><a href=\"javascript: void(0);\" onclick=\"document.getElementById('postMsgID" + i + "').style.display = 'block'\">Данное сообщение имеет отрицательный рейтинг. Для его отображения нажмите сюда</a></p></blockquote></div><div id=\"postMsgID" + i + "\" style=\"display: none;\" class=\"quote-box\"><blockquote><p>" + postMsg + "</p></blockquote></div>"
}}
</script>
Поделиться6Пн, 21 Окт 2013 13:24
Профиль справа (Опционально для каждого пользователя).
Помнится, многие спрашивали как сделать профиль справа как на phpbb и спорили, что некоторым пользователям на форуме может это не понравиться.
Набросал скрипт, который для каждого пользователя покажет выпадающее менюю с 2мя опциями - Слева, Справа. При выборе одного из них посты сразу же принимают нужны вид. При гулянии на форуме действие его сохраняется.
Ставим в HTML-верх
<div id="profileSide"></div>
<script type="text/javascript">
function saveCookie(side){
var c_date = new Date();
c_date.setTime(c_date.getTime()+99999999999)
date = c_date.toGMTString();
document.cookie="profileSide="+side+"; expires="+date
}function getSide(side){
if(side==0 && document.cookie.indexOf("profileSide")!=-1){
side = document.cookie.substring(document.cookie.indexOf("profileSide=")+12, document.cookie.indexOf("profileSide=")+13)
}
if(side=="L"){
document.getElementById("profileSide").innerHTML="";
} else if(side=="R"){
document.getElementById("profileSide").innerHTML="<s"+"tyle type=\"text/css\">.punbb .post h3 span {border-right: 1px solid transparent;border-left: none;padding: 0.5em 1em;display: block; text-align: right;margin-right: 19em;margin-left: 0;}.punbb .post h3 strong {float: left;text-align: left;}.punbb .post .post-author, .pl-email, .pl-website {float: right;}.punbb .post-body {margin-right: 19em;margin-left: 0;border-right: 1px solid;border-left: none;}.punbb .post-links {margin-right: 19em;margin-left: 0em;border-right: 1px solid transparent;border-left: none;}.punbb .post-links ul {margin-right: -19em;margin-left: 0em;text-align: left;}.post-rating {float: left;}</st"+"yle>";
}
}
getSide(0)
</script>
Ставим в форму ответа
<select>
<option selected="selected">--Отображение профиля--</option>
<option onclick="saveCookie('L'); getSide('L')">|--Слева</option>
<option onclick="saveCookie('R'); getSide('R')">Справа--|</option>
</select>
Нужно найти оптимальный вариант css.
Вместо transparent писать цвет бордеров блока сообщений, ибо сам он в файлике вынесен в .css, а не в _cs.css, где ему положено быть, но, по каким-то причинам, он в .css
Поделиться7Пн, 21 Окт 2013 13:25
Возможность удаления только последнего сообщения.
<script>
document.getElementsByClassName = function(clsName){
var retVal = new Array();
var elements = document.getElementsByTagName("*");
for(var i = 0;i < elements.length;i++){
if(elements[i].className.indexOf(" ") >= 0){
var classes = elements[i].className.split(" ");
for(var j = 0;j < classes.length;j++){
if(classes[j] == clsName)
retVal.push(elements[i]);
}
}
else if(elements[i].className == clsName)
retVal.push(elements[i]);
}
return retVal;
}if (GroupID && GroupID >= 4)
{
var arr = document.getElementsByClassName('pl-delete');if (arr && arr.length > 1)
{for (var i = 0; i < arr.length - 1; i++)
{
arr[i].innerHTML = '';
}
}}
</script>
Вставлять в HTML - низ или HTML - в форме ответа
Поделиться8Пн, 21 Окт 2013 13:29
Модификация скрытого текста.
Данный скрипт увеличивает возможности стандартного "скрытого текста".
Возможности использования по нескольким условиям:
• количеству репутации(уважения);
• количеству позитива;
• сообщение для группы;
• сообщение для пользователя;
• ограничение по возрасту.
Смело ставим в HTML-в форме ответа. Если планируется использовать в закрытых темах -> HTML-низ.
Как работает?
Используем стандартный хайд , в теле хайда, в самом начале, пишем одно из следующих условий
user=56; //Для пользователя с id=56 (смотреть ссылку профиля)
group=3; //Для группы. id смотреть в параметре show_group= в адресной строке при выборе группы на странице Участники
respect=50; //Для пользователей, у которых суммарное уважение(+/-) больше 50
positive=20; //Для пользователей, у которых суммарный позитив(+/-) больше 20
age=18; //Для пользователей старше 18 лет
Вместе с условием по количеству сообщений
Сам скрипт
<script type="text/javascript">
var quote = document.getElementsByTagName("blockquote")
var n, condition;
var typet = new Array("respect", "group", "positive", "user", "age");
var typer = new Array((UserRespectPlus-UserRespectMinus).toString(), (GroupID).toString(), (UserPositivePlus-UserPositiveMinus).toString(), (UserID).toString(), (UserAge).toString());
for(q=0;q<typet.length;q++){
for(i=0;i<quote.length;i++){
if(quote[i].previousSibling.innerHTML.indexOf("Скрытый текст")!=-1){
if(quote[i].innerHTML.indexOf(typet[q]+"=")!=-1){
n=parseInt(quote[i].innerHTML.substring(quote[i].innerHTML.indexOf(typet[q]+"=")+(typet[q].length+1), quote[i].innerHTML.indexOf(";")))
if(isNaN(n)==false){
if(q==0){condition = parseInt(typer[0]) < n;}
else if(q==1){condition = parseInt(typer[1]) != n;}
else if(q==2){condition = parseInt(typer[2]) < n;}
else if(q==3){condition = parseInt(typer[3]) != n;}
else if(q==4){condition = parseInt(typer[4]) < n;}
if(condition){
if(q==0){
quote[i].innerHTML="Для просмотра скрытого текста нужно иметь "+n+" очков репутации. Осталось набрать "+(n-parseInt(typer[q]))
}else if(q==1){
quote[i].innerHTML="Вашей группе запрещено просматривать данное сообщение"
}else if(q==2){
quote[i].innerHTML="Для просмотра скрытого текста нужно иметь "+n+" очков позитива. Осталось набрать "+(n-parseInt(typer[q]))
}else if(q==3){
quote[i].innerHTML="Данный текст предназначен для <a href='profile.php?id="+n+"'>этого</a> пользователя."
}else if(q==4){
quote[i].innerHTML="Вам должно испольниться "+n+" лет(года)."
}
} else {
quote[i].innerHTML=quote[i].innerHTML.substring(quote[i].innerHTML.indexOf(typet[q]+"="+n+";")+((typet[q].length+2)+n.toString().length))
}
}
}
}
}
}
</script>
Скрипт на данный момент не умеет совмещать в себе несколько условий разом, так что скрещивать хайды не имеет смысла
Поделиться9Пн, 21 Окт 2013 13:32
Подсвечиваем разделы при наведении мышью.
<script type="text/javascript">
var td = document.getElementsByClassName("tcl")
for(i=0;i<td.length;i++){
td[i].setAttribute("onmouseover", "this.style.backgroundColor='red'")
td[i].setAttribute("onmouseout", "this.style.backgroundColor=''")
}
</script>
red - нужный цвет
Второй способ. Стилем.
<style type="text/css">
td.tcl:hover {background: #ccc !important;}
</style>
Поделиться10Пн, 21 Окт 2013 13:36
Кубики (Дайсы)
Скрипт позволит "кидать кубики" прямо на форуме.
Полезно для ролевых форумов.
Ставить в HTML в форме ответа
Вариант 1.
<input type="button" onclick="dice()" value="Кинуть кубики" />
<script type="text/javascript">
function dice()
{
var FoundErrors = '';
var diceRes=""
var CountCube = prompt("Количество кубиков", "3");
var SideCube = prompt("Сколько граней у кубика?", "6");
if(CountCube>9){
alert("Нельзя бросать столько кубиков");
return false;}
if(SideCube>9){
alert("Не бывает таких кубиков");
return false;}
if (!CountCube)
{return false;}
if (!SideCube)
{return false;}
for(i=0; i<CountCube;i++){
var dice = (Math.round(Math.random()*SideCube))
if(dice==0) dice=1;
diceRes += dice*1936+"-"
}
smile('[dice='+diceRes+CountCube+SideCube+']')
}
</script>
<script>
function addDice(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[dice=",from))==-1) return str;
if((pos2=str.indexOf("]"),pos+6)==-1) return str;
newpos=str.indexOf("]",pos+6)
if(newpos<pos2 && newpos!=-1) str=addDice(str,pos+6,true)
if((pos2=str.indexOf("]",pos+6))==-1) return str;
str=str.substring(0,pos)+makeDice(str.substring(pos+6,pos2))+str.substring(pos2+1,str.length)
if( str.indexOf("[dice=")!=-1 && internal==false) str=addDice(str,0,false)
return str}function makeDice(dice){
diceMass = dice.split("-")
diceC = dice.substring(dice.length-2, dice.length-1)
diceS = dice.substring(dice.length-1, dice.length)
var diceR=0, diceRu="";
for(i=0;i<diceMass.length-1;i++){diceR+=diceMass[i]/1936;}
for(i=0;i<diceMass.length-1;i++){if(diceMass[i]==diceMass[diceMass.length-2]){diceRu+=diceMass[i]/1936;}else{diceRu+=parseInt(diceMass[i]/1936)+"+";}}
txt="<div class=\"quote-box\"><blockquote><p><b>Количество кубиков</b>: "+diceC+"<br /><b>Граней в кубике</b>: "+diceS+"<br /><br /><b>Результаты броска</b>: ("+diceRu+")="+diceR+"</p></blockquote></div>"
return txt}if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addDice(post.innerHTML,0,false)}}
</script>
Вариант 2.
<input type="button" onclick="dice()" value="Кинуть кубики" />
<script type="text/javascript">
function dice()
{
var FoundErrors = '';
var diceRes=""
var CountCube = prompt("Количество кубиков", "3");
var SideCube = prompt("Сколько граней у кубика?", "6");
if(CountCube>9){
alert("Нельзя бросать столько кубиков");
return false;}
if(SideCube>9){
alert("Не бывает таких кубиков");
return false;}
if (!CountCube)
{return false;}
if (!SideCube)
{return false;}
for(i=0; i<CountCube;i++){
var dice = (Math.round(Math.random()*SideCube))
if(dice==0) dice=1;
diceRes += dice*1936+"-"
}
smile('[dice='+diceRes+CountCube+SideCube+']')
}
</script>
<script>
function addDice(str,from,internal){
var pos=0,pos2=0,newpos=0
if((pos=str.indexOf("[dice=",from))==-1) return str;
if((pos2=str.indexOf("]"),pos+6)==-1) return str;
newpos=str.indexOf("]",pos+6)
if(newpos<pos2 && newpos!=-1) str=addDice(str,pos+6,true)
if((pos2=str.indexOf("]",pos+6))==-1) return str;
str=str.substring(0,pos)+makeDice(str.substring(pos+6,pos2))+str.substring(pos2+1,str.length)
if( str.indexOf("[dice=")!=-1 && internal==false) str=addDice(str,0,false)
return str}function makeDice(dice){
diceMass = dice.split("-")
diceC = dice.substring(dice.length-2, dice.length-1)
diceS = dice.substring(dice.length-1, dice.length)
var diceR=0, diceRu="";
for(i=0;i<diceMass.length-1;i++){diceR+=diceMass[i]/1936;}
for(i=0;i<diceMass.length-1;i++){if(diceMass[i]==diceMass[diceMass.length-2]){diceRu+=diceMass[i]/1936;}else{diceRu+=parseInt(diceMass[i]/1936)+"+";}}
txt="<div class=\"quote-box\"><blockquote><p><b>Исходный бросок</b>: "+diceC+"d"+diceS+"<br /><br /><b>Результаты броска</b>: ("+diceRu+")="+diceR+"</p></blockquote></div>"
return txt}if(document.URL.indexOf("viewtopic.php")!=-1){
elm=document.getElementById("pun-main").getElementsByTagName("div")
for(x in elm) if(elm[x].className=="post-content"){
var post=elm[x]
post.innerHTML=addDice(post.innerHTML,0,false)}}
</script>