Автор: mariner 6.8.2009, 0:45
В общем решил таки сделать версию получше http://mydc.ru/index.html?showtopic=756&view=findpost&p=5612.
CODE
sFile = "HubTopic.dat"
sPath = "HubTopic"
sTrueCommand = "HubTopic"
tOpenProfile = {
[0] = true,
[1] = true,
[2] = true,
[3] = true,
[4] = true,
[5] = true,
[6] = false,
[7] = false,
}
sMenu = "Меню админа"
function OnStartup()
sFileName = Core.GetPtokaXPath().."scripts/"..sPath.."/"..sFile
sHubTopic = Read()
end
function UserConnected(tUser)
Core.SendToUser(tUser,"$HubTopic "..sHubTopic)
if tOpenProfile[tUser.iProfile] ~= nil then
Core.SendToUser(tUser, "$UserCommand 1 3 "..sMenu.."\\Сменить ХабТопик$<%[mynick]> !"..sTrueCommand.." %[line: Введите ХабТопик]||")
end
end
RegConnected = UserConnected
OpConnected = UserConnected
function ChatArrival(tUser, s)
if tOpenProfile[tUser.iProfile] ~= nil then
local _,_,sCmd,sRes = s:find("%b<>%s+[!,+](%S+)%s+(.*)|")
if sCmd == sTrueCommand then
Save(sRes)
sHubTopic = sRes
Core.SendToAll("$HubTopic "..sHubTopic)
return true
end
end
end
function Save(s)
local hFile = io.open(sFileName, "w")
hFile:write(tostring(s))
hFile:flush ()
hFile:close ()
return true
end
function Read()
local hFile = io.open (sFileName, "r")
if not hFile then
Save("Установите HubTopic")
end
return tostring(hFile:read("*a")), hFile:close()
end
пишет вот что:
Код
06.08.2009 00:20:43 - /etc/ptokax/scripts/HubTopic.lua:43: attempt to index local 'hFile' (a nil value)
06.08.2009 00:20:57 - /etc/ptokax/scripts/HubTopic.lua:43: attempt to index local 'hFile' (a nil value)
Что не так :(
не меняетт и не переписывает топик
Автор: alex82 6.8.2009, 4:48
Не новичок вроде, должен знать, что движок форума портит код.
Прикрепи файл скрипта - посмотрим.
Автор: mariner 6.8.2009, 6:48
Как то я такого не замечал.
HubTopic.lua ( 1.21 килобайт )
: 11
Автор: alex82 6.8.2009, 9:10
Походу, проблема с правами доступа, потому как в скрипте все правильно.
Чтобы убедиться наверняка, сделай так:
Код
function Save(s)
local hFile = assert(io.open(sFileName, "w"))
hFile:write(tostring(s))
hFile:flush ()
hFile:close ()
return true
end
Автор: mariner 6.8.2009, 9:22
хм, странно, ой странно. Хаб от рута пашет, а файл от рута не магет открыть. брр
Автор: Setuper 6.8.2009, 10:52
Кажется кто-то от дел сисадмина перешел к делам программирования)))
Функцией assert конечно можно пользоваться, однако лучше делать проверку открытости хендлера условием, так как тогда скрипт будет защищён и не упадёт
Автор: mariner 6.8.2009, 11:54
ну что ж поделать, если то, что представлено на форуме не устраивало меня. Вот и точу напильником