Server Setup for Making Bins

From OuroDev
Revision as of 15:10, 5 December 2019 by Darwinasm86 (talk | contribs)

This is a work in progress

Dependencies:

NOTE: This assumes building an i24 Ouroboros Server from "Source"

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:
object_library/Omni/EncounterSpawns/V_Atmospheric/*
texture_library/MAPS/city/Map_City_05_03.texture
  • 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


IMPORTANT
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.

Next, run

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.