| 
	 
	 
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]()  | 
	
 | 
	 
	 
			
			  27.6.2009, 16:40
			
				 Сообщение
					#1
					
				
			 
		 | 
	|
        	
				
					![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза  | 
       
			
			 
				Название: Announcements 
			
			
			
					
		Версия API: 2 Версия скрипта: 2.0 Автор: STRELOK Описание: Публикация объявления администрацией хаба. Выводит объявление юзеру при подключении к хабу Возможности: 1. Показ объявления перед входом юзера 2. Показы даты и времени, когда было установлено объявление 3. Выбор кому будет доступно публиковать сообщения 4. Вывод сообщения о новом объявлении всем 5. Выбор сколько объявлений выводит при подключении пользователя и сколько будет хранится в таблице 6. Удаление объявлений по номеру. 
	Прикрепленные файлы
	
 
 | 
	
| 
			
			 | 
	|
			
			  1.7.2009, 19:20
			
				 Сообщение
					#2
					
				
			 
		 | 
	|
        	
				
					![]() PtokaX DC Hub 0.4.1.2 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 203 Регистрация: 20.1.2009 Из: Republic of Belarus, Minsk, Uruchie, Avalon. Пользователь №: 1 890 Спасибо сказали: 4 раза  | 
       
			
			 
				Скрипт классный, вот если бы ещё добавить: удаление объявления, было бы очень замечательно, а то надоедает заходить в папку и удалять: dats.dat
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  1.7.2009, 20:17
			
				 Сообщение
					#3
					
				
			 
		 | 
	|
        	
				
					![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 134 Регистрация: 18.6.2008 Из: подземелье Пользователь №: 41 Спасибо сказали: 7 раз  | 
       
			
			 Скрипт классный, вот если бы ещё добавить: удаление объявления, было бы очень замечательно, а то надоедает заходить в папку и удалять: dats.dat +1 Не хватает данной функции  | 
	
| 
			
			 | 
	|
			
			  3.7.2009, 8:45
			
				 Сообщение
					#4
					
				
			 
		 | 
	|
        	
				
					![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза  | 
       
			
			 
				Считаю, что удаление объявления, имхо, не нужно! Т.к. после публикации нового объявления, старое стирается само.
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  6.7.2009, 19:02
			
				 Сообщение
					#5
					
				
			 
		 | 
	|
        	
				
					![]() PtokaX DC Hub 0.4.1.2 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 203 Регистрация: 20.1.2009 Из: Republic of Belarus, Minsk, Uruchie, Avalon. Пользователь №: 1 890 Спасибо сказали: 4 раза  | 
       |
| 
			
			 | 
	|
			
			  15.12.2009, 22:28
			
				 Сообщение
					#6
					
				
			 
		 | 
	|
        	
				
					![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 50 Регистрация: 23.11.2008 Пользователь №: 1 182 Спасибо сказали: 2 раза  | 
       
			
			 
				[21:27] Синтаксис G:\Server\scripts\announcements.lua:88: attempt to index local 'handle' (a nil value) 
			
			
			
					
		в чём проблема?  | 
	
| 
			
			 | 
	|
			
			  15.12.2009, 22:32
			
				 Сообщение
					#7
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				либо в путях либо в отсутствии файла который использует скрипт! 
			
			
			 | 
	
| 
			
			 | 
	|
			
			  15.12.2009, 22:57
			
				 Сообщение
					#8
					
				
			 
		 | 
	|
        	
				
					![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 50 Регистрация: 23.11.2008 Пользователь №: 1 182 Спасибо сказали: 2 раза  | 
       |
| 
			
			 | 
	|
			
			  9.1.2010, 16:13
			
				 Сообщение
					#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. версию. Изменения в первом посту.  | 
	
| 
			
			 | 
	|
			
			  26.1.2010, 13:17
			
				 Сообщение
					#10
					
				
			 
		 | 
	|
        	
				
					![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 157 Регистрация: 19.1.2010 Из: Волгоград Пользователь №: 5 756 Спасибо сказали: 77 раз  | 
       
			
			 Сделал 2.0. версию. Изменения в первом посту. немного доработал - отключил вывод "Последние 5 сообщений администрации" при отсутствии объявлений. 
 announcements.rar ( 1.94 килобайт )
Кол-во скачиваний: 55 | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 20:45
			
				 Сообщение
					#11
					
				
			 
		 | 
	|
        	
				
					![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз  | 
       
			
			 
				Хороший скрипт. Очень актуальный для мнея, по крайней мере, НО было бы очень хорошо, если бы: 
			
			
			
					
		1) объявления были написаны жирным шрифтом 2) объявления появлялись в главном чате с определенной периодичностью. Раз в час или два, ну кроме появления при входе  | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 20:51
			
				 Сообщение
					#12
					
				
			 
		 | 
	|
        	
				
					![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз  | 
       
			
			 Цитата 1) объявления были написаны жирным шрифтом это уже читы клиента.  | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 20:52
			
				 Сообщение
					#13
					
				
			 
		 | 
	|
        	
				
					![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз  | 
       
			
			 
				Ээээ, не понял, что значит читы клиента?
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 21:15
			
				 Сообщение
					#14
					
				
			 
		 | 
	|
        	
				
					![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз  | 
       
			
			 
				В грэй линке есть читы которые и придают всю красоту сообщениям. 
			
			
			
					
		Но если у клиента нет поддержки этих самых читов то в чате такой ужас! если хочешь сделай сам это 1) открой скрипт 2) найди текст который нужно выделеть 3) сделай следующие Код [b]текст который нужно выделеть[/b] 
				
				
				
			 | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 21:17
			
				 Сообщение
					#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  | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 21:43
			
				 Сообщение
					#16
					
				
			 
		 | 
	|
        	
				
					![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз  | 
       
			
			 
				А как быть в жирным шрифтом? То что рекомендовал Saymon не вышло. Если добавляю 
			
			
			
					
		Код [b] текст который нужно выделеть [/b] пишет ошибку скрипта. Или я не то добавлял.
				
				
				
			 | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 22:05
			
				 Сообщение
					#17
					
				
			 
		 | 
	|
        	
				
					![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз  | 
       
			
			 
				покажи саму ошибку и строку в которой ошибка.
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 22:55
			
				 Сообщение
					#18
					
				
			 
		 | 
	|
        	
				
					![]() Начинающий ![]() Группа: Пользователи Сообщений: 12 Регистрация: 23.3.2010 Пользователь №: 6 430 Спасибо сказали: 0 раз  | 
       
			
			 
				Синтаксис [string "--[[    Название: Announcements..."]:45: unexpected symbol near '[' 
			
			
			
					
		Скрипт очень большой, я честно сказать понятия не имею куда добавить и чего. Я первый день в этом  | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 22:56
			
				 Сообщение
					#19
					
				
			 
		 | 
	|
        	
				
					![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз  | 
       
			
			 
				покажи 45 строку
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  23.3.2010, 23:02
			
				 Сообщение
					#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 | 12 872 | 16.6.2010, 7:16 Посл. сообщение: Accelerator | 
 
 | 
Сейчас: 4.11.2025, 8:48 |