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

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

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

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

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

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

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

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

tvrsh, а можешь добавить в викторину, что б раз в час бот рандомно выбирал игрока, и задавал ему вопрос.
Radiosignal
 
Сообщения: 87
Зарегистрирован: 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
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 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
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: 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
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 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
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

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

Сообщение Corund » 25 июн 2012 21:15

Прошу помощи по этой теме (цитирую о чем была речь):

Corund писал(а):Подскажите, как подправить аукционы, чтобы бот случайным образом выбирал того, кто будет отвечать, невзирая на сделанную ставку. Наверное, в этом куске надо что-то переделать?
TCL: [ Скачать ] [ Скрыть ]
if {$conf(modset) eq 1} {putfast "MODE $chan -c"}
putfast "PRIVMSG $game(chan) :\00310Ставки сделаны! Ставки больше не принимаются!"
       
         
       
         
         set winners {}
         foreach lines $::tpub::auusers {
         
         set stavka_ [lindex [split $lines " "] 0]
         set st_nick [lindex [split $lines " "] 1]
         
         if {[info exists lines]} {
         lappend winners [list $lines $stavka_]
         putlog "stavka_ - $stavka_ && st_nick - $st_nick"
         putlog "winners_list=$winners"
         }
         }

                        # sort
                        set sorted {}
                        foreach item [lsort -decreasing -index 1 $winners] {
                                lappend sorted [lrange $item 0 1]
                        }
                        set winnerrr_points [lindex [split $sorted " "] 0]
                        set winnerrr_user [lindex [split $sorted " "] 1]
                        regsub -all -- {\{} $winnerrr_points "" winnerrr_points
                        regsub -all -- {\}} $winnerrr_user "" winnerrr_user

         putlog "winnerrr - $winnerrr_user"
         set win_nick $winnerrr_user
 


Если заменить в строке
foreach item [lsort -decreasing -index 1 $winners] {
decreasing на increasing, например, то отвечает первый минимально поставивший... А вот чтоб отвечал любой, кто успеет поставить любую ставку (у нас от 1 до 999)? Хотелось бы самому переделать аукционы в "Рандом-вопрос", как-то так. А то получается, что лупят !да 999 скриптами в мирке и играют одни и те же люди в аукционы. Ещё и читерят. А торговаться никто не хочет в аукционе.


===========================================================

tvrsh писал(а):Как я понимаю в $winners будет список всех участников аукциона, элементы этого списка имеют вид "ставка ник". То-есть, чтобы получить случайный элемент надо сделать
[lindex $winners [rand [llength $winners]]]

Попробуй заменить
TCL: [ Скачать ] [ Скрыть ]
                        # sort
                        set sorted {}
                        foreach item [lsort -decreasing -index 1 $winners] {
                                lappend sorted [lrange $item 0 1]
                        }
                        set winnerrr_points [lindex [split $sorted " "] 0]
                        set winnerrr_user [lindex [split $sorted " "] 1]
                        regsub -all -- {\{} $winnerrr_points "" winnerrr_points
                        regsub -all -- {\}} $winnerrr_user "" winnerrr_user

         putlog "winnerrr - $winnerrr_user"
         set win_nick $winnerrr_user
на
TCL: [ Скачать ] [ Скрыть ]
                        set winnerrr [lindex $winners [rand [llength $winners]]]
                        set winnerrr_points [lindex [split $winnerrr " "] 0]
                        set winnerrr_user [lindex [split $winnerrr " "] 1]
                        regsub -all -- {\{} $winnerrr_points "" winnerrr_points
                        regsub -all -- {\}} $winnerrr_user "" winnerrr_user

         putlog "winnerrr - $winnerrr_user"
         set win_nick $winnerrr_user

Пробуй.


==================================================================
Вот моя просьба -

Помогите, пожалуйста, подправить скрипт так, чтобы игроки могли делать только по одной ставке, чтобы не было так, что рандом-вопрос достаётся тому, кто сделал ставки большее количество раз.
Хорошо бы, если б ему писало нотисом - "вы уже сделали ставку".

А то сейчас получается, что призовой вопрос дается тому, кто больше нафлудил.

Типа:

[21:11:35] < +|Universe| > Игрок выбирается случайным образом, подсказок не будет! Делайте ставки, господа! Если да - !да <число> от 1 до 999 . На раздумывание 10 секунд!
[[21:11:37] < +zge > !да 857
[21:11:37] < +|Universe| > zge, вы добавлены в число претендентов со ставкой 857.
[21:11:38] < +AnTi3z > !да 999
[21:11:38] < +|Universe| > AnTi3z, вы добавлены в число претендентов со ставкой 999.

Ну а дальше другие начали соревноваться, кто больше напишет раз ставку,

[21:11:40] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:41] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:42] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:42] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:42] < +zge > хе
[21:11:43] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:43] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:44] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:44] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:45] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:45] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:46] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:46] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:48] < +|Universe| > Dream_in_Grass, вы добавлены в число претендентов со ставкой 10.
[21:11:48] < +|Universe| > гнусный_мух, вы добавлены в число претендентов со ставкой 999.
[21:11:50] < +|Universe| > Ставки сделаны! Ставки больше не принимаются!
[21:11:53] < +|Universe| > Итак, фортуна выбирает игрока Dream_in_Grass! Ставка: 10 очков.
Аватара пользователя
Corund
 
