Дайсы под Юкоз
Здравствуйте.
Дело в том, что очень нужны дайсы заточенные под систему Юкоз. Такие дайсы нашлись, но работать они отказываются. Утверждать ничего не буду, так как я нуб в Ява, но насколько я понял, код состоит из двух частей. Собственно, сам дайс: <!-- 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] и при нажатии кнопки "добавить" после обновления появляется случайное число. Буду очень благодарен за помощь. :) |
Зачем вторая тема?
|
Цитата:
|
Что такое дайс и для чего он нужен? И оформите в
[html] ...code... [/html] |
Kolyaj
Да случайно вышло( Shaci Ну, с javascript у меня так же как и с Ява. 9xakep Он нужен в основном для ролевых игр. Игрок жмёт кнопку, вводит данные (к примеру 3 кубика шестигранных - 3d6) нажимает кнопку "Добавить ответ" и при обновлении появляется случайное число, которое генерируется исходя из вводимых данных. В общем, это обыкновенные игральные кости, только электронные. Как это работает можете глянуть по ссылке которую я выложил в темке) |
Цитата:
Dice("m17",17+2,'9:47'); первый аргумент - ID элемента, внутренний текст которого будет изменяться (т.е. где голым текстом лежат теги [dice]) второй и третий - рандом сиды. эти числа нужны для "случайного" генерирования результата. слово взял в кавычки, потому что он постоянный - не меняется при перезагрузке страницы. "вторая" часть дайсов (вызов функции) появляется со стороны сервера. копайте в этом направлении. |
Часовой пояс GMT +3, время: 05:18. |