Автор: Wariner 13.11.2009, 11:24
считаю совершенно не нужным 3 скрипта...
давай по порядку:
1)переменные лучше объявлять локальными, поэтому не так
Код
Bot = "[BOT]Revolution"
cmdTop = "топик"
tProfiles = { --Кто может использовать команды (1 - да / 0 - нет):
[-1] = 0, -- Анрег
[0] = 1, -- Админ
[1] = 1, -- ОП
[2] = 0, -- VIP
[3] = 0, -- Рег
}
а вот так
Код
local Bot = "[BOT]Revolution"
local cmdTop = "топик"
local tProfiles = { --Кто может использовать команды (1 - да / 0 - нет):
[-1] = 0, -- Анрег
[0] = 1, -- Админ
[1] = 1, -- ОП
[2] = 0, -- VIP
[3] = 0, -- Рег
}
2) как советовал
Setuper лучше использовать венгерскую нотацию для обозначения переменных или хотябы один вид а то у тебя
user и
User - это совсем разные переменные! Так как это таблица лучше писать
tUser3) вот это
Код
local _,_,cmd = string.find(Data, "%b<>%s%p(%S+)|")
лучше так
Код
local cmd = Data:match"%b<>%s%p(%S+)|"
а это
Код
if cmd and (cmd == cmdTop) then
просто
Код
if cmd == cmdTop then
4) вот эту часть
Код
hubtop = SetMan.GetString(10)
Core.SendToAll(Data)
Core.SendToAll("<"..Bot.."> Топик хаба: "..hubtop.."")
return true
end
вот так
Код
Core.SendToAll(Data)
Core.SendToAll("<"..Bot.."> Топик хаба: "..SetMan.GetString(10).."")
return true
end
PS: не надо в название скрипта писать свой ник
PPS: вот набросал как примерно должно получится
Автор: X-Sky 13.11.2009, 11:44
Цитата
Core.SendToAll("<"..Bot.."> Топик хаба: "..SetMan.GetString(10).."")
Получается так:
Код
Топик хаба: тест
X-Sky меняет топик на: 1
ПЕРЕЗАХОЖУ НА ХАБ
Топик хаба: тест
И ещё..)
Код
[15:44] Синтаксис ...X-Sky\0.4.1.1new\scripts\ShowTopic.lua:39: bad argument #1 to 'SendToAll' (string expected, got nil)
P.S. Сильно не ругайся, только учусь писать :(
P.P.S. В смысле скрипты
Автор: Setuper 13.11.2009, 13:05
Условие
Код
if cmd and (cmd == cmdTop) then
было написано правильно. Оно предостерегает от попытки сравнить cmdTop с nil, так как пользователь может отправить, например, пустую строку в чат, и тогда регулярное выражение ничего не захватит.
Что касается установки топика, то нужно писать SetMan.GetString(10, "новый топик").
Код:
Код
Core.SendToAll(Data)
Core.SendToAll("<"..Bot.."> Топик хаба: "..SetMan.GetString(10).."")
лучше писать в одну функцию:
Код
Core.SendToAll(Data.."|<"..Bot.."> Топик хаба: "..SetMan.GetString(10))
И конечно же нужно избавляться от очень дурной привычки добавлять конкатенацию с пустой строкой! Не знаю от кого она пошла, но она очень вредная.
Автор: X-Sky 13.11.2009, 15:43
Цитата
Условие было написано правильно.
И то радует ^.^
Цитата
Не знаю от кого она пошла (конкатенация)
Мне так с каким-то скриптом советовал Nickolya
В остальном спасибо, Setuper
Автор: Wariner 21.11.2009, 19:37
Ммм исправления будут?)))))
Автор: X-Sky 22.11.2009, 6:58
Да, конечно.
Заметался немного, про скрипт забыл ![tire.gif](http://mydc.ru/style_emoticons/default/tire.gif)
Как смогу - выложу, обещаю, занят в последнее время очень