Форум » Все проблемы решаемы! » Кидаем кубики... » Ответить

Кидаем кубики...

Serifa: Khaion пишет: [quote]Кстате, продолжая о кубометах - я-таки нашел такой мод, на первый взгляд очень даже замечательный, можно задавать количество кубиков и число граней, а также использовать модификаторы. Самое оно для любой игротехники, если б играли на СМФ, обязательно поставил бы Dice Roller [/quote] Khaion пишет: [quote]Самое оно для любой игротехники, если б играли на СМФ, обязательно поставил бы [/quote] Класс, то что надо!... если бы я еще поняла, как оно работает)) попробую поставить и потестить. Всегда пригодится. Спасибо, дорогой камрад!

Ответов - 25, стр: 1 2 All

Serifa: Norm Iridium пишет: Теперь на форуме можно завести игрушечного бота! А на чем будем его демонстрировать?))

Norm Iridium: Serifa А на чем будем его демонстрировать?)) Можно взять уже существующую ролевую игру. Или создать новую с нуля, но вот с таким вот Оракулом. Вопрос в другом как вводить его в игру... т.е. каждый участник в зависимости от какой ситуации его может вызвать? Тут уже есть разные подходы и вам господа мастера нужно самим придумать как его использовать ибо я не ролевик)) Я только учусь =)) Можно отдельный раздел боевок. А можно всю игру во время стычек вызывать Оракула. Главное помнить что текст у него может быть любой! Генератор будет выбирать случайным образом из списка готовых. Можно усложнить генератор. Будут выкидываться очки ну как у кубика. И к ним случайный текст. Структура списка будет конечно же с пояснениями и вы сами разберетесь ;-) Немного изменить генератор могу я под ваши же нужды...

Serifa: Дождемся комментария специалистов)


Norm Iridium: Бета-тестинг будет проводится тут: http://oracul.forum24.ru/?1-1-0-00000001-000-0-0 Пример генерации ответа: //===================== ГЕНЕРАЦИЯ ОТВЕТА ОРАКУЛА ============================== $glas_oracula = "Ваш удар нанес противнику урон в "; $glas_oracula_var = array ("0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var))]; $glas_oracula .= " пунктов\r\n"; $glas_oracula_var = array ("Врачеватель накопил силу и увы потерял ее\r\n", "Врачеватель накопил силу и исцелил вас на 10 пунктов\r\n", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var))]; $glas_oracula .= "Фортуна говорит: "; $glas_oracula_var = array ("молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "вам повезло и вы нанесли следом еще один удар в 5 пунктов!", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "вам повезло и вы нанесли следом еще один удар в 10 пунктов!", "...задумалась и промолчала", "...задумалась и промолчала"); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var))]; $glas_oracula .= "\r\n"; $glas_oracula .= "Оракул советует: "; $glas_oracula_var = array ("помни что все в твоих руках...", "иногда мне кажется, что тебе не хватает выдержки...", "соберись с силами! Где твоя выдержка?", "а когда я был молодым, лет 5000 тому назад...", "с козыря ходи, с козыря!", "обалум! Йено дейси мрахрммм... и так далее =)", "что то скушно стало жить...", "помнится где то здесь был мой волшебный белый порошок... =)", "что то магический шар стал в последнее время подводить...", "разверзись небеса! И сойди потоки воды на грешну землю! Покайтесь грешники! Ой... мну понесло...", "может все таки разойтись вам с миром?"); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var))]; $glas_oracula .= "\r\n";

