Проблемы с викториной v1.8 by Sergio + new addons.

Решение вопросов при работе с TCL скриптами.

Модератор: Модераторы

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение zolti » 05 мар 2010 15:25

Спасибо, работает!
zolti
 
Сообщения: 36
Зарегистрирован: 12 фев 2010 13:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Teppopucm » 06 мар 2010 00:32

решил проблему с русскими командами (может кому пригодиться):
например, изменить это:
        proc ::tpub::cmd_место {nick chan text} { return [cmd_place $nick $chan $text] }
 

на
        proc ::tpub::cmd_место {nick uhost hand chan text} { return [cmd_place $nick $uhost $hand $chan $text] }
 

а в quiz_conf.tcl прописать билд команды:
        bind pub - $conf(pref)place ::tpub::cmd_place
        bind pub - $conf(pref)место ::tpub::cmd_place
 
Аватара пользователя
Teppopucm
 
Сообщения: 24
Зарегистрирован: 25 фев 2010 21:29
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.20

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Vertigo » 07 мар 2010 04:18

Teppopucm писал(а):решил проблему с русскими командами (может кому пригодиться):
например, изменить это:
        proc ::tpub::cmd_место {nick chan text} { return [cmd_place $nick $chan $text] }
 

на
        proc ::tpub::cmd_место {nick uhost hand chan text} { return [cmd_place $nick $uhost $hand $chan $text] }
 

а в quiz_conf.tcl прописать билд команды:
        bind pub - $conf(pref)place ::tpub::cmd_place
        bind pub - $conf(pref)место ::tpub::cmd_place
 

какой ужас.
в теле скрипта quiz.tcl найти нечто вроде этого
        # подгонка кодовой страницы (???)
        #########set text [encoding convertto [encoding system] $text]
    #Не нужна для бота с патчем Suzi !
и заменить например на
        # подгонка кодовой страницы (???)
        set text [encoding convertto [encoding system] $text]
    #Не нужна для бота с патчем Suzi !
т.е. раскомментировать :)
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение zolti » 17 мар 2010 01:31

Нашёл глюк при использовании команды !records
Код: Выделить всё
Рекорды игры: больше всего очков у XXX - 1764, наибольшее число ответов получено от XXX - 754, лучшая цепь ответов подряд у XXX - 43, больше всего побед в супер-играх у XXX - 0, больше всего разгадано анаграмм XXX - 33, самый быстрый ответ был дан XXX за 1.78 сек. Зафиксирован длиннейший раунд 0 секунд.

Вот не понятно, почему то длиннейший раунд всегда 0 секунд. Это команда не работала правильно когда у меня не было создано файл quiz_rec.dat. Я его создал, в патилайн ошибки про него больше нет. Однако он всегда пустой.

И что он подразумевает под длиннейшим раундом? Может я не туда смотрю...

Прикрепил на всякий случай свой quiz.tcl
У вас нет необходимых прав для просмотра вложений в этом сообщении.
zolti
 
Сообщения: 36
Зарегистрирован: 12 фев 2010 13:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение zolti » 17 мар 2010 02:29

Разобрался сам, взял кусок кода из более ранней версии от Vertigo
zolti
 
Сообщения: 36
Зарегистрирован: 12 фев 2010 13:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Arsenic » 20 мар 2010 18:30

бот кикает за флуд, что можно с этим сделать?
Arsenic
 
Сообщения: 2
Зарегистрирован: 20 мар 2010 18:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение tvrsh » 20 мар 2010 23:31

Arsenic писал(а):бот кикает за флуд, что можно с этим сделать?

Ты не поверишь! Отключить защиту от флуда. Делается это так:
#egghelp @ IrcNet.ru писал(а):[22:29:43] <@tvrsh> man flood
[22:29:44] <@lamestbot> * flood = Рассмотрим на примере: flood-chan 10:60. Это означает, что бот определит как флуд больше 10 сообщений в канал за 60 секунд. Для отключения установите: flood-chan 0:0 или в патилайне .chanset #chan flood-chan 0. [tvrsh]

