- Код: Выделить всё
## remort check
if {$usr(score) >= $conf(rscore)} {::tpub::remort $nick $uhost $hand $chan}
Модератор: Модераторы
## remort check
if {$usr(score) >= $conf(rscore)} {::tpub::remort $nick $uhost $hand $chan}
Radiosignal писал(а):tvrsh прет, напиши пожалуйста систему ремортов. Когда проходишь в этой викторине круг, реморт пишется, но каждый последующий так же считается первым
- Код: Выделить всё
## remort check
if {$usr(score) >= $conf(rscore)} {::tpub::remort $nick $uhost $hand $chan}
!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
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
}
[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, ты мой бог!
Недостаточно добавить строку в конфиг. Надо скопировать процедуру ::tpub::question из нового скрипта в твой, так как в новом скрипте она исправлена/улучшена.
[17:22:58] <Corund> я вчера вот не понял...вопросы все равно повторяются?????
[17:28:45] <Fex> вчера повторялись, да еще как )
[17:29:57] <Corund> блин..(((
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]
бабушкины старые тапки
фалоимитатор с лампочками
...
Winer писал(а):Почему у меня все имеют право !дальше.
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
}
}
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
}
# работа с пользователями.............
Winer писал(а):Мешалка все работает.Спасибо всем за подсказку.Насчет !дальше я домаю ошибка вот где.После вопроса-аукциона он всем выдает + меняет режим: -m+vvvvvvv
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15