Added lua file to handle different lobby modes via dvar.

Added campaign cfg and bat.
This commit is contained in:
JezuzLizard 2023-03-11 09:21:25 -08:00
parent a3d740aa40
commit 9cb2f337fa
5 changed files with 165 additions and 2 deletions

36
BOIII_CP_Server.bat Normal file
View File

@ -0,0 +1,36 @@
@echo off
::///////////////////////////////////////////////////////////////////////
::/// BOIII Dedicated Server Configuration start-up file ///
::///////////////////////////////////////////////////////////////////////
::// //
::// Your Game Server Port. //
::// Make sure you Port Forward both UDP & TCP //
::///////////////////////////////////////////////////////////////////////
set GamePort=28960
::///////////////////////////////////////////////////////////////////////
::// Below edits are optional unless you run multiable servers or mods.//
::///////////////////////////////////////////////////////////////////////
::// Load a mod on your server //
::// Example: ModfolderName=mods/bots //
::// //
::// UNLOAD a mod on your server //
::// Example: ModfolderName= //
::///////////////////////////////////////////////////////////////////////
set ModFolderName=
::///////////////////////////////////////////////////////////////////////
::// Your edited server.cfg in the "zone" folder goes here... //
::// This is were you edit your hostname, rcon, inactivity, etc //
::// (Optional) //
::///////////////////////////////////////////////////////////////////////
set ServerFilename=server_cp.cfg
::///////////////////////////////////////////////////////////////////////
:://DONE!! WARNING! Don't mess with anything below this line. SEROUSLY!//
::///////////////////////////////////////////////////////////////////////
start boiii.exe -dedicated +set fs_game "%ModFolderName%" +set net_port "%GamePort%" +exec %ServerFilename%

View File

@ -0,0 +1,49 @@
Lobby.Process.CreateDedicatedModsLobby = function (f8_arg0, f8_arg1)
local lobby_mode = Engine.DvarString( nil, "sv_lobby_mode" )
if lobby_mode ~= "" then
if lobby_mode == "zm" then
f8_arg1 = LobbyData.UITargets.UI_ZMLOBBYONLINECUSTOMGAME
elseif lobby_mode == "cp" then
f8_arg1 = LobbyData.UITargets.UI_CPLOBBYONLINECUSTOMGAME
elseif lobby_mode == "cpzm" then
f8_arg1 = LobbyData.UITargets.UI_CP2LOBBYONLINECUSTOMGAME
elseif lobby_mode == "fr" then
f8_arg1 = LobbyData.UITargets.UI_FRLOBBYONLINEGAME
f8_arg1.maxClients = Engine.DvarInt( nil, "com_maxclients" )
elseif lobby_mode == "doa" then
f8_arg1 = LobbyData.UITargets.UI_DOALOBBYONLINE
elseif lobby_mode == "mp" then
f8_arg1 = LobbyData.UITargets.UI_MPLOBBYONLINEMODGAME
elseif lobby_mode == "arena" then
f8_arg1 = LobbyData.UITargets.UI_MPLOBBYONLINEARENAGAME
end
end
local f8_local0 = Dvar.sv_playlist
Engine.SetPlaylistID(f8_local0:get())
local f8_local1 = Lobby.Actions.ExecuteScript(function ()
Lobby.ProcessNavigate.SetupLobbyMapAndGameType(f8_arg0, f8_arg1)
end)
local f8_local2 = Lobby.Actions.SetNetworkMode(f8_arg0, Enum.LobbyNetworkMode.LOBBY_NETWORKMODE_LIVE)
local f8_local3 = Lobby.Actions.LobbySettings(f8_arg0, f8_arg1)
local f8_local4 = Lobby.Actions.UpdateUI(f8_arg0, f8_arg1)
local f8_local5 = Lobby.Actions.LobbyHostStart(f8_arg0, f8_arg1.mainMode, f8_arg1.lobbyType, f8_arg1.lobbyMode, f8_arg1.maxClients)
local f8_local6 = Lobby.Actions.AdvertiseLobby(true)
local f8_local7 = Lobby.Actions.ExecuteScript(function ()
Engine.QoSProbeListenerEnable(f8_arg1.lobbyType, true)
Engine.SetDvar("live_dedicatedReady", 1)
Engine.RunPlaylistRules(f8_arg0)
Engine.RunPlaylistSettings(f8_arg0)
Lobby.Timer.HostingLobby({controller = f8_arg0, lobbyType = f8_arg1.lobbyType, mainMode = f8_arg1.mainMode, lobbyTimerType = f8_arg1.lobbyTimerType})
if Engine.DvarInt( nil, "sv_skip_lobby" ) == 1 then
Engine.Exec(0, "launchgame")
end
end)
Lobby.Process.AddActions(f8_local2, f8_local3)
Lobby.Process.AddActions(f8_local3, f8_local1)
Lobby.Process.AddActions(f8_local1, f8_local4)
Lobby.Process.AddActions(f8_local4, f8_local5)
Lobby.Process.AddActions(f8_local5, f8_local6)
Lobby.Process.AddActions(f8_local6, f8_local7)
Lobby.Process.AddActions(f8_local7, nil)
return {head = f8_local2, interrupt = Lobby.Interrupt.NONE, force = true, cancellable = true}
end

