Автор: district 17.11.2008, 3:51
Ребята.. ноги стер в поиске, где тут были выложены эти скрипты под старый и новый АПИ.
А может, и не здесь брал (?). Поэтому пришлось создать новый топик. Пусть администрация поправит, если что.
Поюзал тот, что для старого АПИ, нашел серьезнейший косяк.
Если юзер, кому отправляется сообщение, оффлайн, то отправляется репорт: такой-то юзер (в оригинале - "..who..") оффлайн.
Загадочный параметр who в строке репорта приводил в этом случае к ошибке, скрипт вылетал.
Пробовал так и сяк, плюнул, убрал это "ху" из репорта. Может, кто допишет, как правильно должно быть, чтобы и имя этого "оффлайн-юзера" отображалось тоже.
Вот рабочий вариант под API1.
Автор: Sephiroth_Lukaw 17.11.2008, 4:44
Цитата("district")
где тут были выложены эти скрипты под старый и новый АПИ
http://mydc.ru/topic108.html
А ошибки у меня не вылетают, хотя, проверки на nil там нет. И скрипт бъёт ошибку, лишь только, если скрипт используется без параметров или если перед ником поставить пробел.
У меня вот на что исправлено:
Код
local _,_,cmd,sNext = data:find("^%b<> %p(whisper)(.*)")
if cmd then
local _,_,who,msg = string.find(sNext, "%s+(.-)%s+(.*)|")
if msg == nil then
user:SendData("<"..Bot.."> Вы не ввели текст сообщения")
return 1
end
who = who or ""
за место
Код
local _,_,cmd = data:find("^%b<> %p(whisper)")
if cmd then
local _,_,who,msg = string.find(data, "%b<> [%p][%a]+ ([^ ]+) ([^|]+)|")
мб, мой вариант чем-то плох.