[Настройка] Второй персонаж в чате

Описание настройки чего либо

Модераторы: immortal, newz20

Ответить
Galakart
Сообщения: 66
Зарегистрирован: Вт авг 06, 2013 3:49 pm
Откуда: Новокузнецк
Благодарил (а): 0
Поблагодарили: 7 раз

[Настройка] Второй персонаж в чате

Сообщение Galakart » Чт мар 06, 2014 6:57 am

Приближается дачный сезон, в связи с этим захотелось распространить свои эксперименты с majordomo и на огород. Поскольку дача далеко, и большую часть времени пустует, то вместо ещё одного сервера было решено дополнить её беспроводным модулем, передающим на домашний сервер все события на даче.
Железо, датчики, схема подключения - ещё в процессе. Но добавить второго "огородного" персонажа в командный чат можно уже сейчас :)

Открываем файл /lib/common.class.php, прокручиваем до функции say, и строку

Код: Выделить всё

function say($ph, $level=0)
меняем на

Код: Выделить всё

function say($ph, $level=0, $pers='alice')
и строку

Код: Выделить всё

$rec['MEMBER_ID'] = 0;
меняем на

Код: Выделить всё

if ($pers=='matrona') {
$rec['MEMBER_ID'] = -1;
} else {
$rec['MEMBER_ID'] = 0;
}
Далее открываем файл /modules/shoutbox/shouts_search.inc.php, и код

Код: Выделить всё

 if ($res[$i]['MEMBER_ID']==0) {
     $res[$i]['NAME']='Alice';
    }
    $txtdata.="".$res[$i]['DAT']." <b>".$res[$i]['NAME']."</b>: ".nl2br($res[$i]['MESSAGE'])."<br>";
меняем на

Код: Выделить всё

if ($res[$i]['MEMBER_ID']==0) {
     $res[$i]['NAME']='<font color=\"green\">Алиса:</font>';
    } else if ($res[$i]['MEMBER_ID']==-1) {
     $res[$i]['NAME']='<font color=\"#0a00ff\">Матрёна:</font>';
    } else { $res[$i]['NAME'].=":"; }
    $txtdata.="".$res[$i]['DAT']." <b>".$res[$i]['NAME']."</b> ".nl2br($res[$i]['MESSAGE'])."<br>";
В реакциях системы, относящихся к событиям от беспроводного модуля, вместо обычного say вызываем:

Код: Выделить всё

say("На даче всё спокойно!",0,"matrona");
В результате, в командном чате можно наблюдать примерно такую картину:
matron.jpg
matron.jpg (93.98 КБ) 9557 просмотров
Разумеется, реализовать можно и поизящней, но сама идея работает
За это сообщение автора Galakart поблагодарили (всего 4):
Otto (Вс май 29, 2016 6:44 pm) • abc (Вс ноя 11, 2018 8:35 pm) • Aldaran (Пн июн 10, 2019 2:54 am) • antpino (Пт авг 16, 2019 8:58 am)
Рейтинг: 4.65%
Linux, Raspberry pi
Мой профиль в CONNECT
MajorDroid
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Огородный филиал сервера

Сообщение sergejey » Чт мар 06, 2014 10:35 am

Забавно выглядит :)
Насчёт нескольких персонажей хорошая идея.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Огородный филиал сервера

Сообщение dmw » Чт мар 06, 2014 2:09 pm

А если еще и голоса разные, то вообще.. ))
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Огородный филиал сервера

Сообщение Alex » Чт мар 06, 2014 2:22 pm

Должны быть разные голоса. Холодильник может говорить басом, стиральная машина — женским голосом, дверь — голосом робота, унитаз — голосом гнома и т. д. на что фантазии хватит. Я пробовал на каком-то свободном движке (уже не помню названия) — очень прикольно. Можно очеловечить и персонифицировать любой объект.
Hitman_dc
Сообщения: 8
Зарегистрирован: Сб май 04, 2013 8:39 am
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Re: Огородный филиал сервера

Сообщение Hitman_dc » Пн май 05, 2014 1:47 pm

Вы тут по аккуратнее, а то Алиса с Матрёной сговорится и устроят бабий бунт))
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Огородный филиал сервера

Сообщение dmw » Ср май 18, 2016 11:14 am

Нативно пока никак не реализована данная функциональность?
Ато дошел до того что у меня уже 4 персонажа (объекта) и возникли затруднения их както различать.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Огородный филиал сервера

Сообщение sergejey » Ср май 18, 2016 12:18 pm

dmw писал(а):Нативно пока никак не реализована данная функциональность?
Ато дошел до того что у меня уже 4 персонажа (объекта) и возникли затруднения их както различать.
уже довольно давно можно указывать ID пользователя, от чьего имени записывается фраза:
say("Привет",0,3);
0 - приоритет
3 - ID пользователя
За это сообщение автора sergejey поблагодарили (всего 2):
dmw (Чт май 19, 2016 7:45 am) • newz20 (Чт ноя 01, 2018 1:43 pm)
Рейтинг: 2.33%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить