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

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

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

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

Сообщение Corund » 05 июн 2009 23:04

(IRC-игра Викторина v2.4 модификация v1.8 by Sergio + new addons. Добавлен рандом в вопросы, суперигры, угадай число, вопросы-анаграммы, вопросы-аукционы. На основе v2.0.4 by hex and Drakon and mod Kreon && MOSSs.)

1) Нельзя ли сделать, чтобы при рестарте бота, и соответственно, старте викторины по-новой, вопросы выдавались случайно из базы, а не опять в том же порядке, как и при предыдущем запуске.

2) При команде !рекорды показывает такое:
Код: Выделить всё
Зафиксирован длиннейший раунд 0 секунд.

Хотя уже был не один перезапуск.

3) При команде !вон, если к моему нику установлено примечание (!memo .....), не виден при этом средний балл, и примечание видно не до конца. (как-бы не умещается всё в одну строчку)

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

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

Сообщение tvrsh » 06 июн 2009 12:28

В следующий раз сообщения оставленные в неподходящей теме будут удалены.

1) Попробуй перед стартом игры написать в приват боту !rehash questions.
2) Покажи где у тебя находится файл quiz_rec.dat и что в нем.
3) В процедуре ::tpub::won замени строку
Код: Выделить всё
putfast "privmsg $chan :$msg.\003"
на
Код: Выделить всё
putmsg $chan $msg


строку
Код: Выделить всё
putfast "privmsg $chan :$msg_n.\003"
на
Код: Выделить всё
putmsg $chan $msg_n


строку
Код: Выделить всё
putfast "privmsg $chan :$msgs.\003"
на
Код: Выделить всё
putmsg $chan $msgs

После чего сохрани скрипт и рехашни бота.
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 » 06 июн 2009 17:57

1-я проблема решена, получилось. Ура!

2-я ...файл quiz_rec.dat в корне бота, но в нём ничего нет, он пустой.

3-я...Сделал всё, теперь показывает. Но вот маленькая деталь - как бы подправить теперь цвет?

Изображение
Изображение
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Winer » 10 июн 2009 22:31

у меня виндроп v1.6.18+Suzi008-Handlen32.Поставил эту викторину,вопросы повторяются все время.И в привате делал !rehash questions.Не помогает ничего.Пожалуйста подскажите.
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение tvrsh » 11 июн 2009 12:16

Corund
2. В процедуре ::tpub::tmr_next замени
Код: Выделить всё
if {![file exists $recordtimefile]} {} else {
   set fp [open $recordtimefile r]
   gets $fp recnow
   close $fp
   if {[expr ([clock seconds] - $game(started))] > $recnow} {
   
   set fp [open $recordtimefile w]
   flush $fp
   puts $fp [expr ([clock seconds] - $game(started))]
   close $fp
   }
}   
на
Код: Выделить всё
if {[file exists $recordtimefile]} {
   set fp [open $recordtimefile r]
   gets $fp recnow
   close $fp
   if {[expr ([clock seconds] - $game(started))] > $recnow} {
   set fp [open $recordtimefile w]
   puts $fp [expr ([clock seconds] - $game(started))]
   close $fp
   }
}   


3. С цветами сложно, надо запоминать последний цвет который был в строке и подставлять его в начало новой. Может придумаю что попозже.
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 » 11 июн 2009 12:18

Winer
Вообще, вопросы должны рехашится после каждой команды старт сами. У тебя все стандартные скрипты(alltools.tcl, compat.tcl) подключены? Покажи ошибки из патилайна если они есть.
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.

Сообщение Winer » 12 июн 2009 04:03

я пишу .set errorInfo он выдает:no such user - *

