Частый гость
Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010
Откуда: Россия, Ростов-на-Дону
Помог: 3 раз(а)
|
Это бот умника для чата.
Вот код:
PHP:
скопировать код в буфер обмена
<? $set['umnik_help'] = '10'; $set['umnik_new'] = '30'; $set['umnik_time'] = '60'; $umnik_last = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$room[id]' AND `umnik_st` <> '0' ORDER BY id DESC"); $umnik_last = $umnik_last->fetch_assoc(); if ($umnik_last!=NULL && $umnik_last['umnik_st']!=4 && $umnik_last['umnik_st']!=0) { $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last[quests]' LIMIT 1"); $umnik_vopros = $umnik_vopros->fetch_assoc(); $umnik_post = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$_GET[id]' AND `text` like '%$umnik_vopros[otvet]%' AND `umnik_st` = '0' AND `time` >= '".($time-$umnik_last['time'])."' ORDER BY `id` ASC LIMIT 1"); $umnik_post = $umnik_post->fetch_assoc(); if($umnik_post!=NULL){ $us = get_user($umnik_post['autor']); $add_credits=0; if ($umnik_last['umnik_st']==1){$add_credits=0.5;$pods='не используя подсказок';} if ($umnik_last['umnik_st']==2){$add_credits=0.1;$pods='используя одну подсказку';} if ($umnik_last['umnik_st']==3){$add_credits=0.05;$pods='используя обе посказки';} $msg="[b]$us[nick][/b] дал верный ответ на вопрос: [b]$umnik_vopros[vopros][/b] $pods.<br />\nЕго балланс увеличен на $add_credits кредитов.<br />\nСледующий вопрос будет через $set[umnik_new] секунд."; $mysqli->query("INSERT INTO `chat_posts` (`autor`, `umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '4', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')"); $mysqli->query("UPDATE `users` SET `credits` = '".($us['credits']+$add_credits)."' WHERE `id` = '$us[id]' LIMIT 1"); } } $umnik_last1 = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$_GET[id]' AND `umnik_st` = '1' ORDER BY id DESC"); $umnik_last1 = $umnik_last1->fetch_assoc(); if ($umnik_last1!=NULL && $umnik_last['umnik_st']!=4 && $umnik_last1['time']<time()-$set['umnik_time']) { $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last1[quests]' LIMIT 1"); $umnik_vopros = $umnik_vopros->fetch_assoc(); $msg="На вопрос никто не ответил.<br />\nПравильный ответ: $umnik_vopros[otvet].<br />\nСледующий вопрос через $set[umnik_new] секунд."; $mysqli->query("INSERT INTO `chat_posts` (`autor`, `umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '4', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')"); } $umnik_last = $mysqli->query("SELECT * FROM `chat_posts` WHERE `room_id` = '$_GET[id]' AND `umnik_st` <> '0' ORDER BY id DESC"); $umnik_last = $umnik_last->fetch_assoc(); if ($umnik_last==NULL || $umnik_last['umnik_st']==4 && $umnik_last['time']<time()-$set['umnik_new']) { // задается вопрос $k_vopr = $mysqli->query("SELECT * FROM `chat_quests`"); $k_vopr = $k_vopr->num_rows; $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` LIMIT ".rand(0 ,$k_vopr).", 1"); $umnik_vopros = $umnik_vopros->fetch_assoc(); $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br />\n[b]Ответ:[/b] слово из ".mb_strlen($umnik_vopros['otvet'])." букв."; $mysqli->query("INSERT INTO `chat_posts` (`autor`,`umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '1', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')"); } if ($umnik_last!=NULL && $umnik_last['umnik_st']==1 && $umnik_last['time']<$time-$set['umnik_help']) { $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last[quests]' LIMIT 1"); $umnik_vopros = $umnik_vopros->fetch_assoc(); $_SESSION['rand'] = rand(0 , mb_strlen($umnik_vopros['otvet']) - 1 ); $help = ''; for ($i=0;$i<$_SESSION['rand'];$i++ ) { $help.='*'; } $help.=iconv_substr($umnik_vopros['otvet'], $_SESSION['rand'], 1, 'utf-8'); else $help.=substr($umnik_vopros['otvet'], $_SESSION['rand'], 2 ); for ($i=0;$i<mb_strlen($umnik_vopros['otvet'])-$_SESSION['rand'];$i++ ) { $help.='*'; } $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br />\n[b]Первая подсказка:[/b] $help (".mb_strlen($umnik_vopros['otvet'])." букв)"; $mysqli->query("INSERT INTO `chat_posts` (`autor`,`umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '2', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')"); } if ($umnik_last!=NULL && $umnik_last['umnik_st']==2 && $umnik_last['time']<time()-$set['umnik_help']) { $umnik_vopros = $mysqli->query("SELECT * FROM `chat_quests` WHERE `id` = '$umnik_last[quests]' LIMIT 1"); $umnik_vopros = $umnik_vopros->fetch_assoc(); $help = ''; for ($i=0;$i<$_SESSION['rand'];$i++ ) { $help.='*'; } $help.=iconv_substr($umnik_vopros['otvet'], $_SESSION['rand']+1, 2, 'utf-8'); else $help.=substr($umnik_vopros['otvet'], $_SESSION['rand']+1 , 4 ); for ($i=0;$i<mb_strlen($umnik_vopros['otvet'])-$_SESSION['rand']-2;$i++) { $help.='*'; } $msg="[b]Вопрос:[/b] \"$umnik_vopros[vopros]\"<br />\n[b]Вторая подсказка:[/b] $help (".mb_strlen($umnik_vopros['otvet'])." букв)"; $mysqli->query("INSERT INTO `chat_posts` (`autor`,`umnik_st`, `time`, `text`, `room_id`, `quests`) values('0', '3', '$time', '$msg', '$_GET[id]', '$umnik_vopros[id]')"); } ?>
Проблема в том что, подсказки делаются неверно,идёт смещение символов, вот например:
3) [25 декабря 2010 года в 13:42:01]
Вопрос: "Мордовская свирель."
Ответ: слово из 5 букв.
Ответить
4) [25 декабря 2010 года в 13:42:13]
Вопрос: "Мордовская свирель."
Первая подсказка: н***** (5 букв)
Ответить
5) [25 декабря 2010 года в 13:42:24]
Вопрос: "Мордовская свирель."
Вторая подсказка: уд*** (5 букв)
Ответить
----
Верный ответ на этот вопрос - нудей.
Структура таблицы chat_posts:
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `chat_posts` ( `id` int(8) NOT NULL AUTO_INCREMENT, `room_id` int(2) NOT NULL, `text` varchar(4096) NOT NULL, `umnik_st` int(1) NOT NULL, `quests` varchar(64) NOT NULL, `time` int(20) NOT NULL, `autor` int(8) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Структура таблицы chat_quests:
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `chat_quests` ( `id` int(11) NOT NULL AUTO_INCREMENT, `vopros` varchar(1024) NOT NULL, `otvet` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11230 ;
(Добавление)
Народ, помощь ваша нужна!(Отредактировано автором: 25 Декабря, 2010 - 12:49:14)
|