Сообщения: 48
Зарегистрирован: 02 июн 2009 19:07
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.8

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

Сообщение tvrsh » 27 июн 2012 12:33

Попробуй перед
        if {$conf(modset) eq 1} {putfast "MODE $game(chan) -c"}
         putmsg $game(chan) "\00303$nick\00310, вы добавлены в число претендентов со ставкой \00304$args\00310.\003"
добавить
        if {[lsearch $::tpub::auusers "* $nick"] != "-1"} {
        putserv "NOTICE $nick :\00303$nick\00310, вы уже сделали свою ставку.\003"
        return 0
        }
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарили: 2
Corund (29 июн 2012 13:35), Teppopucm (17 авг 2012 16:07)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

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

Сообщение Corund » 29 июн 2012 14:03

Если перед этим ставлю, то пишет сразу - "вы уже сделали ставку", а потом всё виснет. А если после, то пишет следующим игрокам, сделавшим ставку, этот нотис.

tvrsh писал(а):Как я понимаю в $winners будет список всех участников аукциона, элементы этого списка имеют вид "ставка ник". То-есть, чтобы получить случайный элемент надо сделать

[lindex $winners [rand [llength $winners]]]



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

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

Сообщение tvrsh » 29 июн 2012 16:23

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

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

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

Сообщение Corund » 29 июн 2012 17:22

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

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

Сообщение Jake » 12 авг 2012 12:50

А обновленной версии скрипта, с учётом рассмотренных тут проблем, нет ?
Jake
 
Сообщения: 26
Зарегистрирован: 21 май 2012 11:17
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

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

Сообщение Jake » 12 авг 2012 14:44