А какое отношение твой вопрос имеет в теме викторины? Если надумаешь задать еще пару не освещенных ранее вопросов то создавай для них новые темы а не пиши в каких попало.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Arsenic » 21 мар 2010 03:31

учту на будущие, спасибо за помощь
Arsenic
 
Сообщения: 2
Зарегистрирован: 20 мар 2010 18:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Teppopucm » 03 апр 2010 13:07

в викторине кто ответил первый на вопрос - дает очки, а второй игрок если правильно ответил, то пишет что остает на какое-то количество секунд.
вопрос: как сделать так, чтобы и второму игроку, отвечающий правильный на вопрос, бот давал очки - но меньше, чем у первого отвечающего?
Аватара пользователя
Teppopucm
 
Сообщения: 24
Зарегистрирован: 25 фев 2010 21:29
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.20

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение tvrsh » 03 апр 2010 16:16

Teppopucm писал(а):в викторине кто ответил первый на вопрос - дает очки, а второй игрок если правильно ответил, то пишет что остает на какое-то количество секунд.
вопрос: как сделать так, чтобы и второму игроку, отвечающий правильный на вопрос, бот давал очки - но меньше, чем у первого отвечающего?

Вот эта часть кода отвечает за отставания:
TCL: [ Скачать ] [ Скрыть ]
if {[okr $time] != "0" } {
                        if { $time < 5 } {
                        putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}] отстаёт всего на \00304[okr $time]\00310 секунды." }
                } else {
                   if {$game(creator)!=$hand && ![users isintopmonth $hand] && ![users isintop $hand] && [string first o [chattr [nick2hand $nick]]] == -1} {
                        if {[info exists game(bn,$hand)]} {
                                incr game(bn,$hand)
                                } else {
                                set game(bn,$hand) 1
                                }
                        putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}], твой ответ был очень близко! За это тебе дается право \00304$game(bn,$hand)\00310 [lindex {. раз раза раз} [numgrp $game(bn,$hand)]] сделать \00305!дальше\00313."
                  } else {
                        putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}] отчаянно близко <img src="https://forum.egghelp.ru/images/smilies/icon_e_wink.gif" alt=";)" title="Wink" />"
                        }              
                 
                }
Если округленное время до повторного правильного ответа равно нулю и юзер удовлетворяет условиям
$game(creator)!=$hand && ![users isintopmonth $hand] && ![users isintop $hand] && [string first o [chattr [nick2hand $nick]]] == -1
То-есть он не создатель игры, не в месячном и общем топе и не оператор на канале то ему дается право сделать один раз !дальше. Во всех остальных случаях просто сообщается время отставания от первого правильно ответившего.
Чтобы давались очки за такие отставания надо заменить
}
                        putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}], твой ответ был очень близко! За это тебе дается право \00304$game(bn,$hand)\00310 [lindex {. раз раза раз} [numgrp $game(bn,$hand)]] сделать \00305!дальше\00313."
                  } else {
на
TCL: [ Скачать ] [ Скрыть ]
}
                        putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}], твой ответ был очень близко! За это тебе дается право \00304$game(bn,$hand)\00310 [lindex {. раз раза раз} [numgrp $game(bn,$hand)]] сделать \00305!дальше\00313."
                        array set usr [users get $hand]
                        incr usr(score) "1"
                        incr usr(scoremonth) "1"
                        putmsg $chan "\00306[expr {[users isremort $hand] ? "\002$nick\002" : $nick}] отстаёт на [okr $time] секунды, и получает за это 1 очко."
                        users set [list $hand [array get usr]]
                        array set usr [users get $hand]
                  } else {

Тут за отставание помимо !дальше дается дополнительное 1 очко. Количество очков можно задавать переменной и вынести в конфик.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарил:
Teppopucm (17 авг 2012 22:32)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение replod » 04 апр 2010 06:32

[02:31] ::Quiz:: ERROR. User 'RePlod' doesn't exists! Please set directive conf(owner) correctly.
[02:31] Tcl error in file 'eggdrop.conf':
[02:31] can't create procedure "::tpub::toupper": unknown namespace
while executing
"proc ::tpub::toupper {t} {
return [string toupper $t]
}"
(file "scripts/quiz/quiz.tcl" line 15)
invoked from within
"source scripts/quiz/quiz.tcl"
(file "eggdrop.conf" line 1350)

