|
|
Line 1: |
Line 1: |
| = OrangeBox Co-Operative Base = | | = Seco7 Co-Operative Base for Source Engine 2007 = |
|
| |
|
| '''FINAL VERSION v2 released on 29th August 2010 - See Features list for new content, and known bugs for bugs fixed in this release.'''
| |
|
| |
|
| = Description = | | = Description = |
|
| |
|
| OrangeBox Co-Operative Base is a patch file containing useful code fixes for the Source SDK Base 2007 (OrangeBox) for use in multiplayer modifications/total conversions requiring things such as working online AI.
| | Seco7 Co-Operative Base is a patch file containing useful code fixes for the Source Engine 2007 Half-Life 2 Multiplayer code base. |
|
| |
|
| There are some minimum system specifications required for using OBCO (OrangeBox Co-Operative) and these are as follows:
| | To be able to use Seco7 you must own, Half-Life 2 or Half-Life 2: Episode 1, Half-Life 2: Deathmatch (which is free for ATI and nVidia users) and the Source SDK Base 2007. |
|
| |
|
| * Half-Life 2 or Half-Life 2: Episode 1.
| | In addition to this, to actually modify the code itself, you will need the Source SDK installed, and Visual Studio 2008 or 2010 (including express editions). |
| * Source SDK Base 2007 (free download).
| |
| * Half-Life 2: Deathmatch, which can be found at one of the three following locations:
| |
|
| |
|
| | Additionally, Seco7 allows you to use game content from Half-Life 2: Episode 2, and Portal. Counter-Strike Source and Half-Life 2: Lost Coast and any modifications with their own unique Valve AppID should also work but this is not guaranteed. |
|
| |
|
| http://www.steampowered.com/ati_offer1a/ (ATI users).
| | To keep this wiki page easily viewed, many items are now implemented into scroll boxes, so that the more important aspects of the page can be kept whole. |
|
| |
|
| http://www.steampowered.com/nvidia/ (nVidia users).
| |
|
| |
| http://store.steampowered.com/app/320/ (Everyone else).
| |
|
| |
|
| |
| Additionally you can use content from any of the following games (as long as you own them):
| |
|
| |
| *Half-Life 2: Episode 2
| |
| *Portal
| |
|
| |
|
| |
| {{warning|The currently compiled version mounts all the games above. Edit GameInfo.txt and InstalledSourceGames.txt to remove any games from mounting which you do not own (as they will crash the exe).}}
| |
|
| |
|
| |
| Untested (but should work):
| |
|
| |
| *Half-Life 2: Lost Coast
| |
| *Counter-Strike Source
| |
| *Team Fortress 2
| |
| *Content from Valve supported Modifications (must have their own unique AppID).
| |
|
| |
| ''' Please note that I reccomend you use VS2008 Express for compiling, for whatever reason VS2010 express likes to compile successfully but the resulting .dlls crash the exe. '''
| |
|
| |
|
| | {{scroll box| |
| == Features == | | == Features == |
|
| |
|
| Developers can easily enable and disable individual features to suit their needs. | | Developers can easily enable and disable individual features to suit their needs. |
|
| |
|
| Here is a list of the '''features available to mod developers:'''
| |
|
| |
| * NEW in the FINAL Version:
| |
| ** Portal Gun, player only. | | ** Portal Gun, player only. |
| ** Super Gravity Gun (some graphic effects missing - most of the code done by .Kave). | | ** Super Gravity Gun (some graphic effects missing - most of the code done by .Kave). |
Line 117: |
Line 91: |
| ** Map briefings. Provide storylines on a per-map basis. | | ** Map briefings. Provide storylines on a per-map basis. |
| ** Map specific model overrides. Changes all players to a specified player model on a particular map (set by the mapper). Check out our defector map for an in-game example! | | ** Map specific model overrides. Changes all players to a specified player model on a particular map (set by the mapper). Check out our defector map for an in-game example! |
| | }} |
|
| |
|
| | {{scroll box| |
| == Credits == | | == Credits == |
|
| |
|
| * [http://www.moddb.com/company/4-wheeled-husky-games/ 4-Wheeled Husky Games.] | | * [http://www.moddb.com/company/4-wheeled-husky-games/ 4-Wheeled Husky Games.] |
| * Sneaky[ToB]
| |
|
| |
|
| |
|
| * And thanks to the following non-OBCO development team members: | | * And thanks to the following non-OBCO development team members: |
Line 142: |
Line 116: |
| ** Vektorx4 | | ** Vektorx4 |
| ** HalfWit2 | | ** HalfWit2 |
| | * Sneaky[ToB] |
| ** Anyone else forgotten | | ** Anyone else forgotten |
| | }} |
|
| |
|
| == Getting the Current Release ==
| | {{scroll box| |
| | |
| Our ModDB page download:
| |
| | |
| [http://www.moddb.com/company/4-wheeled-husky-games/downloads/orangebox-co-operative-base-modification ModDB]
| |
| | |
| | |
| Final v2 now includes both an easy to use patch installer and a patch (Diff) file in-case of the installer failing in future updates along with the compiled version for testing.
| |
| | |
| You will need [http://www.7-zip.org 7zip] 9.13 or greater or an archive program capable of extracting .7z files.
| |
| | |
| = Patch File =
| |
| | |
| Extract out the patch file (SDK_to_OBCO_Final_Patch.exe)from the .7z file to somewhere handy (such as your Desktop).
| |
| | |
| Run the patch tool, at the point of folder selection make sure to select the 'Src' folder of your exported SDK Base 2007 code.
| |
| | |
| Once it's done - you've patched your source code.
| |
| | |
| Easy, huh?
| |
| | |
| == obcoop_shareddefs.h ==
| |
| | |
| To allow flexibility for mod makers, every change that was made to the SDK can be enabled or disabled by the mod team.
| |
| | |
| = Known Bugs = | | = Known Bugs = |
| '''Anything not listed here is fixed in Final v2.'''
| |
|
| |
| '''OBCO Critical'''
| |
|
| |
|
| *Armour not working on non-playerclass save/restore transitions. | | *Armour not working on non-playerclass save/restore transitions. |
| *Passengers in the obco passenger seat take no damage from AI hitting the car the seat is parented to.
| | *Weapon strip/dissolve zones (as used to make the Super Gravity Gun in HL2/EP1) don't work. '''//Caused by the game not recognizing the hl2mp gravity gun and just deleting it, then the test zone (d3_citadel_03) sticks waiting on the script to finish. |
| *Portal gun '''Fixed In Unreleased Version''' However - working (but without cameras - someone else can code a skybox renderer). Currently has a multiple spawn bug, but much better than before (cam do players, npcs and some props).
| |
| | |
| '''SP Critical'''
| |
| | |
| *Weapon strip/dissolve zones (as used to make the Super Gravity Gun in HL2/EP1) don't work properly, nor do they work for all players. '''//Caused by the game not recognizing the hl2mp gravity gun and just deleting it, then the test zone (d3_citadel_03) sticks waiting on the script to finish. | |
| | |
| '''Minor'''
| |
| | |
| *Super Gravity Gun - ::DoMega functions not implemented and ::Do functions missing some single player additions (these ::Do functions enable the fancy effects you can see are missing) | | *Super Gravity Gun - ::DoMega functions not implemented and ::Do functions missing some single player additions (these ::Do functions enable the fancy effects you can see are missing) |
| *Leaving tilted vehicles causes players to appear tilted as well. This affects only their player model, their actual views are normal. | | *Leaving tilted vehicles causes players to appear tilted as well. This affects only their player model, their actual views are normal. |
Line 189: |
Line 130: |
| *Chat bubbles angle towards the player's view, so they can appear embedded in walls etc. | | *Chat bubbles angle towards the player's view, so they can appear embedded in walls etc. |
| *AI bend their legs when going up in lifts (elevators), but are fine going down. | | *AI bend their legs when going up in lifts (elevators), but are fine going down. |
| | | }} |
| '''Fixed'''
| |
| | |
| *Reset of level on mission failure - failure to preserve objects only shows for server host. Messages such as critical ally lost show to all players. '''Fixed In Unreleased Version-Untested'''
| |
| * hl2mp_weaponbase.cpp line 133, getowner should be gethl2mpowner. '''Fixed In Unreleased Version'''
| |
| *The normal Gravity Gun is able to punt the HL2 jeep and Jalopy with an unusually large amount of force. '''Fixed In Unreleased Version'''
| |
| *The Super Gravity Gun is unable to pick up ragdolls of dead enemies. '''Fixed In Unreleased Version'''
| |
| *Certain allied npcs such as <code>npc_monk</code> can be picked up with the Super Gravity Gun without dying, causing unnecessary server-side ragdolls to be spawned.'''Fixed In Unreleased Version'''
| |
| | |
| = Compiled Version =
| |
| | |
| The information below is important for understanding how the modification operates, even if all you will be using is the patch file. You may find it more useful to use the Compiled mod folder as your mods folder and edit it as required, then you're assured that all the files are there and everything is setup correctly (unless you mess something up).
| |
| | |
| The compiled version has a handy to use installer (OBCO_Final_Compiled_Release.exe found in the .7z archive) to make life easier for everyone using it.
| |
| | |
| == GameInfo.txt ==
| |
| | |
| '''This file is extremely important''', it can't be stressed enough because without it being properly setup most of the content will fail to work (if not crash hl2.exe) if using Static Mounting, and not load important sounds, animations, etc if Dynamic Mounting.
| |
| | |
| GameInfo.txt is also where you define such things as your developers team name, website and the icon to display in Steam, as well as the game's title.
| |
| | |
| The most important section, and the section that we're going to describe here are the 'Search Paths'.
| |
| | |
| | |
| Search paths are the modifications way of mounting the GCFs which come with each Half-Life 2 game. In the current compiled version the search paths in our gameinfo.txt looks like this:
| |
| | |
| <nowiki>
| |
| SearchPaths
| |
| {
| |
| Game |all_source_engine_paths|ep2
| |
| Game |all_source_engine_paths|episodic
| |
| Game |all_source_engine_paths|hl2mp
| |
| Game |all_source_engine_paths|hl2
| |
| }</nowiki>
| |
| | |
| Notice how we do not have Portal in the search paths. This is because Portal should never be defined here (Unless you use Static Mounting, in which case it should be put '''BELOW''' hl2).
| |
| | |
| If you create a map and notice animations or scripted sequences failing to load, this is usually a sign of Static Mounting being used, or of some specific game content being used in an incorrect Dynamic Content map type. An example is the Alyx "Dr Freeman, I Presume" scene in <code>d1_trainstation_04</code>, this sort of concussion scene will *NOT* work if your map type were <code>ss_ep1_</code> or <code>ss_ep2_</code> and would not work in Static Mounting if Half-Life 2 wasn't mounted last in the list.
| |
| | |
| This leads us nicely on to the:
| |
| | |
| == InstalledSourceGames.txt ==
| |
| | |
| Additional code in cdll_client_init.cpp and gameinterface.cpp has added the ability to mount additional GCF files. This is always enabled whether you are using Static or Dynamic content mounting.
| |
| | |
| The InstalledSourceGames.txt file (previously AddMount.txt in older mod versions) helps the game find models, textures and maps that it wouldn't otherwise do through the gameinfo.txt's searchpaths. The gameinfo.txt searchpaths allow mounting sounds and particles which the AddMount.txt fails to do.
| |
| | |
| Only games listed within the text file will be displayed, and as such in most cases you will either wish to delete the code from the .cpp files, or blank out the contents of the file.
| |
| | |
| Notice how the order partially mimics the GameInfo.txt search paths, except that we put Half-life 2: Deathmatch at the top and we '''ALWAYS''' - if being used - put Portal as the '''LAST''' thing (bottom of) the file.
| |
| | |
| <nowiki>
| |
| "Half-Life 2: Deathmatch"
| |
| {
| |
| "SearchPath" "hl2mp"
| |
| "AppID" "-320"
| |
| } | |
| | |
| "Half-Life 2"
| |
| {
| |
| "SearchPath" "hl2"
| |
| "AppID" "-220"
| |
| }
| |
| | |
| "Half-Life 2: Episode 1"
| |
| {
| |
| "SearchPath" "episodic"
| |
| "AppID" "-380"
| |
| }
| |
| | |
| "Half-Life 2: Episode 2"
| |
| {
| |
| "SearchPath" "ep2"
| |
| "AppID" "-420"
| |
| }
| |
| | |
| "Portal: The cake is a lie!"
| |
| {
| |
| "SearchPath" "portal"
| |
| "AppID" "-400"
| |
| }</nowiki>
| |
| | |
| == cfg/skill.cfg ==
| |
| | |
| The skill.cfg file is important as it allows you to define such things as NPC health, NPC damage (to others such as the player), number of rockets a Strider may withstand and even how much charge a Vortigaunt can give to the players suit. It is worth reading through the file and editing it to suit your needs as it does define a lot of features of modifications. It can be found in the cfg folder.
| |
| | |
| == resource/obcoop_english.txt ==
| |
| | |
| This is the modification's language definition file. Here you can find settings such as the titles for Chapters, the messages displayed on a vital ally being killed (for example) and other things such as server connection messages etc. It's found in the resource folder.
| |
| | |
| == scripts/ChapterBackgrounds.txt ==
| |
| | |
| This file defines which of your modifications maps are background maps to display on the main menu. If you choose to use background maps with your modification, be sure to enable the <code>OBCO_BG_MOTD_FIX</code> definition in the <code>obcoop_shareddefs.h</code> so as not to display the motd on the main menu.
| |
| | |
| == cfg/valve.rc ==
| |
| | |
| This file defines whether background maps are displayed on the main menu. It's found in the cfg folder.
| |
| | |
| == resource/ui/Classmenu.res ==
| |
| | |
| This is the file which tells the game where to place the Join buttons etc for the Player Class System. I'm mentioning this in passing as in your own modification if you use the default <code>Classmenu.res</code> which comes with the SDK, all you'll see is a window with a Cancel button.
| |
| | |
| == resource/ClientScheme.res ==
| |
| | |
| This is the HUD colour file. Seperate versions can be used per player class as needed. Currently all classes are set to use the one same file.
| |
| | |
| == maps/map_briefings ==
| |
| | |
| This is a folder inside the <code>maps</code> folder. Each map that requires a briefing has a text file for that specific map. This loads in a similar fashion to the MOTD panel. It allows a quick map storyline for people loading the map. See our example maps in-game to see this concept in action.
| |
| | |
| == media/StartupVids.txt ==
| |
| | |
| Create this for custom Startup Videos, or if you create a blank version of this file then there will be no startup videos at all in your mod.
| |
| | |
| == OrangeBox_Co-Operative Information ==
| |
| | |
| This folder contains information for mappers (including things such as an FGD file and useful prefabs) and also information for Dedicated Server hosts.
| |