Server Setup for Making Bins
This is a work in progress
NOTE: This assumes building an i24 Ouroboros Server from "Source"
- Setup an i24 Ouro Server as per https://wiki.ourodev.com/view/Volume_2_Server_Setup
NOTE: For binning to work, you must compile from source (x86, Debug), this will generate the proper "Mapserver.exe" and "Ouroboros_Debug.exe" files. For traceability it is recommended to rename the "Mapserver.exe" to "Mapserver_Debug.exe"
- You should end up with a directory structure similar to this IF you compile from source, and complete the server setup instructions:
F:\CoX F:\CoX\Source F:\CoX\Source\bin [We shall call this EXE-DIR] F:\CoX\Source\bin\piggs [We shall call this PIGG-DIR] F:\CoX\Source\bin\data [We shall call this DATA-DIR] F:\CoX\Source\bin\data\bin [We shall call this CLIENT-BIN-DIR] F:\CoX\Source\bin\data\server\bin [We shall call this SERVER-BIN-DIR]
- In EXE-DIR, create folders called localdata, serverdata and tools. Tools will be empty but it triggers search behaviour we want in the server.
- Copy "mapserver_debug.exe", and "ouroboros_debug.exe" from the \bin folder, to the "DATA-DIR".
- Copy all "*.dll" files from the \bin folder, to the "DATA-DIR".
F:\CoX\Source\bin\serverdata [We shall call this SERVER-DATA-DIR] F:\CoX\Source\bin\localdata [We shall call this LOCAL-DATA-DIR] F:\CoX\Source\bin\tools [We shall call this TOOL-DIR]
- Download Piglet https://build.ourodev.com/
- Extract the ".pigg" files from the PIGG-DIR using Piglet, into the DATA-DIR, then delete the piggs folder.
- To do this, Run Piglet, File Open Folder, select the "PIGG-DIR", Select Folder, Click on the top level folder in the upper left of the Piglet window, right click and export to the "Data-Dir"
- Download the full data set, and extract to SERVER-DATA-DIR. At present this means downloading the following from the magnet links page:
- Paragon Data Directory Dump (Faptastic)
- Paragon Data Directory Dump - missing data (Voldemort)
- Download 5-17 from the same page, and extract dbidmaps.7z to SERVER-DATA-DIR/Defs/dbidmaps/.
NOTE: Do not extract tricks.7z, it is no longer required.
You should now have something like this:
F:\CoX\Source\Bin\serverdata\AccountServer F:\CoX\Source\Bin\serverdata\AIScript ... ... F:\CoX\Source\Bin\serverdata\texture_library F:\CoX\Source\Bin\serverdata\tricks
- Back up the "CLIENT-BIN-DIR" and the "SERVER_BIN_DIR" before the next step.
- Delete the bin files from CLIENT-BIN-DIR and SERVER-BIN-DIR
- Delete these from the SERVER-DATA folder:
- Cut the object_library folder from SERVER-DATA-DIR and paste to DATA-DIR to prevent the mapserver crashing when making geobins. Overwrite any files already there from the piggs.
- Create a blank text file at SERVER-DATA-DIR/maps/City_Zones/City_01_05/City_01_05.txt
- Remove the following section from DATA-DIR/server/db/maps.db:
Container 120 MapName "maps/rp/fire/Events_HeroCon.txt" SafePlayersLow 75 SafePlayersHigh 100 MaxCritters 1000 DontAutoStart 1 Transient 1 ContainerEnd Container 121 MapName "maps/rp/luau/Events_HeroCon.txt" SafePlayersLow 75 SafePlayersHigh 100 MaxCritters 1000 DontAutoStart 1 Transient 1 ContainerEnd Container 122 MapName "maps/rp/harvest/Events_HeroCon.txt" SafePlayersLow 75 SafePlayersHigh 100 MaxCritters 1000 DontAutoStart 1 Transient 1 ContainerEnd Container 123 MapName "maps/rp/halloween/Events_HeroCon.txt" SafePlayersLow 75 SafePlayersHigh 100 MaxCritters 1000 DontAutoStart 1 Transient 1 ContainerEnd Container 124 MapName "maps/rp/winter/Events_HeroCon.txt" SafePlayersLow 75 SafePlayersHigh 100 MaxCritters 1000 DontAutoStart 1 Transient 1 ContainerEnd
|If you are running the mapserver to make bins and there are other mapservers running on the same machine, you must add -nosharedmemory to the command line to ensure it loads the files from disk, not from the mapserver shared memory pool. This is not required when using -createbins as that turns off shared memory implicitly.|
From the command line navigate to EXE-DIR and run
mapserver_debug.exe -createbins -verbose 2
It will take a while but should populate SERVER-BIN-DIR.
ouroboros_debug.exe -console -createbins -verbose 2 -project cov
This will again take a while and populate CLIENT-BIN-DIR. The client will close automatically when finished. I recommend using project cov, or some other throwaway project, for all non-production client use to avoid it accidentally messing up your main install settings. You MUST use ouroboros_debug not ouroboros, as the production client won't look for the server data folders.
Note: Both mapserver and ouroboros_debug will spew out errors, we will eventually track down and fix all these
To make changes, copy the file you want to edit from SERVER-DATA-DIR to the same place in LOCAL-DATA-DIR and edit it, then rebuild bins by running mapserver and/or ouroboros-test as needed, without the -createbins argument. Note that some files created in SERVER-BIN-DIR need to be copied to CLIENT-BIN-DIR as they are shared between server and client. These bins are the ones that are in your original bins.pigg.
You should be able to run the server and client as normal from this setup, but I don't recommend it for a production server: test things then copy your new bins to a normal setup that uses piggs.