ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
83   •   Посмотреть все темы

Депортация пользователя в другую комнату

 

83
Djoker @djoker
ПРИВЕТ извините вот поставил скрипт по дипортации в другую комнату а он не робит как надо


/* Проверка пользовательских команд для простого сообщения */
if(cmd==0) {
if(text.substr(0,5)=="/ping" && nick == mynick && loaded==1) {
var ping=(new Date().getTime()-gettime)/1000; text="<font color=red><i>ping: "+ping+" sec</i></font> "; }

if(text.substr(0,6)=="/clear" && clearer[nick]) {
if(loaded==1) document.getElementById("leftdiv").innerHTML="";text="очищаю фрейм сообщений";}

if(text.substr(0,7)=="/reload" && reloader[nick]) {
if(loaded==1) parent.location.reload(); text="перезагружаю чат";}

if(text.substr(0,6)=="/alert" && alerter[nick]) {
texti=text.substr(text.indexOf(": ")+2);
if(loaded==1 && mynick==tonick) alert(text); if(nick!=mynick) return;
text=tonick+": отправленна команда алерт";}

if(text.substr(0,7)=="/ignore" && ignorer[nick]){
if(tonick && mynick!=tonick && loaded==1) ign_sel(tonick); if(nick!=mynick || !tonick) return;
if(ign_ok(tonick)) text="Вы поставили полный игнор на ник "+tonick; else text="Вы сняли полный игнор с ника "+tonick;
}

}

if (text.split('src=tmp').length>1&&use_img) {text=text.replace(/.br..img.src.(tmp.(.+\.jpg)).border.0..br./igm, "<a href=$1 target=_blank><img src=http://mpchat.com/blank/img/ftp/img.gif border=0> $2</a>")} else {text=text.replace(/.br..img.src.(tmp.(.+\.jpg)).border.0..br./igm, "<img onload=parent.imgminimum(this) src=$1 border=0>")};


/* Вывод пользователя в другую комнату */
if(text.indexOf('/deportation') == 0 && censor[nick]) {
var term = 30; // время ссылки в минутах
if(loaded == 1 && mynick == tonick) {
window.setTimeout('setmyroom(3)', 2000);// 3 - это индекс комнаты для депортации
// изменение активного индекса селекта комнат
var select = document.getElementById('selectroom');
for (var i = 0; i < select.options.length; i++) {
if (select.options[i].value == myroom) {
select.options[i].selected = true;
break;
}
}
setcookie(chatlogin.replace('-','_') + '_deportation', '1', term);
}
text = '<span style="font-style: italic; color: red"> запирает в Темнице&nbsp;' + tonick + ' на ' + term + ' минут</span>';
}
if(text.indexOf('/amnesty') == 0 && censor[nick]) {
if(loaded == 1 && mynick == tonick) {
setcookie(chatlogin.replace('-','_') + '_deportation', '0', 1);
}
text = '<span style="font-style: italic; color: red"> амнистирует&nbsp;' + tonick + '. Можно вернуться в общую комнату.</span>';
}

🙁 🙁 🙁 🙁 что тут не так ?. в общем посетитель сразу вернутся может после того как его перекинут в другую комнату . пробывал и на себе с другой анкеты заходил и на других 🤔🤔🤔🤔🤔🤔

Отредактировано djoker - 20.09.2013
1163
Денис @Анатолич
Pegass пишет:

скрыть в темнице селектор перехода не?

иф майрум!=3 {селектор}; так?
по идее должен работать и такой вариант.
Но если кто то подскажет, что то из преложенных мною вариантов буду благодарен.
так как разные способы запреты усложняют пути обхода.
куки постоянно тоже чистить неудобно.

1007
BETEPAH @BETEPAH
Анатолич пишет:

Особо "шибанутые" нарушители при депортации могут флудить. переходя из "темницы" в общую комнату и обратно.
Можно ли еще усложнить им задачу?

1. В идеале пока не пройдет 30 минут после вход в в темницу, выход из неё запретить.

2. Упрощенный вариант. Выход из темницы возможен только через главную

3. Вариант при депортации не писать сообщения о переходе от депортированного человека, до истечения срока депортации.

возможно ли такое реализовать?
Понимаю, что все это по большому счету фигня и обойти защиту можно.
Но любые дополнительные трудности для нарушителя, облегчают работу модераторам.

1. думаю, несложно. Поставить в функцию ручного перехода проверку на наличие кукиса депортации.
2. не понял. Имеется в виду, что в селекторе можно выбрать только одну комнату - главную? if (answer == "да") itIs = "possible"
3. это вряд ли. У других пользователей чата нет информации о том, депортирован данный пользователь или нет, поэтому отсеивать эти эти сообщения скорее всего не получится.