while executing
"error "no such user - $text""
("get" arm line 6)
invoked from within
"switch -exact -- $cmd {
"purge" {
set killed 0
foreach hand [userlist] {
if {[set xtra [getuser $hand xtra quiz]] == ""} { continue }
..."
(procedure "users" line 2)
invoked from within
"users get $hand"
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение Corund » 12 июн 2009 08:29

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

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

Сообщение Winer » 12 июн 2009 13:47

опять повторяет.Что то не так.
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение Winer » 12 июн 2009 13:48

УМНИК хорошо работал
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение Winer » 12 июн 2009 15:35

перезапускаю 50 вопросов рандом и опять повторы
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение Winer » 12 июн 2009 17:22

30 вопросов час рандом потом опять повторяет
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение tvrsh » 13 июн 2009 13:02

Winer
Поставь умника, или обратись к авторам скрипта, они тебе помогут, я не на столько хорошо разбираюсь в нем.

Corund
Проверь права на запись в этот файл. После каждой остановки игры, из этого файла берется кол-во секунд и сравнивается с длительностью раунда, если длительность раунда больше чем сохраненное в файле число, то эта длительность вписывается в файл. У тебя почему-то не записывается в этот файл ничего. Попробуй туда вписать руками любое 10 значное число и проверь команду.
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.

Сообщение Vertigo » 13 июн 2009 15:24

Перенес запись инфы о длительности раунда в XTRA поле овнеру (в юзерфайл). Добавил еще запись сколько вопросов успело прозвучать за это время. Сделал разбивку текста в !вон и !рекорды с "умным" переносом цветов. Ну и опционально добавил параметр как считывать базу - по порядку или случайно — смотрите конфиг. Будут еще какие-либо баги, пишите ;)
P.S. Sergio это я (в другой сети). В сети RusNet мой ник также Vertigo.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 13 июн 2009 15:57

А если в процедуре ::tpub::tmr_next после строки
Код: Выделить всё
setuser $conf(owner) XTRA QUESTCOUNT $game(qid)
дописать строку
Код: Выделить всё
setuser $conf(owner) XTRA MAXSTARTER $game(creator)

и в процедуре ::tpub::cmd_stop после строки
Код: Выделить всё
setuser $conf(owner) XTRA QUESTCOUNT $game(qid)
дописать туже самую строку
Код: Выделить всё
setuser $conf(owner) XTRA MAXSTARTER $game(creator)

после чего в процедуре ::tpub::cmd_records после строки
Код: Выделить всё
if {[getuser $conf(owner) XTRA QUESTCOUNT] ne ""} {set questcount [getuser $conf(owner) XTRA QUESTCOUNT];append msg ", за время которого прозвучал(о) \00307$questcount\00310 [lindex {. вопрос вопроса вопросов} [numgrp $questcount]]\00310"}

дописать строку
Код: Выделить всё
if {[getuser $conf(owner) XTRA MAXSTARTER] ne ""} {append msg " \00310и который был запущен по команде [getuser $conf(owner) XTRA MAXSTARTER]\00310"}

то итоговая строка примет примерно такой вид
Зафиксирован длиннейший раунд 4ч 3м 2с, за время которого прозвучало 432 вопроса и который быз запущен по команде nick.

Вот.
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 » 13 июн 2009 16:29

И продолжая "тюнинг" викторин расскажу как добавить систему праздников в игру, которая позволит увеличить кол-во очков за ответ с 3 до 5.
В процедуре ::tpub::cmd_start после строки
Код: Выделить всё
set game(tqid) 0                          ;# номер текущего вопроса-теста
добавьте 2 строки
Код: Выделить всё
set game(h) 0                          ;# текущий день не праздничный
set game(hol) ""                        ;# название праздника
потом в тойже процедуре перед строкой
Код: Выделить всё
# задаём первый вопрос
добавляйте
Код: Выделить всё
set fo [open $conf(holbase) r]
      while {[gets $fo line]>=0} {
        set utime "[ctime [unixtime]]"
    if {([lindex $line 0]==[lindex $utime 2]) && ([lindex $line 1]==[lindex $utime 1])} {
                 set game(h) "1"
                 set game(hol) "[lreplace $line 0 1]"
      putmsg $chan "\00310На нашем канале праздник: \002\00304$game(hol)\002\00310! \00303Начальная цена вопросов равняется \002\003065\002 \00303очкам и другие подарки ждут вас!\003"
               }
      }
      close $fo

Далее открываем процедуру ::tpub::on_join и после строки
Код: Выделить всё
if {$handle == "*"} {putnot $nick "$not\00310.\003"; return}
добавляйте
Код: Выделить всё
if {[info exists game(h)] && $game(h) == 1} {
      putnot $nick "\00310На нашем канале праздник: \002\00304$game(hol)\002\00310! \00303Начальная цена вопросов равняется \002\003065\002 \00303очкам и другие подарки ждут вас!\003"
      }

Потом в процедуре ::tpub::tmr_ask перед строкой
Код: Выделить всё
set game(asktime) "[clock seconds].[string range [clock clicks -milliseconds] [expr {[string length [clock clicks -milliseconds]] - 3}] end]"
добавляйте
Код: Выделить всё
if {[info exists game(h)] && $game(h) == 1} {
         set game(points) 5
                         } else {
         set game(points) 3
      }

Идем в процедуру ::tpub::dayremove и в ней перед строкой
Код: Выделить всё
foreach q [userlist] {
добавляем
Код: Выделить всё
set game(h) 0
      set game(hol) ""
      set fo [open $conf(holbase) r]
      while {[gets $fo line]>=0} {
        set utime "[ctime [unixtime]]"
    if {([lindex $line 0]==[lindex $utime 2]) && ([lindex $line 1]==[lindex $utime 1])} {
                 set game(h) "1"
                 set game(hol) "[lreplace $line 0 1]"
                 putmsg $conf(channels) "\00310На канале праздник: \002\00305$game(hol)\002\00310. \00303Начальная цена вопросов увеличивается до \002\003065\002\00303 очков и другие подарки ждут вас!\002"
               }
      }
      close $fo

Кажется все, сохраняем файл и идем в конфиг викторины в который добавляем строки
Код: Выделить всё
# путь до базы с праздниками
set conf(holbase) "scripts/holidays.txt"

Все готово. Вроде ничего не забыл. Сам файл с праздниками состоит из таких строк
1 Jan Новый Год
7 Jan Рождество Христово
11 Jan Всемирный день "Спасибо"

Праздники можно всять из скрипта holydays.tcl

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

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

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

Сообщение Corund » 13 июн 2009 20:49

Щас попробую поправить предыдущие проблемы, а вот ещё интересный момент: (я ошибся, вместо 999 ввёл 000, а потом ещё какую-то ерунду...и не дал сыграть никому в "аукцЫон")
[20:34:37] <|Universe|> Внимание! Объявляется вопрос-аукцион!
[20:34:37] <|Universe|> Готовы ли Вы заработать или потерять очки? Подсказок не будет! Если да - !да <число> . На раздумывание 10 секунд!
[20:34:42] <Corund> !да 000
[20:34:42] <|Universe|> Corund, вы добавлены в число претендентов со ставкой 1.
[20:34:42] <ToKSi> !да 999
[20:34:46] <Corund> аааааааааааа
[20:34:49] <ToKSi> ыыыыыыыыыыыыы
[20:34:50] <Corund> !да 089
[20:34:50] -|Universe|- ошибка при выполнении !да: expected integer but got "089" (looks like invalid octal number)
[20:34:52] <|Universe|> Ставки сделаны! Ставки больше не принимаются!
[20:34:55] <Corund> эх)
[20:34:57] <|Universe|> Итак, вопрос-аукцион для Corund! Ставка: 1 очко.

Ну вообще это мелочи всё...

Сделал я, теперь длиннейший раунд показывает, спасибо.

А вот по поводу записи произвольного числа из 10 знаков в файл quiz_rec.dat не помогла (записывал 0000000001), потом показывало:
Зафиксирован длиннейший раунд 1 секунда.

и не менялось, то есть не записывалась в этот файл информация.

По поводу случайного чтения базы:
В quiz_conf.tcl добавил строчки с настройкой
Код: Выделить всё
# как читать базу вопросов [1-случайно, 2-по порядку]
   set conf(qmode) 1


+ я смешал новый скрипт quiz.tcl Vertigo с выложенным ранее (поискал отличия вручную...), потому что я уже много изменений там сделал своих, насколько мог. (Цвет, фразы бота, убрал защиту от читерства... и прочая мелочь). В общем, проверяю сейчас. Вроде всё ок, благодарю ;)

