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

Вывод alert со своим текстом через function mm

 

2536
удалён @crigon
Хочу сделать что-то подобное, только, чтобы для одного tonick

if (text=="/alert"&&nick=="NICK") {alert(text);}

2902
serhio @serhio
[quote=crigon,20.12.05, 07:54] Хочу сделать что-то подобное, только, чтобы для одного tonick

if (text=="/alert"&&nick=="NICK") {alert(text);} [/quote]
а не пробовал туда добавить еще условие &&tonick==tonick ?... тогда должно выводиться только тому, кому предназначено сообщение, вроде...

2536
удалён @crigon
нда, но как сделать собственный text чтоб был?

2902
serhio @serhio
[quote=crigon,20.12.05, 08:07] нда, но как сделать собственный text чтоб был? [/quote]
а так - пробовал:

if (text=="/alert"&&nick=="NICK"&&tonick==tonick) { text="твой текст"; alert(text);}

2536
удалён @crigon
нее... текст, который ввел, новый всегда...

может сделать text=parent.chat.fmsg.text0.value так может сработать?

2902
serhio @serhio
[quote=crigon,20.12.05, 08:14] нее... текст, который ввел, новый всегда...

может сделать text=parent.chat.fmsg.text0.value так может сработать? [/quote]
нет... не сработает... в этом случае нужно вырезку делать из сообщения... отдельно выделять /alert, а отдельно само сообщение... про то, как лучше всего сделать такую вырезку, - к Диме... а то я со своими знаниями тебе такого понарасскажу, как вырезать, что чат точно закричит "мой создатель тупица"... (с)... 😀 мне в вырезке еще нужно поразбираться, чтобы что-то дельное сказать, как это делать...

20089
Dimitry @Dimitry
if (text.substr(0,6)=="/alert" && nick=="ADMINNICK") {
if(mynick==tonick) alert(text.substr(7,text.length-8));
text="this is message for all users";
}

2902
serhio @serhio
[quote=demon,20.12.05, 09:51] if (text.substr(0,6)=="/alert" && nick=="ADMINNICK") {
if(mynick==tonick) alert(text.substr(7,text.length-8));
text="this is message for all users";
} [/quote]
не, Дима... тут что-то не так...
1. алерта нужному чатланину не выдается
2. в чат выводится всем чатланам сразу сообщение - this is message for all users, а не то, что было введено в текст сообщения...
поменял твою форму на :

if (text.substr(0,6)=="/alert" && nick=="serg") {
if(mynick==tonick)
text=text.substr(7,text.length-8);
alert(text);
text="this is message for all users";
}

стал выводиться алерт с набранным текстом, но выводится всем чатланам сразу и опять добавляется в чате всем сообщение - this is message for all users... я так понимаю, что последнее сообщение не нужно совсем в любом варианте... осталось добиться, чтобы алерт выдавался только тому, кому он назначен...

20089
Dimitry @Dimitry
Я просто думал сделать свой вывод а сейчас токо понял что к чему..
mynick==tonick - должно работать незнаю почему не сработало.. проверяйте переменные например так alert(mynick+"=="+tonick);



if (text.substr(0,6)=="/alert" && nick=="serg") {
text=text.substr(7,text.length-8);
if(mynick==tonick) alert(text);
}

25
Tim_TLT @Tim_TLT
Я давненько делал это. Можете попробывать..



как вообще сделать, чтобы можно было посылать определенному юзеру такое окошко.

это возможно, если пожертвовать функцией "предупредить".
делается так:

заменяем:

if(grund=="нет") grund=""; else grund=" Причина: "+grund+". ";

на

if(id==6) { grund="Сообщение от "+nick+": "+grund; }
else {
if(grund=="нет") { grund=""; }
else { grund=" Причина: "+grund+". "; } }
if(delnick==mynick && loaded==1 && id==6) {
alert(grund);
}


заменяем

out="<b>Сообщение:</b> <i>"+set_nick+" предупреждает "+delnick+".</i> "+grund+time+"<br>";

на

out="";

заменяем в нижнем фрейме:

document.write("<option value='/warn '>предупредить");

на

document.write("<option value='/warn '>алерт");

2536
удалён @crigon
Предупреждение трогать нехоцца...

А вот /alert у меня вообще ничего не происходит, просто текст, аlert'а нет... Блин...

2902
serhio @serhio
[quote=crigon,21.12.05, 01:06] Предупреждение трогать нехоцца...

А вот /alert у меня вообще ничего не происходит, просто текст, аlert'а нет... Блин... [/quote]
счас борюсь с глюками компа... попозже здесь расскажу о результатах моих проб... они интересны...



значит так... рассказываю... я поставил в нижний фрейм в выбор действия строку:

if(nick=="serg"||nick=="sss") {
document.write("<option value='/alert '>alert"); }


а во фрейм сообщений, в функцию вывода сообщения юзера:

if (text.substr(0,6)=="/alert" && nick=="serg") {
text=text.substr(7,text.length-8);
if(mynick==tonick && loaded==1) alert(mynick+"=="+tonick);
}


результат:
1. если выбираю опцию alert из селектора нижнего фрейма и ввожу для ника2 в строку сообщения qwerty , алерт не выдается, но в чат выводится сообщение для всех:
ник1 + ник2 + qwert + время

2. если я не выбираю опцию, а для ника2 ввожу в строку сообщений /alert qwerty , то алерт не выдается, а в чат для всех идет:
ник1 + ник2 + /alert qwerty + время...

