Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
MaNGOS SetUP Manual
JulineДата: Воскресенье, 22.11.2009, 18:29 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 47
Репутация: 1
Статус: Offline
1. Общие сведение о MaNGOS server.
1.1 Что такое MaNGOS.
MaNGOS - сервер с открытым исходным кодом и мощым коммьюнити, случайно позволяющий присоединяться к себе клиенту World of Warcraft от компании Blizzard.
Сервер состоит из двух частей - mangos deamon(оснновная часть) и realm deamon(побочная часть). Первый отвечает за большую часть информации, связанной с положением монстров, квестовыми связями и многим другим. Второй позволяет осуществлять подключение к mangosd и служит хранилищем для данных по Realm`ам игры.
Исполняемые файлы получают информацию из баз данных MySQL(свободная система управления базами данных (СУБД).
На данный момент сервер использует три базы данных - Characters(вся динамично меняющаяся информация относительно игроков), Mangos(статичные данные определяющие наполненность игрового мира обьектами, заклинаниями и прочим) и Realmd(Информация о реалмах и аккаунтах игроков).
Также в MaNGOS имеется поддержка технологии Line of Sight, сокращенно LOS(истинная линия зрения), которая определяет направление взгляда юнита. Внедрение этой технологии позволило исправить множество проблем, впрочем, вы можете оценить ее работу сами.
Хоть MaNGOS является сугубо образовательным проектом и его лицензия не разрешает публичное использование, развитие проекта идет полным ходом и возможности сервера растут поразительно быстро.

1.2 Качаем сервер
Я рассмотрю два самых сильных ресурса по MaNGOS.

1. http://mangosproject.org
2. http://mangos.ru

На обоих форумах вы можете скачать уже скомпилированные(преобразованные из исходного кода в готовые .exe файлы) mangosd и realmd, а также базовый пакет для распаковки ресурсов. В первом случае релизы доступны по адресу:
Forum -> Help & Support > Installation, Configuration & Upgrades > Compiled Mangos Win32 Binaries, Compiled sources only .
Во втором:
Форум -> > Рабочая Область > Файловый обменник (темы с названиями Compiled by).
Останавливаться именно в этой статье на SVN и компиляции не буду.

1.2.1 Структура сервера
Распаковав архив с сервером вы увидете(в большинстве случаев) лишь одну папку sql(SQL иньекции для синхронизации версий ядра и базы с порядковыми номерами, думаю, проблем возникнуть не должно). Также там будут лежать mangosd.exe, realmd.exe (соответственно и их конфигурационные файлы) и динамическая библиотека MaNGOSScript.dll, отвечающая за скрипты(программы, которые автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы).

1.3 Качаем БД
БД можно скачать оттсюда - https://unifieddb.svn.sourceforge.ne...ieddb/Full_DB/ . После распаковки архива вы увидете .sql файл. Это - основная БД сервера. Как правило называется mangos.sql . Сохранения баз данных realmd и characters лежат в папке sql базового пакета сервера. Более подробную информацию по формату SQL и администрированию СУБД вы можете найти тут - www.mysql.ru. Там же вы найдете информацию о том, как установить, настроить и запустить свой MySQL сервер.

2. Настройка mangosd.
Настройка mangos deamon состоит из трех этапов

* распаковка данных клиента World of Warcraft от компании Blizzard
* конфигурирование mangos.conf
* создание базы данных (далее просто БД)

2.1 Распаковка данных клиента World of Warcraft от компании Blizzard
Если в базовом пакете(пункт 1.2.1) вы не обнаружили Vmaps extracter, Map Extracter, DBC extracter - рекомендую скачать сборку, в которой упоминаются данные приложения, иначе вы не сможете запустить сервер. Я специально не буду рассматривать эту тему глубже, потому что каждое приложение содержит описание(Readme.txt), а английский язык хотя бы на уровне школы знают все. Если нет - советую воспользоваться словариком, которых в сети Интернет великое множество.

2.2 Конфигурирование mangos.conf
Файл конфигурации mangos.conf в своем базовом варианте имеет довольно простую структуру и также снабжен описанием каждой функции на английском языке.

2.3 Создание базы данных (далее просто БД)
После прочтения материалов, представленных в пункте 1.3 у Вас не должно возникнуть проблем с восстановлением БД из дампа. Остановлюсь лишь на конфигурировании БД realmd.
Главной в данной базе данных является таблица realmlist. В ней необходимо выставить ip, по которому будет осуществлять соединение игровой клиент(файл realmlist.wtf) а также название реалма.

3. Настройка realmd
Настройка realmd сводиться к грамотному прочтению файла конфигурации и повторной проверки таблицы realmlist БД realmd(2.3). Все переменный realmd.conf также имеют подробные описания.

4. Создание простейшего Web интерфейса регистрации
/*Конфигурация*/
$realmd = array(
'db_host' => 'localhost', // ип реалма
'db_username' => 'mangos', // пользователь realm
'db_password' => '', //пароль realm
'db_name' => 'realmd', //название БД realm
);

///////////////Начало Скрипта//////////////////

/*
Function name: CHECK FOR SYMBOLS
Description: return TRUE if matches. ( True = OK ) ( False = NOT OK )
*/
function check_for_symbols($string){
$len=strlen($string);
$alowed_chars="abcdefghijklmnopqrstuvwxyzжшеABCDEFGHIJKLMNOPQRSTUVWXYZЖШЕ";
for($i=0;$i<$len;$i++)if(!strstr($alowed_chars,$string[$i]))return TRUE;
return FALSE;

}
/*
Function name: OUTPUT USERNAME:PASSWORD AS SHA1 crypt
Description: obious.
*/
function sha_password($user,$pass){
$user = strtoupper($user);
$pass = strtoupper($pass);

return SHA1($user.':'.$pass);
}

if ($_POST['registration']){
/*Connect and Select*/
$realmd_bc_new_connect = mysql_connect($realmd[db_host],$realmd[db_username],$realmd[db_password]);
$selectdb = mysql_select_db($realmd[db_name],$realmd_bc_new_connect);
if (!$realmd_bc_new_connect || !$selectdb){
echo "Could NOT connect to db, please check the config part of the file!";
die;
}

/*Проверки*/
$username = $_POST['username'];
$password = sha_password($username,$_POST['password']);

$qry_check_username = mysql_query("SELECT username FROM `account` WHERE username='$username'");

if (check_for_symbols($_POST[password]) == TRUE || check_for_symbols($username) == TRUE || mysql_num_rows($qry_check_username) != 0){
echo "Error with creating account, might already be in use or your username / password has invalid symbols in it.";
}else{
mysql_query("INSERT INTO account (username,I) VALUES ('$username','$password')");// Insert into database.
echo "Account created.";
}

}else{
///////////////Конец Скрипта, Начало HTML//////////////////
?>

Code
< !--Начинайте ваш HTML код с этого места: ) -->
<form action="echo $_SERVER['PHP_SELF'] ?>" method="POST">
Username <input type="text" name="username">

Password <input type="password" name="password">

<input type="submit" name="registration">
</form>

<!--Остановите ваш HTML код здесь: ) -->
<?php
// Не удаляйте это место;)
}
?>

Более подробну информацию по языку php вы можете получить здесь http://php.rus-phpnuke.com.
Более подробную информацию по функциям сервера MaNGOS и работе с ним на уровне php вы можете получить здесь http://msdk2.elegos.altervista.org/msdklexicon2
 
  • Страница 1 из 1
  • 1
Поиск:


Конструктор сайтов - uCoz