Техническая поддержка сервиса Quadro.Boards

Объявление

Новости сервиса

О форуме

Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC, на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы. Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)

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

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



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

Сообщений 41 страница 59 из 59

41

Эльвира Лейн написал(а):

я видела и по сто граней.

У Вас с математикой как? Дружите или нет?
Судя по всему, вообще всё плохо. Ибо куб - это фигура с 6 гранями. И только.

0

42

Ммм.. А что надо прописать в стандартном скрипте

Свернутый текст
Код:
<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>20){
	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>

чтобы можно было проставлять не только "кол-во кубков" и "кол-во граней", но и ещё один фактор: бонус боя?

Должно выскакивать три окошка, друг за другом. Первое - количество кубиков; второе - количество граней; третье - бонус игрока. Сейчас выполняются только первые два.

Буду признателен за помощь.

0

43

Loki-Lion
А что этот бонус будет делать? Складываться с результатом броска, умножаться и т.п.? Бонус может быть только положительный или может быть и отрицательный?

+1

44

sadhaka написал(а):

А что этот бонус будет делать? Складываться с результатом броска, умножаться и т.п.? Бонус может быть только положительный или может быть и отрицательный?

Складываться с результатом;
Положительный: только от 0 (его как бы нет) до +3.

0

45

Ребят, кубиками считают силу заклинаний, например, на ролках по ГП))
Почитала тут, что люди не понимают, зачем они.

Отредактировано asphyxiated (17.02.2013 16:45:33)

0

46

А можно сделать так, чтобы доступ к кубикам имел только определённый игрок?

0

47

Igan Spengler
Как-то так. Вместо 2 - айди юзера.

<script>
if(UserID == 2) {
document.write('<input type="button" onclick="dice()" value="Кинуть кубики" />');
}

</script>

+1

48

sadhaka написал(а):

айди юзера

Что это такое?

0

49

Igan Spengler
когда кликаете на профиль юзера вконце - циферки, это и есть ID

http://support.rusff.me/profile.php?id=5929

0

50

Код:
<input type="button" onclick="dice()" value="Кинуть Дайс" />
<script type="text/javascript"> 
 
function unhtml(s)
{ return s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"); }
 
function numword(s,one,two,many)
{ return(((s%100>=10 && s%100<=20) || s%10>=5) ? many : 
          (s%10==1 ? one : two)); }
 
function dice()
{
        var FoundErrors = '';
        var diceRes=""
        var CountCube = prompt("Количество кубиков", "1");
        if(CountCube>100 || CountCube<=0) {
        alert("Нельзя бросать столько кубиков");  return false;}
        var SideCube = prompt("Сколько граней у кубика?", "10");
        if(SideCube>1000 || SideCube<=0){
        alert("Не бывает таких кубиков");         return false;}
        var BonusCube = parseInt(prompt("Какой бонус прибавляем?", "+0"));
        var ReasonCube = unhtml(prompt("По какому поводу бросок?", "").
           replace(/\s+/g," ").replace("]"," "));
        
        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+
              ':'+BonusCube+':'+ReasonCube+']');
}
 
