Leaderboard


Popular Content

Showing content with the highest reputation since 03/22/19 in Tutorials

  1. 2 points
    Создаем файл clantop.php в папке module и копируем туда этот код: <?php /** * STRESS WEB * @author S.T.R.E.S.S. * @copyright 2008 - 2012 STRESS WEB * @version 13 * @web http://stressweb.ru * @fix L2Banners.ru */ if ( !defined("STRESSWEB") ) die( "Access denied..." ); /****************************** * НАСТРОЙКА МОДУЛЯ ******************************/ $T_ENABLE = true; // вкл/выкл модуль $T_COUNT = 10; // количество результатов $T_SID = 1; // ID сервера с которого выводить результаты $T_CACHE = 5; // время кеширования в минутах, 0 - отключить /****************************** * ВЫВОД РЕЗУЛЬТАТОВ ******************************/ if ( !$T_ENABLE ) $tpl->SetResult( 'clantop' ); else { $clantop = $controller->GetCache( 'mod_clantop' ); if ( $clantop ) $tpl->SetResult( 'clantop', $clantop ); else { $db->gdb( $T_SID ); $T_SEL = $gdb[$T_SID]->query( "SELECT `clan_name`,`clan_level`,`reputation_score` FROM `clan_data` ORDER BY `clan_level` DESC, `reputation_score` DESC LIMIT {$T_COUNT}" ); if ( $gdb[$T_SID]->num_rows($T_SEL) > 0 ) { $T_N = 1; while ( $T_RESULT = $gdb[$T_SID]->fetch($T_SEL) ) { $tpl->LoadView( 'clantop' ); $tpl->Block( 'main', false ); $tpl->Block( 'item' ); $tpl->Set( 'n', $T_N ); $tpl->Set( 'clan_name', $T_RESULT['clan_name'] ); $tpl->Set( 'clan_level', $T_RESULT['clan_level'] ); $tpl->Set( 'reputation_score', $T_RESULT['reputation_score'] ); $tpl->Build( 'clantop_item' ); $T_N++; } $tpl->LoadView( 'clantop' ); $tpl->Block( 'item', false ); $tpl->Block( 'main' ); $tpl->Set( 'item', $tpl->GetResult('clantop_item', true) ); $tpl->Build( 'clantop' ); } else $tpl->SetResult( 'clantop' ); if ( $T_CACHE > 0 ) { $controller->SetCache( 'mod_clantop', $tpl->GetResult('clantop'), $T_CACHE ); } } } ?> В папке с шаблоном создаем файл clantop.tpl и записываем в него шаблон по умолчанию по аналогии с топ пвп/пк: [main] <!-- Модуль Clan Top --> <table id="l2clan"> <tr> <th>Клан</th> <th>Уровень</th> <th>Репутация</th> </tr> {item} </table> [/main] [item] <tr> <td>{n}. {clan_name}</td> <td>{clan_level}</td> <td>{reputation_score}</td> </tr> [/item] Естественно вы можете составить свой шаблон апеллируя новыми тегами {clan_name} - Название клана {clan_level} - Уровень клана {reputation_score} - Репутация клана В корне сайта заходим в папку dev и открываем файл cfg.default.php и находим: $SWMODULES = array( 'copyright', 'login', 'poll', 'server', 'pvptop', 'pktop', 'forum' ); Дописываем в массив после 'forum' : , 'clantop' Должно получиться как-то так: $SWMODULES = array( 'copyright', 'login', 'poll', 'server', 'pvptop', 'pktop', 'forum', 'clantop' ); Теперь в файле index.tpl будет доступен тег {clantop} с помощью которого и будет выводиться репутация кланов по аналогии с топ пвп/пк
  2. 1 point
    Собственно цель данной статьи - поведать об одном из самых простых способов развертывания на сервере с помощью git'а и его хуков. Предисловие: данная статья предполагает что Вы понимаете что такое VCS, в часности гит и уже им пользовались Развертывание проходит в 3 этапа Пуш в репозиторий размещенный на нашем сервере Тригер хука на сервере Выволнение нужного нам скрипта, в данном случае чекаут из репозитория в нужную нам папку Статья на примере работы с Centos 7 в качестве продакшн сервера и Windows 10 в качестве дев-машины. Авторизироваться будем по ssh, и для начала нужно сгенерировать ssh ключ. Сгенерировать его можно, к примеру, у тилитой ssh-keygen, которая идет в составе git для windows Из CMD выполняем: ssh-keygen -t rsa Следуем инструкциям (вас спросят куда положить ключ, можете просто нажать enter, ключ будет сохранен в C:\Users\username\.ssh), устаналиваем пароль, получаем ключ, файл будет называться примерно так id_rsa.pub Далее нужно настроить гит репозиторий на сервере. Устаналиваем git $ yum install -y git Создаем гит юзера, для ssh авторизации, указываем пароль $ sudo adduser git $ sudo passwd git создаем папку для ssh ключей $ su git $ cd $ mkdir .ssh Скопируйте на сервер (через фтп или другим удобным фам способом) ранее сгенерированый паблик ключ, к примеру в папку tmp, в итоге получаем /tmp/id_rsa.pub Добавляем этот ключ в список доверенных $ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys Переходим к созданию гит репозитория, к примеру в папке /home/git $ cd /home/git $ mkdir project.git $ cd project.git $ git --bare init project.git - можете назвать как угодно. Длее нужно создать хук в папке /home/git/project.git/hooks Создаем файл post-receive с содиржанием #!/bin/bash echo 'post-receive execute start' >> hooks.log TARGET="/home/myproject" GIT_DIR="/home/project.git" BRANCH="master" while read oldrev newrev ref do # only checking out the master (or whatever branch you would like to deploy) if [[ $ref = refs/heads/"$BRANCH" ]]; then echo "Ref $ref received. Deploying ${BRANCH} branch to production..." >> hooks.log git --work-tree="$TARGET" --git-dir="$GIT_DIR" checkout -f echo "Deploying done" >> hooks.log else echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server." >> hooks.log fi done TARGET - путь к папке в которую будет происходить копирование из репозитория GIT_DIR - путь к папке с гит репозиторием BRANCH - ветка из которой будем забирать Настройте данные переменные под себя. Репозиторий готов, возвращаемся на нашу дев-машину, и создаем из папки с проектом локальный репозиторий. Это можно сделать и спомощью CMD или любой програмы для управления гит (к примеру я пользуюсь SourceTree) Выполняем в CMD cd /d D:\path\to\project git init path\to\project соотвественно меняете на путь к папке с вашим проектом. Комитим изменения, подключаем удаленный репозиторий на сервере и пушим. (если вы создали репозиторий в пустой папке, скопируйте в нее файлы вашего проекта) git add . git commit -m 'initial' git remote add origin git@myserver.com:/home/git/project.git git push origin master myserver.com - домен или ИП адрес вашего сервера. Гит спросит пароль от юзера, вводим пароль который указывали при его создании После пуша на удаленном сервере выполнится хук и файлы будут скопированы в папку для развертывания.
  3. 1 point
    Приветствую всех начинающих JAVA разработчиков. Гайд предназначен для тех, кто все еще пытается дебажить c помощью System.out.println, но уже осведомлен в целом о JAVA разработке, и немного умеет пользоваться IDE Дебагинг один из важнейших и трудозатратных процессов после самой разработки, и очень важно чтобы этот процесс был максимально удобен для разработчика. Большинство современных IDE имеют встроенный функционал отладки, который позволяет приостаналивать приложение в определенные моменты выполнения и просматривать\изменять память с помощью т.н брейкпоинтов. В данном гайде я расскажу как запускать ява эмулятор или "сборку" в режиме отладки и использовать инструменты отладчика на примере IDE IntelliJ IDEA. Часть #1 - "Быстрый запуск, удаленная отладка" Я расскажу о двух вариантах отладки, первым из них будет "удаленная отладка" Этот вариант, позволяет вашей IDE удаленно подключаться к приложению с помощью спец. инструментов java Пусть слово "удаленная" вас не пугает, формально это будет сетевое подключение, но происходить оно будет локально в пределах вашего ПК. Шаг 1. Параметры запуска. Для того, чтобы запустить Ваш сервер в режиме ожидающий отладки, в параметры запуска ява приложение необходимо добавить следующие значения Это делается соотвественно в .bat или .sh файле -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7456 Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбираем "Remote" Пишем удобное для Вас название (к примеру "DebugGameserverRemote", в поле "Host" вводим "localhost, в поле "Port" - "7456" Сохраняем. Шаг 3. Запуск Перед запуском сборки убедитесь, что исполняться будет последнее собраное ядро (если что-то изменяли, пересоберите ядро и замените в папке с сервером). Запускайте сборку с помощь .bat или .sh файла, вы получите сообщение о том, что ожидаеться подключение дебагера. В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug DebugGameserverRemote" - Или там будет любое название, которое вы написали при создании конфигурации. IDE подключилась к приложению, сборка продолжает запускаться. Можете расставлять брейпоинты и дебажить. После изменения какого либо класса, для того, чтобы брейпоинты в этом классе сработали - нужно соотвественно собрать новое ядро и заменить в папке с вашей тестовой сборкой. Часть #2 - "Автоматизация или "Лень - двигатель прогресса" Каждый раз копировать новое ядро, запускать сборку с помощью .bat\.sh файла - нормально, но со временем понимаешь, что и это не совсем удобно. Следующий вариант запуска в режиме отладки - запуск прямо из IntelliJ IDEA. Дополнительно перед каждым запуском будем автоматически собирать новое ядро Шаг 1. Артефакты. Собирать будем средствами IDE, это еще незывают "сборкой артефакта" В главном меню переходим в раздел File -> Project Structure Выбираем раздел Artifacts, нажимаем на плюсик для создания нового артефакта, выбераем JAR -> From module with dependencies Пишем удобное название ( к примеру "gameserver:jar-test_server") В поле Output Directory указываем путь, где лежит ядро вашей тестовой сборки, в моем случае это "D:\test_server\lib" В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла Сохраняем. Таким образом, можно собирать любые JAR библиотеки, отказывашись от других сборщиков типа ANT Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration (см выше, в первой части) В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбераем "Application" Вводим удобное для Вас название (к примеру "Gameserver-test_server") В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла В поле VM options нужно прописать classpath (-cp) с нужными зависимостями для вашей сборки, а так же другие параметры при необходимости. Подсмотреть эти параметры можно в .bat\.sh файле В поле Working Directory указываем путь, к корневой папке, из которой запускается ваш тестовый гейм-сервер (путь, где лежат .bat\.sh файлы запуска). В моем случае это "D:\test_server\gameserver" Use classpath of module - выбираем модуль с исходниками геймсервера В самом низу окна есть раздел "Before launch" - действия, которые будут выполняться перед запуском (там уже по умолчанию должен быть Build). Нажимаем на зеленый плюсик, выбираем "Build artifacts" в появившемся окне выбираем ранее созданный артефакт "gameserver:jar-test_server" Конфигурация готова, сохраняем ПС. на ворнинг на моем скрине не обращайте внимания, глюк IDE после переименования пакета. У вас ошибок и варнингов быть не должно. Шаг 3. Запуск В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug Gameserver-test_server" - Или там будет любое название, которое вы написали при создании конфигурации (см. пример выше, по аналогии с первой частью) Сборка пересобираеться, затем запускается. Можете расставлять брейпоинты и дебажить. Таким образом можно настроить билд сервера авторизации или настроить различные цепочки событий, чтобы запускать все в 1 клик. Удачи в разработке ПС. Если кому-то будет интересно, могу написать небольшой гайд по самому процессу отладки, брейкпоинтам, условным брейкпоинтам, ватчеру и т.д