Страница 16 из 19

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

СообщениеДобавлено: 19 янв 2012 22:30
Corund
Спасибо, анаграммы починились.
Вот еще один вопрос интересный... На канале есть анаграммы и аукционы. Если в настройках указать, на каком вопросе они будут, ну к примеру, на 5 и 10, то получается такой результат:
вопрос 5-й - анаграмма, вопрос 10-й - анаграмма+аукцион... тут и клинит. Больше аукционы вообще не появляются.
Решалось установкой в конфиге 2-х простых чисел. Например, 59 и 53. Их произведение - 3127... только на этом вопросе заклинит аукционы. Если стопнуть викторину и сделать !старт, то аукционы опять появятся.. и так снова до 3127-го вопроса... А иногда раунд продолжается гораздо дольше, потому что все играют. Как бы решить это?

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

СообщениеДобавлено: 22 янв 2012 15:34
tvrsh
Corund, Ну а что мешает оставить рандомные значения в конфиге:

TCL: [ Скачать ] [ Скрыть ]
        ## Через сколько вопросов будет вопрос-аукцион
        set conf(a_questions) [expr [rand 88] +11]

        # через каждые сколько вопросов будет вопрос-анаграмма?
        set conf(anagrqid) [expr [rand 20] +19]
 

По идее, при таком указании интервалов между вопросами ошибок не будет.

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

СообщениеДобавлено: 26 янв 2012 07:33
Sparkle
Скажите пожалуйста, как можно сделать, после:
Привет, nick. Добро пожаловать на канал игры "Викторина"! Игра пока не запущена. Наберите !старт для запуска.

И, после этого, ещё один текст, чтобы выводился!

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

СообщениеДобавлено: 26 янв 2012 10:50
tvrsh
Sparkle, надо открыть скрипт, поиском найти место где в скрипте с текстом "...Добро пожаловать на канал игры..."
Посмотреть каким образом формируется нотис и добавить свою строку сразу после его вывода.

Все это делается в процедуре ::tpub::on_join
Нужные строчки с началом формирования нотиса:
set not "\00310Привет, \00309$nick\00310\. Добро пожаловать на канал игры \"Викторина\"!"

Потом к нему добавляется дополнительная информация о текущей игре.
Находишь строки с отправкой этого нотиса юзерам:
putfast "notice $nick :$not"

Сразу после нее добавляешь строку с выводом своего текста.
Все очень просто.

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

СообщениеДобавлено: 28 янв 2012 09:03
Sparkle
Здравствуйте.
Скажите пожалуйста, как можно сделать, чтобы очки давали за простые вопросы, дополнительно?
Пример: Ответив на правильный ответ, бот дает за правильный ответ (3 очка) и так же дополнительно (5 очков).
nick зарабатывает 3 очка.
nick получает дополнительно 5 очков.

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

СообщениеДобавлено: 28 янв 2012 09:57
tvrsh
Если давать их при каждом ответе, то не проще увеличить начальные очки за ответ с 3 до 10?
Как это сделать я отвечал выше.

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

СообщениеДобавлено: 28 янв 2012 11:01
Sparkle
Можно и так =) Вообщем викторину сделала на ура, естественно с вашей помощью =))) Спасибо, только вот осталось сделать чтобы показывало сколько в ответе слов. :)

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

СообщениеДобавлено: 28 янв 2012 13:25
tvrsh
Sparkle, замени
TCL: [ Скачать ] [ Скрыть ]
        if {([string match *\{* [lindex $game(question) 1]])} {
            # Слов в ответе больше 1
            set lln [string length [lindex $game(question) 1]]
            set lln [incr lln -4]
            set ln "$lln [lindex {. буква буквы букв} [numgrp $lln]] \00304(несколько слов)\00307"
        } else {
            # Слов в ответе 1
            set ln "[string length [lindex $game(question) 1]] [lindex {. буква буквы букв} [numgrp [string length [lindex $game(question) 1]]]]\00307"
        }
 

на
set otvet [string trim [lindex $game(question) 1]]
set slov [llength $otvet]
set lln [expr [string length $otvet] - [expr $slov - 1]]
set ln "$lln [lindex {. буква буквы букв} [numgrp $lln]] \00304($slov [lindex {. слово слова слов} [numgrp $slov]])\00307"


У меня все работает и считает слова и буквы:
<tvrsh> !load bla.tcl
<@bionic> Otvet: three words answer, Slov: 3, Bukv: 16.
<@bionic> Otvet: two words, Slov: 2, Bukv: 8.
<@bionic> Otvet: one, Slov: 1, Bukv: 3.

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

СообщениеДобавлено: 28 янв 2012 13:54
Sparkle
Все ровно когда в ответе 2 слова, пишет как одно!
15 букв (1 слово) а должно 15 букв (2 слова)
:(

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

СообщениеДобавлено: 28 янв 2012 16:40
tvrsh
Ну добавь
putlog "[lindex $game(question) 1]|$slov"
перед строкой
putmsg $game(chan) "\00302Bonpoc #$game(qid): \00312[anticheat [lindex $game(question) 0]] \00307\($ln\)\003"

И покажи что показывает.

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

СообщениеДобавлено: 28 янв 2012 17:43
Sparkle
В патилайне:
тучка|1
{{тучка тучка}}|1

=)))
15 букв (1 слово)

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

СообщениеДобавлено: 28 янв 2012 18:15
tvrsh
Какие-то списки в списках.
Так сделай:
set otvet [split [string trim [join [lindex $game(question) 1]]]]

