Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с ранговым сервером AIX
Форумы Боевого Народа > Игры > Форумы игр серии Battlefield > Форум администраторов
Кагбе Левый
Доброго времени суток уважаемые форумчане!
Недавно с друзьями вспомнили о такой замечательной игре как BF2 мод AIX2, решили побегать, вспомнить молодость. Но просто обычных сражений оказалось недостаточно, решили поднять статистику с рангами, анлоками и прочими фитчами, ну и тут как обычно не обошлось без подводных камней. Всего у меня имеется несколько проблем и просто вопросов, в которых очень надеюсь на вашу помощь.

И так, общая конфигурация сервера:
- DSL Роутер с статик ip + сеть в несколько компов (все необходимые порты для сервера bf2 проброшены)
- Заранее установленный и настроенный MySQL, Apache, PHP, Perl
- WEB-морда вытянутая из AIXовского BF2PCC установленная в localhost апача
- Папка python/bf2 также взята из AIXа
- Внутренности некоторых файлов:
Файл hosts.ics
127.0.0.1 BF2web.gamespy.com

Файл BF2StatisticsConfig.py
Код
# ------------------------------------------------------------------------------
# BF2Statistics 1.4 - Config File
# ------------------------------------------------------------------------------
# Conventions:
# 0 -> Disable
# 1 -> Enable
# ------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Debug Logging
# ------------------------------------------------------------------------------
debug_enable = 0
debug_log_path = 'python/bf2/logs' # Relative from BF2 base folder
debug_fraglog_enable = 0 # Detailed 'Fragalyzer' Logs

# ------------------------------------------------------------------------------
# Backend Web Server
# ------------------------------------------------------------------------------
http_backend_addr = '127.0.0.1'
http_backend_port = 80
http_backend_asp = 'http://127.0.0.1/ASP/bf2statistics.php'

# ------------------------------------------------------------------------------
# Snapshot Manager
# ------------------------------------------------------------------------------
snapshot_prefix = 'mod:serverip:Servername'        # Prefix Snapshots with this tag example 'AIX:207.52.255.35:Blackcats'

# ------------------------------------------------------------------------------
# Medals Processing
# ------------------------------------------------------------------------------
medals_custom_data = '' # Suffix for your custom medals file(s)

# ------------------------------------------------------------------------------
# Player Manager
# ------------------------------------------------------------------------------
pm_backend_pid_manager = 1
pm_local_pid_txt_file = 'python/bf2/pid.txt' # Relative from BF2 base folder
pm_ai_player_addr = '127.0.0.1' # Not recommended to change


# ------------------------------------------------------------------------------
# Clan Manager
# ------------------------------------------------------------------------------
enableClanManager = 0 # Use the Clan Manager to control Access to your server!
serverMode = 0
# Mode 1: Clan ONLY (Must be on Clan List to Join Server)
# Mode 2: Priority Proving Grounds (Clan Members AND those players that meet
# the minimum requirements.Clan Members get priority)
# Mode 3: Proving Grounds (Clan Members AND those players that meet the
# minimum requirements)
# Mode 4: Experts ONLY (Only players that meet the minimum requirements)
# Mode 0: Public (Free-for-All. No Restrictions!)

# Clan Manager Criteria
criteria_data = (
('clantag', ''), # Clan Tag (Matches First Part of Player Name, used for Whitelist)
('score', 0), # Minimum Global Score
('rank', 0), # Minimum Global Rank
('time', 0), # Minimum Global Time Played
('kdratio', 0), # Minimum Global Kill/Death Ratio
('country', ''), # Registered Country of Origin Code (Seperate multiple by comma ',')
('banned', 10), # Maximum banned count! PermBan is ALWAY BlackListed
)

# ------------------------------------------------------------------------------
# Backup Central Community Web Server (OPTIONAL)
# ------------------------------------------------------------------------------
http_central_enable = 0 # Use settings above (0, 1, 2)
http_central_addr = 'cbd.xxx.aaa' #Address Central STATS Server
http_central_port = 80
http_central_asp = 'http://127.0.0.1/ASP/bf2statistics.php'

