Здравствуйте. Появилась необходимость в модификации нескольких скриптов, т.к. своих знаний не хватает, очень надеюсь на вашу помощь. Сайт тестовик
1. Есть старый скрипт дайсометалки, немного отредактированный мной
Код:<!---дайсометалка----> <script type="text/javascript"> if(form=document.getElementById("form-buttons")) form.getElementsByTagName("tr")[0].insertCell(0).innerHTML="<img src='https://forumstatic.ru/files/001a/14/51/30050.jpg' title='Бросок' id='button-dice' onclick=\"dice();\"/>" </script> <script type="text/javascript"> function unhtml(s) { return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"); } 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 = 1; var SideCube = 20; 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>1d20, ' +(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>
- Хотелось бы чтобы при нажатии на кубик, поле для ввода "бонус" и "действие" не выскакивали как всплывающее окно, а открывалась панель по типу как у изображения, таблица, шрифт и тд. где было бы две строчки для ввода. Нечто подобное видела на этом форуме
- В идеале, хотелось бы, чтобы рядом с цифровым результатом, сразу было прописано что он означает. Например: (20)+2= 22 Удача!
2. Можно ли сделать что-то вроде генератор кода. Чтобы человек кликал на картинку, и ему в поле ответа сразу генерировался код для нее. Хочу сделать таблицу способностей, где игрок выбрав несколько способностей, тут же мог взять готовый код и вставить в карточку персонажа.
Заранее спасибо всем откликнувшимся.
Отредактировано Эйфория (Пн, 17 Июн 2019 11:16:52)