Версия для печати темы
MyDC.ru _ Kорзина _ Скрипт Банов И Киков
Автор: STRELOK 9.1.2009, 20:11
Заметил недавно что в PtokaX нету функции показа бана или кика другим пользователям, кроме ОПераторам и Администраторам хаба
Когда банишь или кикаешь, обычный или зарегистрированный пользователь не видит бана, бан видит только администратор или ОПератор(
Цитата
[22:09:28] <Security> *** test с IP: 10.2.136.203 был временно забанен , пользователем STRELOK на: 1 мин потому, что: test.
это ссобщение увидит только администратор или оператор хаба(
Составьте плиз скрипт, чтобы сообщения бана или кика было видно всем пользователям:(
Автор: STRELOK 10.1.2009, 19:11
Вот, немного попытался сам, не работает((
Код
function ChatArrival(user,sData)
Core.GetUserAllData(user)
if BanMan.Ban
Core.SendToAll("<"..user.sNick.."> забанил "..user.nme.." (IP: "..user.sIP..") потому, что: "..sReason.."")
end
if BanMan.TempBan
Core.SendToAll("<"..user.sNick.."> забанил "..user.nme.." (IP: "..user.sIP..") следующие "..BanTime.." потому, что: "..sReason.."")
end
function KickArrival(tUser, sData)
Core.SendToAll("<"..user.sNick.."> кикнул "..user.nme.." (IP: "..user.sIP..") потому, что: "..sReason.."")
end
end
помогите пожалуйста...
Скрипт API2
PtokaX 0.4.1.1
Автор: Артём 10.1.2009, 20:24
А смысл показовать юзерам?может ты забанешь нарушителяс причиной ...Реклама хаба...
и IP и ве сразу полезут туда...
Автор: Wariner 10.1.2009, 20:36
BanMan.Ban, BanMan.TempBan - это функции для бана из скрипта, а тебе нужно выловить команды хаба поэтому и не получается.
посмотри скрипт и сделай по аналогии к остальным командам
Автор: STRELOK 10.1.2009, 20:53
Цитата(Артём @ 10.1.2009, 21:24)
А смысл показовать юзерам?может ты забанешь нарушителяс причиной ...Реклама хаба...
и IP и ве сразу полезут туда...
Полезут, но от силы человека 2=). Причина не такая, причина спам, а показывать бан для того, чтобы другие не спамили больше. Раньше юзал YnHub, там баны показывались, перешёл на птоку, баны не показываются, спама всё больше, и банов тоже
Автор: Артём 10.1.2009, 20:54
Цитата(STRELOK @ 10.1.2009, 20:53)
баны не показываются, спама всё больше, и банов тоже
антирекламу поставь
Автор: STRELOK 10.1.2009, 21:14
Цитата(Wariner @ 10.1.2009, 21:36)
посмотри скрипт и сделай по аналогии к остальным командам
за скрипт огромное спасибо, работает!
Но есть пара вопросов:
Какую команду в скрипте надо прописать, чтобы показывало IP забаненного юзера?
Какую команду надо прописать в скрипте, чтобы показывало время бана?
Цитата(Артём @ 10.1.2009, 21:54)
антирекламу поставь
антиреклама на хабе есть, но умудряются писчать не ссылкой dchub:// а просто, типо, заходите на хаб
Автор: Артём 10.1.2009, 21:25
Цитата(STRELOK @ 10.1.2009, 21:14)
антиреклама на хабе есть, но умудряются писчать не ссылкой dchub:// а просто, типо, заходите на хаб
на форуме полно антиреклам которые фильтруют ип даже без dchub://
Автор: STRELOK 10.1.2009, 21:38
Цитата(Артём @ 10.1.2009, 21:25)
на форуме полно антиреклам которые фильтруют ип даже без dchub://
Лан, щя мы не про антирекламу, а про скрипт для показа бана или кика всем пользователям, два вопроса я написал выше
Автор: Wariner 10.1.2009, 21:38
Цитата(STRELOK @ 10.1.2009, 21:14)
Какую команду в скрипте надо прописать, чтобы показывало IP забаненного юзера?
Что ты под этим подразумеваешь? Когда банишь по нику чтоб ип высвечивался? Если да то смыл ли всего этого?!
Автор: STRELOK 10.1.2009, 22:09
Цитата(Wariner @ 10.1.2009, 21:38)
Когда банишь по нику чтоб ип высвечивался? Если да то смыл ли всего этого?!
Да, чтоб IP высветился, пробую "..user.sIP..", скрипт вообще не работает после этого( Банить та я не только за рекламу буду, а например за угрозы, флуд, мат и тд. На всех хабах при бане показывается IP юзера
и ещё, есть проблема с временным баном, делаю всё по аналогу, который дал Wariner, текст не отображается всем юзерам((
PS: я не профессионал по скриптам lua, я могу только подправить какой то скрипт под себя
Автор: Wariner 10.1.2009, 22:13
синтаксис команды бан: ban <ник> <причина>
т.е. если ты хочешь чтоб был показывало ип надо проверять есть ли пользователь на хабе или нет и только если он есть ты можешь получить ип. А вообще лучше не накручивать этой фигни! Есть синтаксис команды и делай по нему ничего не придумывая! На всякий случай команды можно посмотреть командой !help
смнтаксис тембана: tempban <ник> <время> <причина>, т.е. в скрипте надо добавить поиск ещё одного слова! Читай вот это http://mydc.ru/topic266.html
Автор: STRELOK 11.1.2009, 8:34
Вот составил, но что то работает неправильно( Скрипт не работает(, поправьте меня если что не так
Код
sBot = SetMan.GetString(21)
tProfile = {
[0] = 1,
[1] = 1,
}
function ChatArrival(tUser,sData)
sData = string.sub(sData,1,-2)
local _,_,cmd = string.find(sData, "%b<>%s+(%S+)")
if cmd == "!ban" then
if tProfile[tUser.iProfile] == 1 then
local _,_,sNick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
local _,_,sIP = string.find(sData, "(%d*%.%d*%.%d*%.%d*)")
local _,_,sReason = string.find(sData, "%b<>%s+%S+%s+%S+%s+(%S+)")
if not sNick then
Core.SendToUser(tUser, sData)
Core.SendToUser(tUser,"<"..sBot.."> Вы не ввели ник!")
return true
end
if not sReason then
sReason = "не указанна"
end
Core.SendToAll("<"..tUser.sNick.."> забанил "..sNick.." (IP: "..sIP..") потому, что: "..sReason)
end
end
if cmd == "!tempban" then
if tProfile[tUser.iProfile] == 1 then
local _,_,sNick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
local _,_,sIP = string.find(sData, "(%d*%.%d*%.%d*%.%d*)")
local _,_,BanTime = string.find(sData, "%b<>%s+%S+%s+%S+%s")
local _,_,sReason = string.find(sData, "%b<>%s+%S+%s+%S+%s+(%S+)")
if not sNick then
Core.SendToUser(tUser, sData)
Core.SendToUser(tUser,"<"..sBot.."> Вы не ввели ник!")
return true
end
if not BanTime then
Core.SendToUser(tUser, sData)
Core.SendToUser(tUser,"<"..sBot.."> Вы не ввели время бана!")
return true
end
if not sReason then
sReason = "не указанна"
end
Core.SendToAll("<"..tUser.sNick.."> забанил "..sNick.." (IP: "..sIP..") следующие "..BanTime.." потому, что: "..sReason)
end
end
end
function KickArrival(tUser, sData)
sData = string.sub(sData,1,-2)
local _,_,sNick = string.find(sData, "$Kick%s+(%S+)")
local _,_,sIP = string.find(sData, "(%d*%.%d*%.%d*%.%d*)")
local _,_,sReason = string.find(sData, "$Kick%s+%S+%s+(%S+)")
if not sReason then
sReason = "не указанна"
end
Core.SendToAll("<"..tUser.sNick.."> кикнул "..sNick.." (IP: "..sIP..") потому, что: "..sReason)
end
Автор: Wariner 11.1.2009, 17:24
строчка
Код
Core.SendToUser(tUser, sData)
лишняя.
Код
local _,_,sReason = string.find(sData, "%b<>%s+%S+%s+%S+%s+(.*)")
это мои касеки
извиняюсь
А по делу так: ты просто не понимаешь что делаешь поэтому у тебя не получается. Вот представь ты через меню вводишь команду темпбана после чего в чат попадает следующее
!tempban Вася 1h Реклама хаба. первым действием мы находим первое слово(т.е. команду):
Код
local _,_,cmd = string.find(sData, "%b<>%s+(%S+)")
Чтобы понять как находим внимательно(а может и не один раз) прочитай это http://mydc.ru/topic266.html
Затем мы находим остальные слова. Тут то и возникает вопрос зачем ты ищешь IP если ты его не вводил?!
Код
if cmd == "!tempban" then
if tProfile[tUser.iProfile] == 1 then
local _,_,sNick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
local _,_,BanTime = string.find(sData, "%b<>%s+%S+%s+%S+%s+(%S+)")
local _,_,sReason = string.find(sData, "%b<>%s+%S+%s+%S+%s+%S+%s+(.*)")
Автор: STRELOK 11.1.2009, 17:30
Цитата(Wariner @ 11.1.2009, 18:24)
А по делу так: ты просто не понимаешь что делаешь поэтому у тебя не получается.
Я просто мало разбираюсь в таких кодах, я понимаю лёгкие строчки, типо:
Код
Core.SendToAll
if Cmd
я читал темку, немного не понял, перечитаю ещё раз
А вообще можно будет сделать этот скрипт так, чтобы IP перехватывался и показывался всем?
Автор: Wariner 11.1.2009, 17:53
можно в двух случаях если банишь по ип и если пользователь онлайн. Вот код для второго случая
Код
User = Core.GetOnlineUsers()
for i,v in pairs(Users) do
if v.sNiick == sNick then
sIP = v.sIP
end
end
Автор: STRELOK 11.1.2009, 18:03
Цитата(Wariner @ 11.1.2009, 17:53)
банишь если пользователь онлайн.
Пользователи с хаба никуда не денутся, если пользователь оффлайн, мой DC клиент показывает его айпи, и я просто добавляю бан через окон PtokaX. Хаб из интернета не доступен, он работает только в сети ООО "Факториал-Интернет". Поэтому если пользователь нарушил какое либо правило хаба, с хаба он не уходит, а спокойно ожидает бана, а некоторое даже просят, чтобы их забанили. Баню всегда командой !tempban.
Вот я и спрашиваю, можно ли как-нибудь сделать так, чтобы этот скрипт выдавал сообщение бана всем, но при этом показывал IP забаненного юзера?
Автор: Setuper 11.1.2009, 18:27
Код
local _,_,BanTime = string.find(sData, "%b<>%s+%S+%s+%S+%s")
Где захват времени?
Нужно писать так:
Код
local _,_,BanTime = string.find(sData, "%b<>%s+%S+%s+(%S+)")
Автор: Wariner 11.1.2009, 18:36
Цитата(STRELOK @ 11.1.2009, 18:03)
Вот я и спрашиваю, можно ли как-нибудь сделать так, чтобы этот скрипт выдавал сообщение бана всем, но при этом показывал IP забаненного юзера?
я же написал выше код.
Автор: Setuper 11.1.2009, 18:39
просто если использовать бан через ptokax, а не через команду, сообщение о бане не может никаким образом появиться)))
Автор: STRELOK 11.1.2009, 18:59
Цитата(Setuper @ 11.1.2009, 18:39)
просто если использовать бан через ptokax, а не через команду, сообщение о бане не может никаким образом появиться)))
нет, это если юзер ушёл, и я не успел забанить, то я добавляю бан через оконо PtokaX
Цитата(Wariner @ 11.1.2009, 18:36)
я же написал выше код.
что то после вставки кода в скрипт, он(скрипт) перестаёт работать(
Автор: Wariner 11.1.2009, 19:16
пробуй
Автор: STRELOK 11.1.2009, 19:32
Огромное спасибо всем, кто помог, особенно Wariner
З.Ы: Скрипт работает!
Автор: Killer47 5.2.2009, 13:53
под апи1 не найдется такого скриптика ,плизз очень нужно
Автор: Wariner 5.2.2009, 14:35
http://mydc.ru/topic605.html
Автор: dimetrius 5.2.2009, 17:08
Нельзя ли сделать чтоб сообщение не в чат приходило, а в статусную строку? Там где почти всегда написано: "Пароль послан..."
Автор: Wariner 5.2.2009, 21:04
2dimetrius: пробуй
Автор: STRELOK 6.2.2009, 8:37
Позволил опробывать себе, не работает, пишет в чат, но не в статусную строку
Автор: Killer47 6.2.2009, 11:04
Цитата
(исключения составляют вещи, которые есть только в API_2 - после перевода по данной методике эти вещи будут просто игнорироваться скриптом (или возвращать nil)
Собствено это и происходит ,может есть не переведеный ,а написаный для апи1
Автор: dimetrius 7.2.2009, 0:07
Цитата(Wariner @ 5.2.2009, 20:04)
2dimetrius: пробуй
в чат отправляется! И кстати отправляется наверное куда выставлено в настройках PtokaX (т.е. в личку, или в чат), т.к. на одном хабе, где всё в личку, там в личку эта месага отправляется, а на тестовом в чат основной, куда и всё остальное!
Автор: Wariner 7.2.2009, 22:40
для того чтобы скрипт работал надо в дц клиенте включить хабтопик иначе ничего не увидите а сообщения приходят ибо я не закоментировал строки первоначального варианта)))