Norm Iridium: Ура! Первая рабочая версия серверного скрипта: <?php echo "<h1>Оракул. Версия 1.0</h1>"; //============================ НАСТРОЙКА СКРИПТА ============================== //Укажите имя форума //Вместо oracul.forum24.ru укажите адрес своего форума (это защитит ваш сайт от лишних нагрузок, //если например, вашу копию скрипта захотят иcпользовать на других форумах): $forum = "oracul.forum24.ru"; //Укажите лимит записей в логе: $zlimit = 100; //Укажите ник заранее зарегестрированного вами бота: $nick = "Oracul"; //Укажите его пароль: $psw = "686544"; //Укажите его хеш-пароля: $hachpsw = "гб2вебфxфп4yржш1bфде"; //пару "пароль - хеш-пароля" вам поможет сгенерировать Norm Iridium. //или любой другой специалист способный перехватывать сетевой трафик. //============================ ПРОВЕРКА ПАРАМЕТРОВ ============================ $nick = $_POST["nick"]; $ref = $_SERVER['HTTP_REFERER']; //защита $ref = ereg_replace("<", "<", $ref); $ref = ereg_replace(">", ">", $ref); $ref = ereg_replace("\"", """, $ref); $ref = ereg_replace("'", "'", $ref); $ref = ereg_replace("`", "`", $ref); $ref = ereg_replace("\r", "", $ref); $ref = ereg_replace("\n", "", $ref); //защита $nick = ereg_replace("<", "<", $nick); $nick = ereg_replace(">", ">", $nick); $nick = ereg_replace("\"", """, $nick); $nick = ereg_replace("'", "'", $nick); $nick = ereg_replace("`", "`", $nick); $nick = ereg_replace("\r", "", $nick); $nick = ereg_replace("\n", "", $nick); $temp_ref = $ref; if($nick=="") { echo "Неуказан или потерян ник пользователя!<br>"; exit; } $ref = str_replace("http://", "", $ref); $ref = str_replace("www.", "", $ref); $arrref = explode("/",$ref); $ref = $arrref[0]; $ref = strtolower($ref); $forum = strtolower($forum); if($ref!=$forum){ echo "<font color=red>Нелегальное обращение к Оракулу!</font><br>"; exit; } //===================== ГЕНЕРАЦИЯ ОТВЕТА ОРАКУЛА ============================== $glas_oracula = "Сообщение для $nick\r\n"; $glas_oracula .= "Ваш удар нанес противнику урон в "; $glas_oracula_var = array ("0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var)-1)]; $glas_oracula .= " пунктов\r\n"; $glas_oracula_var = array ("Врачеватель накопил силу и увы потерял ее\r\n", "Врачеватель накопил силу и исцелил вас на 10 пунктов\r\n", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var)-1)]; $glas_oracula .= "Фортуна говорит: "; $glas_oracula_var = array ("молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "вам повезло и вы нанесли следом еще один удар в 5 пунктов!", "молчит, негодяйка, ни чего говорить не хочет...", "молчит, негодяйка, ни чего говорить не хочет...", "вам повезло и вы нанесли следом еще один удар в 10 пунктов!", "...задумалась и промолчала", "...задумалась и промолчала"); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var)-1)]; $glas_oracula .= "\r\n"; $glas_oracula .= "Оракул советует: "; $glas_oracula_var = array ("помни что все в твоих руках...", "иногда мне кажется, что тебе не хватает выдержки...", "соберись с силами! Где твоя выдержка?", "а когда я был молодым, лет 5000 тому назад...", "с козыря ходи, с козыря!", "обалум! Йено дейси мрахрммм... и так далее =)", "что то скушно стало жить...", "помнится где то здесь был мой волшебный белый порошок... =)", "что то магический шар стал в последнее время подводить...", "разверзись небеса! И сойди потоки воды на грешну землю! Покайтесь грешники! Ой... мну понесло...", "может все таки разойтись вам с миром?"); $glas_oracula .= $glas_oracula_var[rand(0,count($glas_oracula_var)-1)]; $glas_oracula .= "\r\n"; //===================== КУДА ОТСЫЛАТЬ СООБЩЕНИЕ =========================== list($ff,$raz,$page,$nfile,$fa,$fb,$fc) = explode("-",$temp_ref); //===================== ОТПРАВКА СООБЩЕНИЯ ОРАКУЛОМ =========================== $title = "Сообщение от Оракула"; $stat = "2%601280%6032%60no%60ru%60ru%60no%60no"; $socket = fsockopen($forum,80); $slength = 944-strlen($glas_oracula); for($j=0;$j<=$slength;$j++){ $glas_oracula .= " %20"; } $out = "POST / HTTP/1.0\r\n"; $out .= "User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00\r\n"; $out .= "Host: $forum\r\n"; $out .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n"; $out .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n"; $out .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n"; $out .= "Accept-Encoding: gzip, deflate\r\n"; $out .= "Referer: http://$forum/\r\n"; $out .= "Cookie: s=$hachpsw; t=1256045368\r\n"; $out .= "Cookie2: $Version=1\r\n"; $out .= "Content-Length: 2000\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: keep-alive\r\n\r\n"; $out .= "work=6&"; $out .= "razdel=$raz&"; $out .= "start=0&"; $out .= "filenumber=$nfile&"; $out .= "msgid=000&"; $out .= "start_page_re=0&"; $out .= "only_new_re=0&"; $out .= "statisc=$stat&"; $out .= "title=$title&"; $out .= "message=$glas_oracula&"; $out .= "nick=$nick&"; $out .= "pass=$psw&"; $out .= "newreg=off&"; $out .= "adresat=1227726669&"; fwrite($socket, $out); fclose($socket); echo "Вам написал Оракул. Его сообщение находится <a href=$temp_ref>здесь</a>."; //=========================== ВЕДЕНИЕ ЛОГА ==================================== if(file_exists("log.html")){ $farr = file("log.html"); $f = fopen("log.html", "w+"); $t = count($farr)+1; $glas_oracula = ereg_replace("\r\n", "", $glas_oracula); $glas_oracula = ereg_replace("\[b\]", "<b>", $glas_oracula); $glas_oracula = ereg_replace("\[\/b\]", "</b>", $glas_oracula); $glas_oracula = ereg_replace(" %20", "", $glas_oracula); $data = "<b>№$t</b> <i>$glas_oracula</i> <br><b>Откуда пришел запрос:</b> <a href=$temp_ref>$temp_ref</a><br><br>\r\n"; fwrite($f, $data); if($t<$zlimit){ for( $j = 0; $j <= $t; $j++ ) { $data = $farr[$j]; fwrite($f, $data); } } fclose($f); } //============================================================================= ?> Тест прошел удачно: http://oracul.forum24.ru/?1-1-0-00000001-000-0-0