в чем может проблема?
replod
 
Сообщения: 9
Зарегистрирован: 27 мар 2010 09:53
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение tvrsh » 05 апр 2010 06:09

В том, что ты не хочешь пользоваться поиском. viewtopic.php?p=590#p590
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Corund » 11 апр 2010 00:22

У меня скрипт не понимает русские команды. Всё, что писали ранее, пробовал - не помогает. Если раскомментирую строку где "подгонка кодовой страницы", то и ответы на русском языке перестает принимать.
И почему-то когда файл базы с вопросами большой, более 400 кб например, пишет постоянно ошибки, не хочет корректно работать, показывает, что там, например, 500 вопросов. А на самом деле их там 100 000.
Сохранял базу в формате Юникод, тогда кол-во вопросов пишется правильно, но на канал не выдаются.

tvrsh писал(а):Напиши в патилайне .binds pub там есть русские команды?


TEXT: [ Скачать ] [ Скрыть ]
 #Corund# binds pub
Command bindings:
  TYPE FLGS     COMMAND              HITS BINDING (TCL)
  pub  -|-      !вон                    2 ::tpub::pubwon
  pub  n|-      !sur                    0 ::tpub::suremove
  pub  -|-      !won                    0 ::tpub::pubwon
  pub  -|-      !help_v                 0 helping_v
  pub  -|-      !хелп_в                 0 helping_v
 
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Corund » 16 май 2010 18:14

Черт с ним, поставил викторину на windrop, все работает отлично. Потом разберусь... может с Шеллом что-то.

Подскажите лучше вот что - как сделать так, чтобы в топик канала выводилось сообщение типа "лучший игрок дня <такой-то>" ?
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение tvrsh » 20 май 2010 00:17

Corund писал(а):Подскажите лучше вот что - как сделать так, чтобы в топик канала выводилось сообщение типа "лучший игрок дня <такой-то>" ?

Начать вести еще один топ в котором будут только очки каждого игрока за день и в конце дня писать в топик ник лидера. В качестве примера используй топ за месяц.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение tvrsh » 02 окт 2010 10:08

С обновлением Eggdrop до 1.6.20 в викторине должен был сломаться вывод нотисов, так как в ней для этого используется команда putdccraw. Сейчас в версии 1.6.20 применяется команда putnow. Чтобы исправить данную ошибку найдите строку
proc putfast {text} {append text "\n"; putdccraw 0 [string length $text] $text}
и замените ее на
proc putfast {text} {append text "\n"; putnow $text}
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Eugine-x » 23 окт 2010 16:09

Добрый день. Такая проблема: скрипт игры тестируется дней 5, и вот какая проблема - разное кол-во общих очков и очков за месяц, и работает то как-то выборочно, не у всех очки расходятся.
Десятка лидеров за всё время: 1. aaa (928), 2. bbb (854), 3. ccc (271), 4. ddd (214), 5. eee (195), 6. fff (128), 7. ggg (56), 8. hhh (40), 9. iii (13), 10. jjj (3).
[18:35:10] Eug: Десятка лидеров этого месяца: 1. aaa (911), 2. bbb (854), 3. ccc (239), 4. ddd (214), 5. eee (152), 6. fff (128), 7. hhh (40), 8. ggg (22), 9. iii (13), 10. jjj (3).
[18:35:12] Eug: Десятка лидеров за сегодня (23.10.2010): 1. eee (60), 2. ggg (23).

ps вот еще вопрос - сколько очков выдается за правильный ответ в обычных вопросах.
Спасибо
Eugine-x
 
Сообщения: 8
Зарегистрирован: 20 окт 2010 15:56
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение Eugine-x » 26 окт 2010 18:36