где ник1 - ник мой, т.е. выдавшего сообщение, ник2 - ник того, кому направлено сообщение...
меняю код во фрейме сообщений на:

if (text.substr(0,6)=="/alert" && nick=="serg") {
if(mynick==tonick && loaded==1) text=text.substr(7,text.length-8);
alert(mynick+"=="+tonick);
}


результат:
1. если для ника2 выбираю опцию alert в селекторе - то выводится алерт следующего содержания:
для меня - ник1==/alert ник2
для ника2 - ник2==/alert ник2
для остальных - ник3==/alert ник2
где ник3 - это ники каждого пользователя
а в чат выводится всем одинаково:
ник1 + ник2 + /alert qwerty + время...

2. если для ника2 в строке сообщения набираю /alert qwerty - выводится всем следующая строка:
ник1 + /alert + ник2 + qwerty + время

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

20089
Dimitry @Dimitry
происто тоник выдаётскя вместе с алертом 😒
нужно профильтровать строку например:

if (text.substr(0,6)=="/alert" && nick=="serg") {
text=text.substr(7,text.length-8);
tonick=tonick.substr(7,tonick.length-8);
if(mynick==tonick) alert(text);
}

2536
удалён @crigon
просто текст команды... 🤔

20089
Dimitry @Dimitry
if (text.substr(0,6)=="/alert" && nick=="2002demon") {
text=text.substr(7,text.length-8);
if(mynick==tonick && loaded==1) alert(text);
}

/alert nick: text

поставил обработчик ника, теперь это работает!

2902
serhio @serhio
[quote=demon,22.12.05, 12:21] if (text.substr(0,6)=="/alert" && nick=="2002demon") {
text=text.substr(7,text.length-8);
if(mynick==tonick && loaded==1) alert(text);
}

/alert nick: text

поставил обработчик ника, теперь это работает! [/quote]
работает... спасибо... 😀
побочный эффект: также выводится строка в чат всем с содержанием алерта... для того, чтобы убрать текст алерта, после кода демона поставил text='';
всем, кому это нужно: учтите:
1. работает из строки сообщений, как показал демон, при условии, если в поле выбора ника пусто
2. может работать в виде опции из селектора выбора действия нижнего фрейма... потому, для того, чтобы это работало в селектор нужно вставить строку:

if(nick=="ваш_ник") { document.write("<option value='/alert '>alert"); }

а во врейме сообщений после начала функции вывода сообщения юзера тот код, что дал демон с моей добавкой или без... так, как вам нужно:

/* Вывод сообщения юзера */
function ms(nick,colornick,color,tonick,text,time,sizenick,size,facenick,face)
{

if (text.substr(0,6)=="/alert" && nick=="ваш_ник") {
text=text.substr(7,text.length-8);
if(mynick==tonick && loaded==1) alert(text);
text='';
}

20089
Dimitry @Dimitry
если text='' то будет строка со временем.. тогда надо return 1;

2902
serhio @serhio
[quote=demon,22.12.05, 18:00] если text='' то будет строка со временем.. тогда надо return 1; [/quote]
проверил, все работает отлично... 😀

2536
удалён @crigon
Спасибо, теперь нормально работает...

1) Еще такой вопрос... Как такие команды привязать к статусу, а не к нику?
Что-то вроде этого

if (text.substr(0,6) == "/alert" && parent.status == 1)

---

2) И про команду обновления

if (text == "/reload" && nick == "crigon")

В таком варианте работает только из поля ввода текста, что вписать вместо text, чтобы работало из меню команд?

2902
serhio @serhio
[quote=crigon,23.12.05, 04:25] Спасибо, теперь нормально работает...

1) Еще такой вопрос... Как такие команды привязать к статусу, а не к нику?
Что-то вроде этого

if (text.substr(0,6) == "/alert" && parent.status == 1)

---

2) И про команду обновления

if (text == "/reload" && nick == "crigon")

В таком варианте работает только из поля ввода текста, что вписать вместо text, чтобы работало из меню команд? [/quote]
похоже, что в обоих вариантах нужны обработчики ника...

P.S. вроде, добился результата по 1 вопросу и без обработчика... 😀 занимаюсь вторым вопросом...
P.S.2 второй вопрос тоже легко разрешился...

1. соответствующие функции, типа алерт, релоад, клеар и эксит, прописываются в селекторе выбора действия нижнего фрейма по условию ника или статуса... типа:

if(status==1)  или  if(nick=="ваш_ник")
{
document.write("<option value='/alert '>alert");
document.write("<option value='/reload '>reload");
document.write("<option value='/exit '>exit");
document.write("<option value='/clear '>clear"); }


2. во фрейме сообщений прописывается так для статуса и алерта (для ника и алерта смотри в предыдущих сообщениях):

if (text.substr(0,6)=="/alert") {
if (parent.status==3||mynick==tonick) {
text=text.substr(7,text.length-8);
if(mynick==tonick && loaded==1) alert(text);
return 1;}
return 1;
}


для остальных функций:

if (text.substr(0,7)=="/reload"&&parent.status==1) {
if(loaded==1) parent.chat.msg_reload(); }

if (text.substr(0,5)=="/exit"&&parent.status==1) {
if(loaded==1) parent.chat.exit(); }

if (text.substr(0,6)=="/clear"&&parent.status==1) {
if(loaded==1) document.body.innerHTML=""; }


правда, по exit у меня учтена старая версия... без учета нового файла exit.html...