Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Реализация комюнити
#1
Хочу написать комюнити заного но базируясь на скриптах других разрабов ибо у меня опыта в кодинге вообще почти по нулям. Коекакие идеи есть, поправьте плз или подскажите как сделать правильно

1)Надо написать ява класс на сепаратор хтмлок...аля пример BbsUtil
2)Внедрять данную процедуру куда? именно какой участок кода в скриптах комюнити? После каждой процы?
3)Создать байпассы на %menu% %content% %footer% %header%
4)внедрить их в хтмлки...


Самое не понятное куда сувать процу из ббсутил в самих скриптах..ясен пень импорт класса делать но саму строку я не понимаю как делают



И еще вопрос по скриптам

Делаются сначало иморты, далее делаются опубликовать методы, потом прописать байпасы, и после все скрипты?

За это отвечает код?

Код:
else if(bypass.startsWith("_bbspage"))
        {
            //My Example: "bypass _bbspage:index".
            String[] b = bypass.split(":");
            String page = b[1];
            html = HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/pages/" + page + ".htm", player);

            html = html.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
                          html = html.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
            html = html.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
            html = html.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());
        }

Добавлено через 3 часа 9 минут
если проблема в цене пишите обсудим( но я парень бедный skype: aezzio-art
Ответ
#2
Rattyx Написал:
Код:
else if(bypass.startsWith("_bbspage"))
        {
            //My Example: "bypass _bbspage:index".
            String[] b = bypass.split(":");
            String page = b[1];
            html = HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/pages/" + page + ".htm", player);

            html = html.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
                          html = html.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
            html = html.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
            html = html.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());
        }
Если вызываемый байпас начинается с _bbspage то выводим страницу указанную после знака ":".
К примеру: "bypass _bbspage:index" выведется страница data/html-(ru\en в зависимости от языка игрока)/scripts/services/community/" + Config.BBS_FOLDER + "/pages/index.htm
Где Config.BBS_FOLDER это конфиг дефолтной папки с вашей комункой.

Далее реплейсы работают так.

Код:
html = html.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
html = html.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
html = html.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);

Каждый из данных реплейсов заменяется на значение указанное после запятой, внашем случаи это конфиг.
Пример: <?cb_name?> заменится на значение указанное в конфиге Config.COMMUNITYBOARD_NAME.

В случаи работы реплейса "html = html.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());" используется преобразование содержимого файла "bbs_menu.htm" в String то есть в текст.

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

PS: Прям интересно где вы взяли эту коммунку, уж до боли она мне знакома Big Grin
Ответ
#3
спалил L2CCCP
Delphi / HTML, CSS, JS / Дизайн / скрипты для Lineage 2, Archeage
Ответ
#4
Skyline Написал:
спалил L2CCCP

что вы этим хотели сказать? :dt:
Ответ
#5
конечно знакома данный код на 99,99% писали вы)

Но у вас не совмем гуд реализация.

Незнаю почему, но наверное было легче написать класс встроенный в ядро который бы автоматом добавлял в комунку в структуру страниц базовые теги хтмлки <html></html> чтоб сами страницы не заморачиватся и не писать заного.

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

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

[Изображение: 20a09d28e2ce.jpg]
Ответ
#6
А что вам мешает создать те же самые реплейсы?
Изжопный метод но всё же.

По сути можно создать шаблонизатор как в томже dle.

Создать страницы: header.htm и foother.htm

В обработчик.
html = html.replace("%header%", HtmCache.getInstance().getNotNull("scripts/services/community/header.htm", player).toString());
html = html.replace("%foother%", HtmCache.getInstance().getNotNull("scripts/services/community/foother.htm", player).toString());

В шаблон в начало %header% и в конец %foother%.
Жопный метод, но если я вас понял то вам и так пойдет.

PS: А смысл делать обработку кб автоматом по тега?
Если взять теже саммые реплейсы то они не должны сождержать теги <html> так как они выводятся в самом контенте.
Ответ
#7
Эхх мне бы человеческим языком) а то я не мего кодер же(

Ладно пробну понять
Ответ
#8
Rattyx Написал:Эхх мне бы человеческим языком) а то я не мего кодер же(

Ладно пробну понять

Я вам уже постом выше обяснил суть работы реплейсов.
Ответ
#9
ок но что пихать в самих скриптах? И главное КУДА?

Код:
String content = HtmCache.getInstance().getNotNull("/scripts/services/community/" + Config.BBS_FOLDER + "/services/communityclassmanager.htm", player);
        content = content.replace("%classmaster%", html.toString());
        content = content.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
        content = content.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
                      content = content.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
        content = content.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());
        ShowBoard.separateAndSend(content, player);

и что делает ShowBoard.separateAndSend(content, player); ?
Ответ
#10
Rattyx Написал:ок но что пихать в самих скриптах? И главное КУДА?
В метод onBypassCommand за всеми проверками на вызов типа байпасов.
Rattyx Написал:и что делает ShowBoard.separateAndSend(content, player); ?
Проверяет содержимое и возвращает результат игроку.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Оверворлд верная реализация талисмана Life Force Munhgauzen 12 3,232 03-10-2014, 10:21 PM
Последний пост: jFullMetal
  Реализация задумки[Help] La2lucky 7 1,963 06-18-2013, 11:41 PM
Последний пост: Astend
  Реализация MpConsumePercent finfan 2 1,561 07-06-2012, 10:48 PM
Последний пост: finfan
  Реализация HWID Cyberpro96 9 3,257 07-06-2012, 10:03 PM
Последний пост: Visor
  Реализация панели скилов (по фрее) ..Kirito.. 8 3,456 05-31-2011, 02:52 PM
Последний пост: LineOFWar
  Комюнити борд MROBAR 8 2,988 01-24-2011, 09:23 AM
Последний пост: Ro_0TT

Перейти к форуму:


Пользователи, просматривающие эту тему: 6 Гость(ей)