function addDice(post,from,internal)
{
  var str=post.innerHTML, num=-1, date=-1, a, fCanRandomise=0, u=""; 
  while(post=post.parentNode) 
    if(post.className=="container")
      if(post=post.parentNode)
      {
        if(a=post.innerHTML.match(
          /class[^<>]+permalink[^<>]+#p(\d+)[^<>]*>[^<>]*(\d+):(\d+):(\d+)[^<>]*<\/a>/i))
            { num=a[1]; date=a[4]; 
              fCanRandomise=1; break; }
      }
 
  var ran=parseInt(num+date);
  return str.replace(
     /\[dice=((?:\d+-)*)(?:(\d)(\d+)|(\d+)(:)(\d+)(?::(-?\d+):([^\]]*))?)]/g,
  function(a,dice,diceC,diceS,adieC,fNewScheme,adieS,adieB,adieR) 
  {
    diceC=parseInt(fNewScheme ? adieC : diceC);
    diceS=parseInt(fNewScheme ? adieS : diceS);
    adieB=parseInt(adieB ? adieB : 0);
    if(adieB>0) adieB='+'+adieB;
    if(!fCanRandomise && fNewScheme)
      return '<div class="quote-box"><blockquote><p><b>СБОЙ ДАЙСОМЕТАЛКИ - СООБЩИТЕ МАСТЕРАМ</b></p></blockquote></div> ';
 
    var i,diceR=0,
        s='<div class="quote-box"><blockquote '+  
          'style="text-align:left"><p>'+
           '<b>Игрок кинул '
           +diceC+numword(diceC,' куб с ',' куба с ',' кубов с ')
           +diceS+numword(diceS,' гранью',' гранями',' гранями')
           +(adieB ? (adieB>0 ? ' и бонусом ' : ' и пенальти ')+adieB : '')+
           (adieR ? ', моделируя событие:</b><br><i>'+adieR+'</i><b>' : '')
           +'<br /><br />Результаты броска '+
           (fNewScheme ? '' : '(старая схема)')+'</b>: (';
 
    dice=dice.split("-"); 
    for(i=0; i<dice.length-1; ++i)
    {
       var d=parseInt(dice[i]/1936); 
       date=((date>>1)+((date&1)<<21))&0x3fffff;
       num=((num>>1)+((num&1)<<22))&0x7fffff;
       if(fNewScheme) d=(ran=(((ran>>1)+(((ran&1) ? 0 : 1)<<23)+d+date)^num)&0xffffff)%diceS +1;
       diceR+=d;
       s+= (i?' + ':'') + d;
    } 
 
    if(adieB) diceR+=parseInt(adieB);
    return(s+ (adieB ? ')'+adieB : ')')+ 
           '=' + diceR + '</p></blockquote></div>');
  });
}
if(document.URL.indexOf("viewtopic.php")!=-1)
{
  elm=document.getElementById("pun-main").getElementsByTagName("div");
  for(x=0; x<elm.length; ++x) 
    if(elm[x].className=="post-content")
      elm[x].innerHTML=addDice(elm[x]); 
}
</script>

Этот код работает на майббе, но не работает на русффе - появляются какие-то цитаты, даже если выделить его в код. В чём дело?
Вот скрины:

+

http://i.imgur.com/jmwAOcP.png
http://i.imgur.com/Z5Ve6MX.png

Как это можно исправить?

0

51

Горанд
Все работает
http://sadhaka.rusff.me/viewtopic.php?id=42#p205

Куда установлен скрипт - это первый вопрос. Второй - ссылку на форум.

0

52

Здравствуйте. Время от времени пропадают "+" в результатах - то первый, то второй, то оба. Это поправимо? Использован второй вариант скрипта из этой темы. Пример:

http://sd.uploads.ru/t/s1I5y.jpg
http://sf.uploads.ru/t/uTqh1.jpg

0

53

Aviator написал(а):

Здравствуйте. Время от времени пропадают "+" в результатах - то первый, то второй, то оба. Это поправимо? Использован второй вариант скрипта из этой темы. Пример:

Вероятность, что ответ требуется чуть менее, чем нулевая, но всё же.
Первые два скрипта косячные, лучше взять один из тех, что были в этой же теме, но не в первом посту. На первой страничке точно есть рабочий. Хотя лично мне очень понравился скрипт на дайсы, а не кубы, с бонусами который. Идеально!

0

54

Уважаемые скриптеры, нужна модификация дайсов, а по сути, новый скрипт, скорее всего.
Описание:

По клику на кнопку "кинуть кубики", появляется выпадающее меню (или всплывающее окно), в котором есть два выбора (как в этом скрипте). Но не поле ввода, а выпадающий список с названиями, к примеру, расы, а второе - ну допустим уровень прокачки перса.
После выбора нужных вариантов из двух списков, пользователь нажимает на ОК.
И на страницу сообщения автоматически добавляется сообщение от назначенного специального профиля - во избежание редактирования.
Результат броска должен отображаться через урл установленной картинки, а не текстом.
И было бы вообще замечательно, если бы количество полей ввода в выборке можно было варьировать: не два, а три, четыре, десять.

Результаты броска должны рассчитываться таким образом:
"вот человек выбрал параметры, по этим параметрам выбирается один из массивов, внутри которого СЛУЧАЙНЫМ образом выбирается значение" ©

рассчитываю на энтузиастов и профессионалов)

0

55

Ichimaru Gin, Супер - Дайсы!

Отредактировано Deff (24.11.2014 20:11:57)

+1

56

Теперь и у нас: Дайсы для форума без возможности редактирования (расширенный вариант)

0

57

Ichimaru Gin
Есть Удобный скрипт закладка для считывания BB-кодов из сообщений со скриптами => ЗАКЛАДУРКА (букмарклет)

Отредактировано Deff (25.11.2014 16:29:42)

0

58

Deff
О, спасибо большое, в разы проще будет)

0

59

Проблема решена.

Отредактировано Helheima (03.04.2021 21:09:48)

0



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