Спасибо за скрипт, вроде разобрался. Хотел бы узнать, как убрать строчку "[17:49:34] bot: Eugine-x попадает в пятёрку лучших игроков!" которая ставится постоянно при ответе игрока попавшего в пятерку лучших. Можно ли как-то сделать, чтобы она появлялась допустим один раз, когда игрок попадает в эту пятерку, а не с каждым ответом? В скрипте нашел строчку которая за это отвечает:

# раздача крестов
if {(![isvoice $nick $chan] && ![isop $nick $chan]) && (([users isintop $hand] && $usr(score) > 100) || [users isremort $hand])} {
putquick "MODE $chan +v $nick"
putfast "privmsg $chan :\00310[expr {[users isremort $hand] ? "\002$nick\002" : $nick}] [expr {[users isremort $hand] ? "получает войс, потому что он ремортер!" : "попадает в пятёрку лучших игроков!"}]\003"

пробовал ставить

# раздача крестов
if {(![isvoice $nick $chan] && ![isop $nick $chan]) && (([users isintop $hand] && $usr(score) > 100) || [users isremort $hand])} {
putquick "MODE $chan +v $nick"
putfast "privmsg $chan :\00310[expr {[users isremort $hand] ? "\002$nick\002" : $nick}] [expr {[users isremort $hand] ? "получает войс, потому что он ремортер!"}]\003"

то в викторина пишет следующее:

[20:58:40] Eugine-x: филипп
[20:58:41]bot: Замечательно, Eugine-x! Правильный ответ -> "филипп" <-, был получен за 10.34 секунд. У тебя теперь 329 очков (143 ответа) (329 (143))
[20:58:50] bot: Подсказка: фил***
[20:59:16] Eugine-x: филипп
[20:59:18]bot: Действительно, Eugine-x! Точный ответ -> "филипп" <-, был получен за 46.47 секунды. У тебя теперь 330 очков (144 ответа) (330 (144)) и это твой 2 ответ подряд!
[20:59:21] bot: Никто не ответил на вопрос, правильный ответ - филипп.
Спасибо.
Eugine-x
 
Сообщения: 8
Зарегистрирован: 20 окт 2010 15:56
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.8

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение tvrsh » 27 окт 2010 15:28

Eugine-x писал(а):Спасибо за скрипт, вроде разобрался. Хотел бы узнать, как убрать строчку "[17:49:34] bot: Eugine-x попадает в пятёрку лучших игроков!" которая ставится постоянно при ответе игрока попавшего в пятерку лучших. Можно ли как-то сделать, чтобы она появлялась допустим один раз, когда игрок попадает в эту пятерку, а не с каждым ответом? В скрипте нашел строчку которая за это отвечает:

# раздача крестов
if {(![isvoice $nick $chan] && ![isop $nick $chan]) && (([users isintop $hand] && $usr(score) > 100) || [users isremort $hand])} {
putquick "MODE $chan +v $nick"
putfast "privmsg $chan :\00310[expr {[users isremort $hand] ? "\002$nick\002" : $nick}] [expr {[users isremort $hand] ? "получает войс, потому что он ремортер!" : "попадает в пятёрку лучших игроков!"}]\003"

В этом коде бот смотрит, если ник не войс и не оп на канале и если он в пятерке лучше и его очки больше ста или он ремортер, то выдает войс и сообщает об этом в канал.
Ну а у тебя при каждом ответе он это говорит из-за того, видимо, что не может дать ему войс. Либо дай боту опа или хопа либо закомментируй просто строку с выводом сообщения.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Проблемы с викториной v1.8 by Sergio + new addons.

Сообщение CyibX » 30 окт 2010 14:47

на команду !старт бот пишет "к сожалению, в базе данных нет ни одного вопроса, запуск викторины невозможен..." хотя база с вопросами есть...
а в патлайне пишет эту ошибку
[13:43:14] <ChertuJIo> [13:43:14] Warning! putdccraw is deprecated. Use putnow instead!
[13:43:14] <ChertuJIo> [13:43:14] %Skarabei_% st
что делать?
Аватара пользователя
CyibX
 
Сообщения: 7
Зарегистрирован: 30 окт 2010 14:42
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

Пред.След.

Вернуться в TCL скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron