Проблемма со скриптом Svalka.tcl

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

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

Проблемма со скриптом Svalka.tcl

Сообщение team » 20 фев 2011 13:51

Как сделать что бы в скрипте svalka.tcl http://www.everfall.com/paste/id.php?rv2kdj1ktbp1 В промежутке между загаданным словом и ответом бот еще сам кидал 3 подсказки а не только по моей команде (!хинт)

Вот у меня он кидает так

12:39:03™ <Statistic> Что это за слово : рабоз ? ;-)
12:41:03™ <Statistic> Время вышло, правильный ответ был - забор


А хочу Вот что бы было так

12:39:03™ <Statistic> Что это за слово : рабоз ? ;-)
12:39:13™ <Statistic> Подсказка : первая буква слова - з - з****
12:39:22™ <Statistic> Подсказка : вторая буква слова - а - за***
12:39:29™ <Statistic> Подсказка : последняя буква слова - р - за**р
12:41:03™ <Statistic> Время вышло, правильный ответ был - забор
Название и версия скрипта:
Ссылка на скрипт:
Действие, вызывающее ошибку:
Лог .set errorInfo:
Дополнительная информация:
team
 
Сообщения: 43
Зарегистрирован: 19 фев 2011 23:49
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

Re: Проблемма со скриптом Svalka.tcl

Сообщение tvrsh » 20 фев 2011 14:26

Добавь такую процедуру
TCL: [ Скачать ] [ Скрыть ]
proc ::svalka::ahlp {channel} {variable svalka; variable svalkagame
    if {$svalkagame(dd) == 1} {
        set tik *
        set ps [string index $svalkagame(slovo2) 0][string repeat $tik [expr $svalkagame(dl)-1]]
        putmsg $channel "\00303Подсказка\00305 :\00314 первая буква слова\00305 -\00303 [string index $svalkagame(slovo2) 0] - $ps"; set svalkagame(dd) 2; set svalkagame(och) [expr $svalkagame(och) -1 ]; return
    }
    if {$svalkagame(dd) == 2} {
        set tik *
        set ps [string index $svalkagame(slovo2) 0][string index $svalkagame(slovo2) 1][string repeat $tik [expr $svalkagame(dl)-2]]
        putmsg $channel "\00303Подсказка \00305:\00314 вторая буква слова\00305 -\00303 [string index $svalkagame(slovo2) 1] - $ps"; set svalkagame(dd) 3; set svalkagame(och) [expr $svalkagame(och) -1 ]; return
    }
    if {$svalkagame(dd) == 3} {
        set tik *
        set ps [string index $svalkagame(slovo2) 0][string index $svalkagame(slovo2) 1][string repeat $tik [expr $svalkagame(dl)-3]][string index $svalkagame(slovo2) end]
        putmsg $channel "\00303Подсказка \00305:\00314 последняя буква слова\00305 -\00303 [string index $svalkagame(slovo2) end] - $ps"; set svalkagame(dd) 4; set svalkagame(och) [expr $svalkagame(och) -1 ]; return
    }
}

Перед строкой
proc ::svalka::stop {nick host handle channel arg} {

И в процедуре ::svalka::ask добавь строку
utimer 40 [::svalka::ahlp $svalka(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: Проблемма со скриптом Svalka.tcl

Сообщение team » 20 фев 2011 14:37

proc ::svalka::ask { } {variable svalka; variable svalkagame
if {![info exists svalkagame]} {return}
::svalka::killtm
utimer 40 [::svalka::ahlp $svalka(chan)]
utimer 120 ::svalka::endcheck
set svalkagame(dd) 1
set svalkagame(slovo) [::svalka::tolower [lindex $svalka(info) [rand [llength $svalka(info)]]]]
set svalkagame(slovo2) $svalkagame(slovo)
set svalkagame(dlina) [string length $svalkagame(slovo)]

Сюда да вставить???

Добавлено спустя 3 минуты 32 секунды:
вот что пишет в патилайне

13:40:00™ <Statistic> [13:39:58] Tcl error in script for 'timer526':
13:40:00™ <Statistic> [13:39:58] can't read "svalkagame(dd)": no such element in array
team
 
Сообщения: 43
Зарегистрирован: 19 фев 2011 23:49
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

Re: Проблемма со скриптом Svalka.tcl

Сообщение LuXe » 20 фев 2011 15:15

И в процедуре ::svalka::ask добавь строку
utimer 40 [::svalka::ahlp $svalka(chan)]

Непойму это к

utimer 10 { ::svalka::ask } добавлять

utimer 10 { ::svalka::ask }
utimer 40 [::svalka::ahlp $svalka(chan)] или как??
LuXe
 
Сообщения: 38
Зарегистрирован: 18 ноя 2010 17:43
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: Проблемма со скриптом Svalka.tcl

Сообщение tvrsh » 21 фев 2011 00:47

[23:43:18] <tvrsh> !старт
[23:43:19] <@bionic> Начнём игру в анаграммы! В словаре 1416 слов.
[23:43:23] <@bionic> Что это за слово: неадиицм?
[23:43:38] <@bionic> Подсказка: первая буква слова - м - м*******
[23:43:53] <@bionic> Подсказка: вторая буква слова - е - ме******
[23:44:07] <@bionic> Подсказка: последняя буква слова - а - ме*****а
[23:44:23] <@bionic> Время вышло, правильный ответ был медицина.


В меню настройки добавил дополнительные пункты:
TCL: [ Скачать ] [ Скрыть ]
# Время на ответ
set svalka(answer) 60
# Время до первой подсказки
set svalka(hint1) 15
# Время до второй подсказки
set svalka(hint2) 15
# Время до третьей подсказки
set svalka(hint3) 15
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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


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

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

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

cron