Модератор: Модераторы
Corund писал(а):Подскажите, как подправить аукционы, чтобы бот случайным образом выбирал того, кто будет отвечать, невзирая на сделанную ставку. Наверное, в этом куске надо что-то переделать?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
Если заменить в строке decreasing на increasing, например, то отвечает первый минимально поставивший... А вот чтоб отвечал любой, кто успеет поставить любую ставку (у нас от 1 до 999)? Хотелось бы самому переделать аукционы в "Рандом-вопрос", как-то так. А то получается, что лупят !да 999 скриптами в мирке и играют одни и те же люди в аукционы. Ещё и читерят. А торговаться никто не хочет в аукционе.
tvrsh писал(а):Как я понимаю в $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_userset 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
Пробуй.
[12:34:31] «ёжик» скука
[12:34:32] «@viktorinka» Невероятно, ёжик! Точный ответ -> "скука" <-, был получен за 29.22 секунд. У тебя теперь 8 очков (8 ответов) (8 (8))
[12:34:32] «@viktorinka» Никто не ответил на вопрос, правильный ответ - скука.
Eugine-x писал(а): Подскажите как это можно исправить. Спасибо
::tpub::stats_write, ::tpub::z_kick, ::tpub::z_quit, ::tpub::z_part
Radiosignal писал(а):tvrsh, таких процедур нету в конфиге викторины::tpub::stats_write, ::tpub::z_kick, ::tpub::z_quit, ::tpub::z_part
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4