[games-server/ghost++] remove. its EOL and the snapshot i made was unfetchable for a while anyway, best replacement i could find is ghost.js so bncsutil and StormLib will probably stay around

This commit is contained in:
Robert Förster 2019-08-13 10:52:13 +02:00
parent 02d4158fea
commit 2e7d8a3474
12 changed files with 0 additions and 1311 deletions

View File

@ -1 +0,0 @@
DIST ghost++-17.1_p20131215.tar.xz 897864 SHA256 704f13fd74ab6f6cbc314e08723d7be691fe6bfade1258d74b5d87687eef3ee9 SHA512 024eb92e55a359ee7d95f066594467c73cc231318c539be117ab609abbb6725316ad75b0df0b2bce44af1cbb997679590894edc72192dc8088ed24e514f3bf76 WHIRLPOOL 974f63cbff79b0bf3cc1e87065198d4161ae8262f0c14c4d9fb177501d099b6ceff74f7e840a04668d7a56ace54fd8e39b30e1dbb9ea7f2afd0368a332f70f6b

View File

@ -1,69 +0,0 @@
project(ghost++)
cmake_minimum_required(VERSION 2.6)
set(SRC_FILES
ghost/bncsutilinterface.cpp
ghost/bnet.cpp
ghost/bnetprotocol.cpp
ghost/bnlsclient.cpp
ghost/bnlsprotocol.cpp
ghost/commandpacket.cpp
ghost/config.cpp
ghost/crc32.cpp
ghost/csvparser.cpp
ghost/game.cpp
ghost/gameplayer.cpp
ghost/gameprotocol.cpp
ghost/gameslot.cpp
ghost/game_admin.cpp
ghost/game_base.cpp
ghost/ghost.cpp
ghost/ghostdb.cpp
ghost/ghostdbmysql.cpp
ghost/ghostdbsqlite.cpp
ghost/gpsprotocol.cpp
ghost/language.cpp
ghost/map.cpp
ghost/packed.cpp
ghost/replay.cpp
ghost/savegame.cpp
ghost/sha1.cpp
ghost/socket.cpp
ghost/stats.cpp
ghost/statsdota.cpp
ghost/statsw3mmd.cpp
ghost/util.cpp
)
set(DOTA_ELO_SRC_FILES
update_dota_elo/elo.cpp
update_dota_elo/update_dota_elo.cpp
)
set(W3MMD_ELO_SRC_FILES
update_w3mmd_elo/elo.cpp
update_w3mmd_elo/update_w3mmd_elo.cpp
)
# Check modules first in local dir
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)
find_package(bncsutil REQUIRED)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost COMPONENTS date_time filesystem system thread REQUIRED)
find_package(StormLib REQUIRED)
find_package(Sqlite REQUIRED)
find_package(ZLIB REQUIRED)
set(LINK_LIBS ${bncsutil_LIBRARY} ${Boost_LIBRARIES} ${StormLib_LIBRARY} ${SQLITE_LIBRARIES} ${ZLIB_LIBRARIES})
if(WITH_MYSQL)
find_package(MySQL REQUIRED)
add_definitions(-DGHOST_MYSQL)
LIST(APPEND LINK_LIBS ${MYSQL_CLIENT_LIBS})
endif()
add_executable(ghost++ ${SRC_FILES})
target_link_libraries(ghost++ ${LINK_LIBS})
install(TARGETS ghost++ RUNTIME DESTINATION bin)
install(FILES ghost++.cfg default.cfg language.cfg DESTINATION ${CONFIGPATH})

View File

