Administrator
Steam:
76561197968459473 Steam join date: Aug 23, 2004
Steam Level: 56
Profile Status:
Public
SourceOP Code Released
You can view it here:
http://code.google.com/p/sourceop/so...se/#hg%2Ftrunk
Code for other projects coming soon.
Sorry that some of it is a mess. It's a fairly old project (2004/2005) and it hasn't really ever been cleaned up. There are gems spread all over, though.- AdminOP.cpp and adminopplayer.cpp contain more code than they probably should.
- bans.cpp contains all the code for loading and dealing with MySQL bans.
- CAOP* are the code files for the SourceOP entities. All entities created in Lua are handled by CAOPLuaNormal.cpp.
- DFBaseent/Radio are old and I don't think compiled any more but I've included them anyways in case something useful is in there, but not likely.
- gamerulesproxy.cpp is responsible for finding the game rules object and hooking/interacting with it.
- isopgamesystem.cpp is similar to the SDK's IGameSystem.
- l_class_* files are the implementation for various Lua classes and are exposed via a modified version of Lunar.
- Other l* code files are libraries.
- playerdatabase.cpp contains all the code for maintaining the MySQL player database.
- plugin_mm.cpp allows for the plugin to be loaded with Metamod Source. The plugin can also be loaded as a VSP which is exposed in serverplugin_empty.cpp.
- queuethread.h is a thread-safe template class that inherits Valve's CThread and provides a queue for handling items of any type. You provide the implementation for handling each item. Items can be added to the queue from any thread and are serviced/handled on their own thread.
- reservedslots.cpp load and handle the MySQL reserved slots.
- sopmysql is a thin wrapper around the raw MySQL library calls.
- specialitems loads custom TF2 items from a MySQL database. These are applied in HookGiveNamedScriptItem in AdminOP.cpp.
- sourceopadmin.cpp contains the server-side implementation for the remote admin client.
- vfuncs.cpp is responsible for loading the DF_funcoffs.txt file and allowing calls to the virtual functions specified there. It also searches the data tables for offsets to various member variables and exposes functions to get/set them.
You can use this thread and subforum to ask questions, share things you found that were helpful, etc.