|
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
![]()
Сообщение
#1
|
|
![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза ![]() |
Название: Announcements
Версия API: 2 Версия скрипта: 2.0 Автор: STRELOK Описание: Публикация объявления администрацией хаба. Выводит объявление юзеру при подключении к хабу Возможности: 1. Показ объявления перед входом юзера 2. Показы даты и времени, когда было установлено объявление 3. Выбор кому будет доступно публиковать сообщения 4. Вывод сообщения о новом объявлении всем 5. Выбор сколько объявлений выводит при подключении пользователя и сколько будет хранится в таблице 6. Удаление объявлений по номеру.
Прикрепленные файлы
|
|
|
![]() ![]()
Сообщение
#2
|
|
![]() PtokaX DC Hub 0.4.1.2 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 203 Регистрация: 20.1.2009 Из: Republic of Belarus, Minsk, Uruchie, Avalon. Пользователь №: 1 890 Спасибо сказали: 4 раза ![]() |
Скрипт классный, вот если бы ещё добавить: удаление объявления, было бы очень замечательно, а то надоедает заходить в папку и удалять: dats.dat
|
|
|
![]()
Сообщение
#3
|
|
![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 134 Регистрация: 18.6.2008 Из: подземелье Пользователь №: 41 Спасибо сказали: 7 раз ![]() |
Скрипт классный, вот если бы ещё добавить: удаление объявления, было бы очень замечательно, а то надоедает заходить в папку и удалять: dats.dat +1 Не хватает данной функции |
|
|
![]()
Сообщение
#4
|
|
![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза ![]() |
Считаю, что удаление объявления, имхо, не нужно! Т.к. после публикации нового объявления, старое стирается само.
|
|
|
![]() ![]()
Сообщение
#5
|
|
![]() PtokaX DC Hub 0.4.1.2 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 203 Регистрация: 20.1.2009 Из: Republic of Belarus, Minsk, Uruchie, Avalon. Пользователь №: 1 890 Спасибо сказали: 4 раза ![]() |
|
|
|
![]()
Сообщение
#6
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 50 Регистрация: 23.11.2008 Пользователь №: 1 182 Спасибо сказали: 2 раза ![]() |
[21:27] Синтаксис G:\Server\scripts\announcements.lua:88: attempt to index local 'handle' (a nil value)
в чём проблема? |
|
|
![]()
Сообщение
#7
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
либо в путях либо в отсутствии файла который использует скрипт!
|
|
|
![]()
Сообщение
#8
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 50 Регистрация: 23.11.2008 Пользователь №: 1 182 Спасибо сказали: 2 раза ![]() |
|
|
|
![]()
Сообщение
#9
|
|
![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза ![]() |
Скрипт классный, вот если бы ещё добавить: удаление объявления, было бы очень замечательно, а то надоедает заходить в папку и удалять: dats.dat Если кому то нужна функция удаления объявления, то после return true (на 64 строке) нужно добавить на 65 строке: Код elseif cmd == "!delannouncements" then if tProfile[tUser.iProfile] == 1 or tVIP[tUser.sNick] then tDats = { Dats = "Нет объявлений", Date = "unknown" } Core.SendToUser(tUser, ("<%s> Объявление удалено!"):format(Bot)) SaveToFile(filename, tDats, "tDats") else Core.SendToUser(tUser, ("<%s> У вас нет прав для использования этой команды!"):format(Bot)) end return true Теперь после ввода команды !delannouncements будет выводится так: Цитата [17:09:13] <PtokaX> Объявление администрации: Нет объявлений (Установлено: unknown) Думаю с менюшкой сами разберётесь как сделать ![]() ** Пошёл делать новую версию скрипта. Попробую сделать так, чтобы можно было добавлять хоть сколько объявлений и делать удаление по номеру объявления. ** Сделал 2.0. версию. Изменения в первом посту. |
|
|
![]()
Сообщение
#10
|
|
![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 157 Регистрация: 19.1.2010 Из: Волгоград Пользователь №: 5 756 Спасибо сказали: 77 раз ![]() |
Сделал 2.0. версию. Изменения в первом посту. немного доработал - отключил вывод "Последние 5 сообщений администрации" при отсутствии объявлений.![]() |
|
|
![]()
Сообщение
#11
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз ![]() |
Хороший скрипт. Очень актуальный для мнея, по крайней мере, НО было бы очень хорошо, если бы:
1) объявления были написаны жирным шрифтом 2) объявления появлялись в главном чате с определенной периодичностью. Раз в час или два, ну кроме появления при входе |
|
|
![]()
Сообщение
#12
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
Цитата 1) объявления были написаны жирным шрифтом это уже читы клиента. |
|
|
![]()
Сообщение
#13
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз ![]() |
Ээээ, не понял, что значит читы клиента?
|
|
|
![]()
Сообщение
#14
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
В грэй линке есть читы которые и придают всю красоту сообщениям.
Но если у клиента нет поддержки этих самых читов то в чате такой ужас! если хочешь сделай сам это 1) открой скрипт 2) найди текст который нужно выделеть 3) сделай следующие Код [b]текст который нужно выделеть[/b]
|
|
|
![]()
Сообщение
#15
|
|
![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза ![]() |
2) объявления появлялись в главном чате с определенной периодичностью. Раз в час или два, ну кроме появления при входе в функцию OnStartup() добавляем: Код Upd = 3 -- Время, через которое будут посланы объявления в чат всем (в часах) TmrMan.AddTimer(Upd*3600000, "Send") В самый низ: Код function Send()
Core.SendToAll(GetAnnouncements(count)) end |
|
|
![]()
Сообщение
#16
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз ![]() |
А как быть в жирным шрифтом? То что рекомендовал Saymon не вышло. Если добавляю
Код [b] текст который нужно выделеть [/b] пишет ошибку скрипта. Или я не то добавлял.
|
|
|
![]()
Сообщение
#17
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
покажи саму ошибку и строку в которой ошибка.
|
|
|
![]()
Сообщение
#18
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз ![]() |
Синтаксис [string "--[[ Название: Announcements..."]:45: unexpected symbol near '['
Скрипт очень большой, я честно сказать понятия не имею куда добавить и чего. Я первый день в этом |
|
|
![]()
Сообщение
#19
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
покажи 45 строку
|
|
|
![]()
Сообщение
#20
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз ![]() |
local sMsg = sData:match"%b<>%s+%S+%s+(.*)"
Полностью скрипт выглядит так. И куда чего добавить не понятно Код --[[ Название: Announcements
Версия API: 2 Версия скрипта: 2.0 Автор: STRELOK Описание: Публикация объявления администрацией хаба. Выводит объявление юзеру при подключении к хабу Возможности: 1. Показ объявления перед входом юзера 2. Показы даты и времени, когда было установлено объявление 3. Выбор кому будет доступно публиковать сообщения 4. Вывод сообщения о новом объявлении всем 5. Выбор сколько объявлений выводит при подключении пользователя ]]-- local tProfile = { [0] = 1, [1] = 0, } tVIP = { ["STRELOK"] = 1, } local Bot = SetMan.GetString(21) local filename = Core.GetPtokaXPath().."scripts/announcements/dats.dat" tDats = { Dats = "Нет объявлений", Date = "unknown" } sAll = 1 -- выводить сообщение о публикации нового объявление всем count = 5 -- какое кол-во объявлений выводить при входе и сохранят в таблицу? function OnStartup() Upd = 1 TmrMan.AddTimer(Upd*3600000, "Send") if loadfile(filename) then dofile(filename) end end function ChatArrival(tUser,sData) sData = string.sub(sData,1,-2) local cmd = sData:match"%b<>%s+(%S+)" if cmd == "!postannouncements" then if tProfile[tUser.iProfile] == 1 or tVIP[tUser.sNick] then local sMsg = sData:match"%b<>%s+%S+%s+(.*)" if not sMsg then Core.SendToUser(tUser, "<"..Bot.."> Вы не ввели сообщение") end local Dat = { sMsg, os.date"%d.%m.%y * %H:%M:%S", tUser.sNick, } table.insert(tDats, Dat) if #tDats > count then table.remove(tDats,1) end SaveToFile(filename, tDats, "tDats") Core.SendToUser(tUser, "<"..Bot.."> Объявление '"..sMsg.."' было опубликовано!") if sAll == 1 then Core.SendToAll("<"..Bot.."> Новое объявление: "..sMsg) end else Core.SendToUser(tUser, ("<%s> У вас нет прав для использования этой команды!"):format(Bot)) end return true elseif cmd == "!delannouncements" then if tProfile[tUser.iProfile] == 1 or tVIP[tUser.sNick] then local sNumber = sData:match"%b<>%s+%S+%s+(.*)" for v in ipairs(tDats) do table.remove(tDats, sNumber) Core.SendToUser(tUser, ("<%s> Объявление №%s удалено!"):format(Bot, sNumber)) SaveToFile(filename, tDats, "tDats") end else Core.SendToUser(tUser, ("<%s> У вас нет прав для использования этой команды!"):format(Bot)) end return true end end function GetAnnouncements(lines) local x = lines if lines > #tDats then x,lines = #tDats,#tDats end x = #tDats - x local str = "" for i,v in ipairs(tDats) do if i > x then str = str.."№"..i..": "..v[1].." (Опубликовано: "..v[2].." / Автор: "..v[3]..")\n" end end return str end function UserConnected(tUser) local str = GetAnnouncements(count) if str ~= "" then str = ""..string.rep(" ",0).."Последние "..count.." объявлений администрации:\n"..str Core.SendToUser(tUser, "<"..Bot.."> "..str) end if tProfile[tUser.iProfile] == 1 or tVIP[tUser.sNick] then Core.SendToUser(tUser,"$UserCommand 1 3 Меню админа\\Опубликовать объявление$<%[mynick]> !postannouncements %[line:Введите текст]|") Core.SendToUser(tUser,"$UserCommand 1 3 Меню админа\\Удалить объявление$<%[mynick]> !delannouncements %[line:Введите № объявления]|") end end RegConnected = UserConnected OpConnected = UserConnected function Serialize(tTable, sTableName, sTab) sTab = sTab or ""; sTmp = "" sTmp = sTmp..sTab..sTableName.." = {\n" for key, value in pairs(tTable) do local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key); if(type(value) == "table") then sTmp = sTmp..Serialize(value, sKey, sTab.."\t"); else local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value); sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue end sTmp = sTmp..",\n" end sTmp = sTmp..sTab.."}" return sTmp end function SaveToFile(file , table , tablename) local handle = io.open(file,"w+") handle:write(Serialize(table, tablename)) handle:flush() handle:close() end function Send() Core.SendToAll(GetAnnouncements(count)) end |
|
|
![]() ![]() |
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
![]() |
![]() версия 1.1 |
6 | Accelerator | 11 609 | 16.6.2010, 7:16 Посл. сообщение: Accelerator |
![]() |
Сейчас: 8.9.2024, 2:18 |