Здравствуйте.
Дело в том, что очень нужны дайсы заточенные под систему Юкоз. Такие дайсы нашлись, но работать они отказываются.
Утверждать ничего не буду, так как я нуб в Ява, но насколько я понял, код состоит из двух частей.
Собственно, сам дайс:
<!-- DICEscript -->
<script language="javascript" type="text/javascript">
// <!--
function Dice(id,seed1,seed2)
{
var seed = parseInt(seed1)*parseInt(seed2.substring(0,2)+seed2.substring(3,5));
if (seed==0) { seed = parseInt(seed1)*parseInt(1+seed2.substring(0,2)+seed2.substring(3,5)); }
var s = document.all[id].innerHTML;
var fi=0;
var ds="";
var ios=0, ioe=0, ios2=0, ioe2=0, ioA,ioB,ioC,A,B,C,res,res1,ress;
var aven=1;
while(s.indexOf("[dice]",fi) != -1)
{
aven++;
ios=s.indexOf("[dice]",fi);
ioe=s.indexOf("]",ios);
// document.write("begin tag: "+s.substring(ios,ioe+1)+"<br>");
if(s.substring(ios,ioe+1)=="[dice]")
{
ios2=s.indexOf("[",ioe);
ioe2=s.indexOf("]",ios2);
// document.write("end tag: "+s.substring(ios2,ioe2+1)+"<br>");
if(s.substring(ios2,ioe2+1)=="[/dice]")
{
ioA=s.indexOf("d",ioe);
A=parseInt(s.substring(ioe+1,ioA));
ioB=s.indexOf("+",ioA);
if(ioB==-1 || ioB>ios2)
{
ioB=s.indexOf("-",ioA);
C=-1;
} else C=1;
// document.write("ioA: "+ioA+"<br>");
// document.write("seed1: "+seed1+"<br>");
// document.write("seed2: "+seed2+"<br>");
// document.write("substr02: "+seed2.substring(0,2)+"<br>");
// document.write("substr35: "+seed2.substring(3,5)+"<br>");
// document.write("substr_summ: "+seed2.substring(0,2)+seed2.substring(3,5)+"<br>");
// document.write("substr_summ_int: "+parseInt(seed2.substring(0,2)+seed2.substring(3,5))+"<br>");
// document.write("seed: "+seed+"<br>");
// document.write("sign on position "+ioB+"<br>");
if(ioB==-1 || ioB>ios2)
{
B=parseInt(s.substring(ioA+1,ioe2-1));
C=0;
}
else
{
B=parseInt(s.substring(ioA+1,ioB));
C*=parseInt(s.substring(ioB+1,ioe2-1));
}
// document.write("AdB + C<br>");
// document.write("A = "+A+"<br>");
// document.write("B = "+B+"<br>");
// document.write("C = "+C+"<br>");
var i;
res=0;
ress="";
for(i=0;i<A;i++)
{
res1=Math.floor((Math.log(seed*(ioe2-ios)*aven*(i+1))*10000000)%1*B)+1;
ress+=String(res1);
if(i!=A-1) ress+="+";
res+=parseInt(res1);
}
if(A>1) ress="("+ress+")";
// document.write("res = "+res+"<br>");
//ave+=res;
if(C==0 && A==1) ds="<div class=\"dice\"><img src=\"dice.gif\" style=\"float:left\"> Бросок дайсов: "+A+"d"+B+" = <b>"+res+"</b></div>";
else if(C==0 && A>1) ds="<div class=\"dice\"><img src=\"dice.gif\" style=\"float:left\"> Бросок дайсов: "+A+"d"+B+" = "+ress+" = <b>"+res+"</b></div>";
else if(C<0) ds="<div class=\"dice\"><img src=\"dice.gif\" style=\"float:left\"> Бросок дайсов: "+A+"d"+B+" - "+(-C)+" = "+ress+" - "+(-C)+" = <b>"+(res+C)+"</b></div>";
else if(C>0) ds="<div class=\"dice\"><img src=\"dice.gif\" style=\"float:left\"> Бросок дайсов: "+A+"d"+B+" + "+C+" = "+ress+" + "+C+" = <b>"+(res+C)+"</b></div>";
s=s.substring(0,ios)+ds+s.substring(ioe2+1,s.length);
}
}
fi=ios+6;
}
//ave/=aven;
// document.write("!!!! ave = "+ave+" !!!!<br>");
document.all[id].innerHTML=s;
}
//
// -->
</script>
<!-- /DICEscript -->
И вторая часть, которая считывает данные оставленные юзером с поля ввода сообщения. А так же время и ссылку поста.
<script language="javascript" type="text/javascript">
//<!--
Dice("m17",17+2,'9:47');
//-->
</script>
Всё это дело взято с браузера из исходного кода страницы, а потому и не функционирует.
Как это работает можно глянуть
здесь
Вводим в поле поста данные: [dice]5d2[/dice] и при нажатии кнопки "добавить" после обновления появляется случайное число.
Буду очень благодарен за помощь.