@ -1,333 +0,0 @@
#--------------------------------------------------------
# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
#
# The MySQL Connector/ODBC is licensed under the terms of the GPLv2
# <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
# MySQL Connectors. There are special exceptions to the terms and
# conditions of the GPLv2 as it is applied to this software, see the
# FLOSS License Exception
# <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##########################################################################
MACRO(_MYSQL_CONFIG VAR _regex _opt)
EXECUTE_PROCESS(COMMAND ${MYSQL_CONFIG_EXECUTABLE} ${_opt}
OUTPUT_VARIABLE _mysql_config_output
)
SET(_var ${_mysql_config_output})
STRING(REGEX MATCHALL "${_regex}([^ ]+)" _mysql_config_output "${_mysql_config_output}")
STRING(REGEX REPLACE "^[ \t]+" "" _mysql_config_output "${_mysql_config_output}")
STRING(REGEX REPLACE "[\r\n]$" "" _mysql_config_output "${_mysql_config_output}")
STRING(REGEX REPLACE "${_regex}" "" _mysql_config_output "${_mysql_config_output}")
SEPARATE_ARGUMENTS(_mysql_config_output)
SET(${VAR} ${_mysql_config_output})
ENDMACRO(_MYSQL_CONFIG _regex _opt)
MACRO(_MYSQL_CONFIG_REPLACE VAR _regex1 _replace _regex2 _opt)
EXECUTE_PROCESS(COMMAND ${MYSQL_CONFIG_EXECUTABLE} ${_opt}
OUTPUT_VARIABLE _mysql_config_output1
)
SET(_var ${_mysql_config_output1})
STRING(REGEX MATCHALL "${_regex2}([^ ]+)" _mysql_config_output1 "${_mysql_config_output1}")
STRING(REGEX REPLACE "^[ \t]+" "" _mysql_config_output1 "${_mysql_config_output1}")
STRING(REGEX REPLACE "[\r\n]$" "" _mysql_config_output1 "${_mysql_config_output1}")
STRING(REGEX REPLACE "${_regex2}" "" _mysql_config_output1 "${_mysql_config_output1}")
STRING(REGEX REPLACE "${_regex1}" "${_replace}" _mysql_config_output1 "${_mysql_config_output1}")
SET(${VAR} ${_mysql_config_output1})
ENDMACRO(_MYSQL_CONFIG_REPLACE _regex1 _replace _regex2 _opt)
IF (MYSQLCLIENT_LIB_NAME)
IF (${MYSQLCLIENT_LIB_NAME} MATCHES "libmysqlclient_r.a"
OR ${MYSQLCLIENT_LIB_NAME} MATCHES "libmysqlclient.a"
OR ${MYSQLCLIENT_LIB_NAME} MATCHES "mysqlclient*")
SET(MYSQLCLIENT_STATIC_LINKING 1)
ELSEIF (${MYSQLCLIENT_LIB_NAME} MATCHES "libmysqlclient_r.so"
OR ${MYSQLCLIENT_LIB_NAME} MATCHES "libmysqlclient.so"
OR ${MYSQLCLIENT_LIB_NAME} MATCHES "libmysql.*")
SET(MYSQLCLIENT_STATIC_LINKING 0)
ENDIF (${MYSQLCLIENT_LIB_NAME} MATCHES "libmysqlclient_r.a"
OR ${MYSQLCLIENT_LIB_NAME} MATCHES "libmysqlclient.a"
OR ${MYSQLCLIENT_LIB_NAME} MATCHES "mysqlclient*")
ELSE (MYSQLCLIENT_LIB_NAME)
IF (WIN32)
SET(MYSQLCLIENT_LIB_NAME "mysqlclient.lib")
ELSE (WIN32)
SET(MYSQLCLIENT_LIB_NAME "libmysqlclient.a libmysqlclient_r.a")
ENDIF (WIN32)
SET(MYSQLCLIENT_STATIC_LINKING 1)
ENDIF (MYSQLCLIENT_LIB_NAME)
SEPARATE_ARGUMENTS(MYSQLCLIENT_LIB_NAME)
IF (NOT MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
IF (EXISTS "$ENV{MYSQL_DIR}/bin/mysql_config")
SET(MYSQL_CONFIG_EXECUTABLE "$ENV{MYSQL_DIR}/bin/mysql_config")
ELSE (EXISTS "$ENV{MYSQL_DIR}/bin/mysql_config")
FIND_PROGRAM(MYSQL_CONFIG_EXECUTABLE
NAMES mysql_config
DOC "full path of mysql_config"
PATHS /usr/bin
/usr/local/bin
/opt/mysql/mysql/bin
/usr/local/mysql/bin
)
ENDIF (EXISTS "$ENV{MYSQL_DIR}/bin/mysql_config")
ENDIF (NOT MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
IF(MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
MESSAGE(STATUS "mysql_config was found ${MYSQL_CONFIG_EXECUTABLE}")
EXECUTE_PROCESS(COMMAND ${MYSQL_CONFIG_EXECUTABLE} "--version"
OUTPUT_VARIABLE __MYSQL_VERSION
)
# Clean up so only numeric, in case of "-alpha" or similar
STRING(REGEX MATCHALL "([0-9]+.[0-9]+.[0-9]+)" MYSQL_VERSION "${__MYSQL_VERSION}")
# To create a fully numeric version, first normalize so N.NN.NN
STRING(REGEX REPLACE "[.]([0-9])[.]" ".0\\1." MYSQL_NUM_VERSION "${MYSQL_VERSION}")
STRING(REGEX REPLACE "[.]([0-9])$" ".0\\1" MYSQL_NUM_VERSION "${MYSQL_NUM_VERSION}")
# Finally remove the dot
STRING(REGEX REPLACE "[.]" "" MYSQL_NUM_VERSION "${MYSQL_NUM_VERSION}")
IF(MYSQL_CXX_LINKAGE OR MYSQL_NUM_VERSION GREATER 50603)
EXECUTE_PROCESS(COMMAND ${MYSQL_CONFIG_EXECUTABLE} "--cxxflags"
OUTPUT_VARIABLE _mysql_config_output
)
SET(MYSQL_CXX_LINKAGE 1)
ELSE (MYSQL_CXX_LINKAGE OR MYSQL_NUM_VERSION GREATER 50603)
EXECUTE_PROCESS(COMMAND ${MYSQL_CONFIG_EXECUTABLE} "--cflags"
OUTPUT_VARIABLE _mysql_config_output
)
ENDIF(MYSQL_CXX_LINKAGE OR MYSQL_NUM_VERSION GREATER 50603)
# Remove the stl4port dependency
STRING(REGEX REPLACE "-library=stlport4" "" _mysql_config_output "${_mysql_config_output}")
IF (NOT MYSQL_LINK_FLAGS)
STRING(REGEX MATCHALL "-m([^\r\n]+)" MYSQL_LINK_FLAGS "${_mysql_config_output}")
ENDIF (NOT MYSQL_LINK_FLAGS)
IF (NOT MYSQL_CXXFLAGS)
STRING(REGEX REPLACE "[\r\n]$" "" MYSQL_CXXFLAGS "${_mysql_config_output}")
ENDIF (NOT MYSQL_CXXFLAGS)
# ADD_DEFINITIONS("${MYSQL_CXXFLAGS}")
ENDIF (MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
#----------------- FIND MYSQL_INCLUDE_DIR -------------------
IF(NOT MYSQL_INCLUDE_DIR AND MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
_MYSQL_CONFIG(MYSQL_INCLUDE_DIR "(^| )-I" "--include")
ELSE(NOT MYSQL_INCLUDE_DIR AND MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
MESSAGE(STATUS "ENV{MYSQL_DIR} = $ENV{MYSQL_DIR}")
FIND_PATH(MYSQL_INCLUDE_DIR mysql.h
${MYSQL_INCLUDE_DIR}
$ENV{MYSQL_INCLUDE_DIR}
$ENV{MYSQL_DIR}/include
/usr/include/mysql
/usr/local/include/mysql
/opt/mysql/mysql/include
/opt/mysql/mysql/include/mysql
/usr/local/mysql/include
/usr/local/mysql/include/mysql
$ENV{ProgramFiles}/MySQL/*/include
$ENV{SystemDrive}/MySQL/*/include)
ENDIF(NOT MYSQL_INCLUDE_DIR AND MYSQL_CONFIG_EXECUTABLE AND NOT WIN32)
#----------------- FIND MYSQL_LIB_DIR -------------------
IF (WIN32)
# Set lib path suffixes
# dist = for mysql binary distributions
# build = for custom built tree
IF (CMAKE_BUILD_TYPE STREQUAL Debug)
SET(libsuffixDist debug)
SET(libsuffixBuild Debug)
ELSE (CMAKE_BUILD_TYPE STREQUAL Debug)
SET(libsuffixDist opt)
SET(libsuffixBuild Release)
ADD_DEFINITIONS(-DDBUG_OFF)
ENDIF (CMAKE_BUILD_TYPE STREQUAL Debug)
FIND_LIBRARY(MYSQL_LIB
NAMES
${MYSQLCLIENT_LIB_NAME}
PATHS
${MYSQL_LIB_DIR}
${MYSQL_LIB_DIR}/lib/${libsuffixDist}
${MYSQL_LIB_DIR}/lib #mysqlclient may be in lib for some c/c distros
${MYSQL_LIB_DIR}/libmysql/${libsuffixBuild}
${MYSQL_LIB_DIR}/client/${libsuffixBuild}
$ENV{MYSQL_LIB_DIR}
$ENV{MYSQL_LIB_DIR}/lib/${libsuffixDist}
$ENV{MYSQL_LIB_DIR}/lib #mysqlclient may be in lib for some c/c distros
$ENV{MYSQL_LIB_DIR}/libmysql/${libsuffixBuild}
$ENV{MYSQL_LIB_DIR}/client/${libsuffixBuild}
$ENV{MYSQL_DIR}/lib/${libsuffixDist}
$ENV{MYSQL_DIR}/lib #mysqlclient may be in lib for some c/c distros
$ENV{MYSQL_DIR}/libmysql/${libsuffixBuild}
$ENV{MYSQL_DIR}/client/${libsuffixBuild}
$ENV{ProgramFiles}/MySQL/*/lib/${libsuffixDist}
$ENV{ProgramFiles}/MySQL/*/lib
$ENV{SystemDrive}/MySQL/*/lib/${libsuffixDist}
$ENV{SystemDrive}/MySQL/*/lib)
SET(MYSQL_LIBRARIES ${MYSQL_LIB})
IF(MYSQL_LIB)
GET_FILENAME_COMPONENT(MYSQL_LIB_DIR ${MYSQL_LIB} PATH)
ENDIF(MYSQL_LIB)
ELSE (WIN32)
IF (NOT MYSQL_LIB_DIR AND MYSQL_CONFIG_EXECUTABLE)
# In MySQL Server 5.6.10 "mysql_config" outputs -lssl
# -lcrypto dependencies even if (as it is with the
# Oracle built binaries) OpenSSL is linked statically
# to the client library and no reference is needed.
# We remove the OpenSSL libraries if -DREMOVE_OPENSSL_DEP
# is given
IF (REMOVE_OPENSSL_DEP)
LIST(REMOVE_ITEM MYSQL_LIBRARIES "ssl" "crypto")
ENDIF (REMOVE_OPENSSL_DEP)
FIND_LIBRARY(MYSQL_LIB
NAMES
${MYSQLCLIENT_LIB_NAME}
PATHS
${MYSQL_LIB_DIR}
${MYSQL_LIB_DIR}/libmysql_r/.libs
${MYSQL_LIB_DIR}/lib
${MYSQL_LIB_DIR}/lib/mysql
$ENV{MYSQL_LIB_DIR}
$ENV{MYSQL_LIB_DIR}/libmysql_r/.libs
$ENV{MYSQL_LIB_DIR}/lib
$ENV{MYSQL_LIB_DIR}/lib/mysql
$ENV{MYSQL_DIR}/libmysql_r/.libs
$ENV{MYSQL_DIR}/lib
$ENV{MYSQL_DIR}/lib/mysql
${MYSQL_CLIB_DIR}
${MYSQL_CLIB_DIR}/libmysql_r/.libs
${MYSQL_CLIB_DIR}/lib
${MYSQL_CLIB_DIR}/lib/mysql
/usr/lib/mysql
/usr/local/lib/mysql
/usr/local/mysql/lib
/usr/local/mysql/lib/mysql
/opt/mysql/mysql/lib
/opt/mysql/mysql/lib/mysql)
IF (MYSQLCLIENT_STATIC_LINKING)
_MYSQL_CONFIG_REPLACE(MYSQL_LIBRARIES
"(mysqlclient|mysqlclient_r)" "${MYSQL_LIB}" "(^| )-l" "--libs")
ELSE (MYSQLCLIENT_STATIC_LINKING)
_MYSQL_CONFIG(MYSQL_LIBRARIES "(^| )-l" "--libs")
ENDIF (MYSQLCLIENT_STATIC_LINKING)
_MYSQL_CONFIG(MYSQL_CLIB_DIR "(^| )-L" "--libs")
IF (NOT MYSQL_LIB_DIR)
SET(MYSQL_LIB_DIR ${MYSQL_CLIB_DIR})
ENDIF (NOT MYSQL_LIB_DIR)
ELSE (NOT MYSQL_LIB_DIR AND MYSQL_CONFIG_EXECUTABLE)
FIND_LIBRARY(MYSQL_LIB
NAMES
${MYSQLCLIENT_LIB_NAME}
PATHS
${MYSQL_LIB_DIR}
${MYSQL_LIB_DIR}/libmysql_r/.libs
${MYSQL_LIB_DIR}/lib
${MYSQL_LIB_DIR}/lib/mysql
$ENV{MYSQL_LIB_DIR}
$ENV{MYSQL_LIB_DIR}/libmysql_r/.libs
$ENV{MYSQL_LIB_DIR}/lib
$ENV{MYSQL_LIB_DIR}/lib/mysql
$ENV{MYSQL_DIR}/libmysql_r/.libs
$ENV{MYSQL_DIR}/lib
$ENV{MYSQL_DIR}/lib/mysql
/usr/lib/mysql
/usr/local/lib/mysql
/usr/local/mysql/lib
/usr/local/mysql/lib/mysql
/opt/mysql/mysql/lib
/opt/mysql/mysql/lib/mysql)
SET(MYSQL_LIBRARIES ${MYSQL_LIB})
IF(MYSQL_LIB)
GET_FILENAME_COMPONENT(MYSQL_LIB_DIR ${MYSQL_LIB} PATH)
ENDIF(MYSQL_LIB)
ENDIF (NOT MYSQL_LIB_DIR AND MYSQL_CONFIG_EXECUTABLE)
IF (MYSQLCLIENT_STATIC_LINKING AND
NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
LIST(APPEND MYSQL_LIBRARIES "rt")
ENDIF ()
ENDIF (WIN32)
# Optionally add more libraries from the command line
# using -DEXTRA_MYSQL_DEP=...
IF (EXTRA_MYSQL_DEP)
LIST(APPEND MYSQL_LIBRARIES ${EXTRA_MYSQL_DEP})
ENDIF (EXTRA_MYSQL_DEP)
SET(MYSQL_CLIENT_LIBS ${MYSQL_LIBRARIES})
SET(VERBOSE 1)
IF (MYSQL_INCLUDE_DIR AND MYSQL_LIB_DIR)
SET(MYSQL_FOUND TRUE)
MESSAGE(STATUS "MySQL Include dir: ${MYSQL_INCLUDE_DIR}")
MESSAGE(STATUS "MySQL Library : ${MYSQL_LIBRARIES}")
MESSAGE(STATUS "MySQL Library dir: ${MYSQL_LIB_DIR}")
MESSAGE(STATUS "MySQL CXXFLAGS: ${MYSQL_CXXFLAGS}")
MESSAGE(STATUS "MySQL Link flags: ${MYSQL_LINK_FLAGS}")
IF (MYSQL_VERSION)
MESSAGE(STATUS "MySQL Version: ${MYSQL_VERSION}")
ELSE (MYSQL_VERSION)
IF(WIN32)
#SET(CMAKE_REQUIRED_LIBRARIES ${MYSQL_LIB})
ELSE(WIN32)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckLibraryExists)
# For now this works only on *nix
SET(CMAKE_REQUIRED_LIBRARIES ${MYSQL_LIBRARIES})
SET(CMAKE_REQUIRED_INCLUDES ${MYSQL_INCLUDE_DIR})
CHECK_FUNCTION_EXISTS("mysql_set_character_set" HAVE_SET_CHARSET)
CHECK_LIBRARY_EXISTS(mysqlclient "mysql_set_character_set" ${MYSQL_LIB_DIR} HAVE_SET_CHARSET_IN_LIB)
SET(CMAKE_REQUIRED_LIBRARIES)
SET(CMAKE_REQUIRED_INCLUDES)
IF (HAVE_SET_CHARSET OR HAVE_SET_CHARSET_IN_LIB)
MESSAGE(STATUS "libmysql version - ok")
ELSE (HAVE_SET_CHARSET OR HAVE_SET_CHARSET_IN_LIB)
MESSAGE(FATAL_ERROR "Versions < 4.1.13 (for MySQL 4.1.x) and < 5.0.7 for (MySQL 5.0.x) are not supported. Please update your libraries.")
ENDIF (HAVE_SET_CHARSET OR HAVE_SET_CHARSET_IN_LIB)
ENDIF(WIN32)
ENDIF(MYSQL_VERSION)
MESSAGE(STATUS "MySQL Include dir: ${MYSQL_INCLUDE_DIR}")
MESSAGE(STATUS "MySQL Library dir: ${MYSQL_LIB_DIR}")
MESSAGE(STATUS "MySQL CXXFLAGS: ${MYSQL_CXXFLAGS}")
MESSAGE(STATUS "MySQL Link flags: ${MYSQL_LINK_FLAGS}")
INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIR})
LINK_DIRECTORIES(${MYSQL_LIB_DIR})
ELSE (MYSQL_INCLUDE_DIR AND MYSQL_LIB_DIR)
IF(NOT WIN32)
MESSAGE(SEND_ERROR "mysql_config wasn't found, -DMYSQL_CONFIG_EXECUTABLE=...")
ENDIF(NOT WIN32)
MESSAGE(FATAL_ERROR "Cannot find MySQL. Include dir: ${MYSQL_INCLUDE_DIR} library dir: ${MYSQL_LIB_DIR} cxxflags: ${MYSQL_CXXFLAGS}")
ENDIF (MYSQL_INCLUDE_DIR AND MYSQL_LIB_DIR)

View File

@ -1,50 +0,0 @@
# - Try to find Sqlite
# Once done this will define
#
# SQLITE_FOUND - system has Sqlite
# SQLITE_INCLUDE_DIR - the Sqlite include directory
# SQLITE_LIBRARIES - Link these to use Sqlite
# SQLITE_DEFINITIONS - Compiler switches required for using Sqlite
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# Copyright (c) 2008, Gilles Caulier, <caulier.gilles@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES )
# in cache already
SET(Sqlite_FIND_QUIETLY TRUE)
endif ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES )
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
if( NOT WIN32 )
find_package(PkgConfig)
pkg_check_modules(PC_SQLITE QUIET sqlite3)
set(SQLITE_DEFINITIONS ${PC_SQLITE_CFLAGS_OTHER})
endif( NOT WIN32 )
find_path(SQLITE_INCLUDE_DIR NAMES sqlite3.h
PATHS
${PC_SQLITE_INCLUDEDIR}
${PC_SQLITE_INCLUDE_DIRS}
)
find_library(SQLITE_LIBRARIES NAMES sqlite3
PATHS
${PC_SQLITE_LIBDIR}
${PC_SQLITE_LIBRARY_DIRS}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Sqlite DEFAULT_MSG SQLITE_INCLUDE_DIR SQLITE_LIBRARIES )
# show the SQLITE_INCLUDE_DIR and SQLITE_LIBRARIES variables only in the advanced view
mark_as_advanced(SQLITE_INCLUDE_DIR SQLITE_LIBRARIES )

View File

@ -1,23 +0,0 @@
# - Find StormLib
# Find StormLib headers and libraries.
#
# StormLib_INCLUDE_DIR - where to find StormLib.h, etc.
# StormLib_LIBRARY - List of libraries when using StormLib.
# StormLib_FOUND - True if StormLib found.
# Look for the header file.
FIND_PATH( StormLib_INCLUDE_DIR NAMES StormLib.h
PATHS /usr/include /usr/local/include)
MARK_AS_ADVANCED(StormLib_INCLUDE_DIR)
# Look for the library.
FIND_LIBRARY( StormLib_LIBRARY NAMES storm
PATHS /usr/lib /usr/lib64 )
MARK_AS_ADVANCED(StormLib_LIBRARY)
# Copy the results to the output variables.
IF(StormLib_INCLUDE_DIR AND StormLib_LIBRARY)
SET(StormLib_FOUND 1)
ELSE(StormLib_INCLUDE_DIR AND StormLib_LIBRARY)
SET(StormLib_FOUND 0)
ENDIF(StormLib_INCLUDE_DIR AND StormLib_LIBRARY)

View File

@ -1,23 +0,0 @@
# - Find bncsutil
# Find bncsutil headers and libraries.
#
# bncsutil_INCLUDE_DIR - where to find bncsutil.h, etc.
# bncsutil_LIBRARY - List of libraries when using bncsutil.
# bncsutil_FOUND - True if bncsutil found.
# Look for the header file.
FIND_PATH( bncsutil_INCLUDE_DIR NAMES bncsutil.h
PATHS /usr/include/bncsutil /usr/local/include/bncsutil)
MARK_AS_ADVANCED(bncsutil_INCLUDE_DIR)
# Look for the library.
FIND_LIBRARY( bncsutil_LIBRARY NAMES bncsutil
PATHS /usr/lib /usr/lib64 )
MARK_AS_ADVANCED(bncsutil_LIBRARY)
# Copy the results to the output variables.
IF(bncsutil_INCLUDE_DIR AND bncsutil_LIBRARY)
SET(bncsutil_FOUND 1)
ELSE(bncsutil_INCLUDE_DIR AND bncsutil_LIBRARY)
SET(bncsutil_FOUND 0)
ENDIF(bncsutil_INCLUDE_DIR AND bncsutil_LIBRARY)

View File

@ -1,41 +0,0 @@
--- a/ghost/ghost.cpp
+++ b/ghost/ghost.cpp
@@ -233,15 +233,23 @@
{
srand( time( NULL ) );
+// we need a full path for the config file since we could install system-wide so the executable is not in the same place as the config --Dessa
+#ifdef CONFIGPATH
+ gCFGFile = CONFIGPATH "ghost.cfg";
+#else
gCFGFile = "ghost.cfg";
-
+#endif
if( argc > 1 && argv[1] )
gCFGFile = argv[1];
// read config file
CConfig CFG;
+#ifdef CONFIGPATH
+ CFG.Read( CONFIGPATH "default.cfg" );
+#else
CFG.Read( "default.cfg" );
+#endif
CFG.Read( gCFGFile );
gLogFile = CFG.GetString( "bot_log", string( ) );
gLogMethod = CFG.GetInt( "bot_logmethod", 1 );
@@ -1459,8 +1467,12 @@
void CGHost :: LoadIPToCountryData( )
{
ifstream in;
+// bah, why isn't that configurable? hardcode for now --Dessa
+#ifdef CONFIGPATH
+ in.open( CONFIGPATH "/ip-to-country.csv" );
+#else
in.open( "ip-to-country.csv" );
-
+#endif
if( in.fail( ) )
CONSOLE_Print( "[GHOST] warning - unable to read file [ip-to-country.csv], iptocountry data not loaded" );
else

View File

@ -1,111 +0,0 @@
--- a/ghost/ghost.cpp
+++ b/ghost/ghost.cpp
@@ -677,12 +677,20 @@
if( m_AdminGamePort == m_HostPort )
CONSOLE_Print( "[GHOST] warning - admingame_port and bot_hostport are set to the same value, you won't be able to host any games" );
}
- else
- m_AdminGame = NULL;
-
- if( m_BNETs.empty( ) && !m_AdminGame )
- CONSOLE_Print( "[GHOST] warning - no battle.net connections found and no admin game created" );
-
+ else
+ m_AdminGame = NULL;
+
+ // create the listening socket for broadcasters;
+
+ int Port = CFG->GetInt("bot_broadcasters_port", 6969 );
+ m_GameBroadcastersListener = new CTCPServer( );
+ m_GameBroadcastersListener->Listen( string( ),Port );
+ CONSOLE_Print( "[GHOST] Listening for game broadcasters on port [" + UTIL_ToString( Port ) +"]" );
+
+
+ if( m_BNETs.empty( ) && !m_AdminGame )
+ CONSOLE_Print( "[GHOST] warning - no battle.net connections found and no admin game created" );
+
#ifdef GHOST_MYSQL
CONSOLE_Print( "[GHOST] GHost++ Version " + m_Version + " (with MySQL support)" );
#else
@@ -881,9 +889,23 @@
{
(*i)->SetFD( &fd, &send_fd, &nfds );
++NumFDs;
- }
-
- // before we call select we need to determine how long to block for
+ }
+ // 6. the Game Broadcasters
+ for(vector<CTCPSocket * >::iterator i = m_GameBroadcasters.begin( ); i!= m_GameBroadcasters.end( ); i++ )
+ {
+ if ( (*i)->GetConnected( ) && !(*i)->HasError( ) )
+ {
+ (*i)->SetFD( &fd, &send_fd, &nfds );
+ NumFDs++;
+ }
+ }
+
+ // 7. the listener for game broadcasters
+ m_GameBroadcastersListener->SetFD( &fd, &send_fd,&nfds );
+ NumFDs++;
+
+
+ // before we call select we need to determine how long to block for
// previously we just blocked for a maximum of the passed usecBlock microseconds
// however, in an effort to make game updates happen closer to the desired latency setting we now use a dynamic block interval
// note: we still use the passed usecBlock as a hard maximum
@@ -1170,12 +1192,37 @@
}
}
- m_LastAutoHostTime = GetTime( );
- }
-
- return m_Exiting || AdminExit || BNETExit;
-}
-
+ m_LastAutoHostTime = GetTime( );
+ }
+
+ CTCPSocket *NewSocket = m_GameBroadcastersListener->Accept( &fd );
+ if ( NewSocket )
+ {
+ m_GameBroadcasters.push_back( NewSocket );
+ CONSOLE_Print("[GHOST] Game Broadcaster [" + NewSocket->GetIPString( ) +"] connected" );
+ //BYTEARRAY info;
+ // UTIL_AppendByteArray( info, m_AdminGamePort,false );
+ //UTIL_AppendByteArray( info, m_HostPort, false );
+ //NewSocket->PutBytes( info );
+ }
+ for(vector<CTCPSocket * >::iterator i = m_GameBroadcasters.begin( ); i!= m_GameBroadcasters.end( ); )
+ {
+ if ( (*i)->HasError( ) || !(*i)->GetConnected( ) )
+ {
+ CONSOLE_Print("[GHOST] Game Broadcaster [" + (*i)->GetIPString( ) +"] disconnected");
+ delete *i;
+ i = m_GameBroadcasters.erase( i );
+ continue;
+ }
+ //(*i)->DoRecv( &fd );
+ (*i)->DoSend( &send_fd );
+ i++;
+ }
+
+
+ return m_Exiting || AdminExit || BNETExit;
+}
+
void CGHost :: EventBNETConnecting( CBNET *bnet )
{
if( m_AdminGame )
--- a/ghost/ghost.h
+++ b/ghost/ghost.h
@@ -134,6 +134,8 @@
bool m_TCPNoDelay; // config value: use Nagle's algorithm or not
uint32_t m_MatchMakingMethod; // config value: the matchmaking method
uint32_t m_MapGameType; // config value: the MapGameType overwrite (aka: refresh hack)
+ CTCPServer *m_GameBroadcastersListener; // listening socket for game broadcasters
+ vector<CTCPSocket *> m_GameBroadcasters;// vector of sockets that broadcast the games
CGHost( CConfig *CFG );
~CGHost( );

View File

@ -1,14 +0,0 @@
--- a/ghost/ghostdbsqlite.cpp
+++ b/ghost/ghostdbsqlite.cpp
@@ -23,8 +23,9 @@
#include "config.h"
#include "ghostdb.h"
#include "ghostdbsqlite.h"
-#include "sqlite3.h"
+#include <sqlite3.h>
+
//
// CQSLITE3 (wrapper class)
//

View File

@ -1,87 +0,0 @@
--- a/ghost/ghost.cpp
+++ b/ghost/ghost.cpp
@@ -48,7 +48,7 @@
#endif
#define __STORMLIB_SELF__
-#include <stormlib/StormLib.h>
+#include <StormLib.h>
/*
@@ -1408,7 +1408,7 @@
char *SubFileData = new char[FileLength];
DWORD BytesRead = 0;
- if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead ) )
+ if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead, NULL ) )
{
CONSOLE_Print( "[GHOST] extracting Scripts\\common.j from MPQ file to [" + m_MapCFGPath + "common.j]" );
UTIL_FileWrite( m_MapCFGPath + "common.j", (unsigned char *)SubFileData, BytesRead );
@@ -1435,7 +1435,7 @@
char *SubFileData = new char[FileLength];
DWORD BytesRead = 0;
- if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead ) )
+ if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead, NULL ) )
{
CONSOLE_Print( "[GHOST] extracting Scripts\\blizzard.j from MPQ file to [" + m_MapCFGPath + "blizzard.j]" );
UTIL_FileWrite( m_MapCFGPath + "blizzard.j", (unsigned char *)SubFileData, BytesRead );
--- a/ghost/map.cpp
+++ b/ghost/map.cpp
@@ -26,7 +26,7 @@
#include "map.h"
#define __STORMLIB_SELF__
-#include <stormlib/StormLib.h>
+#include <StormLib.h>
#define ROTL(x,n) ((x)<<(n))|((x)>>(32-(n))) // this won't work with signed types
#define ROTR(x,n) ((x)>>(n))|((x)<<(32-(n))) // this won't work with signed types
@@ -313,7 +313,7 @@
char *SubFileData = new char[FileLength];
DWORD BytesRead = 0;
- if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead ) )
+ if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead, NULL ) )
{
CONSOLE_Print( "[MAP] overriding default common.j with map copy while calculating map_crc/sha1" );
OverrodeCommonJ = true;
@@ -349,7 +349,7 @@
char *SubFileData = new char[FileLength];
DWORD BytesRead = 0;
- if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead ) )
+ if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead, NULL ) )
{
CONSOLE_Print( "[MAP] overriding default blizzard.j with map copy while calculating map_crc/sha1" );
OverrodeBlizzardJ = true;
@@ -407,7 +407,7 @@
char *SubFileData = new char[FileLength];
DWORD BytesRead = 0;
- if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead ) )
+ if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead, NULL ) )
{
if( *i == "war3map.j" || *i == "scripts\\war3map.j" )
FoundScript = true;
@@ -474,7 +474,7 @@
char *SubFileData = new char[FileLength];
DWORD BytesRead = 0;
- if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead ) )
+ if( SFileReadFile( SubFile, SubFileData, FileLength, &BytesRead, NULL ) )
{
istringstream ISS( string( SubFileData, BytesRead ) );
--- a/ghost/socket.h
+++ b/ghost/socket.h
@@ -79,8 +79,6 @@
#define SOCKET_ERROR -1
#define closesocket close
-
- extern int GetLastError( );
#endif
#ifndef INADDR_NONE

View File

@ -1,501 +0,0 @@
#####################
# BOT CONFIGURATION #
#####################
### the log file
bot_log = /var/log/ghost++.log
### the log method
### set this to 1 to leave the log unlocked while GHost++ is running (may be slower, particularly on Windows)
### set this to 2 to lock the log while GHost++ is running (may be faster, particularly on Windows)
### note: if the log is locked you will not be able to edit/move/delete it while GHost++ is running
bot_logmethod = 1
### the language file
bot_language = /etc/ghost++/language.cfg
### the path to your local Warcraft III directory
### this path must contain war3.exe, storm.dll, and game.dll
### if this path contains War3Patch.mpq the bot will attempt to extract "Scripts\common.j" and "Scripts\blizzard.j" on startup and write them to bot_mapcfgpath (which is defined later in this file)
### common.j and blizzard.j are only required for automatically calculating map_crc, you do not need them if your map config files already contain map_crc
bot_war3path = /var/lib/ghost++
### whether to act as Warcraft III: The Frozen Throne or not
### set this to 0 to act as Warcraft III: Reign of Chaos (you WILL NOT need to enter a TFT cd key to login to battle.net)
### set this to 1 to act as Warcraft III: The Frozen Throne (you WILL need to enter a TFT cd key to login to battle.net)
bot_tft = 1
### the address GHost++ will bind to when hosting games (leave it blank to bind to all available addresses)
### if you don't know what this is just leave it blank
bot_bindaddress =
### the port GHost++ will host games on (this must be different from your admingame_port)
bot_hostport = 6112
### whether to allow GProxy++ reliable reconnects or not
### you should ensure that bot_synclimit is set to a reasonable value if you choose to allow GProxy++ reliable reconnects
### a reasonable value is 5000 divided by bot_latency, e.g. if bot_latency is 100 use a value of 50 for bot_synclimit
bot_reconnect = 0
### the port GHost++ will listen for GProxy++ reliable reconnects on
bot_reconnectport = 6114
### the maximum number of minutes to wait for a GProxy++ client to reconnect to the game
### if you set this to 0 or 1 GHost++ will wait for up to 1 minute
### if you set this to 10 or more GHost++ will only wait for up to 10 minutes
### due to the way GProxy++ works, increasing this value increases bandwidth requirements and CPU requirements on the players' computers
### players can always vote to drop a player who is lagging after waiting 45 seconds regardless of this value
bot_reconnectwaittime = 3
### maximum number of games to host at once
bot_maxgames = 5
### command trigger for ingame only (battle.net command triggers are defined later)
bot_commandtrigger = !
### the path to the directory where you keep your map config files
### this directory can also contain common.j and blizzard.j (extracted from War3Patch.mpq)
### common.j and blizzard.j are only required for automatically calculating map_crc, you do not need them if your map config files already contain map_crc
bot_mapcfgpath = /etc/ghost++/mapcfgs
### the path to the directory where you keep your savegame files
bot_savegamepath = /var/lib/ghost++/savegames
### the path to the directory where you keep your map files
### GHost++ doesn't require map files but if it has access to them it can send them to players and automatically calculate most map config values
### GHost++ will search [bot_mappath + map_localpath] for the map file (map_localpath is set in each map's config file)
bot_mappath = /var/lib/ghost++/maps
### whether to save replays or not
bot_savereplays = 0
### the path to the directory where you want GHost++ to save replays
bot_replaypath = /var/lib/ghost++/replays
### the Warcraft 3 version to save replays as
replay_war3version = 26
### the Warcraft 3 build number to save replays as (this is specific to each Warcraft 3 version)
### patch 1.23: war3version 23, buildnumber 6058
### patch 1.24: war3version 24, buildnumber 6059
### patch 1.24b: war3version 24, buildnumber 6059
replay_buildnumber = 6059
### the bot's virtual host name as it appears in the game lobby
### colour codes are defined by the sequence "|cFF" followed by a six character hexadecimal colour in RRGGBB format (e.g. 0000FF for pure blue)
### the virtual host name cannot be longer than 15 characters including the colour code, if you try to go over this limit GHost++ will use the default virtual host name
bot_virtualhostname = |cFF4080C0GHost
### whether to hide each player's IP address from other players or not
bot_hideipaddresses = 0
### whether to check for multiple IP address usage or not
bot_checkmultipleipusage = 1
### whether to do automatic spoof checks or not
### you can always manually spoof check by whispering the bot (and in fact this is required before running admin commands)
### set to 0 to disable automatic spoof checks
### set to 1 to enable automatic spoof checks on all players
### set to 2 to enable automatic spoof checks on potential admins only
bot_spoofchecks = 2
### whether to require spoof checks or not
### this controls whether the bot will require players to spoof check before starting the game
### it does NOT control whether the bot will require players to spoof check before running admin commands - spoof checks are ALWAYS required for admin status
### if you require spoof checks, players will be kicked from the lobby if they haven't spoof checked within 20 seconds of joining (autohosted games only)
bot_requirespoofchecks = 0
### whether to consider admins and root admins as reserved players or not
### reserved players are allowed to join full games because another player will be kicked to allow them to join
bot_reserveadmins = 1
### whether to display game refresh messages by default
### this can always be changed for a particular game with the !refresh command
bot_refreshmessages = 0
### whether to automatically lock games when the owner joins
bot_autolock = 0
### whether to automatically save games when a player disconnects
### this can always be changed for a particular game with the !autosave command
bot_autosave = 0
### whether to allow map downloads or not
### set to 0 to disable map downloads
### set to 1 to enable map downloads
### set to 2 to enable conditional map downloads (an admin must start each map download with the !download or !dl command)
bot_allowdownloads = 1
### whether to ping players during map downloads or not
### GHost++ will always stop pinging any players who are downloading the map
### this config value determines whether GHost++ should stop pinging *all* players when at least one player is downloading the map
bot_pingduringdownloads = 0
### the maximum number of players allowed to download the map at the same time
bot_maxdownloaders = 3
### the maximum combined download speed of all players downloading the map (in KB/sec)
bot_maxdownloadspeed = 100
### use LC style pings (divide actual pings by two)
bot_lcpings = 1
### auto kick players with ping higher than this
bot_autokickping = 400
### the ban method
### if bot_banmethod = 1, GHost++ will automatically reject players using a banned name
### if bot_banmethod = 2, GHost++ will automatically reject players using a banned IP address
### if bot_banmethod = 3, GHost++ will automatically reject players using a banned name or IP address
### if bot_banmethod is anything else GHost++ will print a message when a banned player joins but will not automatically reject them
bot_banmethod = 1
### the IP blacklist file
bot_ipblacklistfile = /etc/ghost++/ipblacklist.txt
### automatically close the game lobby if a reserved player (or admin) doesn't join it for this many minutes
### games which are set to automatically start when enough players join are exempt from this limit (e.g. autohosted games)
bot_lobbytimelimit = 10
### the game latency
### this can always be changed for a particular game with the !latency command (which enforces a minimum of 20 and a maximum of 500)
bot_latency = 100
### the maximum number of packets a player is allowed to get out of sync by before starting the lag screen
### before version 8.0 GHost++ did not have a lag screen which is the same as setting this to a very high number
### this can always be changed for a particular game with the !synclimit command (which enforces a minimum of 10 and a maximum of 10000)
bot_synclimit = 50
### whether votekicks are allowed or not
bot_votekickallowed = 1
### the percentage of players required to vote yes for a votekick to pass
### the player starting the votekick is assumed to have voted yes and the player the votekick is started against is assumed to have voted no
### the formula for calculating the number of votes needed is votes_needed = ceil( ( num_players - 1 ) * bot_votekickpercentage / 100 )
### this means it will round UP the number of votes required
### if you set it to 100 it will require 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 10/11, and 11/12 votes to pass
### if you set it to 90 it will require 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, 9/10, 9/11, and 10/12 votes to pass
### if you set it to 80 it will require 2/3, 3/4, 4/5, 4/6, 5/7, 6/8, 7/9, 8/10, 8/11, and 9/12 votes to pass
### if you set it to 70 it will require 2/3, 3/4, 3/5, 4/6, 5/7, 5/8, 6/9, 7/10, 7/11, and 8/12 votes to pass
### if you set it to 60 it will require 2/3, 2/4, 3/5, 3/6, 4/7, 5/8, 5/9, 6/10, 6/11, and 7/12 votes to pass
bot_votekickpercentage = 100
### the default map config (the ".cfg" will be added automatically if you leave it out)
bot_defaultmap = wormwar
### the MOTD file
### the first 8 lines of this file will be displayed when a player joins the game
### if this file doesn't exist a default MOTD will be used
bot_motdfile = /etc/ghost++/motd.txt
### the gameloaded file
### the first 8 lines of this file will be displayed when the game finished loading (after the player loading times are displayed)
bot_gameloadedfile = /etc/ghost++/gameloaded.txt
### the gameover file
### the first 8 lines of this file will be displayed when the game is over
### this only works when using a stats class - note: at the time of this writing the only stats class is for DotA maps
bot_gameoverfile = /etc/ghost++/gameover.txt
### whether to send "local admin messages" or not
### these messages are battle.net chat messages, whispers, and emotes which the bot receives and passes on to the "local admin"
### the local admin is the game owner if they are playing from a LAN or the same computer as the bot
### this is useful when you are using the admin game to play with one set of CD keys and you want messages sent to the bot to be relayed to you
### you can enable or disable this for a particular game with the !messages command
bot_localadminmessages = 1
### the "TCP no delay" flag
### this controls whether or not your operating system should use the "no delay" algorithm on game sockets
### the algorithm is designed to reduce latency by sending data in small packets as soon as possible rather than waiting to send a single larger packet
### enabling this algorithm requires additional bandwidth because it is a less efficient way of sending data
### however, it may reduce game latencies in some cases
tcp_nodelay = 0
### the matchmaking method
### this controls how the bot matches players when they join the game when using !autohostmm
### set it to 0 to disable matchmaking (first come first served, even if their scores are very different)
### set it to 1 to use the "furthest score" method (the player with the furthest score from the average is kicked to make room for another player)
### set it to 2 to use the "lowest score" method (the player with the lowest score is kicked to make room for another player)
bot_matchmakingmethod = 1
### the mapgametype overwrite (advance)
### This controls the mapgametype overwrite. Use with caution as this can result in an ipban from battle.net services or make users unavailable to join your bot with an invalid number
### Example numbers can be found at (http://www.codelain.com/forum/index.php?topic=11373.msg135301#msg135301)
### set it to 0 to disable mapgametype overwrite
bot_mapgametype = 0
############################
# ADMIN GAME CONFIGURATION #
############################
### whether to create the admin game or not (see readme.txt for more information)
admingame_create = 0
### the port GHost++ will host the admin game on (this must be different from your bot_hostport)
admingame_port = 6113
### the admin game password
admingame_password =
### the default map config to use in the admin game
### if this value is blank the bot will use a hardcoded map instead
### it's recommended that you use the hardcoded map instead of specifying a different one
### this value exists because the hardcoded map is specific to Warcraft 3 versions and you may wish to use a previous or newer version
### the ".cfg" will be added automatically if you leave it out
admingame_map =
#####################
# LAN CONFIGURATION #
#####################
### the Warcraft 3 version to use when broadcasting LAN games
lan_war3version = 26
### the UDP broadcast target
### if this value is blank the bot will try to broadcast LAN games on the default interface which is chosen by your operating system
### sometimes your operating system will choose the wrong interface when more than one exists
### therefore you can use this value to force the bot to use a specific interface
### for example you may set it to "192.168.1.255" to broadcast LAN games to the 192.168.1.x subnet
udp_broadcasttarget =
### the UDP "don't route" flag
udp_dontroute = 0
### the Ghost++ Game Broadcasters incoming port leave unset for default, only works with ggb useflag enabled
# bot_broadcasters_port = 6969
##########################
# AUTOHOST CONFIGURATION #
##########################
### this section of the config file is for enabling autohost when the bot starts up without having to issue a command
### you can activate the autohost feature without changing anything here by using the !autohost command
autohost_maxgames = 0
autohost_startplayers = 0
autohost_gamename =
autohost_owner =
##########################
# DATABASE CONFIGURATION #
##########################
### database type
### use "sqlite3" for a local SQLite database
### use "mysql" for any MySQL database
db_type = sqlite3
### sqlite3 database configuration
### this is only used if your database type is SQLite
db_sqlite3_file = /var/lib/ghost++/ghost.dbs
### mysql database configuration
### this is only used if your database type is MySQL
db_mysql_server = localhost
db_mysql_database = ghost
db_mysql_user = YOUR_USERNAME
db_mysql_password = YOUR_PASSWORD
db_mysql_port = 0
### the bot ID is included each time the bot adds data to the MySQL database
### it is used to identify where each row of data came from when you configure multiple bots to connect to the same MySQL database
### GHost++ does not use the bot ID number itself, it's just to help you keep track of the data in your database
db_mysql_botid = 1
############################
# BATTLE.NET CONFIGURATION #
############################
### which battle.net server to connect to
### 1.) useast.battle.net
### 2.) uswest.battle.net
### 3.) asia.battle.net
### 4.) europe.battle.net
### note that each banned player is tied to the realm it was created on and the realm is case sensitive
### so if you change your realm from useast.battle.net to USEAST.BATTLE.NET it'll still connect but anyone previously banned will not be counted as banned until you change it back
bnet_server = useast.battle.net
### the server alias
### this name will be used to identify the battle.net server in the GHost++ console
### if you leave it blank it will use a short name such as "USEast" for official battle.net servers or it will use the actual server address
bnet_serveralias = USEast
### your Warcraft III: Reign of Chaos CD key
### you cannot use the same CD key here that you yourself use to login to battle.net if you plan to login at the same time as your bot
bnet_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF
### your Warcraft III: The Frozen Throne CD key
### you cannot use the same CD key here that you yourself use to login to battle.net if you plan to login at the same time as your bot
bnet_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF
### the locale specifies the area of the world you are from
### battle.net uses this to group players together, showing them games hosted by players and bots mostly from their own area
### it's important to set this to the correct value to increase the effectiveness of the game refresher
### if you are using Windows you can set this to "system" to use the locale of your system
### otherwise you can use the list at the following URL to get the correct value for your area:
### http://msdn.microsoft.com/en-us/library/0h88fahh%28VS.85%29.aspx
### put the "decimal value" here, e.g. 1033 is the default for "English - United States"
### note: you cannot use a value of "system" on Linux, doing so will use a default value of 1033 instead
bnet_locale = 1033
### your battle.net username
### you cannot use the same username here that you yourself use to login to battle.net if you plan to login at the same time as your bot
bnet_username =
### your battle.net password
bnet_password =
### the first channel to join upon entering battle.net
bnet_firstchannel = The Void
### the root admins on this battle.net server only
### seperate each name with a space, e.g. bnet_rootadmin = Varlock Kilranin Instinct121
bnet_rootadmin =
### command trigger for this battle.net server only
bnet_commandtrigger = !
### whether to automatically add your friends list to each game's reserved list
bnet_holdfriends = 1
### whether to automatically add your clan members list to each game's reserved list
bnet_holdclan = 1
### whether to allow anonymous users (non admins) to use public commands such as !stats and !statsdota on this battle.net connection
### if you are having trouble with spammers causing your bot to flood the server you should disable this
bnet_publiccommands = 1
### BNLS server information for Warden handling (see readme.txt for more information)
### you will need to use a valid BNLS server here if you are connecting to an official battle.net realm or you will be disconnected every two minutes
### NB: not true anymore.
bnet_bnlsserver = localhost
bnet_bnlsport = 9367
bnet_bnlswardencookie = 1
### you will need to edit this section of the config file if you're connecting to a PVPGN server
### your PVPGN server operator will tell you what to put here
bnet_custom_war3version = 24
bnet_custom_exeversion =
bnet_custom_exeversionhash =
bnet_custom_passwordhashtype =
bnet_custom_pvpgnrealmname = PvPGN Realm
###
### example configuration for connecting to a second official battle.net server
###
# bnet2_server = uswest.battle.net
# bnet2_serveralias = USWest
# bnet2_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet2_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet2_locale = system
# bnet2_username =
# bnet2_password =
# bnet2_firstchannel = The Void
# bnet2_rootadmin =
# bnet2_commandtrigger = !
# bnet2_holdfriends = 1
# bnet2_holdclan = 1
# bnet2_publiccommands = 1
# bnet2_bnlsserver = localhost
# bnet2_bnlsport = 9367
# bnet2_bnlswardencookie = 2
###
### example configuration for connecting to a third PVPGN battle.net server
###
# bnet3_server = server.eurobattle.net
# bnet3_serveralias = EuroBattle
# bnet3_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet3_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF
# bnet3_locale = system
# bnet3_username =
# bnet3_password =
# bnet3_firstchannel = The Void
# bnet3_rootadmin =
# bnet3_commandtrigger = !
# bnet3_holdfriends = 1
# bnet3_holdclan = 1
# bnet3_publiccommands = 1
# bnet3_custom_war3version = 24
# bnet3_custom_exeversion = 184 0 22 1
# bnet3_custom_exeversionhash = 219 152 153 144
# bnet3_custom_passwordhashtype = pvpgn
# bnet3_custom_pvpgnrealmname = PvPGN Realm

View File

@ -1,58 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="6"
inherit cmake-utils
DESCRIPTION="Warcraft 3 Game Host"
HOMEPAGE="http://www.codelain.com"
SRC_URI="http://people.znc.in/~dessa/ghost/${P}.tar.xz"
RESTRICT="mirror"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="ggb mysql"
DEPEND="dev-libs/boost:=
dev-games/bncsutil
dev-games/StormLib:=
dev-db/sqlite
mysql? ( virtual/mysql )
sys-libs/zlib"
RDEPEND="${DEPEND}"
#pkg_setup() {
# enewgroup ghost
# enewuser ghost -1 -1 /var/lib/ghost ghost
#}
src_prepare() {
epatch "${FILESDIR}/${PN}-stormlib-8.22.patch"
epatch "${FILESDIR}/${PN}-sqlite-include-guard.patch"
epatch "${FILESDIR}/${PN}-configpath.patch"
use ggb && epatch "${FILESDIR}/${PN}-ggb.patch"
cp "${FILESDIR}/CMakeLists.txt" "${S}"
cp -r "${FILESDIR}/cmake" "${S}"
cp "${FILESDIR}/ghost++.cfg" "${S}"
default
}
src_configure() {
local mycmakeargs=(
$(cmake-utils_use_find_package mysql MySQL)
-DCONFIGPATH="${EROOT}etc/ghost++/")
cmake-utils_src_configure
}
src_install() {
cmake-utils_src_install
# keepdir /var/lib/ghost++ /var/run/ghost++ /var/log/ghost++
# fowners -R ghost /var/lib/ghost++ /var/run/ghost++ /var/log/ghost++ /etc/ghost++
# fperms 750 /var/lib/ghost++ /var/run/ghost++ /var/log/ghost++
}