Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2011, 14:04
Новичок на форуме
Отправить личное сообщение для Ленинград Посмотреть профиль Найти все сообщения от Ленинград
 
Регистрация: 22.11.2011
Сообщений: 3

Дайсы под Юкоз
Здравствуйте.
Дело в том, что очень нужны дайсы заточенные под систему Юкоз. Такие дайсы нашлись, но работать они отказываются.

Утверждать ничего не буду, так как я нуб в Ява, но насколько я понял, код состоит из двух частей.

Собственно, сам дайс:

<!-- 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\">&nbsp;Бросок дайсов: "+A+"d"+B+" = <b>"+res+"</b></div>";
 else if(C==0 && A>1) ds="<div class=\"dice\"><img src=\"dice.gif\" style=\"float:left\">&nbsp;Бросок дайсов: "+A+"d"+B+" = "+ress+" = <b>"+res+"</b></div>";
 else if(C<0) ds="<div class=\"dice\"><img src=\"dice.gif\" style=\"float:left\">&nbsp;Бросок дайсов: "+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\">&nbsp;Бросок дайсов: "+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] и при нажатии кнопки "добавить" после обновления появляется случайное число.

Буду очень благодарен за помощь.

Последний раз редактировалось Ленинград, 26.11.2011 в 12:47.
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2011, 14:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Зачем вторая тема?
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2011, 14:50
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от Ленинград Посмотреть сообщение
Утверждать ничего не буду, так как я нуб в Ява,
а с javascript у вас как?
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2011, 16:42
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Что такое дайс и для чего он нужен? И оформите в
[html] ...code... [/html]
Ответить с цитированием
  #5 (permalink)  
Старый 26.11.2011, 12:53
Новичок на форуме
Отправить личное сообщение для Ленинград Посмотреть профиль Найти все сообщения от Ленинград
 
Регистрация: 22.11.2011
Сообщений: 3

Kolyaj
Да случайно вышло(

Shaci
Ну, с javascript у меня так же как и с Ява.


9xakep
Он нужен в основном для ролевых игр. Игрок жмёт кнопку, вводит данные (к примеру 3 кубика шестигранных - 3d6) нажимает кнопку "Добавить ответ" и при обновлении появляется случайное число, которое генерируется исходя из вводимых данных.
В общем, это обыкновенные игральные кости, только электронные.
Как это работает можете глянуть по ссылке которую я выложил в темке)
Ответить с цитированием
  #6 (permalink)  
Старый 26.11.2011, 13:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Ленинград Посмотреть сообщение
Всё это дело взято с браузера из исходного кода страницы, а потому и не функционирует.
единственное, на чём стоит заострить внимание (кроме как document.all в функции Dice),это её аргументы
Dice("m17",17+2,'9:47');


первый аргумент - ID элемента, внутренний текст которого будет изменяться (т.е. где голым текстом лежат теги [dice])

второй и третий - рандом сиды. эти числа нужны для "случайного" генерирования результата. слово взял в кавычки, потому что он постоянный - не меняется при перезагрузке страницы.

"вторая" часть дайсов (вызов функции) появляется со стороны сервера. копайте в этом направлении.

Последний раз редактировалось melky, 26.11.2011 в 13:24.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дайсы (проблема) Ленинград Общие вопросы Javascript 0 22.11.2011 09:23
Под IE8 задизейблена кнопка, а под Mozilla нет Svetich Internet Explorer 2 05.07.2011 10:03
Подстроить высоту страницы под юзера, прошу совета у гуру batonsu Events/DOM/Window 11 10.11.2010 19:39
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
Выезжание таблицы из под ниоткуда. lancer Элементы интерфейса 3 29.06.2008 15:03