Norm Iridium: Мать вашу, а красиво получилось! Пример лога (последнии сообщения всегда вверху): №69 Сообщение для Norm Iridium Ваш удар нанес противнику урон в 50 пунктов Фортуна говорит: ...задумалась и промолчала Оракул советует: что то скушно стало жить... Откуда пришел запрос http://oracul.forum24.ru/?1-1-0-00000001-000-0-0 №68 .... №67 .... №66 .... .....

Norm Iridium: Итак у нас два файла сейчас: log.html - отчет по работе Оракула oracul.php - сам скрипт Оракула (создание и отправка сообщения) к ним прибавятся еще: send-msg-oracul.js - отправка запроса на серверный скрипт zenitchik-add-buttons.js - модуль по созданию кнопок и небольшой кусок кода на самом форуме, для привязки к кнопке функции отправки запроса. Все это будет идти небольшим архивом, админ просто зальет себе на сайт эти файлы. Пути до файлов в скрипте исправит на свои. С хешем пароля придется повозится. Либо придется качать прогу для перехвата сетевого трафика, либо обращаться ко мне.

Norm Iridium: Можите немного похулиганить: http://katalogue.org/forum/oracul/oracul.php?nick=Norm%20Iridium http://katalogue.org/forum/oracul/oracul.php?nick=Serifa Пока стоит GET запрос, можно писать ник в адресной строке, но это пока... Еще отключена проверка реферала. Так же временно. Лог доступен здесь: http://katalogue.org/forum/oracul/log.html Сайт загружен другими скриптами, так что прошу не закидывать запросами. В будущем надо по хорошему поставить капчу...

Serifa: Norm Iridium пишет: и небольшой кусок кода на самом форуме, для привязки к кнопке функции отправки запроса. Все это будет идти небольшим архивом, админ просто зальет себе на сайт эти файлы. Пути до файлов в скрипте исправит на свои. С хешем пароля придется повозится. Либо придется качать прогу для перехвата сетевого трафика, либо обращаться ко мне. И ты уверен, что кто-то сумеет всем этим воспользоваться? Ты для кого скрипт делал? Тут люди едва-едва основы дизайна освоили!)

Norm Iridium: Serifa Ну я, что нить придумаю...



полная версия страницы