| 
	 
	 
Здравствуйте, гость ( Вход | Регистрация )
 | 
	 
	 
			
			  4.1.2010, 20:31
			
				 Сообщение
					#1
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				Название скрипта: модуль банов + менеджер банов 
			
			
			Скрипт для: RusHub Автор: Wariner (немного доработал: Setuper) Описание: Модуль банов позволяет использовать функции бана в скриптах. Менеджер банов позволяет забанить, используя команды. Модуль банов не может работать отдельно от менеджера банов, так как менеждер банов содержит основную таблицу с банами. Внимание. Этот скрипт будет работает только с lua плагином, который равен или выше, чем версия v1.4, так как в плагине был устранён баг в функции Core.SetGVal. Теперь расскажу чего я добился. Теперь, подключая модуль Ban в любом скрипте можно будет забанить того или иного пользователя и при этом не нужно будет читать из файла базу забаненных или использовать таблицу с забаненными, - всё это скрыто в модуле Ban. Очень удобно банить с помощью модуля.  
 Ban.lua ( 2.63 килобайт )
Кол-во скачиваний: 389 
 BanManager.rar ( 2.07 килобайт )
Кол-во скачиваний: 298Спасибо сказали:  | 
	
| 
			
			 | 
	|
![]()  | 
	
			
			  3.1.2010, 13:49
			
				 Сообщение
					#2
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				В общем не успел я доделать всё что хотел, время кончилось. поэтому вот тут выкладываю модуль и скрипт для банов. протестировано на версии 2,0,3 
			
			
			Пока нет разделения на профили... Сам модуль Ban.lua кладём в папку libs Скрипт BanManager.lua с папкой BanManager в папку scripts PS: Илюх жду твоих коментов)) PPS: От остальных жду доработок))))) Спасибо сказали:  | 
	
| 
			
			 | 
	|
			
			  3.1.2010, 14:16
			
				 Сообщение
					#3
					
				
			 
		 | 
	|
        	
				
					![]() Developer ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 541 Регистрация: 11.11.2008 Пользователь №: 1 075 Спасибо сказали: 244 раза  | 
       
			
			 
				Спасибо. Но есть 1 недочёт, который я пока что заметил))) Забанить какого-либо пользователя может любой, кто присутствует на хабе =)))
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  3.1.2010, 14:19
			
				 Сообщение
					#4
					
				
			 
		 | 
	|
        	
				
					![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз  | 
       
			
			 Цитата Забанить какого-либо пользователя может любой, кто присутствует на хабе =))) Цитата Пока нет разделения на профили... 
				
				
				
			 | 
	
| 
			
			 | 
	|
			
			  3.1.2010, 14:45
			
				 Сообщение
					#5
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				По логике всё верно, но есть пару моментов. 
			
			
			
					
		1) Не думаю, что стоит смешивать модули и плагины в одну кучу. Для модулей есть папка libs. Плагины - это динамические библиотеки, которые подключает хаб. 2) Обычно работа с модулями несколько иная и предполагает некий защитный механизм кода (lua функция module), то есть существование модуля, как таблицы в глобальном окружении. А так в принципе все хорошо на мой взгляд написано. Спасибо.  | 
	
| 
			
			 | 
	|
			
			  3.1.2010, 15:07
			
				 Сообщение
					#6
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 1) Не думаю, что стоит смешивать модули и плагины в одну кучу. Для модулей есть папка libs. Плагины - это динамические библиотеки, которые подключает хаб. значит надо просто перенести в папку libs? 2) Обычно работа с модулями несколько иная и предполагает некий защитный механизм кода (lua функция module), то есть существование модуля, как таблицы в глобальном окружении. можно тут поподробнее и с примером?)))  | 
	
| 
			
			 | 
	|
			
			  3.1.2010, 15:29
			
				 Сообщение
					#7
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				ban.lua: 
			
			
			
					
		Код local base = _G -- ссылка на глобальное окружение module"Ban" -- объявление модуля function CheckBanUser(tTable, sNick, sIP) for i,v in base.pairs(tTable) do if v.Nick == sNick or v.IP == sIP then return true, "Вы забанены!" end end end BanManager.lua: Код require"ban" -- загрузка модуля 
				
				
				
			if Ban.CheckBanUser(tTable, sNick, sIP) then -- использование функции модуля ... end  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 0:00
			
				 Сообщение
					#8
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				поправил с виденьем Илюхи (надеюсь правильно)  + произошли некие изменения: 
			
			
			
					
		в модуле остались только 2 функции бан и анбан (обе ещё будут дорабатываться!) проверку на забаненость и очистка банов по времени перенесены в сам скрипт! PS: профилей опять же пока нет! UPD: добавил в скрипт функцию просмотра забаненых!!!  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 10:15
			
				 Сообщение
					#9
					
				
			 
		 | 
	|
