Страница 1 из 1

База Данных

СообщениеДобавлено: 06 июл 2011 11:35
DmitRex
Собираюсь написать игру на TCL, но нужно чтобы бот опознавал игроков при выхода из IRC и захода обратно и прибавлял им 1 очко при написание команды. Как этот код должен выглядеть ?

Re: База Данных

СообщениеДобавлено: 06 июл 2011 12:05
tvrsh
Ну как как, как обычно. Бинды, процедуры, переменные, запись в файл, чтение из него. Примеров полно, как в скриптах, так и на форуме.

Re: База Данных

СообщениеДобавлено: 06 июл 2011 12:09
DmitRex
А скрипт или ссылку дать можете?

Re: База Данных

СообщениеДобавлено: 06 июл 2011 12:18
tvrsh
На что? На скрипт с биндом или скрипт в котором происходит запись или чтение файла? Ты смеешься что ли?
faq-howto/rabota-faylami-t20.html
idiot.tcl

Re: База Данных

СообщениеДобавлено: 06 июл 2011 12:20
DmitRex
Ясно.

Re: База Данных

СообщениеДобавлено: 08 июл 2011 06:54
Spoofing
Расскажите, как сделать опознавание игроков?
Чтобы не разводить долгих дискуссий постараюсь описать сразу все камни. Я долгое время думал над этим, когда делал еще просто систему пользователей на боте.

У пользователя собственно может поменяться ник, идент и хост. Плохо нет cookie, как в браузере ;)
Если вы собрались делать автоидентификацию, то по какой маске? Наверное *!*user@*.host, но этого не достаточно, в лучшем случае пользователь должен сам выбирать себе маску, а еще лучше - сам ими управлять.
Теперь получаем, что у нескольких пользователей маски могут совпадать (все пользователи поставили себе одну и ту же маску) и автоидентификацию им прийдется отключать принудительно, чтобы не путать пользователей.

Если автоидентификации нет, то чтобы пользователю авторизироваться, ему придется воспользоваться логином и паролем. То есть, получаем: при заходе на канал, если у пользователя установленные им маски пересекаются с масками другого/других пользователей, бот не должен его автоидентифицировать, а пользователь должен будет сам написать в приват боту 'auth handle password'.
Если есть другие идеи и мысли, буду рад услышать, по тому как проблема для меня актуальна.

И пока писал, придумал 'гиковский вариант' частичного решения проблемы. Чтобы бот предлагал скрипты пользователям для автоидентификации, - после успешной авторизации бот запрашивает /CTCP VERSION у пользователя и смотрит какой у него клиент, и следом дает инструкцию: скрипт для этого клиента, и как его установить.

<Spoofing> auth spoofing MyPaSsWoRd
Bot [~bot@eggdrop.] requested CTCP VERSION from Spoofing:
<Bot> У вас mIRC. Чтобы сделать авторизацию проще - установите скрипт: //write -c scripts/bot.auth.mrc on *;CONNECT:if ($($network,) == $network) msg $me $$1- | load -rs scripts/bot.auth.mrc
<Bot> Если я ошибся с вашим клиентом, напишите /msg Bot auth --scripts для просмотра списка клиентов, для которых доступны скрипты авторизации, и выберите свой.


Что-то вроде этого ;)
Ну и совсем ни к месту, но подумал сделать это несколько защищенней. После каждой авторизации, смены пароля и т.д. сообщать пользователю одноразовый ключ, по которому он будет опознан в следующий раз. Разумеется, завязать все это на скрипты. Можно подумать, что это не "user-friendly", но на самом деле предложив пользователю установить скрипт - скрипт должен сам все делать, реагируя на бота.

Да, тут много работы и вообще гемора :P но иных вариантов _безупречной_ автоидентификации пользователя просто не вижу, кроме как ты сам будешь управлять масками всех пользователей и следить чтобы все работало. Я же желаю все автоматизировать)..

Re: База Данных

СообщениеДобавлено: 08 июл 2011 10:46
tvrsh
Безупречная идентификация это встроенная система бота плюс какое-нибудь шифрование юзерфайла.
Если говорить на чистоту, то все прекрасно понимают, почему делается всякая автоматизация идентификации у бота. Потому, что большинство юзеров слишком неграмотны в плане общения с ботом. Им слишком сложно придумать пароль и не забыть его на следующий день. Вот и придумываются всякие суперсистемы идентификаций, которые все равно падут под напором одинаковых идентов от SupeR Spr!pt0V, одинаковых хостов от таких же бнц, ников которые меняются при каждом входе в сеть и т.д. Никакая автосистема не разберется в этом бардаке.

Re: База Данных

СообщениеДобавлено: 08 июл 2011 18:57
Spoofing
Пожалуй вы правы, еггдроп обкатан годами и велосипед лучше не придумаешь, поэтому просто перепишу все как у еггдропа.