[code]
#################################################
#
# History:
# 11/24/05 v0.0.1 - ALPHA build
# 11/28/05 v0.0.2 - Removed killedByPlayer
# - Added kills
# 12/08/05 v0.0.3 - Added deaths
# 12/09/05 v0.0.4 - Removed tnv/tgm
# 12/10/05 v0.0.5 - Added prefix
# 12/14/05 v0.0.6 - Removed useless GS call
# - Removed tactical/zip/grappling kills
# - Added grappling deaths
# 12/25/05 v0.0.7 - Added v
# 01/03/06 v0.1 - BETA release
# 01/05/06 v0.1.1 - Added master db
# - Added socket timeout/error handling
# 01/25/06 v0.1.2 - Updated CDB IP
# 02/15/06 v0.1.3 - Updated CDB URL
# 06/17/06 v0.1.4 - Added EF army
# 02/01/06 v1.0 - Public Release
#################################################
#################################################
# DO NOT EDIT ANYTHING BELOW THIS LINE!
#################################################
# ------------------------------------------------------------------------------
# omero 2006-03-31
# ------------------------------------------------------------------------------
# Settings now imported from bf2.BF2StatisticsConfig module, see below.
#HOST = 'localhost' # webserver listening ip address
#PORT = 80 # webserver listening http port
#PATH = '/ASP/bf2statistics.php' # webserver path to script, relative to rootdir
#PREFIX = '' # log file prefix
import host
import bf2.PlayerManager
import fpformat
from constants import *
from bf2 import g_debug
from bf2.stats.stats import getStatsMap, setStatsMap, getPlayerConnectionOrderIterator, setPlayerConnectionOrderIterator, roundArmies
from bf2.stats.medals import getMedalMap, setMedalMap
# ------------------------------------------------------------------------------
# omero 2006-03-31
# ------------------------------------------------------------------------------
from bf2.BF2StatisticsConfig import http_backend_addr, http_backend_port, http_backend_asp, http_central_enable, http_central_addr, http_central_port, http_central_asp, snapshot_prefix
from bf2.stats.miniclient import miniclient, http_postSnapshot
# Added by Chump - for bf2statistics stats
from time import time
# omero, 2006-03-31
# the following is no longer necessary
#import socket
map_start = 0
def init():
print "Snapshot module initialized"
# Added by Chump - for bf2statistics stats
host.registerGameStatusHandler(onChangeGameStatus)
# Added by Chump - for bf2statistics stats
def onChangeGameStatus(status):
global map_start
if status == bf2.GameStatus.Playing:
map_start = time()
def invoke():
# Added by Chump - for bf2statistics stats
#host.pers_gamespyStatsNewGame()
snapshot_start = host.timer_getWallTime()
if g_debug: print "Gathering SNAPSHOT Data"
snapShot = getSnapShot()
# Print in log
print snapShot
# Send snapshot to Backend Server
print "Sending SNAPSHOT to backend: %s" % str(http_backend_addr)
try:
backend_response = http_postSnapshot( http_backend_addr, http_backend_port, http_backend_asp, snapShot )
except Exception, e:
print "An error occurred while sending SNAPSHOT to backend: %s" % str(e)
# Send Snapshot to Central Backend Server
if http_central_enable == 1 or http_central_enable == 2:
print "Sending SNAPSHOT to Central Backend: %s" % str(http_central_addr)
#Append CDB Setting so backened knows what to do with this
snapShotCDB = snapShot + '\\cdb_update\\' + http_central_enable
try:
backend_response = http_postSnapshot( http_central_addr, http_central_port, http_central_asp, snapShotCDB )
except Exception, e:
print "An error occurred while sending SNAPSHOT to Central Backend: %s" % str(e)
print "SNAPSHOT Processing Time: %d" % (host.timer_getWallTime() - snapshot_start)
# ------------------------------------------------------------------------------
# omero 2006-03-31
# ------------------------------------------------------------------------------
# always do the following at the end...
repackStatsVectors()
def repackStatsVectors():
# remove disconnected players
cleanoutStatsVector()
cleanoutMedalsVector()
# repack stats and medal vector so there are no holes. gamespy doesnt like holes.
medalMap = getMedalMap()
statsMap = getStatsMap()
playerOrderIt = getPlayerConnectionOrderIterator()
newOrderIterator = 0
newStatsMap = {}
newMedalMap = {}
highestId = 0
for id, statsItem in statsMap.iteritems():
newStatsMap[newOrderIterator] = statsItem
if id in medalMap:
newMedalMap[newOrderIterator] = medalMap[id]
statsItem.connectionOrderNr = newOrderIterator
newOrderIterator += 1
print "Repacked stats map. Stats map size=%d. OrderIt changed from %d to %d" % (len(statsMap), playerOrderIt, newOrderIterator)
setPlayerConnectionOrderIterator(newOrderIterator)
setStatsMap(newStatsMap)
setMedalMap(newMedalMap)
def cleanoutStatsVector():
print "Cleaning out unconnected players from stats map"
statsMap = getStatsMap()
# remove disconnected players after snapshot was sent
removeList = []
for pid in statsMap:
foundPlayer = False
for p in bf2.playerManager.getPlayers():
if p.stats == statsMap[pid]:
foundPlayer = True
break
if not foundPlayer:
removeList += [pid]
for pid in removeList:
print "Removed player %d from stats." % pid
del statsMap[pid]
def cleanoutMedalsVector():
print "Cleaning out unconnected players from medal map"
medalMap = getMedalMap()
# remove disconnected players after snapshot was sent
removeList = []
for pid in medalMap:
foundPlayer = False
for p in bf2.playerManager.getPlayers():
if p.medals == medalMap[pid]:
foundPlayer = True
break
if not foundPlayer:
removeList += [pid]
for pid in removeList:
if g_debug: print "Removed player %d from medals." % pid
del medalMap[pid]
def getSnapShot():
print "Assembling snapshot"
# Added by Chump - for bf2statistics stats
#snapShot = "\\"
#global PREFIX, map_start
global map_start
snapShot = snapshot_prefix + '\\' + bf2.gameLogic.getMapName() + '\\'
snapShot += 'gameport\\' + str(bf2.serverSettings.getServerConfig('sv.serverPort')) + '\\'
snapShot += 'queryport\\' + str(bf2.serverSettings.getServerConfig('sv.gameSpyPort')) + '\\'
snapShot += 'mapstart\\' + str(map_start) + '\\mapend\\' + str(time()) + '\\'
snapShot += 'win\\' + str(bf2.gameLogic.getWinner()) + '\\'
statsMap = getStatsMap()
# ----------------------------------------------------------------------------
# omero 2006-04-10
# ----------------------------------------------------------------------------
# this will be used for detecting which mod is running and
# set standardKeys['v'] accordingly
# defaults to 'bf2'
#
running_mod = str(host.sgl_getModDirectory())
if ( running_mod.lower() == 'mods/bf2' ):
v_value = 'bf2'
elif ( running_mod.lower() == 'mods/bf2sp64' ):
v_value = 'bf2sp64'
elif ( running_mod.lower() == 'mods/xpack' ):
v_value = 'xpack'
elif ( running_mod.lower() == 'mods/poe2' ):
v_value = 'poe2'
else:
v_value = 'bf2'
if g_debug: print 'Running MOD: %s' % (str(v_value))
standardKeys = [
# Added by Chump - for bf2statistics stats
("gm", getGameModeId(bf2.serverSettings.getGameMode())),
("m", getMapId(bf2.serverSettings.getMapName())),
# Added by Chump - for bf2statistics stats
("v", str(v_value)),
("pc", len(statsMap)),
]
# only send rwa key if there was a winner
winner = bf2.gameLogic.getWinner()
if winner != 0:
standardKeys += [("rwa", roundArmies[winner])]
# get final ticket score
if g_debug: print "Army 1 (%s) Score: %s" % (str(roundArmies[1]), str(bf2.gameLogic.getTickets(1)))
if g_debug: print "Army 2 (%s) Score: %s" % (str(roundArmies[2]), str(bf2.gameLogic.getTickets(2)))
standardKeys += [
("ra1", str(roundArmies[1])),
("rs1", str(bf2.gameLogic.getTickets(1))),
("ra2", str(roundArmies[2])),
("rs2", str(bf2.gameLogic.getTickets(2))),
]
standardKeys += [("rst2", str(bf2.gameLogic.getTickets(2)))]
stdKeyVals = []
for k in standardKeys:
stdKeyVals.append ("\\".join((k[0], str(k[1]))))
snapShot += "\\".join(stdKeyVals)
if g_debug: print 'Snapshot Pre-processing complete: %s' % (str(snapShot))
playerSnapShots = ""
if g_debug: print 'Num clients to base snap on: %d' % (len(statsMap))
for sp in statsMap.itervalues():
if g_debug: print 'Processing PID: %s' % (str(sp.profileId))
playerSnapShot = getPlayerSnapshot(sp)
# Added by Chump - for bf2statistics stats
playerSnapShots += playerSnapShot
# remove zero vals
#zeroAllowedKeys = ('pid', 'a', 'mvns', 'mvks', 'vmns', 'vmks')
#transformedSnapShot = ""
#i = 0
#while i < len(playerSnapShot):
# i += 1
# key = ""
# while playerSnapShot[i] != "\\":
# key += playerSnapShot[i]
# i += 1
# i += 1
# value = ""
# while i < len(playerSnapShot) and playerSnapShot[i] != "\\":
# value += playerSnapShot[i]
# i += 1
# if value != "0" or key[:key.find('_')] in zeroAllowedKeys:
# keyVal = "\\" + key + "\\" + value
# transformedSnapShot += keyVal
#if len(transformedSnapShot) > 0:
# playerSnapShots += transformedSnapShot
print "Doing Player SNAPSHOTS"
snapShot += playerSnapShots
# Add EOF marker for validation
snapShot += "\\EOF\\1"
return snapShot
def getPlayerSnapshot(playerStat):
playerKeys = [
# main keys
("pID", playerStat.profileId),
# Added by Chump - for bf2statistics stats
("name", playerStat.name),
("t", playerStat.team),
("a", playerStat.army),
("ctime", int(playerStat.timePlayed)),
("c", playerStat.complete),
("ip", playerStat.ipaddr),
# score keys
("rs", playerStat.score),
("cs", playerStat.cmdScore),
("ss", playerStat.skillScore),
("ts", playerStat.teamScore),
# Added by Chump - for bf2statistics stats
("kills", playerStat.kills),
("deaths", playerStat.deaths),
# Added by Chump - for bf2statistics stats
#("cpc", playerStat.localScore.cpCaptures + playerStat.localScore.cpNeutralizes),
#("cpa", playerStat.localScore.cpAssists + playerStat.localScore.cpNeutralizeAssists),
("cpc", playerStat.localScore.cpCaptures),
("cpn", playerStat.localScore.cpNeutralizes),
("cpa", playerStat.localScore.cpAssists),
("cpna", playerStat.localScore.cpNeutralizeAssists),
("cpd", playerStat.localScore.cpDefends),
("ka", playerStat.localScore.damageAssists),
("he", playerStat.localScore.heals),
("rev", playerStat.localScore.revives),
("rsp", playerStat.localScore.ammos),
("rep", playerStat.localScore.repairs),
("tre", playerStat.localScore.targetAssists),
# Added by Chump - for bf2statistics stats
#("drs", playerStat.localScore.driverSpecials + player
Автор: Daimon_ 12.2.2010, 9:48
В конфиге asp:
$game_hosts = array('127.0.0.1',);
должно быть:
$game_hosts = array('127.0.0.1');
bf2staticticsconfig.py:
http_backend_addr = 'localhost'
должно быть:
http_backend_addr = '127.0.0.1'
snapshoot.py:
#HOST = 'localhost'
#PORT = 80
#PATH = '/ASP/bf2statistics.php'
#PREFIX = ''
должно быть:
HOST = '127.0.0.1'
PORT = 80
PATH = '/ASP/bf2statistics.php'
PREFIX = ''
при установке ASP у меня тоже были ошибки, но таблицы установились и всё работало.
Автор: Ganny 12.2.2010, 10:38
Моя искренняя благодарность за ответ!
Вечером попробую проверить после ваших фиксов.
Автор: sneb 12.2.2010, 12:02
Daimon_ , ВСЕ ДЕЛО В ЗАПЯТОЙ :D
Цитата
В конфиге asp:
$game_hosts = array('127.0.0.1' , );
должно быть:
$game_hosts = array('127.0.0.1');
А localhost думаю не принципиально менять на 127.0.0.1
если конечно не удален или отредактирован файл hosts в
%windir%\system32\drivers\etc
еще дополню
Цитата
$stats_lan_override = '127.0.0.1';
$stats_local_pids = array('LocalPlayer01','127.0.0.1');
поставь здесь вместо 127.0.0.1 своего провайдера.. и какого нить из русских или откуда ты.. может с Украины тогда украинского, это нужно для того что бы твои бойцы не писались под флагом америки, по умолчанию американсы 127.0.0.1
Автор: Ganny 12.2.2010, 13:14
Благодарю!
Может ли быть проблема, что играю пока я один
у меня стоит
$stats_players_min = 1;
Насколько я понимаю, это означает, что стата начинает писаться когда 1 человек на сервере?
Автор: sneb 12.2.2010, 13:50
Цитата(Ganny @ Пятница, 12 Февраля 2010, 13:14:36)
Благодарю!
Может ли быть проблема, что играю пока я один
у меня стоит
$stats_players_min = 1;
Насколько я понимаю, это означает, что стата начинает писаться когда 1 человек на сервере?
это сервер запускается при первом зашедшем игроке, желательно для coop режима.. для cq надо 2 выставлять...
Автор: Daimon_ 12.2.2010, 14:07
Цитата(sneb @ Пятница, 12 Февраля 2010, 12:02:02)
А localhost думаю не принципиально менять на 127.0.0.1
если конечно не удален или отредактирован файл hosts в
%windir%\system32\drivers\etc
это принципиально. выяснялось опытным путем.
если в bf2staticticsconfig.py будет прописано:
http_backend_addr = '127.0.0.1'
то в админке ASP в разделе Server Info будет присутствовать сервер с IP 127.0.0.1
а если в bf2staticticsconfig.py будет прописано:
http_backend_addr = 'localhost'
то в админке ASP в разделе Server Info будет присутствовать сервер с IP localhost
а т.к. в конфиге ASP localhost не прописан, то статы не будет.
$game_hosts = array('127.0.0.1');
на всякий случай можно прописать все имеющиеся сетевые интерфейсы сервера:
$game_hosts = array('127.0.0.1', 'localhost', 'внешний IP');
Автор: sneb 12.2.2010, 14:35
Не спорю.. наверно это так.. :(
Автор: Ganny 12.2.2010, 21:40
К сожалению так и не работает.
Господа, может я еще что нибудь забыл?
Блин жалко как!
Автор: Excavator 12.2.2010, 22:39
Ganny, меня смущает вот эта ошибка при Istall DB
Код
2010-02-10 10:42:51 : -> ERROR: Version Data *NOT* Loaded: 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 '.2, 1265787771)' at line 1
тут это уже обсуждалось года полтора назад, посмотри http://xn----8sbbemc3a7aecex.xn--p1ai/forum/index.php?showtopic=47060#, помему в ней твоя проблема
Автор: Ganny 13.2.2010, 10:52
Благодарю!
сделал как написано в последнем посте темы
Цитата
"$sqldata[] = array('Version Data', "INSERT INTO `_version` VALUES ('".$cfg->get('db_expected_ver')."', ".time().");"); "
теперь в инсталл база идет без той ошибки зато с новой:
Цитата
Parse error: parse error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\ASP\includes\db\sql.dbdata.php on line 6
И опять те же яйца...
Автор: Excavator 13.2.2010, 11:22
У тебя теперь кавычки лишние, вот так это должно выглядеть:
Код
$sqldata[] = array('Version Data', "INSERT INTO `_version` VALUES ('".$cfg->get('db_expected_ver')."', ".time().");");
Автор: Ganny 13.2.2010, 13:24
Спасибо ошибка в инсталл устранилась. В апгрейд те же самые.
В базу (свежеизвлеченную) по прежнему не пишет...
Автор: Ganny 13.2.2010, 16:12
Господа а может быть проблема в модменеджере, который у меня юзается дефолтом?
Автор: Battlefield Forever 14.2.2010, 2:21
конфиги , ошибка гдето в конфигах , нормального FAQ в инете не существует ... :no:
Автор: Daimon_ 14.2.2010, 10:00
Цитата(Battlefield Forever @ Воскресенье, 14 Февраля 2010, 02:21:42)
конфиги , ошибка гдето в конфигах , нормального FAQ в инете не существует ... :no:
правильно, нету. потому-что его невоможно написать с учетом всех факторов, влияющих на работоспособность. это просто невозможно. у всех свои сети со всоими настройками, у каждого своя ОС со своими косяками.
могу лишь посоветовать следующее:
под сервер надо выделить отдельный комп. домашний, загаженный игрушками и разными непонятными прогами, не подойдет. не должно быть ничего лишнего.
система должна быть "чистой". никаких говносборок, навроде виндовс-зверь.
не использовать сборки (апач+пхп+майскул) денвер и топ-сервер.
делать все последовательно. установить апач+пхп+майскул. проверить работоспособность. проверить конфиги апача, пхп и майскула.
установить сервер бф2. проверить работоспособность.
и только после этого ставить bf2statistics_1.4.2. для начала поставить только то, что предлагают разрабы bf2statistics_1.4.2. проверить все конфиги, проверить работоспособность.
и только если все работает, статистика пишется и показывается, устанавливать разные фиксы, дополнения и пр. опять-же делать все последовательно. изменили какой-то скрипт, проверяйте как все работает. а не так, что напихали кучу всякого говна, ничего не работает, а понять причину не можете. и появляются темы на форуме, на вроде "а вот я все сделал по факу, не понимая что сделал, но ничего не работает. что может быть?" и никто вам толком ничего ответить не сможет. только еще больше запутают.
главное внимательность и терпение. и всё получится.
Автор: Ganny 14.2.2010, 13:49
Согласен, но не всецело!
Можно написать faq как раз под чистую "неговновинду"!
То ли дело, что не хватает как раз уситчивости и терпения в ее написании.
Сервер выделенный, правда на нем крутятся другие ресурсы но они не конфликтуют с бф и mysql не пользуют.
Винда мало того, что чистая (твоя правда Daimon_! Говносборки - это самое лучшее слово. Никогда им недоверял и не планирую. Разве что с ноутами где обычная винда не видит контроллера саташный. Потому как собирают их люди далекие от совершенства или недалекие в целом. Устраняя один косяк, добавляют еще три) так она еще и лицензионная, честно купленная у паршивца Билли.
Использовал аппсерв по двум причинам:
1. Потому как было написано в faq`е (потом пробовал последний xampp там глюков еще больше стало)
2. Потому как не гуру в mysql и пхп. Апач то черт с ним, простой как валенок.
По поводу последнего ты безусловно прав!
Господа, а как протестить конфиги на работоспособность?
В альтер. ранк. сис. пишут логи конфига и что мол можно щелкнуть в asp на протестить конф, у меня ссылки такой нет, и php`ки test в asp нету...
Автор: Ganny 14.2.2010, 15:29
Меня смущают 3 вещи:
1. В Private Stats Admin пишет ниже
Код
Code Version: 1.4.2 || Database Version: 0.0.0
2. В логе asp
Код
2010-02-14 04:21:55 -- ERROR: Database version expected: 1.4.2, Found: 0.0.0
2010-02-14 15:14:01 -- ERROR: SNAPSHOT Data NOT found!
причем последнее сообщение появляется когда я пытаюсь набрать
Код
http://localhost/asp/bf2statistics.php
где вылезает след. сообщение
Код
E H response D ERROR: SNAPSHOT Data NOT found!
Затрахался я уже с этой статой в день влюбленных
Автор: Ganny 14.2.2010, 18:16
Фуф господа моя эпопея закончена!
Все заработало.
Хочу сказать спасибо тем кто помогал мне.
В знак признательности напишу подробный мануал в картинках, что бы облегчить жизнь этому форуму. Пришел к выводу что 3000 постов в альтернат. ран. сис. объясняются криволапость мануала, автору которого я бы хотел плюнуть в рожу.
Пошел писать.
Автор: Ganny 14.2.2010, 18:44
Battlefield Forever Daimon_ Excavator
Я попросил бы Вас, как самых трезвомыслящих в этой ветке форума, предварительно ознакомиться с этой работой и исправить возможные ошибки.
Автор: Daimon_ 14.2.2010, 20:18
Ganny, проверим обязательно.
понадобилось мне сегодня проверить несколько скриптов до установки на сервер. пришлось устанавливать на домашний комп всю эту лабуду. решил заодно отписать, что делал.
итак, в наличии:
1 загаженный домашний комп с виндовс 7
2 сборка вебсервер+пхп+майскул: appserv-win32-2.5.4a
3 bf2statistics_1.4.2
4 Battlefield-2-Server-Unranked-v1.50
5 пути установки D:\AppServ D:\Program_Files\Battlefield 2 Server\
6 две локальные сети 192.168.0.0 ; 192.168.1.0 и интернет через PPPoE
берем сборку appserv-win32-2.5.4a и устанавливаем.
когда предложат, вписываем адрес сервера. задаем пароль
к майскулу(нафиг он там нужен?), кодироку базы данных я не менял.
оставил latin1. больше ничего менять не надо. после установки
запускается апач и майскул.
на диске в папке \AppServ\www\ удаляем всё, кроме phpMyAdmin. он еще пригодится.
проверяем. набираем в браузере http://localhost/phpMyAdmin/
смотрим, что пишут красным шрифтом и устраняем эти проблемы.
с безопасностью phpMyAdmin я не парился, т.к. удаляю его сразу после создания
нужных баз данных. phpMyAdmin-это большая дыра на вебсервере.
а вот проблему:
"The mbstring PHP extension was not found and you seem to be using multibyte charset."
надо решить. находим файл C:\Windows\php.ini, открываем, находим блок с модулями и
убираем ; перед extension=php_mbstring.dll. перезапускаем апач,
обновляем страницу с phpMyAdmin и видим что исчезла строка
"The mbstring PHP extension..."
задаем привилегии и пароль(создаем юзера для подключения к базе) для bf2statslogger.
убираем у него админские права. далее создаем базу bf2stats.
создаем пользователя со всеми правами. с этим именем и паролем будем
управлять базами данных в будующем. пользователей по умолчанию удаляем.
всё, больше здесь делать нечего.
заливаем в корневую папку вебсервера(\AppServ\www\) скрипты ASP.
правим конфиг:
$db_host = 'localhost';
$db_name = 'bf2stats';
$db_user = 'bf2statslogger';
$db_pass = 'password';
$admin_user = 'admin';
$admin_pass = 'password';
$admin_hosts = array('127.0.0.1','localhost','192.168.1.0/24',192.168.0.0/24');
$admin_log = 'logs/_admin_event.log';
$admin_backup_path = 'D:/AppServ/www/ASP/_backups/';
$admin_backup_ext = '.bak';
...
$stats_lan_override = '77.88.21.11';
$stats_local_pids = array('LocalPlayer01','77.88.21.11','LocalPlayer02','77.88.21.11');
...
$game_hosts = array('127.0.0.1','localhost','192.168.1.0/24');
...
заходим в Private Stats Admin: http://localhost/asp/
а также пробуем зайти с других адресов, которые есть на компе,
например http://192.168.1.120.asp/
если не открывается, сверяемся с кофигом и проверяем настройки фаервола.
вводим имя и пароль из конфига:
user = admin pass = password и видим следующую картину: Private Stats Admin
Code Version: 1.4.2 || Database Version: 0.0.0
слева: меню из 3 пунктов: Install DB, Upgrade DB и Logout. жмем Install DB,
ставим галку Confirm Process: и жмем Process.
смотрим лог Processing: Install Database:
2010-02-14 17:21:09 : -> ERROR: Version Data *NOT* Loaded: You have an error...
видим одну ошибку и забиваем на неё. жмем в меню слева Upgrade DB, смотрим лог:
куча ошибок. ну и фиг с ними. жмем Logout и снова логинимся. и о чудо:
наблюдаем под надписью Private Stats Admin Code Version: 1.4.2 || Database Version: 1.4.2
а слева полное меню. база данных со всеми таблицами установлена.
устанавливаем сервер бф2. берем Battlefield-2-Server-Unranked-v1.50.exe
и запускаем установку. после установки, проверяем, запустив сервер на одном из
локальных IP, а потом с интернет IP. в режиме лан и интернет.
я использовал ланчер для запуска. если сервер сразу падает с параметром интернет,
то запускайте пока в режиме лан.
сервер запустился и работает? замечательно. теперь берем питон-скрипты и
закидываем их в D:\Program_Files\Battlefield 2 Server\python\ с заменой всех файлов.
открываем D:\Program_Files\Battlefield 2 Server\python\bf2\BF2StatisticsConfig.py и правим.
а точнее, ничего там не правим! у нас вебсервер и сервер бф2 на одной машине.
создаем файл C:\Windows\System32\drivers\etc\hosts.ics с содержимым:
127.0.0.1 BF2web.gamespy.com
подключаюсь к серверу с онлайн аккаунтом, играю. получаю два бейджа и лычки во втором раунде.
отключаюсь от сервера, захожу в BFHQ и вижу свою стату и стату ботов.
статистика работает. остается установить вебинтерфейс. я использую вебинтерфейс от Снумсмумрика.
Автор: Ganny 14.2.2010, 20:31
Чуда про которое ты пишешь у меня не произошло. Мануал закончил.
Автор: Battlefield Forever 14.2.2010, 21:02
Ganny что ты сделал что статистика заработала ? отпишись пожалуйста :D
Автор: sneb 14.2.2010, 21:24
Цитата(Ganny @ Воскресенье, 14 Февраля 2010, 18:16:43)
Пришел к выводу что 3000 постов в альтернат. ран. сис. объясняются криволапость мануала, автору которого я бы хотел плюнуть в рожу.
Если тебе этот форум помог.. не надо его всевозможно хаять..
Допустим я год назад отсюда подчерпывал информацию.. и все уже год работает, и на сколько я знаю многи серверы Бф2 и его модов в России, Украины, Казахстана, Белоруссии выросли из этого форума.
И насколько знаю этот боевой народ, он ни когда не бросает начинающих админов, и вновь создающие сервера...
Автор: Ganny 14.2.2010, 21:31
Вкратце, могу чего нить пропустить, 2 вещи:
shapshot - убрал решетки перед
HOST
PORT
PATH
PREFIX
Я знал что заремененные строки не работают и раньше, но полагался на мануал этот чертов и на питон, который я не знаю.
Там же и в BF2StatisticsConfig.py указал полные ссылки на asp причем указал айпи который разрешен в конфиге asp
Использовал пользователя root без пароля, не создавал нового то есть.
После этого база инсталлировалась на ура ВООБЩЕ без ошибок!
Загрузились все меню и тд.
И все поперло.
sneb тебе тоже забыл спасибо сказать, твои посты мне помогли. К тому же у нас были примерно одни и те же проблемы. Смешно, что решили мы их по разному. Похвастаюсь, что у меня все встало образцово.;)
Я не имею ничего против ни форума и Боевого народа ни в целом, ни в частном случае.
Я говорю о том, что не проверенную информацию модер выложил как мануал и тот кто его писал, отнесся к своей работе через задницу.
Когда я 3 года назад ставил эту же стату, я точно там же тупил 3-4 вечера из этого мануала. Сегодня я повторил этот подвиг. Читая 100 страниц темы по стату, я видел одни и те же проблемы. И все они от этого творения под названием "FAQ"
Автор: Daimon_ 14.2.2010, 22:59
Цитата
После этого база инсталлировалась на ура ВООБЩЕ без ошибок!
не верю. ошибка при установке заложена разработчиками. если ты не поправил скрипт, её не может не быть.
Автор: Ganny 14.2.2010, 23:26
А я и не говорил, что ее не правил. Excavator писал мне об этом немного выше.
Автор: 3030 15.2.2010, 12:34
По поводу фиксов, вот стата со всеми фиксами которые нашел на офф сайте http://www.sharemania.ru/0107914
P.S. Тестил на Xampp 7.11 все работает!
Автор: Battlefield Forever 25.2.2010, 20:29
Ganny Респект тебе большой ,я сделал как ты говорил + использовал фикс стату респект и тебе 3030 ...
Администрация - будте любезны исправте в факе ошибки и ссылку :D
Автор: vita25 22.10.2010, 21:48
3030
Battlefield Forever
Выложите стату с фиксами еще раз ссылка умерла
а попробовать хочется
Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)