PDA

Просмотр полной версии : глобальный чат


TEST

doctor
09.03.2014, 04:26
По просьбам трудящихся сделал консольный глобальный чат.

Он имеет потенциал для усовершенствований (текст разными цветами, управление с помощью HUD и т.д.), но пока выкладываю версию, которая только обеспечивает собственно чат.

Для работы программы необходимо иметь привилегии caretaker (хранитель) в мире.

Инструкция:


Зайти сюда: https://drive.google.com/file/d/0B90XomnGo0jOMkxXbHVwSzVjOUk/edit?usp=sharing
На странице нажать Файл → Скачать, чтобы скачать весь архив.
Распаковать куда-нибудь архив.
Там будет три папки:

global_chat — папка с готовой программой, просто запустить global_chat.exe
global_chat_source — содержит собственно исходный код, а так же файлы SDK, необходимые для компиляции (aw.h, aw.lib) и для запуска — aw.dll.
Тут также есть подпапка linux — содержит элементы SDK, необходимые для компиляции кода под линуксом (вряд ли это кому-то поданобится :))
global_chat_vs_prj — папка с проектом, созданным в Visual Studio 2010, не факт что будет "с ходу" компилиться в других версиях.



По поводу любых глюков и багов пишите сюда или телеграммой мне в мире.

doctor
09.03.2014, 16:06
Внимание!

Обнаружено, что бот (готовая программа) не работает, если не установлена Visual Studio, т.к. отсутствуют необходимые dll.
Исправлено в новой версии бота:
https://drive.google.com/file/d/0B90XomnGo0jOV21BcVpzMFJhVjg/edit?usp=sharing

Инструкция по использованию та же.

За багрепорт спасибо Хаосу.

doctor
13.03.2014, 01:53
Появилась новая версия бота!

https://drive.google.com/file/d/0B90XomnGo0jOX25pT040ek5uM1E/edit?usp=sharing

Настоятельно рекомендуется использовать именно её, т.к. помимо новшеств, в ней исправлены некоторые баги. Инструкция по использованию та же. Дополнительные библиотеки теперь не нужны, поэтому в папке с готовой программой теперь лежит только exe и aw.dll.

Что нового:

Каждый может настроить свой цвет текста (или не может, если владелец бота выключит эту опцию).
Каждый может включить и выключить глобальный чат для себя.
После первого запуска будет создан файл address.txt, где запишется ip и порт юни. Потом их можно менять в этом файле.


Для получения списка возможных команд управления, надо запустить бота и в любом месте мира написать в общий чат !help

Отдельное спасибо JiSt'у и Хаосу за тестирование!

JiSt
13.03.2014, 06:29
По просьбам трудящихся сделал консольный глобальный чат.
Фантастика!)
говорят "время пришло"...;
Задумаешься что некоторые вещи которые появляются казалось бы давно должны были быть ан нет;
Такого простого глобал чата для одного мира с парой опций и цветом не хватало в мирах со дня их создания;
63 кб дабл клик и все в твоём мире слышат друг друга из далека да ещё и цветом.
Глобал чат Vortex-а великолепен! Но его нигде не выкладывали тем более с исходняком и он же без цвета и работает ли он под привами каретакера,а не первого неизвестно;
Кто то не любит цветные чаты);
Моё мнение другое. Мозх,если он есть и не собаки :-)),настраивается на чтение одного цвета моментально
Мало кто печатает не глядя на клаву и моментом взглянув в окно чата быстро перечесть все новые строчки одного собеседника
гораздо удобнее если его строки каким то цветом...;

Спасибо доктор за прогу!);

JiSt
13.03.2014, 06:52
http://worlds.activeworlds.ru/twoinone/downloads/rgbglobalchat20.png

doctor
13.03.2014, 21:47
Внимание!

Обнаружил досадную ошибку настройки разрешений, в результате чего цветной текст был разрешен для всех, независимо от действий ботовладельца.

Исправленная версия здесь:
https://drive.google.com/file/d/0B90XomnGo0jOY3kxdFlfNXBnc2s/edit?usp=sharing

