Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Помощь по скриптам для PtokaX _ История чата

Автор: =TuRoK= 21.11.2009, 14:56

Всем привет. давненько сюда не заходил... Вообщем проблема со скриптом история чата, работал хорошо долго. а потом просто перестал выкидывать истори чата, пробывал по разному скрипт запустить, не вышло, выдаёт такие ошибки:

Синтаксис C:\PtokaX\scripts\Chat_History_5.1_newapi.lua:29: attempt to get length of global 'chathistory' (a nil value)
и
Синтаксис cannot open scripts/main/chathistory.txt: No such file or directory



Чё за фигня случилась, всё ж работало хорошо... beat_plaster.gif

Раскрывающийся текст
-- This script is converted with PtokaX LUA API Converter v0.9 at 01/17/08 15:57:18
--Chat History On Entry 1.02 LUA 5
--By Mutor The Ugly 4/14/04
--
--Based on a script by Tezlo 1/17/04
--Send chat history to PM on entry
--Перевел и конвертировал в LUA 5.1 X-Ray 01/06/2006
-- +Converted to LUA 5 2/22/05

-----------------------------------------------------------
chatfile = "scripts/main/chathistory.txt"-- путь до файла данных
maxhistory = 10 -- максимум строк чата для хранения в кеше
botname = "#hub=TMB=" -- имя бота
BadChars = {".","?","!","+","-",} -- разрешенные префиксы

function OnStartup()
chathistory = dofile(chatfile) or {}
--Core.RegBot(botname,"","",true)-- Comment this line to not have bot appear in user list. Note: If botname is not registered, default dc++ settings will not allow pm's to pop up
-- Enable Pop up messages from offline users / Disable ingnore messages from offline in client 'advanced dc settings'. To allow pop from unregistered botname.
end

function OnExit()
savehistory()
end

function UserConnected(user)
if user.iProfile~=-1 then
Core.GetUserAllData(user)
local n = #chathistory
local str = " . . . : : : Последние сообщения в чате : : : . . ."
for i = 1, n do str = str.."\r\n"..chathistory[i] end
Core.SendToNick(user.sNick,"<"..botname.."> "..str.."") -- в Main
end
end
OpConnected = UserConnected

function ChatArrival(user,data)
Core.GetUserAllData(user)
if string.sub(data, 1, 1) ~= "<" then end
local s,e,pre = string.find(data, "^%b<> (.)")
local when = os.date("[%H:%M] ")
local chat = string.sub(data, 1, -2)
for k,v in pairs(BadChars) do
if pre == v then -- disallow command input to cached chat
return
end
end
table.insert(chathistory,when..chat)
if #chathistory > maxhistory then table.remove(chathistory, 1) end
savehistory()
end

function savehistory()
local f,e = io.open( chatfile, "w+" )
if f then
f:write( "return {\n" )
for i = 1, #chathistory do
f:write( "\t"..string.format("%q", chathistory[i])..",\r\n" )
end
f:write( "}" )
f:close()
return 1
else
return nil,"savehistory failed: "..e

end
end

function loadfile(chatfile)
local f,e = io.open( chatfile, "r" )
if f then
local r = f:read( "*a" )
f:close()
return r
else
return nil,"loadfile failed: "..e
end
end

RegConnected = UserConnected



Автор: Wariner 21.11.2009, 15:05

пути надо прописать корректно

Код
chatfile = Core.GetPtokaXPath().."scripts/main/chathistory.txt"-- путь до файла данных

Автор: =TuRoK= 21.11.2009, 15:16

Спасибо большое big_smile.gif Прост я давно уже со скриптами не возился, забыл самое простое..((
Странно что он работал и не тупил раньшеbig_smile.gif