Страница 3 из 4

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 05 апр 2009 14:11
Dominion
Ты читал, что нового в этой версии и что нужно сделать, чтобы она нормально работала?

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 05 апр 2009 14:14
thorn
что-то здесь не так (((


Thorn !место
ZMEY Игрок Thorn [Обращенный в Веру]: место: 2очков: 102правильных ответов: 15самый быстрый ответ: 8.8 секунды, максимальное количество ответов подряд: 2очков до следущего места: 63.
Thorn !место 1
ZMEY Игрок Thorn [Обращенный в Веру]: место: 1очков: 164правильных ответов: 33самый быстрый ответ: 7.7 секунды, максимальное количество ответов подряд: 7.


Используй теги [quote] для постинга цитат и [code=tcl] для постинга кода.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 05 апр 2009 14:19
Dominion
+
Добавлена идентификация по хостам (смотреть .hostsset);

.hostsset - Команда для тех, кто использовал старую версию скрипта (ниже v3.0). Команда осуществляет подмену хостов вида *!*@*, по которым раньше добавлялись пользователи, на хост вида $handle!*@*. Дальнейшая корректировка записей хостов должна проводиться администратором бота.


(с) Readme.html

Собственно, именно поэтому и происходит то, что ты наблюдаешь. Бот не будет правильно идентифицировать пользователей, пока в патилайне не будет выполнена команда .hostsset.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 05 апр 2009 20:41
thorn
еще вопрос: почему в архиве нет скрипта дуэлей??? и второй: база для банка отличается от обычной базы вопросов? если да, то где ее найти?

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 24 июл 2009 14:04
avp
помогите решить проблему:
при старте бот в чате пишет Tcl error [::ymhuk::start]: ::mysql::connect/db server: Unknown MySQL server host 'slayer' (11001),что нужно сделать?

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 24 июл 2009 22:04
avp
сам разобрался :)

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 26 июл 2009 23:33
avp
помогите сделать так штобы викторина работала по времени примерно с 8:00 до 00:00 ,а с 00:00 до 8:00 при запуске писало бы примерно викторина доступна с 8:00 иле штото в этом роде.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 27 июл 2009 00:16
tvrsh
avp писал(а):помогите сделать так штобы викторина работала по времени примерно с 8:00 до 00:00 ,а с 00:00 до 8:00 при запуске писало бы примерно викторина доступна с 8:00 иле штото в этом роде.


Добавь в файл configuration.tcl следующие строчки:
Код: Выделить всё
   # ограничение времени работы, например: {8-12 16-18}
   set conf(timelimit) {0-24}


Потом, в файл main.tcl перед процедурой ::ymhuk::start добавь процедуру
Код: Выделить всё
# проверка возможности работы на данный момент
proc ::ymhuk::checktime {} { variable conf
   if {![info exists conf(timelimit)]} { return 1 }

   foreach item [split $conf(timelimit)] {
      # указан только час, и он совпадает с текущим
      if {[string is int $item] && [expr {int($item) == int([clock format [clock seconds] -format %H])}]} {
         return 1
      }

      # интересуют только первые два элемента
      if {![regexp {^(\d+(:\d+)?)?-(\d+(:\d+)?)?.*$} $item t1 t1 t2 t2]} {
         putlog "he3hauka: wrong time interval: $item"
         continue
      }

      # границы интервала по умолчанию
      if {$t1 == ""} { set t1 "00:00" }
      if {$t2 == ""} { set t2 "24:00" }

      # добавляем недостающие минуты
      if {[string is int $t1]} { append t1 ":00" }
      if {[string is int $t2]} { append t2 ":00" }

      # конвертируем в обычные числа..
      set t1 [expr {double([string map {: .} $t1])}]
      set t2 [expr {double([string map {: .} $t2])}]

      # текущее время
      set t [expr {double([clock format [clock seconds] -format "%H.%M"])}]

      # попадаем, можно играть дальше
      if {$t >= $t1 && $t <= $t2} { return 1 }
   }

   # ни одного попадания..
   return 0
}


После этого, в процедуру ::ymhuk::start перед строкой
Код: Выделить всё
if {![::ymhuk::get.questions]} {return}
добавь
Код: Выделить всё
    if {![checktime]} {
      putmsg $chan "$nick, запуск викторины на данный момент невозможен - время работы ограничено моим хозяином."
      return 0
   }

Такуюже проверку надо добавить в процедуру выдачи следующего вопроса, но это потом, проверь пока как будет работать этот вариант.
Все это не тестировалось, забэкапь все изменяемые скрипты на всякий случай. Код проверки взят из скрипта quiz.tcl.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 27 июл 2009 03:03
avp
вроде сделал все как описано но вот што выдал после .set errorInfo:
Код: Выделить всё
Currently: can't read "conf(sql.enable)": no such variable
Currently:     while executing
Currently: "switch "$conf(sql.enable)" {
Currently: 0 {
Currently: if {$conf(viktorina)} {
Currently: ::ymhuk::plain.initialization
Currently: if {![info exists ymhuk(q.positions)] || ![info exists..."
Currently:     (procedure "::ymhuk::get.questions" line 4)
Currently:     invoked from within
Currently: "::ymhuk::get.questions"
Currently:     invoked from within
Currently: "if {![::ymhuk::get.questions]} {return}"
Currently:     (file "scripts/ymhuk/sources/main.tcl" line 323)
Currently:     invoked from within
Currently:     (file "scripts/ymhuk/ymhuk.tcl" line 32)
Currently:     invoked from within
Currently: "source scripts/ymhuk/ymhuk.tcl"
Currently:     ("uplevel" body line 1)
Currently:     invoked from within
Currently: "uplevel "source [file join $lscriptsdir $file]""

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 27 июл 2009 10:09
tvrsh
Эта ошибка не имеет отношения к предложенным мной изменениям. Она связана с работой с sql.
can't read "conf(sql.enable)": no such variable
Бот не видит переменную conf(sql.enable).

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 27 июл 2009 11:20
avp
спасибо за помощ оставлю все как есть.

Re: Проблема с Ymnik v3,0

СообщениеДобавлено: 14 дек 2009 23:37
exkoder
новый юзер пишет верный ответ на вопрос, а в патилайн выдантся следующее:

Код: Выделить всё
[22:13] yMHuK: added user Lyna-Psixyna
[22:13] Tcl error [::ymhuk::main.correct.answer]: No such user.


подозреваю что ник слишком длинный. как исправить это?

Re: Проблема с Ymnik v3,0

СообщениеДобавлено: 15 дек 2009 00:28
tvrsh
exkoder писал(а):новый юзер пишет верный ответ на вопрос, а в патилайн выдантся следующее:

Код: Выделить всё
[22:13] yMHuK: added user Lyna-Psixyna
[22:13] Tcl error [::ymhuk::main.correct.answer]: No such user.


подозреваю что ник слишком длинный. как исправить это?


Для того, чтобы бот принимал ответы от игроков чьи ники длиннее 9 символов тем, кто использует ботов Eggdrop необходимо пересобрать бота с handlen 32, делается это просто. В исходниках бота в папке src найдите файл eggdrop.h и в нем замените в строке
Код: Выделить всё
#define HANDLEN 9   /* valid values 9->NICKMAX  */
первую цифру 9 на 32. В итоге у вас должно получиться следующее:
Код: Выделить всё
#define HANDLEN 32   /* valid values 9->NICKMAX  */
после чего перекомпилируйте бота.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 15 дек 2009 21:17
exkoder
с ботом все нормально...

в eggdrop.h
Код: Выделить всё
#define HANDLEN 32   /* valid values 9->NICKMAX  */
#define NICKMAX 32  /* valid values HANDLEN->32 */

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 16 дек 2009 00:00
tvrsh
Сразу после появления ошибки введи в патилайне .set errorInfo и покажи результат.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 16 дек 2009 19:42
exkoder
tvrsh писал(а):Сразу после появления ошибки введи в патилайне .set errorInfo и покажи результат.
вот...
Код: Выделить всё
[18:38] yMHuK: added user Lyna-Psixyna
[18:38] Tcl error [::ymhuk::main.correct.answer]: No such user.
.set errorInfo
[18:39] #exkoder# set errorInfo
Currently: No such user.
Currently:     while executing
Currently: "setuser $hand HOSTS $host"
Currently:     (procedure "addhost" line 2)
Currently:     invoked from within
Currently: "addhost [set handle $nick] [set host "*![getchanhost $nick]"]"
Currently:     (procedure "::ymhuk::set.user" line 11)
Currently:     invoked from within
Currently: "::ymhuk::set.user $nick $handle"
Currently:     (procedure "::ymhuk::main.correct.answer" line 20)
Currently:     invoked from within
Currently: "::ymhuk::main.correct.answer $_pubm1 $_pubm2 $_pubm3 $_pubm4 $_pubm5"

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 20 дек 2009 13:48
tvrsh
Тут дело в том, что нового ответившего бот добавляет себе в базу этой строкой:
Код: Выделить всё
if {![validuser $nick]} { adduser $nick }

потом добавляет ему хост этой строкой:
Код: Выделить всё
addhost [set handle $nick] [set host "*![getchanhost $nick]"]

И в тот момент когда он хочет добавить хост юзеру handle ему отвечают что такого юзера нет. Как будто он не успевает добавиться.
Добавлять маску можно и в команде Adduser попробуй сделать так: замени строку
Код: Выделить всё
if {![validuser $nick]} { adduser $nick }
на
Код: Выделить всё
if {![validuser $nick]} { adduser $nick "*![getchanhost $nick]" }

А строки
Код: Выделить всё
addhost [set handle $nick] [set host "*![getchanhost $nick]"]
putlog "\002yMHuk:\017 added user \002$handle\017 with host \002$host\017"
пока закомментируй.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 17 июл 2010 19:40
triton
ввожу команду !старт и не играет.
в пати
[19:39] Tcl error [nub]: can't read "city(gamechan)": no such element in array
[19:39] оХМЦСЧ ЯЕПБЕП sql...
[19:39] уЕМДК МЕ ЯСЫЕЯРБСЕР!
[19:39] яНЕДХМЪЧЯЭ Я ЯЕПБЕПНЛ sql...
[19:39] Tcl error [::ymhuk::start]: invalid command name "::mysql::connect"


что может быть не правильно.

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 17 июл 2010 20:13
triton
[19:39] Tcl error [nub]: can't read "city(gamechan)": no such element in array

извините, это с другого скрипта

Re: Проблема с Ymnik v2.7

СообщениеДобавлено: 17 июл 2010 22:52
tvrsh
triton писал(а):ввожу команду !старт и не играет.
в пати
[19:39] Tcl error [nub]: can't read "city(gamechan)": no such element in array
[19:39] оХМЦСЧ ЯЕПБЕП sql...
[19:39] уЕМДК МЕ ЯСЫЕЯРБСЕР!
[19:39] яНЕДХМЪЧЯЭ Я ЯЕПБЕПНЛ sql...
[19:39] Tcl error [::ymhuk::start]: invalid command name "::mysql::connect"


что может быть не правильно.

Открывай Правила оформления топиков и читай там второй пункт.
Открой настройки викторины и убедись что у тебя там именно так:
#Использовать, или нет mysql
set conf(sql.enable) 0