Browse Source

Merge pull request #622 from dgibbs64/BrainBread-2

BrainBread 2 Support Added
Daniel Gibbs 10 năm trước cách đây
mục cha
commit
bb9cee5690

+ 138 - 0
BrainBread2/bb2server

@@ -0,0 +1,138 @@
+#!/bin/bash
+# BrainBread 2
+# Server Management Script
+# Author: Daniel Gibbs
+# Website: http://gameservermanagers.com
+if [ -f ".dev-debug" ]; then
+	exec 5>dev-debug.log
+	BASH_XTRACEFD="5"
+	set -x
+fi
+
+version="090116"
+
+#### Variables ####
+
+# Notification Email
+# (on|off)
+emailnotification="off"
+email="email@example.com"
+
+# Steam login
+steamuser="username"
+steampass="password"
+
+# Start Variables
+defaultmap="bba_barracks"
+maxplayers="20"
+port="27015"
+sourcetvport="27020"
+clientport="27005"
+ip="0.0.0.0"
+updateonstart="off"
+
+# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
+fn_parms(){
+parms="-game brainbread2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+}
+
+#### Advanced Variables ####
+
+# Github Branch Select
+# Allows for the use of different function files
+# from a different repo and/or branch.
+githubuser="dgibbs64"
+githubrepo="linuxgsm"
+githubbranch="master"
+
+# Steam
+appid="346330"
+
+# Server Details
+servicename="bb2-server"
+gamename="BrainBread 2"
+engine="source"
+
+# Directories
+rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
+selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
+lockselfname=".${servicename}.lock"
+filesdir="${rootdir}/serverfiles"
+systemdir="${filesdir}/brainbread2"
+executabledir="${filesdir}"
+executable="./srcds_run"
+servercfg="${servicename}.cfg"
+servercfgdir="${systemdir}/cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+servercfgdefault="${servercfgdir}/lgsm-default.cfg"
+backupdir="${rootdir}/backups"
+
+# Logging
+logdays="7"
+gamelogdir="${systemdir}/logs"
+scriptlogdir="${rootdir}/log/script"
+consolelogdir="${rootdir}/log/console"
+
+scriptlog="${scriptlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+emaillog="${scriptlogdir}/${servicename}-email.log"
+
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
+
+##### Script #####
+# Do not edit
+
+fn_getgithubfile(){
+filename=$1
+exec=$2
+fileurl=${3:-$filename}
+filepath="${rootdir}/${filename}"
+filedir=$(dirname "${filepath}")
+# If the function file is missing, then download
+if [ ! -f "${filepath}" ]; then
+	if [ ! -d "${filedir}" ]; then
+		mkdir "${filedir}"
+	fi
+	githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${fileurl}"
+	echo -e "    fetching ${filename}...\c"
+	if [ "$(command -v curl)" ]||[ "$(which curl >/dev/null 2>&1)" ]||[ -f "/usr/bin/curl" ]||[ -f "/bin/curl" ]; then
+		:
+	else	
+		echo -e "\e[0;31mFAIL\e[0m\n"
+		echo "Curl is not installed!"
+		echo -e ""
+		exit
+	fi
+	curl=$(curl --fail -o "${filepath}" "${githuburl}" 2>&1)
+	if [ $? -ne 0 ]; then
+		echo -e "\e[0;31mFAIL\e[0m\n"
+		echo "${curl}"
+		echo -e "${githuburl}\n"
+		exit
+	else
+		echo -e "\e[0;32mOK\e[0m"
+	fi	
+	if [ "${exec}" ]; then
+		chmod +x "${filepath}"
+	fi
+fi
+if [ "${exec}" ]; then
+	source "${filepath}"
+fi
+}
+
+fn_runfunction(){
+	fn_getgithubfile "functions/${functionfile}" 1
+}
+
+core_functions.sh(){
+# Functions are defined in core_functions.sh.
+functionfile="${FUNCNAME}"
+fn_runfunction
+}
+
+core_functions.sh
+
+getopt=$1
+core_getopt.sh

+ 200 - 0
BrainBread2/cfg/lgsm-default.cfg

@@ -0,0 +1,200 @@
+// ****************************************************************************
+//                                                                            *
+//     BrainBread 2 - server.cfg                                             *
+//     Version 080116                                                         *
+//                                                                            *
+// ****************************************************************************
+
+// ............................. Basic Settings ............................. //
+
+// Hostname for server.
+hostname "<hostname>"
+
+// RCON - remote console password.
+rcon_password "<rconpassword>"
+
+// Server password - for private servers.
+sv_password ""
+
+// Contact email for server sysop.
+sv_contact "email@example.com"
+
+// LAN Mode - If set the server will not show on the internet.
+// Default: sv_lan 0
+sv_lan 0
+
+// Cheats - Allows cheats on the server. Steam achievements and stats are disabled.
+// Default: 0
+sv_cheats 0
+
+// Friendly Fire - Allows team members to injure other members of their team.
+// 0 = Friendly fire off.
+// 1 = Friendly fire on.
+// Default: 0
+mp_friendlyfire 0
+
+// ........................ Game Specific Commands ........................ //
+// info: any commands that only apply to this game.
+
+
+// Mercy Value - Sets how many deaths until the players become human once again.
+// Default: bb2_allow_mercy 0
+bb2_allow_mercy 3
+
+// Late Joining - Allows players to spawn late.
+// default bb2_allow_latejoin 0
+bb2_allow_latejoin 1
+
+// Player Spawn Protection - Time in seconds after Spawn.
+// default bb2_spawn_protection 1
+bb2_spawn_protection 15
+
+// Profile System - Allow players to save and load there skills.
+// 0 = Disabled, skills are not saved.
+// 1 = Global, players can load there global skills.
+// 2 = Server, players save there skills to the server. Steam achievements and stats are disabled.
+// Default 1
+bb2_allow_profile_system 1
+
+// Allow NPC to score - Allow friendly npcs to affect scoring. For example for quests.
+// Default 1
+bb2_allow_npc_to_score 0
+
+// Vote Settings
+
+// Voting: Passing Votes - Percentage of players that are required to pass a vote.
+// Minimum: 0
+// Maximum: 100
+// Default 50
+bb2_votes_required 50
+
+// Voting: Ban Time - Number of minutes a player be banned if a vaote ban passes.
+// minimum: 0 (permanent)
+// default 30
+bb2_ban_time 30
+
+
+// Arena Settings
+
+// Arena: Respawn Interval Time (Seconds).
+// Minimum: 20
+// Default 40
+bb2_arena_respawn_time 25
+
+// Arena: Number of Reinforcements.
+// Minimum: 0
+// Maximum: 100
+// Default 14
+bb2_arena_reinforcement_count 14
+
+
+// Classic Mode Settings
+
+// Classic: Zombie No Team Change.
+// 0 = Players can become zombies.
+// 1 = Players cannot become zombies.
+// Default 0
+bb2_classic_zombie_noteamchange 1
+
+
+// Elimination Settings
+
+// Elimination: Team Fraglimit - Number of frags for a team to win a game.
+// Minimum: 10
+// Default 200
+bb2_elimination_fraglimit 200
+
+// Elimination: Respawn Time (Seconds).
+// Minimum: 1
+// Maximum: 30
+// Default 4
+bb2_elimination_respawn_time 5
+
+// Elimination: Respawn Time Scale - Increase the respawn time by this many seconds for the teams.
+// Minimum: 0
+// Maximum: 10
+// Default 1
+bb2_elimination_respawn_time_scale 1
+
+// Elimination: Extermination Score - The score a team should be awarded for exterminating (kill everyone before respawn) the other team. 
+// Minimum: 0
+// Maximum: 50
+// Default 25
+bb2_elimination_score_from_extermination 25
+
+// Elimination: Zombie Score - Number of point a zombie gets for a kill.
+// Minimum: 2
+// Maximum: 10
+// Default 5
+bb2_elimination_score_zombies 5
+
+// Elimination: Team Perk Duration - Number of seconds a team perk lasts.
+// Minimum: 5
+// Maximum: 60
+// Default 30
+bb2_elimination_teamperk_duration 30
+
+// Elimination: Team Perk Required Kills - Number of kills a team need to get in order to activate a team perk.
+// Minimum: 25
+// Maximum: 500
+// Default 50
+bb2_elimination_teamperk_kills_required 50
+
+
+// Zombie Settings
+
+// Zombie Lifespan - Number of minutes a regular zombie will last before dying.
+// Minimum: 1
+// Default 5
+bb2_zombie_lifespan 2
+
+// Max Zombies - Maximum number of zombies allowed in the game.
+// Minimum: 1
+// Maximum: 128
+// Default 50
+bb2_zombie_max 45
+
+
+// M1A1 Abrams Settings
+
+// M1A1 Abrams: Main Cannon Damage.
+// Minimum: 100
+// Maximum: 10000
+// Default 3000
+bb2_m1a1_damage 200
+
+// M1A1 Abrams: Machinegun Damage.
+// Minimum: 25
+// Maximum: 1000
+// Default 30
+bb2_m1a1_damage_machinegun 25
+
+// M1A1 Abrams: Friendly Fire (Including NPC's).
+// Minimum: 0
+// Maximum: 1
+// Default 1
+bb2_m1a1_friendly 1
+
+// M1A1 Abrams: Machinegun Rate of Fire.
+// Minimum: 0.01
+// Maximum: 1
+// Default 0.08
+bb2_m1a1_machinegun_firerate 1
+
+// M1A1 Abrams: Explosion Radius.
+// Minimum: 200
+// Maximum: 10000
+// Default 500
+bb2_m1a1_radius 500
+
+// M1A1 Abrams: Max Sight Range.
+// Minimum: 500
+// Maximum: 10000
+// Default 2000
+bb2_m1a1_range_max 1000
+
+// M1A1 Abrams: Min Sight Range.
+// Minimum: 250
+// Maximum: 5000
+// Default 400
+bb2_m1a1_range_min 250

+ 1 - 3
functions/command_install.sh

@@ -30,11 +30,9 @@ fix.sh
 install_logs.sh
 install_logs.sh
 install_gsquery.sh
 install_gsquery.sh
 install_config.sh
 install_config.sh
-if [ "${gamename}" == "Counter Strike: Global Offensive" ]; then
+if [ "${gamename}" == "Counter Strike: Global Offensive" ]||[ "${gamename}" == "Team Fortress 2" ]||[ "${gamename}" == "Brain Bread 2" ]; then
 	install_gslt.sh
 	install_gslt.sh
 elif [ "${gamename}" == "Teamspeak 3" ]; then
 elif [ "${gamename}" == "Teamspeak 3" ]; then
 	install_ts3db.sh
 	install_ts3db.sh
-elif [ "${gamename}" == "Team Fortress 2" ]; then
-	install_gslt.sh
 fi
 fi
 install_complete.sh
 install_complete.sh

+ 6 - 1
functions/install_config.sh

@@ -2,7 +2,7 @@
 # LGSM install_config.sh function
 # LGSM install_config.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
 # Website: http://gameservermanagers.com
-lgsm_version="271215"
+lgsm_version="100116"
 
 
 fn_defaultconfig(){
 fn_defaultconfig(){
 	echo "creating ${servercfg} config file."
 	echo "creating ${servercfg} config file."
@@ -165,6 +165,11 @@ elif [ "${gamename}" == "ARMA 3" ]; then
 	wget -N /dev/null ${githuburl}/Arma3/cfg/lgsm-default.network.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
 	wget -N /dev/null ${githuburl}/Arma3/cfg/lgsm-default.network.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
 	sleep 1
 	sleep 1
 	fn_arma3config
 	fn_arma3config
+elif [ "${gamename}" == "BrainBread 2" ]; then
+	echo -e "downloading lgsm-default.cfg...\c"
+	wget -N /dev/null ${githuburl}/BrainBread2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+	sleep 1
+	fn_sourceconfig	
 elif [ "${gamename}" == "Black Mesa: Deathmatch" ]; then
 elif [ "${gamename}" == "Black Mesa: Deathmatch" ]; then
 	echo -e "downloading lgsm-default.cfg...\c"
 	echo -e "downloading lgsm-default.cfg...\c"
 	wget -N /dev/null ${githuburl}/BlackMesa/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
 	wget -N /dev/null ${githuburl}/BlackMesa/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq

+ 1 - 28
functions/install_steamcmd.sh

@@ -10,31 +10,4 @@ echo ""
 echo "Installing SteamCMD"
 echo "Installing SteamCMD"
 echo "================================="
 echo "================================="
 sleep 1
 sleep 1
-steamcmddir="${rootdir}/steamcmd"
-if [ ! -f "${steamcmddir}/steamcmd.sh" ]; then
-	if [ ! -d "${steamcmddir}" ]; then
-		mkdir -v "${steamcmddir}"
-	fi
-	curl=$(curl --fail -o "${steamcmddir}/steamcmd_linux.tar.gz" "http://media.steampowered.com/client/steamcmd_linux.tar.gz" 2>&1)
-	exitcode=$?
-	echo -e "downloading steamcmd_linux.tar.gz...\c"
-	if [ $exitcode -eq 0 ]; then
-		fn_printokeol
-	else
-		fn_printfaileol
-		echo "${curl}"
-		echo -e "${githuburl}\n"
-		exit $exitcode
-	fi
-	tar --verbose -zxf "${steamcmddir}/steamcmd_linux.tar.gz" -C "${steamcmddir}"
-	rm -v "${steamcmddir}/steamcmd_linux.tar.gz"
-	chmod +x "${steamcmddir}/steamcmd.sh"
-else
-	echo "SteamCMD already installed!"
-fi
-	# Checks that steamcmd is working correctly and will prompt Steam Guard if required.
-	"${steamcmddir}"/steamcmd.sh +login "${steamuser}" "${steampass}" +quit
-	if [ $? -ne 0 ]; then
-		fn_printfailurenl "Error running SteamCMD"
-	fi	
-sleep 1
+check_steamcmd.sh