tvrsh, не мог бы ты пожалуйста написать как добавить систему праздников в игру, которая позволит увеличить кол-во очков за ответ с 3 до 5, в версии скрипта викторины от 29.11.2011 (http://www.egghelp.ru/files/434), а то в нём код немного изменился и не понятно после чего добавлять ....
Например вместо
set game(tqid) 0
там
set game(qid) 0
(одно и то же наверное), а вот в процедуре ::tpub::on_join не нашёл эту строку
 if {$handle == "*"} {putnot $nick "$not\00310.\003"; return}
и т.д.
------------
Ещё вот такой недочёт увидел:

[12:34:31] «ёжик» скука
[12:34:32] «@viktorinka» Невероятно, ёжик! Точный ответ -> "скука" <-, был получен за 29.22 секунд. У тебя теперь 8 очков (8 ответов) (8 (8))
[12:34:32] «@viktorinka» Никто не ответил на вопрос, правильный ответ - скука.

То есть в одно время принял ответ и в то же не зачёл
Jake
 
Сообщения: 26
Зарегистрирован: 21 май 2012 11:17
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

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

Сообщение tvrsh » 13 авг 2012 21:55

В процедуре ::tpub::cmd_start после строки
set game(qid) 0                                         ;# номер текущего вопроса

добавьте 2 строки
set game(h) 0                          ;# текущий день не праздничный
set game(hol) ""                        ;# название праздника

потом в тойже процедуре перед строкой
        after 5000 ::tpub::tmr_ask

добавляйте
TCL: [ Скачать ] [ Скрыть ]
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 {[info exists lock] && $lock eq 1} {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]"

добавляйте
TCL: [ Скачать ] [ Скрыть ]
if {[info exists game(h)] && $game(h) == 1} {
    set game(points) 5
} else {
    set game(points) 3
}


Идем в процедуру ::tpub::dayremove и в ней перед строкой
foreach qd [userlist] {

добавляем
TCL: [ Скачать ] [ Скрыть ]
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"
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

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

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

Сообщение Teppopucm » 02 окт 2012 17:29

Не могли бы вы написать как добавить в игру - дуэли? Не помешало бы добавки к этой викторине.
Аватара пользователя
Teppopucm
 
Сообщения: 24
Зарегистрирован: 25 фев 2010 21:29
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.20

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

Сообщение Eugine-x » 24 июл 2013 08:24

Добрый день. Два года все работало хорошо и вот на днях, после проблем у http://firstvds.ru/ проблемы начались у меня. Сначала я обнаружил что у бота пустой файл eggdrop.chan - заменил его на старый, бот не запустился. Начал запускать его вручную, выдает ошибку - ./eggdrop /libexec/ld-elf.so.1: Shared object "libtcl86.so" not found, required by "eggdrop-1.6.20". Попросил переустановить tcl - ошибка пропала, бот заработал вроде нормально. Забыл про это, и вот вчера заметил, что на викторине некоторые вопросы стали задаваться неполностью, есть только первое слово. Причем происходит это рандомно, может задать 2-3 вопроса нормально, потом опять вопрос из одного слова и тд. Перезапустил бота, в патилайне увидел Package TLS not loaded. 'https://' not supported. Info: can't find package tls. Попросил ТП поправить, пришел ответ: "Установил tcltls-1.6_1 - проверьте". При перезапуске бота, в патилайне, ошибка пропала, но вопросы все равно задаются не полностью. Подскажите как это можно исправить. Спасибо
Eugine-x
 
Сообщения: 8
Зарегистрирован: 20 окт 2010 15:56
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.8

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

Сообщение Eugine-x » 24 июл 2013 10:32

Eugine-x писал(а): Подскажите как это можно исправить. Спасибо

Помогли на канале #eggdrop сети wenet. Вот описание "лечения" и причина - нужно закомментировать строчку regsub \x20 $mes \x0a0 mes в файле quiz.tcl. Как мне пояснили, в tcl8.6 этот символ переносит в новую строку. Наверно когда в firstvds переустановили tcl, что-то изменили.

За это сообщение автора Eugine-x поблагодарил:
tvrsh (24 июл 2013 17:49)
Eugine-x
 
Сообщения: 8
Зарегистрирован: 20 окт 2010 15:56
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.8

Добавление дуэлей в игру

Сообщение tvrsh » 05 ноя 2013 20:29

Добавляем дуэли.
В процедуре ::tpub::users найти
                        if {![info exists data(score)]} { set data(score) 0 }

добавить после
                        if {![info exists data(duels)]} { set data(duels) 0 }


В процедуре ::tpub::msg_pub найти
                                # store back
                                users set [list $hand [array get usr]]

добавить перед
TCL: [ Скачать ] [ Скрыть ]
if {[info exists game(duel)] && $game(duel)==2} {
if {$nick==$game(duel_nick1)} {incr game(duel_t1)
if {$game(duel_t1) >= $game(dqnum)} {
putmsg $chan "\00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306побеждает в дуэли набрав \00307$game(duel_t1) \00306[lindex {. ответ ответа ответов} [numgrp $game(duel_t1)]] и опередив \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306с \00303$game(duel_t2) \00306[lindex {. ответом ответами ответами} [numgrp $game(duel_t2)]].\003"
set duoch [expr {$game(duel_t1) + $game(duel_t2)}]
set duoch [expr {$duoch * 2}]
incr usr(score) "$duoch"
incr usr(scoremonth) "$duoch"
incr usr(scoreday) "$duoch"  
incr usr(duels)
putmsg $chan "\00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306получает \00303$duoch \00306очков за победу в \00307$usr(duels)\00306-й дуэли.\003"
set game(du) ""
set game(duel) 0
set game(duel_t1) 0
set game(duel_t2) 0
users set [list $hand [array get usr]]

} else {
putmsg $chan "\00306Дуэль: \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \003- \00307$game(duel_t1) \00306[lindex {. ответ ответа ответов} [numgrp $game(duel_t1)]], \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \003- \00303$game(duel_t2) \00306[lindex {. ответ ответа ответов} [numgrp $game(duel_t2)]].\003"
}
} elseif {$nick==$game(duel_nick2)} {incr game(duel_t2)
if {$game(duel_t2) >= $game(dqnum)} {
putmsg $chan "\00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306побеждает в дуэли набрав \00307$game(duel_t2) \00306[lindex {. ответ ответа ответов} [numgrp $game(duel_t2)]] и опередив \00303[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306с \00303$game(duel_t1) \00306[lindex {. ответом ответами ответами} [numgrp $game(duel_t1)]].\003"
set duoch [expr {$game(duel_t2) + $game(duel_t1)}]
set duoch [expr {$duoch * 2}]
incr usr(score) "$duoch"
incr usr(scoremonth) "$duoch"
incr usr(scoreday) "$duoch"  
incr usr(duels)
putmsg $chan "\00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306получает \00303$duoch \00306очков за победу в \00307$usr(duels)\00306-й дуэли.\003"
set game(du) ""
set game(duel) 0
set game(duel_t1) 0
set game(duel_t2) 0
users set [list $hand [array get usr]]

} else {
putmsg $chan "\00306Дуэль: \00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \003- \00307$game(duel_t2) \00306[lindex {. ответ ответа ответов} [numgrp $game(duel_t2)]], \00303[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \003- \00303$game(duel_t1) \00306[lindex {. ответ ответа ответов} [numgrp $game(duel_t1)]].\003"
}
}
}
 


Далее в процедуре ::tpub::cmd_append найти
        # очки
        catch { incr user2(score) $user1(score) }

добавить после
      # дуэли
        catch { if {$user2(duels) == "" && $user1(duels) != ""} { set user2(duels) $user1(duels) } }

В процедуре ::tpub::cmd_start найти
        # инициализация
        set game(chan) $chan                            ;# канал

Добавить после
TCL: [ Скачать ] [ Скрыть ]
      set game(duel) 0                         ;# дуэль не идет
      set game(duel_t1) 0                         ;# очки первого дуэлянта
      set game(duel_t2) 0                         ;# очки второго дуэлянта
      set game(duel_nick1) 0                         ;# nick первого дуэлянта
      set game(duel_nick2) 0                         ;# nick второго дуэлянта
      set game(du) ""

Что за последняя строка я помню, но судя по du, оно имеет отношения к дуэлям.

В процедуре ::tpub::cmd_stop найти
        unset game
        variable g; if {[info exists g]} {unset g}
        users purge

Добавить перед
      if {[info exists game(duel)] && $game(duel)} {
      putmsg $game(chan) "\00306Дуэль между \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306и \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306прервана. Они набрали \00307$game(duel_t1) \00306и \00303$game(duel_t2) \00306ответов соответственно.\003"
      }


В процедуре ::tpub::won найти
        putmsg $chan "$msg\00310.\003"

Добавить после
      if {[info exists user(duels)] && ($user(duels)!=0)} {
        append msg2 " \00310и победи[lindex {ло л ла} [gendgrp $user(gender)]] в \00306$user(duels)\00310 [lindex {. Дуэли Дуэлях Дуэлях} [numgrp $user(duels)]];"
      }

Этот момент у вас может не заработать, так как у меня вывод вона сделан по-своему, разбит на две строки, дуэли во второй выводятся. Нужно будет по аналогии с msg дописать вывод msg2.

Далее в процедуре ::tpub::cmd_place найти
        set raz [expr $trace - $user(score)]

Добавить после
       set place5 [place5 $hand]       
        set clist5 [users list8]
        set trace5 [lindex [lindex $clist5 [expr {$place5 - 2}]] 1]
      set raz5 [expr $trace5 - $user(duels)]

В ней же найти
        if {$place > 1} { append msgs " и \00303[expr {$raz == 0 ? "один ответ" : "$raz [lindex {. очко очка очков} [numgrp $raz]]" }]\00310 до следующего" }

Добавить после
      if {$user(duels) != 0} { append msgs "; \00305Дуэли\00310: \00307$place5-е\00310 (\00303$user(duels) [lindex {. дуэль дуэли дуэлей} [numgrp $user(duels)]]\00310)"}
        if {$place5 > 1} { append msgs " и \00303[expr {$raz5 == 0 ? "одна дуэль" : "$raz5 [lindex {. дуэль дуэли дуэлей} [numgrp $raz5]]" }]\00310 до следующего"}


Далее добавить четыре таких процедуры
TCL: [ Скачать ] [ Скрыть ]
proc ::tpub::place5 {hand} {
        set place -1
        if {![info exists list]} { set list [users list8] }
        for {set i 0} {$i < [llength $list]} {incr i} {
                if {![string compare -nocase $hand [lindex [lindex $list $i] 0]]} {
                        set place $i
                        break
                }
        }
        incr place
return $place
}

proc ::tpub::cmd_дуэль {nick chan text} { return [cmd_duel $nick $chan $text] }
proc ::tpub::cmd_duel {nick chan text} {
variable conf; variable game
        if {$text == "?help?"} { return [usage $nick $chan дуэль "" "начинает дуэль с другим игроком."] }
        if {![info exists game]} {
                putmsg $chan "\00305$nick\00310, викторина не запущена - воспользуйся командой \00304\002!start\002"
                return 0
        }
      if {[info exists game(duel)] && $game(duel) >= 1} {
           putnot $nick "\00306Дуэль уже идет.\003"
           return 0
      } else {
      set game(dqnum) [lindex [split $text] 0]
        if {$game(dqnum) < 5 || $game(dqnum) > 15} {
          set game(dqnum) 5

        }
      set nick [nick2hand $nick]
      if {$nick == "*"} {
      putmsg $chan "\00305$nick\00310, Вы не можете начать дуэль. Вы не опозналы ботом."
      return 0
      }
        lappend game(du) $nick
        putmsg $chan "\00304[expr {[users isremort $nick] ? "\002$nick\002" : $nick}] \00306объявляет о начале дуэли до \00304$game(dqnum) \00306ответов. Используйте \00304\002!ок\002 \00306чтобы принять участие в ней. У Вас около минуты на раздумья.\003"
      set game(duel) 1
      set game(duel_nick1) "$nick"
        timer 1 [list tpub::checkduel $chan]
}
}

proc ::tpub::cmd_ок {nick chan text} { return [cmd_ok $nick $chan $text] }
proc ::tpub::cmd_ok {nick chan text} {
variable conf; variable game
        if {$text == "?help?"} { return [usage $nick $chan ок "" "принять вызов начавшего дуэль игрока."] }
        if {![info exists game]} {
                putmsg $chan "\00305$nick\00310, викторина не запущена - воспользуйся командой \00304\002!start\002"
                return 0
        }
      set hand [nick2hand $nick]
      if {$hand == "*"} {
      putmsg $chan \00305$nick\00310, Вы не можете согласиться дуэль. Вы не опозналы ботом."
      return 0
      }
        if {[llength $game(du)] == 1 } {
          if {[lindex $game(du) 0] == $hand} {
          putnot $nick "
\00303[expr {[users isremort $hand] ? "\002$hand\002" : $hand}]\00306, ты не можешь начать дуэль с самим собой.\003"
          return 0
          }
      lappend game(du) $hand
      } else {
           putnot $nick "
\00306Дуэль уже идет.\003"
           return 0
      }
        #putmsg $chan "
\00303[expr {[users isremort $hand] ? "\002$hand\002" : $hand}] \00306принял вызов \00304[expr {[users isremort $begduel] ? "\002$begduel\002" : $begduel}]\00303.\003"
      #putlog $game(du)
      set game(duel_nick2) "
$hand"
        #tpub::checkduel $chan
}

proc ::tpub::checkduel { chan } {
variable conf; variable game
        # проверим, а на канале ли человек начавший дуэль
      set nick [hand2nick [lindex $game(du) 0]]
        if {[onchan $nick $conf(channels)] != "
1"} {
        putmsg $chan "
\00306Дуэль прекращена так как \00304[expr {[users isremort $nick] ? "\002$nick\002" : $nick}] \00306ушел с канала.\003"
        set game(du) "
"
      set game(duel) 0
      return 0
      }
      # посмотрим, сколько осталось людей в дуэли
        if {![llength $game(du)] || [llength $game(du)] < 2} {
                putmsg $chan "
\00306Никто не осмелился принять вызов \00304[expr {[users isremort [lindex $game(du) 0]] ? "\002[lindex $game(du) 0]\002" : [lindex $game(du) 0]}]\00306.\003"
              set game(du) "
"
            set game(duel) 0
                return 0
        } else {
       
      putmsg $chan "
\00306Начинается дуэль до \00303$game(dqnum)\00306 ответов между \00304[expr {[users isremort [lindex $game(du) 0]] ? "\002[lindex $game(du) 0]\002" : [lindex $game(du) 0]}] \00306и \00303[expr {[users isremort [lindex $game(du) 1]] ? "\002[lindex $game(du) 1]\002" : [lindex $game(du) 1]}]\00306.\003"
      set game(duel) 2
      set game(duel_t1) 0
      set game(duel_t2) 0
      }
}


После этого в процедуре ::tpub::tmr_next найти
                unset game
                variable g; if {[info exists g]} {unset g}
                return

Добавить перед
            if {[info exists game(duel)] && $game(duel)} {
            putmsg $game(chan) "\00306Дуэль между \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306и \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306прервана. Они набрали \00307$game(duel_t1) \00306и \00303$game(duel_t2) \00306ответов соответственно.\003"
            }


В процедуре ::tpub::stats_write найти
        array unset user

Добавить перед
        puts $writefile "[incr place]#[lindex $item 0]#$honor#[lindex $item 1]#$user(scoremonth)#$user(answers)#$user(answersmonth)#$user(quick)#$user(cont)#$user(remort)#$user(anagr)#$user(tests)#$user(duels)#$user(super_win)"

Точнее заменить на эту уже существующую строку.

В процедуре ::tpub::z_kick найти
set hand1 [nick2hand $targ]

Добавить после, скорее даже не добавить а заменить всю процедуру этим
TCL: [ Скачать ] [ Скрыть ]
if {[info exists game(duel)] && $game(duel)==2} {
      if {$hand1 == $game(duel_nick1)} {
      putmsg $game(chan) "\00306Дуэль между \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306и \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306прервана т.к. \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306был кикнут с канала. Они набрали \00307$game(duel_t1) \00306и \00303$game(duel_t2) \00306ответов соответственно.\003"
set duoch [expr {$game(duel_t2) - $game(duel_t1)}]
set duoch [expr {$duoch * 5}]
if {$duoch > 0} {
set hand [nick2hand $game(duel_nick2)]
array set usr [users get $hand]
incr usr(score) "$duoch"
incr usr(scoremonth) "$duoch"
incr usr(scoreday) "$duoch"  
users set [list $hand [array get usr]]
putmsg $chan "\00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306получает утешительные \00303$duoch \00306очков.\003"
}
      set game(du) ""
      set game(duel) 0
      set game(duel_t1) 0
      set game(duel_t2) 0
      }
     
      if {$hand1 == $game(duel_nick2)} {
      putmsg $game(chan) "\00306Дуэль между \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306и \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306прервана т.к. \00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306был кикнут с канала. Они набрали \00307$game(duel_t1) \00306и \00303$game(duel_t2) \00306ответов соответственно.\003"
set duoch [expr {$game(duel_t1) - $game(duel_t2)}]
set duoch [expr {$duoch * 5}]
if {$duoch > 0} {
set hand [nick2hand $game(duel_nick1)]
array set usr [users get $hand]
incr usr(score) "$duoch"
incr usr(scoremonth) "$duoch"
incr usr(scoreday) "$duoch"  
users set [list $hand [array get usr]]
putmsg $chan "\00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306получает утешительные \00303$duoch \00306очков.\003"
}
      set game(du) ""
      set game(duel) 0
      set game(duel_t1) 0
      set game(duel_t2) 0
      }
}


В процедуре ::tpub::z_quit сделать тоже самое, но после строки
set nick [nick2hand $nick]


А в ::tpub::z_part после
set nick [nick2hand $nick]


Еще в процедуре ::tpub::users добавить к остальным такой список
TCL: [ Скачать ] [ Скрыть ]
            "list8" {
                        # список по дуэлям
                        set users {}
                        foreach hand [userlist] {
                                if {[set xtra [getuser $hand xtra quiz]] == ""} { continue }
                                array set usr $xtra
                                if {[info exists usr(last)] && [expr {[clock seconds] - $usr(last)}] < 32140800 && ![info exists usr(link)]} {
                                        lappend users [list $hand $usr(duels) [format %d.%08d $usr(score) [expr {999999 - $usr(answers)}]]]
                                }
                        }

                        # sort by place and score
                        set sorted {}
                        foreach item [lsort -real -decreasing -index 1 $users] {
                                lappend sorted [lrange $item 0 1]
                        }
                        return $sorted

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

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

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

Сообщение Radiosignal » 06 ноя 2013 22:37

tvrsh, таких процедур нету в конфиге викторины
::tpub::stats_write, ::tpub::z_kick, ::tpub::z_quit, ::tpub::z_part
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

Сообщение tvrsh » 07 ноя 2013 19:56

Radiosignal писал(а):tvrsh, таких процедур нету в конфиге викторины
::tpub::stats_write, ::tpub::z_kick, ::tpub::z_quit, ::tpub::z_part

Да, статистика у меня генерируется через php скрипт. Такая реализация, если я не ошибаюсь, в моде Kreon'а. Взять можно оттуда.
По остальным процедурам я просто добавил в название пространство имен ::tpub:: и такие бинды
bind part - * ::tpub::z_part
bind sign - * ::tpub::z_quit
bind join - * ::tpub::z_join
bind kick - * ::tpub::z_kick

Дописал процедуру кика по аналогии с ::tpub::z_quit, чтобы дуэль прерывалась когда пользователя кикнули.
TCL: [ Скачать ] [ Скрыть ]
proc ::tpub::z_kick {nick host hand chan targ reason} {
variable game
variable conf
        if {[lsearch -exact [split [string tolower $conf(channels)]] [string tolower $chan]] == -1} { return }

        set shand [nick2hand [finduser "$nick!$host"]]
                if {$shand == "*"} { return }
       
        set ttime [getuser $hand XTRA TMPTIME]
                if {[string trim $ttime] == ""} {set ttime 0; return}
       
        set altime [expr {[clock seconds] - $ttime}]
                if {[string trim $altime] == ""} {set altime 0}
       
        set btime [getuser $hand XTRA TIME]
        set altime [expr {$btime + $altime}]
       
        setuser $hand XTRA TIME $altime


set hand1 [nick2hand $targ]

if {[info exists game(duel)] && $game(duel)==2} {
      if {$hand1 == $game(duel_nick1)} {
      putmsg $game(chan) "\00306Дуэль между \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306и \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306прервана т.к. \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306был кикнут с канала. Они набрали \00307$game(duel_t1) \00306и \00303$game(duel_t2) \00306ответов соответственно.\003"
set duoch [expr {$game(duel_t2) - $game(duel_t1)}]
set duoch [expr {$duoch * 5}]
if {$duoch > 0} {
set hand [nick2hand $game(duel_nick2)]
array set usr [users get $hand]
incr usr(score) "$duoch"
incr usr(scoremonth) "$duoch"
incr usr(scoreday) "$duoch"  
users set [list $hand [array get usr]]
putmsg $chan "\00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306получает утешительные \00303$duoch \00306очков.\003"
}
      set game(du) ""
      set game(duel) 0
      set game(duel_t1) 0
      set game(duel_t2) 0
      }
     
      if {$hand1 == $game(duel_nick2)} {
      putmsg $game(chan) "\00306Дуэль между \00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306и \00303[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306прервана т.к. \00307[expr {[users isremort $game(duel_nick2)] ? "\002$game(duel_nick2)\002" : $game(duel_nick2)}] \00306был кикнут с канала. Они набрали \00307$game(duel_t1) \00306и \00303$game(duel_t2) \00306ответов соответственно.\003"
set duoch [expr {$game(duel_t1) - $game(duel_t2)}]
set duoch [expr {$duoch * 5}]
if {$duoch > 0} {
set hand [nick2hand $game(duel_nick1)]
array set usr [users get $hand]
incr usr(score) "$duoch"
incr usr(scoremonth) "$duoch"
incr usr(scoreday) "$duoch"  
users set [list $hand [array get usr]]
putmsg $chan "\00307[expr {[users isremort $game(duel_nick1)] ? "\002$game(duel_nick1)\002" : $game(duel_nick1)}] \00306получает утешительные \00303$duoch \00306очков.\003"
}
      set game(du) ""
      set game(duel) 0
      set game(duel_t1) 0
      set game(duel_t2) 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

Пред.След.

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

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

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

cron