Далее вот...про то, как сделать празднеги... а не нашёл такой строки я в этом скрипте. Нет такого мода вроде бы в этой версии...А жаль, очень прикольная штука, видел на канале #3HauKa...

set game(tqid) 0 ;# номер текущего вопроса-теста
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 14 июн 2009 01:06

Corund писал(а):Далее вот...про то, как сделать празднеги... а не нашёл такой строки я в этом скрипте. Нет такого мода вроде бы в этой версии...А жаль, очень прикольная штука, видел на канале #3HauKa...

set game(tqid) 0 ;# номер текущего вопроса-теста

Добавь это после любой другой строки в блоке инициализации.
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 » 16 июн 2009 22:44

Помогите решить проблему со случайным выбором вопросов из базы. Действительно она есть. Вопросы часто повторяются - такое ощущение, что если в базе есть повторяющиеся или похожие вопросы, то они чаще попадают на канал. Я все добавил как было предложено выше, с возможностью выбора режима чтения базы. Хотя база чтоб шла по порядку-плохо. Там есть вопросы про мифы, например, идущие подряд...штук 40, не пойдёт такое. Получится тематический вечер химии или советских хоккеистов. !rehash questions не помогает особо, потом начинаются все равно повторы.
Просьба - нельзя ли добавить какую-то мешалку вопросов?
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 16 июн 2009 22:54

Corund писал(а):По поводу случайного чтения базы:
В quiz_conf.tcl добавил строчки с настройкой
Код: Выделить всё
# как читать базу вопросов [1-случайно, 2-по порядку]
   set conf(qmode) 1


+ я смешал новый скрипт quiz.tcl Vertigo с выложенным ранее (поискал отличия вручную...), потому что я уже много изменений там сделал своих, насколько мог. (Цвет, фразы бота, убрал защиту от читерства... и прочая мелочь). В общем, проверяю сейчас. Вроде всё ок, благодарю ;)

Недостаточно добавить строку в конфиг. Надо скопировать процедуру ::tpub::question из нового скрипта в твой, так как в новом скрипте она исправлена/улучшена.

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

След.

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

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

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

cron