Страница 1 из 1

Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 04 апр 2009 10:43
tvrsh
Скрипт игры в рулетку.
Версия бета, есть несколько недочетов. Об установке читаем в INSTALL.txt, еще немного полезной информации есть в README.txt. Загружать нужно только сам скрипт - casino.tcl.
Текущая версия: 1.5.1b

Для работы скрипта необходима база MySQL. Скрипт довольно громоздкий. В будущем, наверно, нужно либо разбивать его на двух ботов, чтобы иметь возможность выводить все необходимые сообщения и рассчеты (легкий вариант), либо реализовывать в виде модуля (сложный, но правильный вариант :S).
Вопросы, предложения - можно сюда.

Сам скрипт: http://www.egghelp.ru/files/401

Re: Casino.tcl

СообщениеДобавлено: 25 июл 2009 21:21
freaky
-предложение
процедура transfer криво работает. надо дописать установку переменной score. в принципе имеющие руки могут сами пафиксить.
-предложение
на мой взгляд нужно реализовать проверку на хост, для того чтобы можно было регистрировать не более одного логина с одного хоста.

Re: Casino.tcl

СообщениеДобавлено: 13 фев 2011 05:35
oIIa4ku
Вроде загружается судя по логу загрузки
[12:07] Загружается расширение MySQLTCL..
[12:07] Casino.tcl message file v1.5.1b by Deniska @ RusNet loaded.
[12:07] Casino.tcl v1.5.1b by Deniska @ RusNet loaded (2.877ms)

а вот работать нехочет, не создаёт casino.user, пишет ошибку
[12:33] Tcl error [::casino::reg]: ::mysql::sel/db server: Table 'casino.users' doesn't exist

может что не так сделал, единственное так и не понял что делать с casino.sql.txt хотя его нету в архиве, у меня он валялся не понятно откуда :)
подскажите что делать?

Re: Casino.tcl

СообщениеДобавлено: 13 фев 2011 10:22
tvrsh
Покажи содержимое этого файла.
В INSTALL.txt написано
4) Выполняем casino.sql.txt. Он создает таблицу "users" в текущей базе MySQL

Сделать это можно в phpmyadmin во вкладке SQL.

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 13 фев 2011 10:35
oIIa4ku
Вот содержание casino.sql.txt :
DROP TABLE IF EXISTS `users` ;

CREATE TABLE `users` (
`id` int( 7 ) unsigned NOT NULL AUTO_INCREMENT ,
`name` varchar( 50 ) NOT NULL ,
`hosts` varchar( 255 ) NOT NULL ,
`pass` varchar( 255 ) NOT NULL ,
`score` double( 15, 2 ) NOT NULL ,
`regdate` date NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE KEY `name` ( `name` )
) ENGINE = MYISAM DEFAULT CHARSET = cp1251 AUTO_INCREMENT =1;


А как сделать на дебиан через shh например?

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 13 фев 2011 11:29
tvrsh
Зайди в папку где лежит этот файл. Введи команду mysql -u логин -pпароль имя_базы < casino.sql.txt, где -p и пароль пишутся слитно. Имя базы casino, если конечно не менял в настройках
variable name "casino"

Сам так не пробовал, говорят должно помочь.

СообщениеДобавлено: 13 фев 2011 12:59
oIIa4ku
Спасибо.
Правда сам скрипт наполовину рабочий, щас попробую более раннюю версию.

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 13 фев 2011 13:41
tvrsh
Почему наполовину, покажи какие ошибки в нем.

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 13 фев 2011 14:09
oIIa4ku
Вот ошибка на ставки
Tcl error [::casino::even]: expected integer but got "120.00"

меняется число и переменная ::casino::even, смотря как делаешь ставку.
А эта ошибка на передачу средств кому-либо
Tcl error [::casino::transfer]: can't read "::casino::pls(oIIa4ku,score)": no such element in array

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 13 фев 2011 22:38
tvrsh
А .set errorInfo показать религия не позволяет?

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 14 фев 2011 01:34
oIIa4ku
Вот так первая на ставки
) <oIIa4ku> .set errorInfo
(08:33:11) <mircbot> [08:31] #oIIa4ku# set errorInfo
(08:33:13) <mircbot> Currently: expected integer but got "12180.00"
(08:33:13) <mircbot> Currently: while executing
(08:33:13) <mircbot> Currently: "incr ::casino::pls($nick,score) -$bet"
(08:33:13) <mircbot> Currently: (procedure "addbet" line 13)
(08:33:13) <mircbot> Currently: invoked from within
(08:33:13) <mircbot> Currently: "addbet $nick $type $bet"
(08:33:13) <mircbot> Currently: (procedure "makebet" line 4)
(08:33:13) <mircbot> Currently: invoked from within
(08:33:13) <mircbot> Currently: "makebet $nick $chan "even" $text "
(08:33:13) <mircbot> Currently: (procedure "::casino::even" line 1)
(08:33:13) <mircbot> Currently: invoked from within
(08:33:13) <mircbot> Currently: "::casino::even $_pub1 $_pub2 $_pub3 $_pub4 $_pub5"

Вторая на передачу
(08:33:35) <mircbot> [08:32] Tcl error [::casino::transfer]: can't read "::casino::pls(oIIa4ku,score)": no such element in array
(08:33:37) <oIIa4ku> .set errorInfo
(08:33:38) <mircbot> [08:32] #oIIa4ku# set errorInfo
(08:33:41) <mircbot> Currently: can't read "::casino::pls(oIIa4ku,score)": no such element in array
(08:33:41) <mircbot> Currently: while executing
(08:33:41) <mircbot> Currently: "if { $::casino::pls($nick,score) < $gift } { putquick "$mode $nick :[format [msg 17] $::casino::pls($nick,score)]";return}"
(08:33:41) <mircbot> Currently: (procedure "::casino::transfer" line 13)
(08:33:41) <mircbot> Currently: invoked from within
(08:33:41) <mircbot> Currently: "::casino::transfer $_pub1 $_pub2 $_pub3 $_pub4 $_pub5"

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 14 фев 2011 10:32
tvrsh
По поводу первой ошибки. В процедуре addbet замени строки
                incr ::casino::pls($nick,$type) $bet
                incr ::casino::pls($nick,score) -$bet
на
                incr ::casino::pls($nick,$type) [expr round($bet)]
                incr ::casino::pls($nick,score) [expr round(-$bet)]

А что со второй делать не знаю, с виду все нормально.

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 14 фев 2011 12:20
oIIa4ku
Первая ошибка не исчезла
TCL: [ Скачать ] [ Скрыть ]
(19:13:39) <oIIa4ku> .set errorInfo
(19:13:41) <mircbot> [19:12] #oIIa4ku# set errorInfo
(19:13:41) <mircbot> Currently: expected integer but got "11950.00"
(19:13:41) <mircbot> Currently:     while executing
(19:13:41) <mircbot> Currently: "incr ::casino::pls($nick,score) [expr round(-$bet)]"
(19:13:41) <mircbot> Currently:     (procedure "addbet" line 13)
(19:13:41) <mircbot> Currently:     invoked from within
(19:13:41) <mircbot> Currently: "addbet $nick $type $bet"
(19:13:41) <mircbot> Currently:     (procedure "makebet" line 4)
(19:13:41) <mircbot> Currently:     invoked from within
(19:13:41) <mircbot> Currently: "makebet $nick $chan "even" $text "
(19:13:41) <mircbot> Currently:     (procedure "::casino::even" line 1)
(19:13:41) <mircbot> Currently:     invoked from within
(19:13:41) <mircbot> Currently: "::casino::even $_pub1 $_pub2 $_pub3 $_pub4 $_pub5"

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 14 фев 2011 14:05
tvrsh
На сколько я понимаю, ошибка получается из-за того, что команда incr работает только с целыми числами, а в переменную $bet попадает 11950.00. Она и ругается на это.
Командой [expr round()] мы округляем $bet до целого.
<tvrsh> $$ set a 10; incr a 5.0; return $a
<@bionic> Error: expected integer but got "5.0" - 0.033 ms.
<tvrsh> $$ set a 10; incr a [expr round(5.0)]; return $a
<@bionic> Return: 15 - 0.032 ms.


Может ты не сохранил/не рехашнул бота?

Re: Casino.tcl - казино, скрипт игры в рулетку.

СообщениеДобавлено: 16 фев 2011 12:15
oIIa4ku
Если бы я забыл что-то сделать, наверняка и в ошибке бы ничего не изменилось, а в ошибке есть прогрессия.