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

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

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

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

Сообщение Radiosignal » 17 июн 2009 18:07

tvrsh прет, напиши пожалуйста систему ремортов. Когда проходишь в этой викторине круг, реморт пишется, но каждый последующий так же считается первым

Код: Выделить всё
## remort check
if {$usr(score) >= $conf(rscore)} {::tpub::remort $nick $uhost $hand $chan}
Последний раз редактировалось tvrsh 17 июн 2009 18:25, всего редактировалось 1 раз.
Причина: Добавление тэгов [ code=tcl][/code]
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

Сообщение tvrsh » 17 июн 2009 18:24

Radiosignal писал(а):tvrsh прет, напиши пожалуйста систему ремортов. Когда проходишь в этой викторине круг, реморт пишется, но каждый последующий так же считается первым

Код: Выделить всё
## remort check
if {$usr(score) >= $conf(rscore)} {::tpub::remort $nick $uhost $hand $chan}

Как ты это проверял? Процедура ::tpub::remort до этого ни у кого не вызывала вопросов. Покажи, что тебе отвечает бот на команду !raw ник_ремортера.

И когда постишь код не зыбывай пользоваться тэгами [ code=tcl][/code]
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.

Сообщение Radiosignal » 17 июн 2009 18:30

Вот что пишет при !raw Radiosignal, хотя реморт наступил
Код: Выделить всё
!raw Radiosignal
[18:25:28] -Radiosi- raw(Radiosignal): anwins 6 remort 0 answersmonth 181 scoremonth 7057 score 150001 supergames 13 answersday 18 wins 0 scoreday 50 augames 7 answers 181 last 1245243720 cont 73 quick 2.45
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

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

Хм, толи я не туда смотрю толи тут просто нет вызова процедуры ремортов.
После строк
Код: Выделить всё
         set hint1d 0
         killtm
         utimer $conf(nextq) ::tpub::tmr_ask
добавь
Код: Выделить всё
         if {[info exists conf(rscore)] && $usr(score)>=$conf(rscore)} {
                        ::tpub::remort $nick $uhost $hand $chan
                        }

и проверь заново.
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.

Сообщение Radiosignal » 17 июн 2009 19:07

Код: Выделить всё
[19:06:09] <Radiosi> Bonpoc #1: Haтyp. вoлokнo из шepcти кaшмиpcкиx кoз (7 букв)
[19:06:16] <Radiosignal> кашемир
[19:06:16] <Radiosi> Похвально, Radiosignal! Правильный ответ -> "кашемир" <-, был получен за 7.20 секунд. У тебя теперь 150001 очко (184 ответа) (7065 (184))
[19:06:16] <Radiosi> Radiosignal набирает РЕМОРТ.
[19:06:16] <Radiosi> Radiosignal получает свой 1-й реморт! Radiosignal, ты мой бог!
[19:06:20] <Radiosi> Bonpoc #2: Город нa Украине (6 букв)
[19:06:24] <Radiosignal> !raw Radiosignal
[19:06:24] -Radiosi- raw(Radiosignal): anwins 6 remort 0 answersmonth 184 scoremonth 7065 score 150001 supergames 13 answersday 21 wins 0 scoreday 58 augames 7 answers 184 last 1245251176 cont 73 quick 2.45
[19:06:35] <Radiosi> Подсказка: ир****
[19:06:39] <Radiosignal> !set Radiosignal score 149998
[19:06:39] -Radiosi- Значение параметра score для пользователя Radiosignal изменено на: 149998
[19:06:49] <Radiosignal> ирпень
[19:06:49] <Radiosi> Невероятно, Radiosignal! Правильный ответ -> "ирпень" <-, был получен за 29.37 секунд. У тебя теперь 150000 очков (185 ответов) (7067 (185)) и это твой 2 ответ подряд!
[19:06:49] <Radiosi> Radiosignal набирает РЕМОРТ.
[19:06:49] <Radiosi> Radiosignal получает свой 1-й реморт! Radiosignal, ты мой бог!
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

Сообщение Radiosignal » 17 июн 2009 19:13

Все работает. Спасибо большое.
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

Сообщение Corund » 18 июн 2009 17:41

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

Все это уже сделал... конечно же из нового скрипта все перенес в старый, наблюдаю сейчас...вчера игроки написали просьбу рехэшнуть, ибо вопросы повторяются ужасно... я уже и базу менял на другую. В-общем, смотрю, что дальше будет. Напишу обязательно, что происходит.

Код: Выделить всё
[17:22:58] <Corund> я вчера вот не понял...вопросы все равно повторяются?????
[17:28:45] <Fex> вчера повторялись, да еще как )
[17:29:57] <Corund> блин..(((
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Winer » 20 июн 2009 01:44

поставил новую версию на виндроп 1.6.19+ctcpfix.Не запускается пишет:Tcl: unknown namespace "::tpub::" in namespace delete command

Tcl: while executing

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

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

Сообщение Vertigo » 20 июн 2009 02:01

Не должно оно так ругаться. Там же через catch удаляется пространтсво имён... И поэтому даже если ::tpub:: не существует (что справедливо при первом запуске), бот падать ни в коем случае не должен.
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Corund » 20 июн 2009 11:43

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

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

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

Corund
При заходе на канал в праздничный день юзер получает нотис об этом. Для этого в процедуру ::tpub::on_join мы добавляли строки
Код: Выделить всё
if {[info exists game(h)] && $game(h) == 1} {
      putnot $nick "На нашем канале праздник: $game(hol)! Начальная цена вопросов равняется 5 очкам и другие подарки ждут вас!\003"
      }


Добавление раздачи бестолковых подарков.

Перед строкой
Код: Выделить всё
# раздача крестов
добавьте
Код: Выделить всё
if {[info exists game(h)] && $game(h) == 1} {
                              # В этом блоке дается подарок за 6 ответов подряд, можно добавить блоки для каждой цепочки, для 6, 8, 10 и тд.
               if {$game(lst_cnt) == 6} {
                              set game(present) [::tpub::tolower [lindex $conf(presents) [rand [llength $conf(presents)]]]]
               putact $chan "за 6 правильных ответов подряд, дарит [expr {[users isremort $hand] ? "\002$nick\002" : $nick}] $game(present)!\003"
                }
                        }

В конфиг викторины добавляйте
Код: Выделить всё
# файл с подарками
set conf(presents) [::egglib::readdata scripts/presents.txt]

В самом файле на каждую строчку по подарку:
бабушкины старые тапки
фалоимитатор с лампочками
...
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 » 20 июн 2009 14:10

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

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

Сообщение Winer » 20 июн 2009 16:47

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

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

Сообщение tvrsh » 20 июн 2009 17:21

Winer писал(а):Почему у меня все имеют право !дальше.

Если посмотреть на этот блок из процедуры ::tpub::cmd_next
Код: Выделить всё
if {![matchattr $hand o] && ![users isintopmonth $hand] && ![users isintop $hand] && (![info exists usr(remort)] || $usr(remort) == 0) && [lindex $game(creator) 0] != $hand} {
      if {[info exists game(bn,$hand)] && $game(bn,$hand) > 0} {
         incr game(bn,$hand) -1
         if {$game(bn,$hand)<=0} { unset game(bn,$hand) }
      } else {
         return deny
      }
   }
то из него следует, что доступ к команде !дальше имеют следующие пользователи(по порядку записи в строке):
1. Имеющие флаг o на боте(операторы).
2. Находящиеся в топе за месяц.
3. Находящиеся в топе за все времена.
4. Ремортеры.
5. Те, кто начал игру.

Также право на одну команду !дальше можно получить ответив на вопрос одновременно с другим игроком.
Соответственно, если юзер не удовлетворяет ни одному из указанных условий, то он не имеет доступ.
Ну а если имеет, то соблюдается хотябы одно из условий.
Проверь маски пользователей, возможно под одну маску попадает несколько игроков и у одного из них есть права к этой команде.
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 » 20 июн 2009 18:37

Помогите сделать мешалку вопросов плз, сейчас это один из недостатков на канале. Она не работает как следует.
Вот tpub::question из скрипта Vertigo, копирую из скрипта, который запущен сейчас у меня...
Код: Выделить всё
proc ::tpub::question {cmd {text ""}} { variable conf; variable qpos
   switch -exact -- [string tolower $cmd] {
      "count" {
      if {$conf(qmode) eq 1} {
      
         if {![info exists qpos]} { return 0 }
         return [llength $qpos]
      }
      
      if {$conf(qmode) eq 2} {
      if {![info exists qpos]} { return 0 }
      if {[llength $qpos] > 1} {return [llength $qpos]}
         return $qpos
      }
      }
      "rehash" {
         if {[info exists qpos]} { unset qpos }
         set qpos {}
         set ::tpub::qcount 0
         if {[catch {open $conf(fnquestions) r} fileID]} { return 0 }
         while {![eof $fileID]} {
            set pos [tell $fileID]
            incr ::tpub::qcount
            if {[set line [string trim [gets $fileID]]] == ""} { continue }
            if {[string range $line 0 0] == "#"} { continue }
            lappend qpos $pos
         }
         close $fileID
         return [llength $qpos]
      }
      "get" {
      if {$conf(qmode) eq 1} {
      # random question
         if {![info exists qpos] || ![llength $qpos]} {
            putlog "Out of questions, rehashing..."
            if {![question rehash]} {
               putlog "No questions available, eek."
               return {}
            }
         }
         set idx [expr int(rand() * [llength $qpos])]
         set fpos [lindex $qpos $idx]
         set qpos [lreplace $qpos $idx $idx]
         if {[catch {open $conf(fnquestions) r} fileID]} { return {} }
         seek $fileID $fpos start
         set line [gets $fileID]
         set line [split [string trim $line] |]
         set line "[toupper [string range $line 0 0]][string range $line 1 end]"
         close $fileID
         return [list [lindex $line 0] [split [lrange $line 1 end] ,]]
         }
         if {$conf(qmode) eq "2"} {
               set q [open $conf(fnquestions) r]
               set quiz(data) [split [read $q] \n]
               if {[getuser $conf(owner) xtra count] == ""} {
                  setuser $conf(owner) xtra count 0
                  }
               set quiz(count) [getuser $conf(owner) xtra count]
               set line [lindex $quiz(data) $quiz(count)]
               set qpos [expr [llength $quiz(data)] - $quiz(count)]
               set line [split [string trim $line] |]
               set line "[toupper [string range $line 0 0]][string range $line 1 end]"
               close $q
               setuser $conf(owner) xtra count [incr quiz(count)]
               if {$quiz(count) >= [llength $quiz(data)]} {setuser $conf(owner) xtra count 0; putlog "Out of questions, rehashing..."}
               return [list [lindex $line 0] [split [lrange $line 1 end] ,]]
            }
         }
      
      
      "find" {
         if {$text == ""} {
            error "wrong # args: should be \"questions find pattern\""
         }
         set idx -1
         if {[catch {open $conf(fnquestions) r} fileID]} { return $idx }
         while {![eof $fileID]} {
            if {[string range [set line [gets $fileID]] 0 0] == "#"} { continue }
            incr idx
            if {[lindex [split $line |] 0] == $text} {
               close $fileID
               return $idx
            }
         }
         close $fileID
         return -1
      }
      "del" {
         if {$text == ""} {
            error "wrong # args: should be \"questions del number\""
         }
         if {![string is integer $text]} {
            error "bad option \"$text\": must be an integer"
         }
         if {[catch {open $conf(fnquestions) r+} fileID]} { return 0 }
         while {![eof $fileID]} {
            set pos [tell $fileID]
            if {[string range [gets $fileID] 0 0] == "#"} { continue }
            if {![expr int($text)]} {
               puts -nonewline $fileID "#"
               close $fileID
               return 1
            }
            incr text -1
         }
         close $fileID
      }
      "add" {
         if {$text == ""} {
            error "" "wrong # args: should be \"questions add question test|answer|..\""
         }
         if {[string first | $text] == -1} {
            error "" "wrong question format, must be: \002question text|answer\002[|answer|...]"
         }
         if {[catch {open $conf(fnquestions) a} fileID]} {
            error "" "could not open questions database for writing."
         }
         puts $fileID " [string trim $text]"
         close $fileID
      }
      default {
         error "bad option \"$cmd\": must be rehash, get, find or del"
      }
   }
   return 0
}
# работа с пользователями.............

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

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

Сообщение Winer » 20 июн 2009 19:28

Мешалка все работает.Спасибо всем за подсказку.Насчет !дальше я домаю ошибка вот где.После вопроса-аукциона он всем выдает + меняет режим: -m+vvvvvvv
Winer
 
Сообщения: 17
Зарегистрирован: 10 июн 2009 22:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение Corund » 20 июн 2009 22:08

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

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

Сообщение tvrsh » 20 июн 2009 22:42

Winer писал(а):Мешалка все работает.Спасибо всем за подсказку.Насчет !дальше я домаю ошибка вот где.После вопроса-аукциона он всем выдает + меняет режим: -m+vvvvvvv

Войс не позволяет использовать команду !дальше. Доступ к ней имеют только те, о ком я писал в посте выше. Ошибка в чем-то другом.
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 » 21 июн 2009 00:10

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

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

Сообщение Corund » 21 июн 2009 03:51

[03:47:09] <Roll> кстати с рандомом правда что-то не то)
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

Пред.След.

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

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

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

cron