Единый форум поддержки

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

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


Вы здесь » Единый форум поддержки » Форум для новичков » Скрипт Бросков кубиков


Скрипт Бросков кубиков

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

1

Доброго времени суток... возможно ли дополнить имеющийся скрипт, добавив две новые переменные?
Хотелось бы, чтобы кроме сложности, можно было также прописывать уровень навыка и бонусы/штрафы к броску...

Код:
<input class="button"  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("Количество кубиков", "2");
        if(CountCube>100 || CountCube<=0) {
        alert("Нельзя бросать столько кубиков");  return false;}
        var SideCube = prompt("Количество граней кубика", "4");
        if(SideCube>1000 || SideCube<=0){
        alert("Не бывает таких кубиков");         return false;}
        var BonusCube = parseInt(prompt("Сложность проверки", "-6"));
        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><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>

0

2

golubastion
Ccылку на форум установки... - подумаю..
2-е Поясните что зачем и почему, в смысле какой итог Вы должны иметь ( вот плюнув на скрипт) и описав словами...
В конце концов грани кубика Вы во что-то словесное трансформируете...
3-е Какая вероятность того, что юзер не будет мудрить и бросать до тех пор, пока результат его не устроит  ?

Редактирование сообщения разве запрещено ?

Отредактировано Deff (Пт, 13 Дек 2019 02:53:26)

0

3

http://karatada.rolka.su/viewtopic.php?id=151

Проверяем действие/заклинание/создание предмета, имея заранее установленную отрицательную сложность, минимум у нас -6
То бишь если в сумме броска кубиков уходим в минус - заведомо провал действия...
Эту отрицательную сложность можно покрыть уровнем навыка и всякими разными бонусами, которые варьируются от ситуации...

Прямо сейчас и бонус, и уровень навыка вручную складываем со сложностью - на выходе получая, например, -2
Куда удобнее видеть отдельно все значения, из которых получается сумма на выходе...

Знаю форум, где редактирование сообщений запрещено, и это действительно выход! Но у нас игроки добросовестно принимают все провалы. Если очень захочется - можно проверить историю редактирования сообщения...

0

4

golubastion
1-е Есть Ли таблица соответствия  итоговой цифры - конкретной фразе описания результата ?
http://karatada.rolka.su/viewtopic.php?id=151
Пример из поста 22 и 23:

[dice=1936-7744-2:4:-3:Зельеварение]
Локация: Кольцевая
Ситуация: Отравить сучку-эльфа

[dice=1936-1936-2:4:-2:Зельеварение]
Локация: Кольцевая
Ситуация: потратив десять монет, пытается снова

0

5

Имеется таблица конечных результатов бросков и предполагаемых последствий, но без конкретики для ситуаций, чтоб фантазия могла разгуляться, но в рамках броска.
Для ситуации с зельеварением - первая попытка напрочь не удалась, но игрок нашел на локации повара, у которого купил дрянь, давшую бонус к следующей попытке, и теперь отрава удалась...
https://i.imgur.com/sdzRazWm.png

+1

6

golubastion
Итог(в итоге :crazyfun: ) интерпретирует мастер игры ?

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

Доброго времени суток... возможно ли дополнить имеющийся скрипт, добавив две новые переменные? уровень навыка и бонусы/штрафы к броску...

2-е Как уровень навыка меняет диапазон итоговых цифр ? Есть ли таблица или алгоритм ( или зачем он ?)

3-е Как бонусы/штрафы к броску меняют диапазон итоговых цифр ? Есть ли таблица или алгоритм ( или зачем он ?)

0

7

Так точно, итог  интерпретируется мастером игры, хотя это не всегда обязательно. Если игрок пытается устоять на ногах, а у него классический провал - он падает и все тут. Но если, например, герои исследуют подземелье на предмет ловушек или скрытых проходов - тут уж не обойтись без вмешательства мастера.

Уровень навыка уменьшает сложность  на число равное уровню навыка! Имеешь третью Харизму - твоя сложность для лукавства -3 вместо стандартных -6. Таким образом, чем ты прокаченнее и круче в этом навыке - тем выше шанс не облажаться. Хотя и сложность может повышаться, если ты лукавишь перед каким-нибудь высоким чином...

Имеется таблица примеров всяких разных факторов, способных повлиять на бросок проверки того или иного навыка, но они всегда варьируются от ситуации, так что все факторы обозначить невозможно, но разобрать конкретную ситуацию и присвоить ей сложность - не так сложно... Проверяем навык Внимательность - учитываем освещение, время, которое можно отвести на изучение обстановки. Есть у нас также СПОСОБНОСТИ и СЛАБОСТИ которые дают плюсы и минусы к броску, если выполняется какое-то условие. Например, имея способность владения двуручным мечом и сражаясь этим самым двуручным мечом - получаем к Бою +1.

https://i.imgur.com/c6q5EJLm.png

0

8

golubastion
Оке... Много Инфы, нун переварить... Таблицы - Вы Все дали для учета Новых Вводимых факторов ?
Или Вам ещё нужно их создать ? ( Короче Выложите Все относящеся к новым вводимым параметрам и влиянию оных на цифры бросков

2-е Исходный диапазон цифр (без ввода навыков и бонусов - штрафов) равен от -8 до +10 ?

0

9

Спасибо, что пробуете переварить... Таблицы эти  в пример того, как определяется та же сложность к броску...
Просто прямо сейчас все  уровни навыков, бонусы и штрафы мы засовываем в графу "Сложность", когда заполняем данные для броска кубика. То бишь в сумме сложность из -6 превращается в -2, но высчитывается это вручную, а оттого на выходе не очень понятно, из чего эта сложность получилась. А если бы "бонусы", "штрафы" и "уровень навыка" можно было б заполнять отдельно - стало бы куда нагляднее, из чего сложился бросок.

Стандартная сложность всегда -6, а бонусы и штрафы от ситуации могут эту сложность изменить в диапазон от -8 до +10

0

10

golubastion
Желательны таблицы или формулы влияния Бонусов - Штрафов на диапазон выпадающих итоговых цифр (Я так понял бонусы/Штрафы - цифра просто добавляется - Вычитается...
Про Навыки - пока не Вкурил влияния на конечный диапазон... (Ну и да, буду думать, - не быстро(не за день-за два)

Отредактировано Deff (Пт, 13 Дек 2019 14:31:25)

+1

11

Так и есть! Бонусы и штрафы ситуативны, так что цифра, которая прибавляется/вычитается постоянно разная.. а может никаких бонусов/штрафов и не быть вовсе...
Поэтому конкретнее, чем таблица выше, ничего нет. В свою очередь, навык дает постоянную прибавку в зависимости оттого, как сильно он развит, - в формуле прибавляется уровень навыка.
https://i.imgur.com/kR29ozS.png

Еще можно просить об этих самых двух новых переменных в скрипт?
В идеале, пофантазировав, вижу это так

Количество кубиков
Количество граней кубика
Сложность проверки
Проверяемый навык
Уровень навыка
Бонусы и штрафы

+1


Вы здесь » Единый форум поддержки » Форум для новичков » Скрипт Бросков кубиков