JiSt
15.03.2014, 07:50
Добавил цветов словами ) Если кому то надо выложу здесь кусок кода что добавить или заменить ...

http://worlds.activeworlds.ru/twoinone/downloads/rgbglobalchat211.png

JiSt
15.03.2014, 07:59
Собственно вот:


if(!color_by_name)
{
if (command=="!color DarkRed" || command=="!color Darkred" || command=="!color darkred")
{color_r=139;color_g=0;color_b=0; color_name="DarkRed";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DeepPink" || command=="!color Deeppink" || command=="!color deeppink")
{color_r=255;color_g=20;color_b=147; color_name="DeepPink";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Violet" || command=="!color violet")
{color_r=238;color_g=130;color_b=238; color_name="Violet";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color BlueViolet" || command=="!color Blueviolet" || command=="!color blueviolet")
{color_r=138;color_g=43;color_b=226; color_name="BlueViolet";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkViolet" || command=="!color Darkviolet" || command=="!color darkviolet")
{color_r=148;color_g=0;color_b=211; color_name="DarkViolet";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkMagenta" || command=="!color Darkmagenta" || command=="!color darkmagenta")
{color_r=139;color_g=0;color_b=139; color_name="DarkMagenta";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Indigo" || command=="!color indigo")
{color_r=75;color_g=0;color_b=130; color_name="Indigo";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Tomato" || command=="!color tomato")
{color_r=255;color_g=99;color_b=71; color_name="Tomato";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Coral" || command=="!color coral")
{color_r=255;color_g=127;color_b=80; color_name="Coral";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Gold" || command=="!color gold")
{color_r=255;color_g=115;color_b=0; color_name="Gold";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color OrangeRed" || command=="!color Orangered" || command=="!color orangered")
{color_r=255;color_g=69;color_b=0; color_name="OrangeRed";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkOrange" || command=="!color Darkorange" || command=="!color darkorange")
{color_r=255;color_g=140;color_b=0; color_name="DarkOrange";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color LimeGreen" || command=="!color Limegreen" || command=="!color limegreen")
{color_r=50;color_g=205;color_b=50; color_name="LimeGreen";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color SeaGreen" || command=="!color Seagreen" || command=="!color seagreen")
{color_r=46;color_g=139;color_b=87; color_name="SeaGreen";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Olive" || command=="!color olive")
{color_r=128;color_g=128;color_b=0; color_name="Olive";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkOliveGreen" || command=="!color DarkOlivegreen" || command=="!color Darkolivegreen" || command=="!color darkOliveGreen" || command=="!color darkolivegreen")
{color_r=85;color_g=107;color_b=47; color_name="DarkOliveGreen";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Cyan" || command=="!color cyan")
{color_r=0;color_g=255;color_b=255; color_name="Cyan";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkCyan" || command=="!color Darkcyan" || command=="!color darkcyan")
{color_r=0;color_g=139;color_b=139; color_name="DarkCyan";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color SteelBlue" || command=="!color Steelblue" || command=="!color steelblue")
{color_r=70;color_g=130;color_b=180; color_name="SteelBlue";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color RoyalBlue" || command=="!color Royalblue" || command=="!color royalblue")
{color_r=65;color_g=105;color_b=255; color_name="RoyalBlue";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkBlue" || command=="!color Darkblue" || command=="!color darkblue")
{color_r=0;color_g=0;color_b=139; color_name="DarkBlue";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color RosyBrown" || command=="!color Rosybrown" || command=="!color rosybrown")
{color_r=188;color_g=143;color_b=143; color_name="RosyBrown";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color SandyBrown" || command=="!color Sandybrown" || command=="!color sandybrown")
{color_r=244;color_g=164;color_b=96; color_name="SandyBrown";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Goldenrod" || command=="!color goldenrod")
{color_r=218;color_g=165;color_b=32; color_name="Goldenrod";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Chocolate" || command=="!color chocolate")
{color_r=210;color_g=105;color_b=30; color_name="Chocolate";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Peru" || command=="!color peru")
{color_r=205;color_g=133;color_b=63; color_name="Peru";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color DarkGoldenrod" || command=="!color Darkgoldenrod" || command=="!color darkgoldenrod")
{color_r=184;color_g=134;color_b=11; color_name="DarkGoldenrod";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Brown" || command=="!color brown")
{color_r=165;color_g=42;color_b=42; color_name="Brown";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color SaddleBrown" || command=="!color Saddlebrown" || command=="!color saddlebrown")
{color_r=139;color_g=69;color_b=19; color_name="SaddleBrown";color_by_name=1;}
}

if(!color_by_name)
{
if (command=="!color Maroon" || command=="!color maroon")
{color_r=128;color_g=0;color_b=0; color_name="Maroon";color_by_name=1;}
}

и вот:

aw_string_set (AW_CONSOLE_MESSAGE, "Доступные цвета: Maroon, Red, Orange, Yellow, Olive, Green, Purple, Magenta, Lime, Teal, Aqua, Blue, Navy, Black, Gray, Silver, DarkRed, DeepPink,");
rc = aw_console_message (session);
if (rc)
printf ("Console message failed (reason %d)\n", rc);

aw_string_set (AW_CONSOLE_MESSAGE, "Violet, BlueViolet, DarkViolet, DarkMagenta, Indigo, Tomato, Coral, Gold, OrangeRed, DarkOrange, LimeGreen, SeaGreen, Olive, DarkOliveGreen,");
rc = aw_console_message (session);
if (rc)
printf ("Console message failed (reason %d)\n", rc);

aw_string_set (AW_CONSOLE_MESSAGE, "Cyan, DarkCyan, SteelBlue, RoyalBlue, DarkBlue, RosyBrown, SandyBrown, Goldenrod, Chocolate, Peru, DarkGoldenrod, Brown, SaddleBrown, Maroon.");
rc = aw_console_message (session);
if (rc)
printf ("Console message failed (reason %d)\n", rc);

doctor
27.03.2014, 12:28
Изменения:

добавил возможность изменения ботовладельцем минимальной яркости цвета на фоне белого, т.е. теперь не любой RGB цвет можно выбрать, а только достаточно яркий на фоне белого. Впрочем, по желанию ботовладельца это можно и отключить;
все команды боту сделаны регистронезависимыми.


Ссылка: https://drive.google.com/file/d/0B90XomnGo0jONm9pcmRFcGp1Zms/edit?usp=sharing

Яркость цвета на фоне белого считается по формуле:

1 - (0.299*R + 0.587*G + 0.114*B)/255

Где 1 - яркость белого цвета (1 получается если вместо R,G,B подставить везде 255), а вычитается яркость цвета, который пытается выбрать пользователь.
Странные коэффициенты в формуле возникают из-за того, что глаза воспринимают яркости каждой компоненты R,G,B по-разному.

JiSt
27.03.2014, 13:18
global_chat.exe с иконкой для компилятора 3 файла.
http://worlds.activeworlds.ru/download/global_chat_rc_resource_h.rar
1.unrar в папку проекта.
2.В файле global_chat.rc подправить правильный путь к иконке.
3.Перетащить файлы global_chat.rc и resource.h в проект в дерево
4.Перестроить решение
5.Всё)

doctor
27.03.2014, 13:22
Сделал еще, чтобы бот писал в консоль и в лог кто зашел/вышел из мира:
https://drive.google.com/file/d/0B90XomnGo0jOMmpJSFF1aUpMbTg/edit?usp=sharing

JiSt
27.03.2014, 15:51
С иконкой,много цветов словами http://worlds.activeworlds.ru/download/globalchat23.rar

JiSt
30.07.2014, 11:00
http://worlds.activeworlds.ru/download/global_color_chat233.7z
в хелпе и по ошибке комманды установки цвета (!h !help !c !col !color)
появилась новая строка типа так:

"Ваш текущий цвет этот текст"

TAG.Hosting — Хостинг сайтов и Регистрация Доменов