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

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

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

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

Сообщение Vertigo » 26 июл 2011 22:02

дабы не гадать, логичнее сделать так
if {![info exists game] || $game(chan) != $chan || ![validuser [nick2hand $nick]]} {
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

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

Сообщение maks » 28 авг 2011 17:23

здравствуйте!
можно как то сделать, чтоб при команде !топ не ток выводились очки но и ранг?
например: алинка[Магистр] (640)
maks
 
Сообщения: 5
Зарегистрирован: 04 июн 2011 22:39
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 28 авг 2011 19:50

maks писал(а):здравствуйте!
можно как то сделать, чтоб при команде !топ не ток выводились очки но и ранг?
например: алинка[Магистр] (640)

Поробуй в процедуре ::tpub::cmd_top после строк
                set msg ""
                set place 0
                foreach item [lrange [users list] 0 9] {

Добавить строки
TCL: [ Скачать ] [ Скрыть ]
                set ko 0
                set honor ""
                array set user [set xtra [users get [lindex $item 0]]]
                        foreach hitem $conf(drank) {
                        if {[lindex $item 1]<=$hitem} { set honor [lindex $conf(rank) $ko]; break}
                        incr ko }
                if {$honor==""} {set honor $conf(dmax)}

А строку
                        if {[lindex $item 1] != 0} { append msg ", \00304\002\002[incr place]. \00303[lindex $item 0]\00314 (\00307[lindex $item 1]\00314)\00310" }
замени на
                        if {[lindex $item 1] != 0} { append msg ", \00304\002\002[incr place]. \00303[lindex $item 0]\00310\[\00305[expr {[info exists user(tremort)] ? $user(tremort) : $honor}]\00310\]\00314 (\00307[lindex $item 1]\00314)\00310" }
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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

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

Сообщение HuKoTuH » 08 окт 2011 20:22

здравствуйте!
можно как то сделать, ранг?
например: [ Уровень: 3 | Место: 146 | Очков: 192 | Анаграмм: 22 | Ответов: 49 ]
[ Место за месяц: 4 | Очков за месяц: 192 ]
HuKoTuH
 
Сообщения: 13
Зарегистрирован: 22 янв 2011 19:03
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение tvrsh » 08 окт 2011 20:37

Да, можно. В любое место скрипта добавь следующую строку:
putserv "PRIVMSG $chan :\[ Уровень: [rand 10] | Место: [rand 20] | Очков: [rand 30] | Анаграмм: [rand 40] | Ответов: [rand 50] \]\[ Место за месяц: [rand 10] | Очков за месяц: [rand 500] \]"
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.

Сообщение DmitRex » 09 окт 2011 13:30

:lol:
Аватара пользователя
DmitRex
 
Сообщения: 50
Зарегистрирован: 14 июл 2010 10:39
Откуда: Владимир
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение HuKoTuH » 09 окт 2011 16:57

дравствуйте!
можно как то сделать
Блестяще, ybr! Отличный ответ -> "прапорщик" <-, был получен за 45.84 секунд и приносит 1 очко . У тебя теперь 56852 очка, в том числе 314 очков за текущий месяц и 1 очко за сегодня.Ты верно ответил на 13593 вопроса и 4120 анаграмм.
Замечательно, ник! Ты разгадываешь анаграмму -> "индикатор" <- за 15.29 секунд и получаешь 8 очков. У тебя теперь 56906 очков, в том числе 368 очков за текущий месяц и 70 очков за сегодня.Ты верно ответил на 13604 вопроса и 4123 анаграммы. Это твой 12 ответ подряд!
HuKoTuH
 
Сообщения: 13
Зарегистрирован: 22 янв 2011 19:03
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение Vertigo » 09 окт 2011 18:57

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

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

Сообщение Corund » 10 окт 2011 21:48

На супер-игре (которая за цепь вопросов подряд даётся) новички иногда тупят и не пишут !да 500 (например) или !нет, или просто человек может отойти от компа, или у него разрыв связи и т.д. Тогда викторина виснет.

Нельзя ли подправить так, чтобы по истечении времени, которое дано на раздумья, выводилось нечто типа "переходим к следующему вопросу"... и цепочка ответов не прерывалась бы.

То есть чтобы у игрока был выбор - играть или нет в супер-игру. Я бы потом поменял текст на что-то такое: "За n правильных ответов подряд предлагаем nick сыграть в супер-игру. Сделайте вашу ставку (!да число) или пишите !нет для продолжения цепочки"

Добавлено спустя 2 минуты 21 секунду:
И ещё - на человеке с ником }|{y4ok виснут аукционы. В чём тут дело?
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Vertigo » 11 окт 2011 00:34

Раскопал у себя в архиве какую-то версию викторины. Проверил - выдается мессага, мол продолжаем дальше.
|10.10.2011 / 22:23:17| <TrioN_> Vertigo получает право на супер-игру! Введите !да <ставка>, чтобы играть или !нет, чтобы отказаться. Ставка от 10 до 250 очков (по умолчанию 10 очков). На принятие решения у Вас 15 секунд.
|10.10.2011 / 22:23:27| <TrioN_> Vertigo, вы не успели запустить призовую игру за отведенные 15 секунд. Продолжаем.
и
|10.10.2011 / 23:22:49| <Melissa_> Внимание! Объявляется вопрос-аукцион!
|10.10.2011 / 23:22:49| <Melissa_> Готовы ли Вы заработать или потерять очки? Подсказок не будет! Если да - !да <число> . На раздумывание 10 секунд!
|10.10.2011 / 23:22:59| <Melissa_> Время принятия решения вышло! Продолжаем.

Если вылезут баги/глюки - мне уже влом их смотреть и исправлять.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

За это сообщение автора Vertigo поблагодарили: 2
Corund (11 окт 2011 17:45), Teppopucm (02 сен 2012 20:21)
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Corund » 11 окт 2011 18:00

.
Спс!
.
От зависаний спасло это:

В этом месте...

putfast "privmsg $chan1 :\00303$nick1\00310, вы не успели запустить призовую игру за отведенные\00303 $offtime\00310 секунд. Продолжаем."


То, что на одну строку выше -
if {$conf(modset) eq 1} {putfast "MODE $chan1 -c"}


заменил на
if {[info exists conf(modset)] && $conf(modset) eq 1} {putfast "MODE $chan1 -c"}
(это фрагмент из версии по ссылке Vertigo)
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Corund » 12 окт 2011 22:37

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


Начать вести еще один топ в котором будут только очки каждого игрока за день и в конце дня писать в топик ник лидера. В качестве примера используй топ за месяц.


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

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

Сообщение Sparkle » 02 ноя 2011 02:29

[20:05:21] <Nika> Вопрос: №21: Kрyжевная оборkа; резной деревянный карниз (6 букв)
[20:05:36] <Nika> Подсказка: по****
[20:05:51] <Nika> Подсказка: под***
[20:05:53] <Volka> подзор
[20:06:00] <Volka> подзор
[20:06:11] <Nika> Никто не ответил на вопрос, правильный ответ - подзор.

Игнорирует некоторые ответы!

Замечена ошибка в супер игре! дается определенное время на ответ !нет - !да 30 и тд, если промолчать, и написать !стоп, то выдает в патилайне такое!

Tcl error in script for 'timer8':
can't read "game(chan)": no such element in array


После чего игру уже невозможно запустить "!старт"
ошибка при выполнении !старт: can't read "game(chan)": no such element in array


[14:26:08] <bot> Nick получает право на супер-игру! Введите !да <ставка>, чтобы играть или !нет, чтобы отказаться. Ставка от 10 до 30 очков (по умолчанию 10 очков). На принятие решения у Вас 15 секунд.
[14:26:14] <nick> !стоп
[14:26:14] <bot> Викторина остановлена. Было задано 2 вопроса, из которых на 2 был дан правильный ответ. Игра длилась очень немного.
[14:26:22] <bot> Nick, вы не успели запустить призовую игру за отведенные 15 секунд. Продолжаем.
[14:29:58] <nick> !старт
[14:29:58] -bot- ошибка при выполнении !старт: can't read "game(chan)": no such element in array


Как исправить? *Скрипт стоит чистый, ничего не тронуто!

Подскажите код? Хочу добавить при заходе на канал чтобы показывало!
Место за месяц: 10 Очков за месяц: 10 Очков за сегодня: 10
Sparkle
 
Сообщения: 83
Зарегистрирован: 27 окт 2011 13:58
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение HuKoTuH » 05 ноя 2011 22:37

putserv "PRIVMSG $chan :\[ Уровень: [rand 10] | Место: [rand 20] | Очков: [rand 30] | Анаграмм: [rand 40] | Ответов: [rand 50] \]\[ Место за месяц: [rand 10] | Очков за месяц: [rand 500] \]"
HuKoTuH
 
Сообщения: 13
Зарегистрирован: 22 янв 2011 19:03
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение Sparkle » 06 ноя 2011 01:09

HuKoTuH » 05 ноя 2011 22:37

[ Уровень: [rand 10] | Место: [rand 20] | Очков: [rand 30] | Анаграмм: [rand 40] | Ответов: [rand 50] \]\[ Место за месяц: [rand 10] | Очков за месяц: [rand 500] \]"


Это не код, а текст с цифрами, мне нужны сами переменные которые отвечают за ( Место за месяц: Очков за месяц: Очков за сегодня:)
Sparkle
 
Сообщения: 83
Зарегистрирован: 27 окт 2011 13:58
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение tvrsh » 06 ноя 2011 12:23

Sparkle, если ты используешь чистый скрипт, то исправь в нем строку
proc putfast {text} {append text "\n"; putdccraw 0 [string length $text] $text}
на
proc putfast {text} {putnow $text}

Ошибка из-за того, что в Eggdrop начиная с версии 1.6.20 отсутствует команда putdccraw, вместо нее теперь putnow.
Так же из-за этого нарушилась работа скрипта putfast_vs_putserv.tcl По ссылке его исправленная версия.

Добавлено спустя 12 минут 5 секунд:
Corund, делаешь bind time на 00 часов и ставишь топик с любым текстом. Чтобы там было место скопируй туда из процедуры ::tpub::users содержимое listday. Там происходит сортировка дневного топа. Ну и выводи оттуда хоть 1 место, хоть первую тройку.
Только биндить время лучше не на 00 а на 23 59, чтобы не получилось так, что днейвной топ обнулиться раньше чем ты его лидера повесишь в топик.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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

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

Сообщение Sparkle » 06 ноя 2011 20:53

tvrsh
Не помогает
Tcl error in script for 'timer37':
can't read "game(chan)": no such element in array
can't read "game(chan)": no such element in array
%nick% старт -- ERROR


подскажите пожалуйста какие строчки отвечают за Место за месяц: Очков за месяц: Очков за сегодня: ? Никак уже не могу найти..
Sparkle
 
Сообщения: 83
Зарегистрирован: 27 окт 2011 13:58
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение tvrsh » 06 ноя 2011 21:42

Детка, давай на "Ты", я не очень старый пока.
Чтобы при заходе на канал показывалось место и прочие характеристики игрока надо смотреть в сторону команды !вон. Все строчки в ней. Наверно можно просто сделать бинд на вход на канал и скопировать туда содерживое процедуры. Лишнее потом удалить.
Я не знаю как устроен этот скрипт, я не пользовался им. Скорее всего там уже показывается что-то при входе, возможно место за все время. Посмотреть как сделано оно и дописать по аналогии.
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.

Сообщение Sparkle » 06 ноя 2011 22:21

все сделала как написано выше. заменила putfast_vs_putserv.tcl так же все делаю, начинается вопрос "супер игра"

<bot> nick получает право на супер-игру! Введите !да <ставка>, чтобы играть или !нет, чтобы отказаться. Ставка от 10 до 30 очков (по умолчанию 10 очков). На принятие решения у Вас 15 секунд.
<nick> !стоп
<bot> Викторина остановлена. Было задано 5 вопросов, из которых на 5 был дан правильный ответ. Игра длилась 1 минуту.
<bot> nuck, вы не успели запустить призовую игру за отведенные 15 секунд. Продолжаем.


в патилайне пишет.

Tcl error in script for 'timer37':
can't read "game(chan)": no such element in array
can't read "game(chan)": no such element in array
%nick% старт -- ERROR


на счет очков.
в том числе $user(answersmonth) [lindex {. ответ ответа ответов} [numgrp $user(answersmonth)]] ($user(scoremonth) [lindex {. очко очка очков} [numgrp $user(scoremonth)]]) за этот месяц


это вставляю туда где показывает ник ранг и очки при заходе на канал. после этого кода уже не показывает ничего при заходе на канал.

вот стандартный код. который показывает при заходе на канал ранг и очки
append msg " [$place ($usr(score)) [expr {[info exists usr(scoremonth)] && $usr(scoremonth) != 0 ? " | $place1 $usr(scoremonth))" : ""}] ] [expr {[users isintop $hand] || [users isremort $hand] ? "+" : ""}] [expr {[users isremort $hand] ? "$nick1" : $nick1}] [ [expr {[info exists usr(tremort)] ? $usr(tremort) : $honor}]]"


вот мой.
append msg "[expr {[users isremort $hand] ? "$nick1" : $nick1}] [ [expr {[info exists usr(tremort)] ? $usr(tremort) : $honor}]] |
Sparkle
 
Сообщения: 83
Зарегистрирован: 27 окт 2011 13:58
Благодарил (а): 17 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение Vertigo » 06 ноя 2011 23:18

Поправь процедуру
proc cmd_stop
следующим образом
proc cmd_stop {nick chan text} { variable game; variable conf
global botnick auisa isa issupergame
        if {$text == "?help?"} { return [usage $nick $chan stop "" "остановка текущего раунда викторины. Доступно только операторам, пятёрке лучших игроков и пользователю, запустившему викторину."] }
        if {[info exists isa] && $isa == 1 || [info exists auisa] && $auisa == 1 || [info exists issupergame] && $issupergame eq 1} {return}

Этим вылечится ошибка при остановке игры во время суперигры. При суперигре бот просто не будет давать остановить викторину.

За это сообщение автора Vertigo поблагодарили: 2
Sparkle (07 ноя 2011 00:26), Teppopucm (20 июл 2013 14:28)
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8

Пред.След.

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

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

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

cron