И опять показывай что там в патилайне.

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

СообщениеДобавлено: 28 янв 2012 18:33
Sparkle
В патилайне ничего не пишет, но когда отвечаю на вопросы.
14 букв (2 слова)
Никак не 14 букв, так как ответ (тучка тучка) 10 букв.
19 букв (3 слова)
тучка тучка тучка (15 букв)

Теперь работает сколько в ответе слов, но, вот теперь проблема в другом. :)

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

СообщениеДобавлено: 28 янв 2012 19:19
Vertigo
Не знаю в чем у вас сложность с модификацией выдачи подсказки о кол-ве слов. Заменить в 2х местах код
TCL: [ Скачать ] [ Скрыть ]
if {([string match *\{* [lindex $game(question) 1]])} {
            # Слов в ответе больше 1
            set lln [string length [lindex $game(question) 1]]
            set lln [incr lln -4]
            set ln "$lln [lindex {. буква буквы букв} [numgrp $lln]] \00304(несколько слов)\00307"
        } else {
            # Слов в ответе 1
 

на этот
TCL: [ Скачать ] [ Скрыть ]
if {([string match *\{* [lindex $game(question) 1]])} {
            # Слов в ответе больше 1
            set lln [string length [lindex $game(question) 1]]
            set lln [incr lln -4]
                set lln_ [llength [join [join [lindex $game(question) 1]]]]
            set lln [expr $lln - $lln_  + 1]
            set ln "$lln [lindex {. буква буквы букв} [numgrp $lln]] \00304($lln_ [lindex {{} слово слова слов} [numgrp $lln_]])\00307"
        } else {
            # Слов в ответе 1
 

|28.01.2012 / 19:14:52| <Melissa_> Bonpoc #4: Мы cтpoили, cтpоили, и, нaконeц, поcтроили... Что имeл в виgу Чeбурaшкa? (9 букв (2 слова))
|28.01.2012 / 19:15:06| <Melissa_> Подсказка: д** др****
|28.01.2012 / 19:15:11| <Vertigo> дом друзей
|28.01.2012 / 19:15:21| <Melissa_> Подсказка: до* дру***
|28.01.2012 / 19:15:41| <Melissa_> Никто не ответил на вопрос, правильный ответ - дом дружбы.

P.S. да в формате вопросов/ответов полная срака. Двойные списки имеют место быть. Мне лень было править, ибо оно работало в принципе.

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

СообщениеДобавлено: 28 янв 2012 19:31
Sparkle
Спасибо большое вам, все хорошо работает... :) Викторина очень хорошая, работает нормально.
Все сделала что хотела... :) Хотелось бы ещё увидеть какие нибудь дополнения к ней, например на подобии словеса!

в канал пишется: Вопрос анаграмм (или - Словеса) - анаграмма
nick => гамма
Молодец, nick! Слово гамма принесло тебе 5 очка. Текущая анаграмма: анаграмма
nick => рама
Молодец, nick! Слово рама принесло тебе 4 очка. Текущая анаграмма: анаграмма
и тд, в течении 1 - 2 минут и все очки идут в общий счет, потом задает нормальный вопрос!


:)

Если не получается так сделать, то хотелось бы заказать данный скрипт.
Если кто-то делает на заказ, мне бы хотелось на заказ сделать что я выше написала, если такое возможно сделать, напишите цену в лс!

А вообще предлагаю создать раздел по заказам, если конечно есть желание делать скрипты на заказ (платно). :)

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

СообщениеДобавлено: 30 янв 2012 18:51
Corund
Помогите, пожалуйста, сделать, чтобы !х не разрешался раньше указанного времени. В конфиге есть это:
# если раскомментировать, то бот не будет разрешать брать подсказку менее чем за указанное время после каждого нового вопроса
        set conf(hden) 5

А в самом скрипте викторины нет такой переменной нигде. Некоторые хинтят раньше времени, хотя кто-то знает ответ и пишет в это время его, но не успевает.

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

СообщениеДобавлено: 31 янв 2012 12:57
tvrsh
Corund, перед строкой
set game(alreadyhint) 0
добавь
TCL: [ Скачать ] [ Скрыть ]
        if {[info exists conf(hden)]} {
        set time [expr {[clock seconds] - $game(asktime)}]
            if {$time <= $conf(hden)} {
                putnot $nick "\00310Вы не можете запросить подсказку ранее \00304$conf(hden) \00310секунд после вопроса.\003"
                return
            }
        }

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

СообщениеДобавлено: 31 янв 2012 16:28
Corund
tvrsh, огромное спасибо!

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

СообщениеДобавлено: 16 фев 2012 16:33
Corund
Помогите, пожалуйста, сделать так, чтобы бот давал игроку премию за быстрый ответ.

Например, если отвечено в течение 3-х секунд, писало типа:
Премия за скорость +2 очка.

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

СообщениеДобавлено: 17 фев 2012 15:03
tvrsh
Corund, после
TCL: [ Скачать ] [ Скрыть ]
                                # проверка на самый быстрый ответ
                                if {$time < $usr(quick) || $usr(quick) < 0.1} {
                                        set usr(quick) [okr $time]
                                        set bst_time "\00310, и это твой самый \00314быстрый\00310 ответ"
                                }
добавь
                        if {$time < 3.} {
                            putfast "privmsg $chan :\00310[expr {[users isintop $hand] ? "\002$nick\002" : $nick}] очень быстр или очень читер. Премия за скорость +2 очка."
                            incr game(points) +2
                        }