Чтоб реализовать мне нужно будет время (а его ближайшие недели две-три не будет) и доступ в админку чата, в котором эта функция установлена (у себя я не устанавливал 😀 .

2615
Сергей @Pegass
BETEPAH пишет:

if (answer == "да") itIs = "possible"

Спасибо, поржали всем офисом)))

1163
Денис @Анатолич
короче попробовал вариант со скрытием селектора
в чате внутри
попробовал добавить красное

<script>
/* Форма для перехода по комнатам (видна если есть комнаты) */
if(rooms.length>1 && room.length!=3) {
document.write("<select id='selectroom' class=ok name=selectroom onchange=\"setmyroom(this.value);\">");
for(var i=0;i<rooms.length;i++) {if(i==myroom) sel="selected"; else sel="";
document.write("<option value="+i+" "+sel+">"+rooms[i][0]+" (0)");
}
document.write("</select><br><br>");
}
</script>
селектор пропал совсем.

вместо room.length ставил переменные myroom и room.
селектор или пропадал везде или никакого эффекта от моих действий небыло.
подскажите где накосячил?


с функциями проверки кукисов в ручном переходе пока не ковырялся. надеюсь получится

1007
BETEPAH @BETEPAH
Анатолич пишет:

короче попробовал вариант со скрытием селектора
в чате внутри
попробовал добавить красное
room.length!=3
myroom
room.
селектор или пропадал везде или никакого эффекта от моих действий небыло.
подскажите где накосячил?

if(rooms.length > 1 && myroom != 3) странно, что этот вариант не заработал

2615
Сергей @Pegass
BETEPAH пишет:

Анатолич пишет:

короче попробовал вариант со скрытием селектора
в чате внутри
попробовал добавить красное
room.length!=3
myroom
room.
селектор или пропадал везде или никакого эффекта от моих действий небыло.
подскажите где накосячил?

if(rooms.length > 1 && myroom != 3) странно, что этот вариант не заработал

этот вариант сработает если входить в чат сразу в нужную комнату)))

А при переходе надо в функцию перехода добавлять скрытие

1007
BETEPAH @BETEPAH
Анатолич, попробуйте в начало функции setmyroom добавить синее
function setmyroom(room) {
if(getcookie(chatlogin.replace('-','_') + '_deportation')) {alert('Уходить запрещено! Здесь сиди!'); return false;}
if(myroom==room) return false;

1163
Денис @Анатолич
BETEPAH,
Благодарю. правда небольшая ошибка в коде. При таком раскладе вообще депортировать не будет. Надо добавить в условие номер комнаты для депортации (3)

if(getcookie(chatlogin.replace('-','_') + '_deportation') && myroom==3) {alert('Уходить запрещено! Здесь сиди!'); return false;}
но тут еще одна проблема.
Эта информация скрыта и доступна только зарегистрированным пользователям.

Но наверное это уже скриптами не решить? 😒

1163
Денис @Анатолич
а можно ли к этому скрипту добавить приоритеты, как при обычном бане?
Чтобы можно было депортировать людей только ниже по статусу.

Отредактировано Анатолич - 04.06.2014
415
Денис @FeNIX74
Анатолич, По идее можно сделать отмену на нужные статусы т.е функция перенаправления работать не будет.

if(parent.admin==1) return;

320
Сергей @Brokl
так решили проблему или нет?

320
Сергей @Brokl
я правильно понял в эту комнату может зайти любой желающий?и уже не выйти

320
Сергей @Brokl
а можно сделать так чтобы эту комнату видел только администратор?

2615
Сергей @Pegass
Brokl, сложно но можно

320
Сергей @Brokl
Pegass пишет:

Brokl, сложно но можно

да хотелось бы чтоб только одну комнату невидно было. чувствую это действительно сложно. но если это сделать то вся этта система с тюрьмой будет просто идеальна

320
Сергей @Brokl
ishkiniaev пишет:

скрипт вроде поставили, но тот кто кидает в темницу, уходит туда вместе с виновным + виновный выходит спокойно из темницы да и в темницу переходит кто хочет

а и правда почему закидывает в темницу вместе с узником???

1163
Денис @Анатолич
значит криво поставили. где то накосячили.

83
Djoker @djoker
Привет . У меня запертый в комнате свободно может вернуться в общую комнату всего навсего сменив комнаты не подскажете как это исправить ?

Отредактировано djoker - 16.01.2016
320
Сергей @Brokl
djoker, Федь , депортация это не бан. даже если скроешь селектор с комнатами вернуться все равно много шансов