| 
        	
				
					 Начинающий ![]() Группа: Пользователи Сообщений: 21 Регистрация: 11.1.2009 Из: Челябинск, LR Пользователь №: 1 771 Спасибо сказали: 0 раз  | 
       
			
			 
				Не работает. Прикрепил скрин. Время выставлял 1m. RusHub 2.0.3 LUA 1.3
				
				
				 
			
			
			
					
		
	Прикрепленные файлы
	
 
 | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 11:12
			
				 Сообщение
					#10
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				поправил. скрипт перезалил!
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 16:43
			
				 Сообщение
					#11
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				С введением переноса таблиц между скриптами, хотелось бы убрать все нагромождения и запихнуть всё в модуль, кроме таблицы банов, которая будет вызываться модулем. То есть, сделать так как и было задумано с самого начала. Есть модуль, и мы, подключая его к любому скрипту, получаем в этом скрипте доступ к функциям бана и только, а таблица банов нас не волнует.
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 18:37
			
				 Сообщение
					#12
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				Не совсем понял данный коммент.... 
			
			
			
					
		Сейчас как раз все функции бана (бан и анбан) находятся в модуле, а всё остальное убрано в скрипт который этим управляет. или я опять что то не вкуриЛ?  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 18:40
			
				 Сообщение
					#13
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				Сейчас я доработаю и выложу. 
			
			
			
					
		По ходу доработки устранил пару багов и немного оптимизировал.  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 19:04
			
				 Сообщение
					#14
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				ок жду))))
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 21:18
			
				 Сообщение
					#15
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				а какая принципиальная разница между работой моей версии и твоей?(на пальцах) 
			
			
			
					
		и почему в темпбане показывает кто забанил а в перманенте нет?  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 21:36
			
				 Сообщение
					#16
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				У тебя в функцию BanUser первым аргументом передавалась таблица, что не удобно в использовании в различных скриптах. 
			
			
			
					
		В постоянном бане я забыл указать. Перезалил. Код local sPermBanMsg = [[Вы навсегда забанены на этом хабе. Причина: %[REASON] Кто забанил: %[BY] ]] ... if v.Time == "full" then Core.SendToUser(UID, sPermBanMsg:gsub("%%%[REASON%]", v.Reason):gsub("%%%[BY%]", v.By), sBot) Core.Disconnect(UID) else ... Вообще это сообщение можно изменить по желанию админа. Если админ не хочет показывать ник кого, кто забанил, то просто удаляем соответствующую строку в сообщении.  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 21:54
			
				 Сообщение
					#17
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				ну с одной стороны да, а с другой ты привязал работу модуля к скрипту. а у меня в любой скрипт можно было сделать dofile и прописать функцию с таблицей. или типо так не оптимально?
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 22:07
			
				 Сообщение
					#18
					
				
			 
		 | 
	|
| 
        	
				
					 RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
       
			
			 
				В принципе нет особой разницы в быстроте выполнения, так как баны не часто вызываются, хотя мой вариант будет работать быстрее. 
			
			
			
					
		
  | 
	
| 
			
			 | 
	|
			
			  4.1.2010, 22:42
			
				 Сообщение
					#19
					
				
			 
		 | 
	|
        	
				
					![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
       
			
			 
				понятно))))) 
			
			
			
					
		ждём функцию дисконекта по ип наверно))))  | 
	
| 
			
			 | 
	|
			
			  5.1.2010, 20:14
			
				 Сообщение
					#20
					
				
			 
		 | 
	|
        	
				
					![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 48 Регистрация: 7.4.2009 Пользователь №: 2 949 Спасибо сказали: 3 раза  | 
       
			
			 
				при запуске скрипта "BanManager.lua " произошла ошибка: bad argument #1 to 'StartScript' (script was started already or script was contained mistakes)  
			
			
			
					
		 | 
	
| 
			
			 | 
	|
![]() ![]()  | 
	
 Похожие темы
 
 | 
Сейчас: 4.11.2025, 15:50 |