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

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

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


Вы здесь » Единый форум поддержки » Архив » Запросы по скриптам[10]


Запросы по скриптам[10]

Сообщений 21 страница 40 из 2001

1

Предыдущая тема - Запросы по скриптам[9]

Инструменты для поиска и редактирования стиля (скриптов).

Как с помощью браузера можно определить элемент дизайна.

Каталог скриптов/CSS

Полезные скрипты, необходимые темы для новичков, а также ссылки на сайты рассказывающие что такое НТМЛ и CSS.

Типовые Вопросы (ЧаВо)

Ответы на часто задаваемые вопросы.

Как задавать вопросы! Разница между стилем и скриптом. ( Советы)

Плюс к названию темы еще и Памятка.

+4

21

Fumuse
Поправил

+1

22

Deff
Премного благодарна! ^^

0

23

Приветствую, у меня есть вот такой древний код на дайсы

Код:
<!---дайсометалка---->
<script type="text/javascript">

if(form=document.getElementById("form-buttons"))
form.getElementsByTagName("tr")[0].insertCell(0).innerHTML="<img src='/i/blank.gif' title='Бросить дайс' id='button-dice' onclick=\"dice();\"/>"
</script>

<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("Сколько граней у кубика?", "9");
        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) 
  {
    dice  = dice.replace(/[-—]/g, '-');
    adieB = adieB.replace(/[-—]/g, '-');
    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>

Он всем хорош, но в нем много лишнего.
Помогите оставить тут только окошко с количеством кубиков и количеством граней. Остальные не нужны.
А лучше совсем убрать все окошки, чтобы нажатие кнопки сразу ставило в пост код кубика с условиями заданными в самом коде.

Или есть ли любой другой аналогичный код, который будет выбрасывать число из указанного диапазона, кроме того, что в теме Дайсы. Открытый для гостей форум не вариант.

Отредактировано Иса (Чт, 25 Окт 2018 19:59:23)

0

24

доброго) а можно переделать этот код, чтобы он всегда работал, а не только при сбоях? т.е. без комментариев легко ставился плюс

Код:
<!-- Правка глюка Репы при  отсутствии скриптов  руссфф  v2-->
<script> if($('#pun-viewtopic').length)$(window).load(function () {
if(!$('#pun-reputation').length)FORUM.PartnerVote = function() { return true; };
});
</script>

Отредактировано бланш (Пт, 2 Ноя 2018 15:59:04)

0

25

бланш написал(а):

а можно переделать этот код

Вот так попробуйте:
<script>
FORUM.PartnerVote = function() {return true;};
</script>

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

Помогите оставить тут только окошко с количеством кубиков и количеством граней. Остальные не нужны.

Вот смотрите. Тут у нас запросы на ввод данных:

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

function dice()
{
        var FoundErrors = '';
        var diceRes=""
        var CountCube = prompt("Количество кубиков", "1");
        if(CountCube>100 || CountCube<=0) {
        alert("Нельзя бросать столько кубиков");  return false;}
        var SideCube = prompt("Сколько граней у кубика?", "9");
        if(SideCube>1000 || SideCube<=0){
        alert("Не бывает таких кубиков");         return false;}
        var BonusCube = parseInt(prompt("Какой бонус прибавляем?", "+0"));
        var ReasonCube = unhtml(prompt("По какому поводу бросок?", "").
           replace(/\s+/g," ").replace("]"," "));

Можно сделать так:

Код:
function dice()
{
        var FoundErrors = '';
        var diceRes=""
        var CountCube = prompt("Количество кубиков", "1");
        if(CountCube>100 || CountCube<=0) {
        alert("Нельзя бросать столько кубиков");  return false;}
        var SideCube = prompt("Сколько граней у кубика?", "9");
        if(SideCube>1000 || SideCube<=0){
        alert("Не бывает таких кубиков");         return false;}
        var BonusCube = 0;
        var ReasonCube = "";

Остались только количество кубиков и грани. Или так:

Код:
function dice()
{
        var FoundErrors = '';
        var diceRes=""
        var CountCube = 2;
        var SideCube = 6;
        var BonusCube = 0;
        var ReasonCube = "";

CountCube - количество кубиков, SideCube - грани. Сколько напишете там, столько и будет. В примере выше будет кидаться два шестигранника.

+1

26

satsana
не помогло, к сожалению (

+1

27

бланш
Хм-м. А если так?

Код:
<script> if($('#pun-viewtopic').length)$(window).load(function () {
FORUM.PartnerVote = function() { return true; };
});
</script>

+1

28

satsana
тоже (

+1

29

бланш

Код:
<script> if($('#pun-viewtopic').length)$(document).ready(function(){
FORUM.PartnerVote = function() { return true; };
});
</script>

0

30

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

Хочу перенести  функцию ЛС в поля профиля , под аватаркой
лучше картинкой в виде письма.

http://s7.uploads.ru/t/X6ng1.png

+1

31

Deff
все равно не работает
на всякий случай поясню, мб меня просто не так поняли
что хочется, чтобы окошко комментирования не вылезало, даже если плюсы не глючат) а просто автоматом ставился плюс, без обновления стр

+1

32

Странно, ссылку на форум :flag:

0

33

Deff
http://chillpop.rusff.ru/

+1

34

бланш
Странно... Вроде, должно работать. А если тот вариант, который я изначально предлагала, в html-верх поставить?
albino
Примерно так:

Код:
<!-- Перенос ЛС в мини-профиль -->
<style>
.post-author .pl-email {
    display: block;
}
.post-author .pl-email a {
    display: block;
    width: 40px; // ширина картинки
    height: 40px; // высота картинки
    background-image: url(адрес_картинки.png);
    background-color: transparent;
    color: transparent;
}
.post-author .pl-email a span {
    display: none;
}
</style>
<script>
$(function () {
  var p = $('#pun-viewtopic .post');
  if (p.length>0) for (var i=0; i<p.length; i++) {
    $(p[i]).find('.post-links .pl-email:nth-of-type(2)').insertAfter($(p[i]).find('.post-author > ul > :last-child'));
  }
});
</script>

В html-верх можно поставить. Хотя внизу тоже должно работать...

Отредактировано satsana (Сб, 3 Ноя 2018 17:22:41)

+1

35

satsana
попробовала все три варианта в хтмл-верх, все равно не хочет (

+1

36

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

+1

37

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

+1

38

satsana, благодарю !

Попробую  :cool:

+1

39

бланш
О, я, кажется, поняла, что не так.
В html-верх:

Код:
<script>
RusffCore.sets.reputation = 0;
FORUM.PartnerVote = function() {return true;};
</script>

Теперь должно сработать.

бланш написал(а):

убрали этот плюсик возле нуля, как и минус там же

Если туда нажать, плюс и минус появятся рядом с количеством голосов.

Отредактировано satsana (Сб, 3 Ноя 2018 22:17:41)

+2

40

satsana
вот теперь сработало!! спасибо вам огромнейшее  :love:

+1


Вы здесь » Единый форум поддержки » Архив » Запросы по скриптам[10]