Мессенджер в овере

artil94

Путник
Пользователь
Сообщения
51
Розыгрыши
0
Репутация
0
Реакции
8
Баллы
0
Какая разница между мессенджерами Msg, SystemMsg, SystemMessage, SystemMessage2. Все они используются, а от какая между ними разница, не могу понять. Поясните нубу разницу между ними)
 
Некоторое устаревшее доставшееся в наследство. Посмотри в LostWorld это новее сурс и там нет таких заморочек
 
Или жтс что тут на форуме выкладывали, не смотрел правда на сколько он вообще юзабельный
 
кто знает, почему в оверов и лосте такая странная структура html, без <html><head><body> и тд, это ради какой-то оптимизации? так как не знаю, как оно может вообще выводить сообщения с таким написанием)
PS: в целях саморазвития интересуюсь)
 
artil94, у вас наверно сделано так:
Код:
    public final NpcHtmlMessage setHtml(String text)
    {
        if ( !text.contains( "<html>" ) )
            text = "<html><body>" + text + "</body></html>"; //<title>Message:</title> <br><br><br>
        _html = text;
        return this;
    }
то есть, если не найден тег html, то оборачивается в него + боди
 
artil94, у вас наверно сделано так:
Код:
    public final NpcHtmlMessage setHtml(String text)
    {
        if ( !text.contains( "<html>" ) )
            text = "<html><body>" + text + "</body></html>"; //<title>Message:</title> <br><br><br>
        _html = text;
        return this;
    }
то есть, если не найден тег html, то оборачивается в него + боди
да, у видел, все правильно, спасибо)
а вот ещё, например продать [npc_%objectId%_Sell|Sell]
тоже имеет под этим какую-то реализацию? вместо <a action="bypass -h npc_%objectId%_Sell">Sell</a>
 
artil94, могу только предположить, что все это как то связано с BypassManager или какой нить NpcHtmlMessage :-D
 
просто в таком виде проще и удобнее писать ссылки
и весь этот псевдокод разворачивается в обычные html-тэги отдельным методом при кэшировании диалогов в процессе загрузки сервера.

к примеру у меня
Код:
    public static String bbParse(String s)
    {
        if (s == null)
            return null;

        s = s.replace("\r", "");
        s = s.replaceAll("(\\s|\"|\'|\\(|^|\n)\\*(.*?)\\*(\\s|\"|\'|\\)|\\?|\\.|!|:|;|,|$|\n)", "$1<font color=\"LEVEL\">$2</font>$3"); // *S1*
        s = s.replaceAll("(\\s|\"|\'|\\(|^|\n)\\$(.*?)\\$(\\s|\"|\'|\\)|\\?|\\.|!|:|;|,|$|\n)", "$1<font color=\"00FFFF\">$2</font>$3");// $S1$
        s = s.replaceAll("%%\\s*\n", "<br1>");
        s = s.replaceAll("\n\n+", "<br>");
        s = replace(s, "\\[([^\\]\\|]*?)\\|([^\\]]*?)\\|([^\\]]*?)\\]", Pattern.DOTALL, "<button ALIGN=LEFT ICON=\"$1\" action=\"bypass -h $2\">$3</button>");
        s = replace(s, "\\[([^\\]\\|]*?)\\|([^\\]]*?)\\]", Pattern.DOTALL, "<button ALIGN=LEFT ICON=\"NORMAL\" action=\"bypass -h $1\">$2</button>");
        s = s.replaceAll(" @", "\" msg=\"");
        return s;
    }
подсвечивает другим цветом текст выделенный через ** или $$, заменяет символы перевода строки на <br>, символы %% на <br1>, разворачивает в нормальный код ссылки вида [link|name] и [icon|link|name], заменяет @ в ссылках на вызов подтверждающего диалога с заданной строкой.
 
Какая разница между мессенджерами Msg, SystemMsg, SystemMessage, SystemMessage2. Все они используются, а от какая между ними разница, не могу понять. Поясните нубу разницу между ними)
судя по всему, в шару овер вытек как раз в момент когда там производили рефакторинг всего что связано с системными сообщениями.
потому и получается что часть сервера использует старые механизмы, а часть - уже новые.
советую, если есть на это время, ликвидировать данную недоработку - потом же проще и удобней будет.
для этого просто объяви Msg и SystemMessage как deprecated и побегай по появившимся предупреждениям, заменяя вызовы этих классов на вызовы SystemMsg и SystemMessage2 - естественно скорее всего еще и придется кучу строк добавить в SystemMsg, но это не так уж и сложно - вобще по идее можно это за пару минут сделать, взяв за базу данные из SystemMessage и создать из них элементы для энума SystemMsg при помощи "найти > заменить".
И да, еще, менять придется около трех тысяч вызовов - точное число не скажу, т.к. сам этой правкой занимался уже несколько лет назад.
 
Ну лично у меня та сборка ГоД, что была когда-то взята за основу для дальнейших доработок, базировалась на овере 2012 года
когда решили снова запускать вторым сервом хф, за основу тоже был взят овер 2012, чтобы упростить ситуацию с переносом разных наработок из имевшегося серва ГоД в сервер ХФ.
старый серв ХФ был уже не вариант - это был собственноручно допиленный с грации Phoenix и по проценту реализации он оверу проигрывал.
 
Ну лично у меня та сборка ГоД, что была когда-то взята за основу для дальнейших доработок, базировалась на овере 2012 года
когда решили снова запускать вторым сервом хф, за основу тоже был взят овер 2012, чтобы упростить ситуацию с переносом разных наработок из имевшегося серва ГоД в сервер ХФ.
старый серв ХФ был уже не вариант - это был собственноручно допиленный с грации Phoenix и по проценту реализации он оверу проигрывал.
Кажись тоже какую то древнюю ( 4-5 лет назад ) сборку взял за основу с гугл код. Проект назывался по моему l2play. Те же проблемы были что и в данной теме, видать тоже овер подобная. Есть какие то крит уязвимости в сборке на которые стоит обратить внимание и которыми вы могли бы поделится? :-D
 
да ничего вроде такого не было
всякие разные мелочи всплывали, которые я правил, но ничего серьезного.
 
А не проще ли взять лостворлд? :)
да ничего вроде такого не было
всякие разные мелочи всплывали, которые я правил, но ничего серьезного.
Мне посоветовали лучше взять JTS. Я в интернете нашел 2 JTS сборки, одна новогодний подарок от Мангола(jts_2017newyear), вторая как писали более новая(JTS-hf-zerg). Не подскажете какую лучше взять? или все же LostWorld?
 
Назад
Сверху Снизу