View File

@ -36,6 +36,7 @@ set sv_pure "0" // verifying cilent files
set sv_floodProtect "1" // Chat Spam Protection
set logfile "1" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
set g_log "logs/games_mp.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
set sv_lobby_mode "mp" // Sets the lobby type to multiplayer
//////////////////////////////////////////////////
// BOT CONFIGURATION //

77
zone/server_cp.cfg Normal file
View File

@ -0,0 +1,77 @@
//////////////////////////////////////////////////
/// BOIII Server Configuration //
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// SERVER NAME & COLORS TIPS //
//////////////////////////////////////////////////
// //
// ^1 Red //
// ^2 Green //
// ^3 Yellow //
// ^4 Blue //
// ^5 Cyan //
// ^6 Pink //
// ^7 White //
// ^8 Depends on the team colors playing. //
// ^9 Orange //
// ^0 Black //
// //
//////////////////////////////////////////////////
set live_steam_server_name "Default BOIII Campaign Server" // Sets the server hostname.
set live_steam_server_description "My longest YEA BOIII CAMPAIGN ever" // Sets a server description visible on the serverlist
//////////////////////////////////////////////////
// NON-GAMEPLAY CONFIGURATION //
//////////////////////////////////////////////////
set com_maxclients "4" // Max players in your server.
set rcon_password "" // Access to your server to change stuff remotely or ingame. (Empty = disabled)
set g_password "" // Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.
set sv_privateClients "0" // Maximum number of private clients allowed on the server (range 0-18 (clamped to sv_maxclients) )
set sv_timeout "30" // Timeout time period. You will timeout after (30) seconds when attempting to connect or if you are getting connection interruptions
set sv_reconnectlimit "3" // How many times you can try to reconnect
set sv_pure "0" // verifying cilent files
set sv_floodProtect "1" // Chat Spam Protection
set logfile "1" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
set g_log "logs/games_cp.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
set sv_lobby_mode "cp" // Sets the lobby type to camapaign
//////////////////////////////////////////////////
// BASE GAME CONFIGURATION //
//////////////////////////////////////////////////
exec "gamedata/gamesettings/cp/gamesettings_default.cfg" // Leave this as is
exec "gamedata/configs/common/default_xboxlive.cfg" // Leave this as is
exec "gamedata/gamesettings/cp/gamesettings_coop.cfg" // Leave this as is
set cg_thirdPerson "0" // third-person mode
//////////////////////////////////////////////////////////////
// MAP SHORT NAMES ROTATION LIST //
//////////////////////////////////////////////////////////////
// //
// Safehouses //
// Mobile - cp_sh_mobile //
// Singapore - cp_sh_singapore //
// Cairo - cp_sh_cairo //
// //
//////////////////////////////////////////////////////////////
// //
// Black Ops - cp_mi_eth_prologue //
// New World - cp_mi_zurich_newworld //
// In Darkness - cp_mi_sing_blackstation //
// Provocation - cp_mi_sing_biodomes //
// Hypocenter - cp_mi_sing_sgen //
// Vengeance - cp_mi_sing_vengeance //
// Rise & Fall - cp_mi_cairo_ramses //
// Demon Within - cp_mi_cairo_infection //
// Sand Castle - cp_mi_cairo_aquifer //
// Lotus Towers - cp_mi_cairo_lotus //
// Life - cp_mi_zurich_coalescence//
// //
//////////////////////////////////////////////////////////////
set sv_maprotation "gametype coop map cp_mi_eth_prologue"
map_rotate

View File

@ -35,8 +35,8 @@ set sv_reconnectlimit "3" // How many times you can try to
set sv_pure "0" // verifying cilent files
set sv_floodProtect "1" // Chat Spam Protection
set logfile "1" // Enable loging 1-2? enable. 0 disable. Leave it on if you plan on using B3 or IW4MAdmin.
set g_log "logs/games_mp.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
set g_log "logs/games_zm.log" // Gamelog filename. If you edit this, Make sure you change B3.xml if you have bigbrotherbot. IW4MAdmin auto-detects however.
set sv_lobby_mode "zm" // Sets the lobby type to zombies
//////////////////////////////////////////////////
// BASE GAME CONFIGURATION //