ForumD.ru - Дизайн, графика, скрипты, техническая поддержка для форумов и сайтов

Объявление

🔴 МАСТЕР-КЛАСС от magia "Жизненный цикл проекта"

Дата и время: начало 28 апреля в 16:00 по МСК;
Если у вас возникла идея создать ролевую игру, сообщество любителей собак или форум для киноманов,
но не знаете с чего начать и что делать, не беда! Мы здесь чтобы помочь.

Подробности

GEMcross

Кроссовер, ориентированный на активную игру и уютный флуд.
Собираем у себя драгоценных игроков уже почти три года.

Посетить

🔥 Новинка в портфолио: ДИЗАЙН И ГРАФИКА В СТИЛЕ GENSHIN IMPACT

Платформа: MyBB.ru (RusFF)
Стоимость: 6500 рублей;
Авторы: Moju & wasurenagusa

Посмотреть

💰 Теперь у нас можно приобрести "Мгновенные уведомления от Алекса"

Скрипт оповещает пользователей о событиях на форуме в реальном времени, придавая динамики общению.
Автор: Alex_63 | Платформа: MyBB.ru.

У нас: структурированная документация, возможность платить иностранными картами, перевыпустить подписку или купить бессрочно.

Купить скрипт

🌟 ОПЛАТА ЗАКАЗА НАГРАДНЫМИ БАЛЛАМИ И СКИДКИ

Заказы можно оплачивать наградными баллами (НБ). Полностью или частично.
Бартер за НБ осуществляется на условиях платного заказа, в качестве оплаты - НБ.
А если у вас есть любой платный заказ, вы можете обменять НБ на скидочные купоны.

узнать подробности

📣 Наш проект: Ролевой поисковик

Поиск роли на текстовых ролевых
Проект от специалистов FD

Спойлеры и обсуждение

❤️ Поддержать проект

Если у вас есть желание помочь нам сделать наш проект лучше:
Реклама на сайтеПредложения
Стать модераторомОтзывы

Подробнее

SPECIAL OFFER: We distribute designs for free

Finalizing the layout for your project;
Developing a style code;
Mobile version included if you wish.

Details

Support the project

If you want to help us:
Become a moderator
SuggestionsReviews

Details
❗ ❗ ❗ Technical work is underway. We'll fix it soon. :) If you're english-speaker and want to use our forum, switch to the russian language. This is temporary, until the works with multi-language option will be done. Sorry for the inconvenience.

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

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



Кнопка дайсов/кубиков в форму ответа (MyBB) [Duka]

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

1

Кубики (Дайсы). Duka

Скрипт позволит "кидать" кубики прямо на форуме.
Полезно для ролевых форумов.

Вариант 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>

Пользователь вводит сколько надо бросить кубиков и сколько в нем граней.
Далее получает уникальный код, который может произвольно перемещать в сообщении
Вставлять в форму ответа!

_______________

Для эстетов, которые хотят поместить кубики в виде иконки на панели инструментов в форме ответа, я чуть подкорректировала скриптег Duka (первый вариант).

Типа так:
http://s59.radikal.ru/i166/1006/1f/001fb8fdb6ac.jpg

Скриптег:

Свернутый текст

<!--Кубики-->
<script type="text/javascript">
if(form=document.getElementById("form-buttons"))
{
   var buttonCell = form.getElementsByTagName("tr")[0].insertCell(20);
   buttonCell.id = "button-dice";
   buttonCell.title = "Кубики";
   buttonCell.innerHTML='<img onclick="dice();" src="/i/blank.gif">';
}
</script>

<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>
<!--Конец кубиков-->

Вставляется по-прежнему в форму ответа.

Красным выделена позиция иконки на панели инструментов. В примере она на 20 позиции - это значит, что она будет в самом конце у вас. Можете ставить любое другое число.

Зеленым выделена надпись, которая появляется при наведеннии курсором на иконку.

Но это еще не все. В стили style_cs.css в самый конец нужно добавить вот это:

#button-dice {
background-image:url(http://forumupload.ru/uploads/0005/6e/de/20529-1.gif);
}

Просто себе припишите в самом конце стилей.
Выделенное синим - адрес иконки. Можете вместо него вставить свою картинку. Размер 16 на 16 пикселей. :)

Отредактировано Герда (16.05.13 09:32)

+3

2

Берете у нас информацию? ПОЖАЛУЙСТА!!! СТАВЬТЕ ССЫЛКУ на эту страницу!!
Настройка Дайс от 1 до 100 (например прокидываем проценты) (с) Герда

Мне пригодилось, думаю и другим может понадобиться.
Ничего нового, те же скрипты, просто с незначительными изменениями.

шаг 1.

ищем строчки

var CountCube = prompt("Количество кубиков", "3");
var SideCube = prompt("Сколько граней у кубика?", "6");

и меняем на

var CountCube = prompt("Количество кубиков", "1");
var SideCube = prompt("Сколько граней у кубика?", "100");

это ставит нужные нам цифры в окошко ввода количества кубиков и количества граней для удобства.

шаг 2.

Поменять значение (CountCube>9) на (CountCube>1)
Это позволит вам кидать только 1 кубик.

шаг 3.

Поменять значение (SideCube>9) на (SideCube>100)
Это позволит вам кидать стогранный кубик.

Теперь ваши пользователи могут кидать только 1 кубик в 100 граней. Следовательно, вы будете получать значения от 1 до 100. :)

дополнительные инструкции.

Вы можете настроить этот скрипт под себя.

CountCube - это максимальное количество кубиков, которое можно кинуть.
SideCube - количество граней у кубика. Количество граней у кубика = максимальное число, которое он может прокинуть.

Простая арифметика поможет вам справиться. :)

Например, вам нужно чтобы кубик выбрасывал от 1 до 200 - тогда ставьте (CountCube>1) и (SideCube>200).
Другая ситуация. Некоторые ваши игроки могут выбрасывать от 1 до 100, а другие - от 1 до 200*. Ставим 2 кубика (CountCube>2) в сто граней (SideCube>100). Тогда "младшие игроки" будут кидать 1 кубик, а старшие 2. (сжульничать сложно. "младшие" элементарно могут быть пойманы за хвост, если выбросят больше 100).

* В этом случае от 1 до 200 не получится, будет от 2 до 200 (т.к. кидается 2 кубика)

Отредактировано Skywarp (22.12.12 12:04)

+1

3

В каком случае игрок не может подредактировать результаты? =)

+1

4

Paradise
В случае, если кубики кидает не он, а Мастер х)))

+1

5

Народ, что то я не пойму как им пользоваться
Вот что у менея выскакивает при значении 1/6

Код:
 [dice=5808-16]

+1

6

Vampolo
так при отправке сообщения отображается результат  (слоу, ответить через год)

+1

7

Здравствуйте, подскажите, пожалуйста, как можно вместо кнопки "Бросить кубик" установить картинку?
Заранее спасибо!

+1