# Note: this cabalility is for linking stats data to a centrally maintained STATS #
# server. This could be useful for those who are running a LAN or Tournament #
# (with local STATS), but wish to have this data credited to their normal STATS #
# DB. There are three (3) options for the central DB update: #
# 0: Disabled - 'nuff said! #
# 1: Sync - This simply copies the SNAPSHOT as-is to the central DB #
# 2: Minimal - Record everything, except Rank & Award data (typically use #
# for LANs or Tournaments where local db starts blank) #

# ------------------------------------------------------------------------------
# END CONFIGURATION
# ------------------------------------------------------------------------------

Файлы /ASP/_config.php и /stats/_config.php одинаковые
Код
<?php
$db_expected_ver = '1.4.2';
$db_host = 'localhost';
$db_name = '**********';
$db_user = '**********';
$db_pass = '**********';
$admin_user = '**********';
$admin_pass = **********;
$admin_hosts = array('127.0.0.1','127.0.0.1/24');
$admin_log = 'logs/_admin_event.log';
$admin_backup_path = 'E:/www/localhost/htdocs/ASP/_backups/';
$admin_backup_ext = '.bak';
$admin_page_size = 25;
$admin_ignore_ai = 0;
$stats_ext = '.txt';
$stats_logs = 'logs/';
$stats_logs_store = 'logs/_processed/';
$stats_move_logs = 1;
$stats_min_game_time = 0;
$stats_min_player_game_time = 0;
$stats_players_min = 1;
$stats_players_max = 256;
$stats_rank_check = 1;
$stats_rank_tenure = 7;
$stats_awds_complete = 1;
$stats_lan_override = '127.0.0.1';
$stats_local_pids = array('LocalPlayer01','127.0.0.1','LocalPlayer02','127.0.0.1');
$debug_lvl = 1;
$debug_log = 'logs/_stats_errors.log';
$game_hosts = array('127.0.0.1','127.0.0.1/24');
$game_custom_mapid = 700;
$game_unlocks = 0;
$game_unlocks_bonus = 0;
$game_unlocks_bonus_min = 0;
$game_awds_ignore_time = 0;
$game_default_pid = 29000000;
?>

Файл snapshot.py

Скачать файл snapshot.py (для размещения в посте очень большой)

Данных строк в файле нет, но через BF2PCC все работает нормально, предполагаю проблема не в этом
Код
#HOST = 'localhost'
#PORT = 80
#PATH = '/ASP/bf2statistics.php'




Основные проблемы и вопросы:
* Сервер статистики запущенный через BF2PCC нормально функционирует, ведется учет статистики, но саму статистику в BFHQ могу просматривать только я, остальные (прописывая в хосте редирект) видят пустую таблицу.
Диалог выбора анлока в игре появляются пустым окном без возможности выбора. При добавлении анлока вручную (используя Navicat) в игре он не появляется.
Также BF2PCC запускает отдельно свой MySQl и Apache, что не есть гуд.

* Все данные из db и web перенесены в локальный софт, в веб-интерфейсе все отображается нормально, в клиенте BFHQ даже локально пуст, во время игры идет учет очков, выдаются звания, медали, но данные не сохраняются, и при каждом новом раунде все начисляется заново.
Пытаюсь настроить работу хотя-бы на 127.0.0.1, но в будущем хотелось бы настроить для LAN и WAN.

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

* Также хотелось узнать, реально ли реализовать coop мод с динамическим добавлением/удалением ботов во время игры в зависимости от текущего онлайна. Допустим, максимум игроков 12, играет живых людей 7, весь остальной промежуток занимают Ai, заходит еще один человек, один бот освобождает ему место, человек выходит, бот занимает его место. Подскажите реально ли это реализовать, если да то как, или возможно такое уже есть, то откройте мне глаза на это.

