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

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

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

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

Сообщение Corund » 17 фев 2012 16:40

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

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

Сообщение Radiosignal » 18 фев 2012 20:18

tvrsh, а можешь добавить в викторину, что б раз в час бот рандомно выбирал игрока, и задавал ему вопрос.
Radiosignal
 
Сообщения: 59
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

Сообщение Corund » 05 апр 2012 20:14

Помогите, пожалуйста, раньше работало, когда были в другой сети, а теперь не работает вот это: :cry:
TCL: [ Скачать ] [ Скрыть ]
if {[lsearch -exact $game(question) "3333"]>0} {
                                set time [expr [clock seconds].[string range [clock clicks -milliseconds] [expr [string length [clock clicks -milliseconds]] - 3] end] - $game(asktime)]
                                set time [expr $time - $game(ptime)]
                                array set usr [users get $hand]
                                if {$hand==$game(lst_user)} {putfast "privmsg $chan :\00304[expr {[users isintop $hand] ? "\002$nick\002" : $nick}]\00310 не нужно повторять ответ несколько раз, я не глухой!"
                        } else {

 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."
                         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 {
                         putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}] отчаянно близко "
                         }    
 


Бот не дает несколько раз !дальше, не дает 1 очко за старания (за незначительное отставание) и не пишет "такой-то отстаёт на столько-то..."
А это работает: "не нужно повторять ответ несколько раз, я не глухой"
Аватара пользователя
Corund
 
Сообщения: 45
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 05 апр 2012 21:14

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

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

Сообщение Corund » 05 апр 2012 22:45

Пинг до бота стал меньше, то есть лучше, но незначительно. Сейчас он от меня например 0,06 сек. В другой сети были самые быстрые ответы игроков в топе быстр. в районе 0,5-1 сек. Сейчас в районе 0,9-1,5 сек. То есть пинг в целом вообще отличный... Я даже мало таких викторин встречал, где молниеносно ответ принимает.

Но он же реагирует на правильный ответ, который дан одним игроком 2 раза. Пишет же "не надо повторять..."
А так же пишет "Такой то игрок ... отстаёт всего на 0.13 секунды" (Я неправильно написал в предыдущем посте - время отставания он считает и показывает на канале!)

Не работает все, что ниже этих строк -
TCL: [ Скачать ] [ Скрыть ]
if {$hand==$game(lst_user)} {putfast "privmsg $chan :\00304[expr {[users isintop $hand] ? "\002$nick\002" : $nick}]\00310 не нужно повторять ответ несколько раз, я не глухой!"
                        } else {

 if {[okr $time] != "0" } {
                         if { $time < 5 } {

То есть вот это всё не работает -
TCL: [ Скачать ] [ Скрыть ]
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."
                         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 {
                         putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}] отчаянно близко "
Аватара пользователя
Corund
 
Сообщения: 45
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 06 апр 2012 08:29

С твоих слов не работает все, что находится в else в условии
if { $time < 5 } {

Внутри этого else находится условие
if {$game(creator)!=$hand && ![users isintopmonth $hand] && ![users isintop $hand] && [string first o [chattr [nick2hand $nick]]] == -1} {

Если ответивший не начал эту игру($game(creator)!=$hand), не в месячном топе(![users isintopmonth $hand]), не в общем топе(![users isintop $hand]) и если не оп на боте([string first o [chattr [nick2hand $nick]]] == -1), то выполнится эта часть кода:
TCL: [ Скачать ] [ Скрыть ]
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."
                         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]

А если хоть какие-то из условий выше выполняются, то напишет
putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}] отчаянно близко "

Что-то точно должно написаться. Тут нет никакой зависимости от сети. Попробуй уменьшить число в условии if { $time < 5 } {
А то что-то оно большое, новый вопрос наверно уже через 5 секунд задаваться должен.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1037
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 2 раз.
Поблагодарили: 83 раз.
Версия бота: Eggdrop 1.6.20+suzi

Пред.

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

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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 1

cron