Краткий список всех траблов

- БФ не сохраняет данные о полученых очках и званиях в БД
- БФ не читает данные из БД
- Работая через BF2PCC не работает меню выбора анлоков
- Также через BF2PCC силой добавленные анлоки в БД, все равно не выбераются в игре
- BFHQ не отображается у остальных игроков
- Фикс миномета
- Coop режим с динамическим количеством ботов


з.ы Возможно это и не помеха, но все же в конфигах не могу указывать свой внешний IP так как роутер не поддерживат перенаправление из LAN в WAN на себя (при попытке зайти на свой внешний IP из сети под роутером, заходит на web-интерфейс роутера вместо проброса на машину с сервером)
з.з.ы. Первоначально устанавливал статистику методом тыка, потом по мануалу с забугорного сайта, потом по местному FAQ, все начисто удалял и устанавливал, ничего не помогло.
з.з.з.ы. Буду очень признателен в помощи, а то все друзья очень хотят видеть рабочую статистику с анлоками под AIX2.
Daimon_
1.
Цитата
- Папка python/bf2 также взята из AIXа

папка должна быть взята из bf2statistics_1.4.2
2. между компом и роутером локальная сеть. какая? непонятно. допустим адрес компа в этой сети 192.168.1.2. именно на этот адрес должны быть проброшены порты в роутере. именно на этом адресе должен запускаться сервер, на этом адресе должен работать апач. в hosts.ics должно быть:
на сервере: 127.0.0.1 BF2web.gamespy.com
у клиентов: ххх.ххх.ххх.ххх BF2web.gamespy.com (где ххх.ххх.ххх.ххх твой внешний адрес)
192.168.1.2 добавить в конфиг ASP в строку $game_hosts = array('192.168.1.2','127.0.0.1','127.0.0.1/24');
сначала настрой всё для мода бф2, а потом уже делай иправления для аикса. и здесь я тебе мало чем помогу. обратись к тем, у кого крутится этот мод на сервере.
и что это за хрень BF2PCC? а знаю только BF2CC.
Кагбе Левый
Цитата
папка должна быть взята из bf2statistics_1.4.2

Хм, за это спасибо, так я еще не пробовал, но AIXсовская работоспособна 100% потому что через BF2SPCC все работает.

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


По поводу адресов я же написал пытаюсь настроить работу хотя-бы на 127.0.0.1, думаю если на локалхост заработает то и на остальные адреса смогу настроить...

з.ы. BF2SPCC это сервер статистики который идет вместе с модом (Apache+MySQL+Pearl+WEB)
з.з.ы. извиняюсь в первом посте опечатка BF2PCC → BF2SPCC
Daimon_
ну тогда алгоритм поиска неисправности примерно такой:
проверить досконально все конфиги.
отыграть 1 полный раунд на сервере. смотреть в Battlefield 2 Server/python/bf2/logs логи. если логи есть, то Battlefield 2 Server/python/bf2 работает. если нет, удалить папку и заново скопировать из bf2statistics_1.4.2.
там по дефолту конфиг настроен на 127,0,0,1 и все должно работать.
папки Battlefield 2 Server/mods/bf2/python и Battlefield 2 Server/mods/aix/python не трогать!
если в них покопался, переустанавливай сервер и аикс.
смотреть /ASP/logs. если логи есть, то питон на сервере работает и правильно настроен(сервер бф2 передал логи на сервер статистики). и если при этом не пишется в базу, то 2 варианта: 1. не настроен или не правильно работает майскул. 2. не работает редирект в hosts.ics. хотя, я думаю, редирект на запись в базу данных не влияет, он влияет на выдачу лычек клиенту и анлоков.
если нет логов в /ASP/logs, то проблема с апачем или настройкой сети.
можно еще заменить ехе-шник сервера на чистый. вдруг какой крякнутый пробовал и забыл.
ну и если ничего не помогает, то format c:
Кагбе Левый
В Battlefield 2 Server/python/bf2/logs логи есть, из всего лога выделил такую ошибку
Код
Player Manager module initialized
Received PID data is INVALID, length 3977
Creating new record for player profileId  29000125
ERROR: Received STATS data is NOT VALID, length 54244
ERROR: Received AWARDS data is NOT VALID, length 2338


В Apache логи были но перестали обновляться, вот последние строчки...
Код
2011-03-23 19:35:48 -- ERROR: ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Query String: SELECT victim FROM kills WHERE (attacker = 43067582
2011-03-23 19:35:48 -- INFO: SNAPSHOT Data File Processed: mod:serverip:Servername-waterfront_20110323_1908.txt
2011-03-25 20:02:45 -- ERROR: SNAPSHOT Data NOT found!
2011-03-25 20:10:16 -- ERROR: SNAPSHOT Data NOT found!
2011-03-25 23:50:35 -- ERROR: SNAPSHOT Data NOT found!

Код
[23-Mar-2011 19:35:48] PHP Warning:  mysql_num_rows(): supplied argument is not a valid MySQL result resource in W:\www\ASP\bf2statistics.php on line 687


В bf2statistics.php я хз че править в 687 строчке:
Код
            $result = mysql_query($query);
            checkSQLResult ($result, $query);
            if (mysql_num_rows($result))
            {
                while ($row = mysql_fetch_array($result))
                {
                    for ($i = 0; $i < count($mvns); $i += 2)
                    {
                        if ($row['victim'] == $mvns[$i])
                        {
                            // Update information
                            $query = "UPDATE kills SET
                                count = `count` + " . $mvns[$i + 1] . "
                                WHERE (attacker = " . $data["pID_$x"] . ") AND (victim = {$mvns[$i]})
                            ";
                            $result_chk = mysql_query($query);
                            checkSQLResult ($result_chk, $query);
                            
                            // Tag item as done
                            $mvns[$i + 1] = 0;
                        }
                    }
                }
            }


В апаче стоит Listen 127.0.0.1:80 пробовал ставить и просто Listen :80, разницы не заметил...
Что подскажете делать, конфиги в ASP и стате переписывал раз 20, походу проблемма в Apache, подскажите кто что может, или дайте настройки httpd.conf
Кагбе Левый
Цитата(Кагбе Левый @ Понедельник, 28 Марта 2011, 21:43:55) *
В апаче стоит Listen 127.0.0.1:80 пробовал ставить и просто Listen :80, разницы не заметил...
Что подскажете делать, конфиги в ASP и стате переписывал раз 20, походу проблемма в Apache, подскажите кто что может, или дайте настройки httpd.conf


Достал конфиг апача из BF2SPCC посмотрел, и подправил на основе него свой апач, вроди бы отображается статистика во время игры, но всеравно не сохраняется и не загружается в БД. Те звания что у меня уже имеются не загружаются, в игре все выдается заново при старте каждого нового раунда.

В ASP логе ошибок нет, в логе /python/bf2/logs ошибки прежние но появилось много новой инфы о сохранении снапшота, также в папке с логами ASP/logs/_processed появился этот снапшот, но толку от него пока маловато...

У кого какие идеи по этому поводу?
Daimon_
логи пересылаются это хорошо. не пишутся в базу это плохо. остается майскул. проверяй пользователей и их права на доступ к майскулу.
или поставь проверенную сборку appserv-win32-2.5.4a http://dump.ru/file/669439
Кагбе Левый
В мускуле даже и не знаю что может быть, на БФовской учетке все необходимые права стоят, пробовал и через root.
Меня смущает ошибка из АSР где лог матерится на bf2statistic.php при это не только в этой веб-морде но и в других альтернативных.

Ладно приду вечером домой с работы переустановлю сервер, может поможет...

А по поводу сборок серверов исторически сложилось так что ставлю всегда все отдельно и в ручную.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.