csdm_amxx - Counter-Strike Deathmatch.
(C)2003-2005 by David "BAILOPAN" Anderson

CSDM Mod allows you to play Counter-Strike in a variety of highly configurable deathmatch scenarios. The current version is 2.00.

Sections:
  1. Downloading
  2. Installing
  3. Configuration
  4. Commands
  5. Developing/Codng
  6. Support
  7. The credits and copyrights.
  8. Changelog

I. Downloading

You can always find the latest version of CSDM as a package at the AMX Mod X forums, in the CSDM Plugin Thread.

The source code is available in full in its CVS Repository.

II. Installing

CSDM Mod requires AMX Mod X 1.60 or higher. Most plugins will require the Engine and CSTRIKE modules enabled. It was designed to run on Counter-Strike and will not work on any other mod (except Condition Zero).

To install the mod, follow these directions:

  1. Upload/copy the contents of the configs folder (csdm.cfg and the csdm folder containing the map spawn files) to your amxmodx/configs folder on your server.
  2. Upload the contents of the plugins folder to amxmodx/plugins on your server.
  3. Upload the contents of the modules folder to amxmodx/modules on your server.
  4. Add this line to your amxmodx/configs/modules.ini file:
    ;Counter-Strike Deathmatch Module
    csdm_amxx
      
  5. CSDM comes with a few plugins by default. You should only add the ones you plan on using: For each plugin you wish to use, add their filename to amxmodx/configs/plugins.ini. It is safe to add plugins you won't use all the time; you can configure their settings and enable/disable them through amxmodx/configs/csdm.cfg.
  6. Add the following line to amxx.cfg or server.cfg:
    csdm_active 1
  7. Fully restart your server and you will be ready to go with a default setup!

III. Configuration

Configuration is done entirely through the csdm.cfg file in amxmodx/configs. These values are NOT cvars! The csdm.cfg file is a special file that is read and parsed separately so multiple plugins can easily see values in it. Each value is explained either in the csdm.cfg file or in the documentation provided by the respective plugin.

IV. Commands

These are commands that can be typed through the console..

Admin Commands
Command What it Does Plugin Access Level
csdm_enable/csdm_disable Switches whether CSDM mode is on or off. csdm_main f
csdm_reload Reloads the csdm.cfg config file. csdm_main f
csdm_menu Shows the CSDM admin menu. csdm_main u
edit_spawns Shows the spawn editing menu (for adding or changing map support). Map config files are stored in amxmodx/configs/csdm/map.spawns.cfg, where map is the map name. spawn_editor f
csdm_cache Developers - shows information about the CSDM runtime cache. csdm_main f
guns, /guns, menu, enablemenu, enable_menu Saying any of these re-enables the equip menu. csdm_equip ANY
CSDM also defines two publically cvars: csdm_active (returns whether CSDM is enabled, also can be set by admins), and csdm_version (the CSDM version). Lastly, there is a public "csdm" command that displays credits.

V. Developing/Coding

CSDM 2.0 is modular. The base portion is a module built to handle and capture primitive events, as well as express things which would be computationally expensive as a plugin. It is optimized for efficiency.

The idea behind CSDM 2.0 is rather than including every portion in one plugin, developers can write simple addons, using the basic events provided by the module. This way using other modules or expensive parsing is often not necessary. For a full reference of CSDM 2.0's API, you should see csdm.inc in the scripting/include folder of the CSDM download, or view it on CVS: csdm.inc. A good example of a simple plugin using the API is csdm_tickets.sma.

The module automatically respawns players whenever a player joins, a round restarts, or a player dies. The spawn events allow plugins to interrupt or hook various importat stages in a player's death/revival. The module makes no attempt to spawn players in a certain location, it simply revives them. Instead, it allows "spawn handlers" to attach. The current spawn style handler (set by csdm_main) is notified when it can relocate a player.

The module handles the following things, notifying plugins:

Lastly, the module also contains fast routines for common things, such as setting/retrieving player positions, respawning players through the CSDM interface, and removing weapons from the world or players.


VI. Support

I do not officially support CSDM, as it is an open-source project I created in my spare time. However, if you've read the manual and speak English I might be able to help you out. You can find me:

VII. The Credits and copyrights.

(C)2003-2005 David "BAILOPAN" Anderson
This would not have been possible without the help of Freecode, AssKicR, and PM.
Large parts of the CSDM plugin base was written by Freecode. Thank you very much, Freecode!
Thanks to Riddick51 of UFC, who sponsored CSDM 2.0!
Thanks to twistedeuphoria for being a competitor, motivating this.
Thanks to KWo, who helped maintain CSDM 1.6-1.7 while it was in decay.
Original idea by isbunk (lagbeast).
http://www.tcwonline.org/

* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

AMX Mod X can be found here: http://www.amxmodx.org/

The people who contributed to csdm_mod are:

VIII. Changelog.

----------
Changelog:
----------
2.00 Release Build 500 (10-18-2005)
	Completely rewrote CSDM to be a modular API.
	CSDM is now a module, controlled by separate plugins.
	Configuration is through a unified file, rather than cvars.
	Replaced spawn commands with a graphical, intuitive spawn editor.
	Improved spawn algorithms.
	Rounds can be blocked correctly again.
	ResetHUD exploits no longer work.
	Added round-ticketing mode.
	Removed all support for AMX Mod (all versions).
	Removed all support for earlier versions of CS.
	Removed "item" and "ffa" modes (to be re-added later).
	Vastly reduced base CPU usage.
1.70 Release Build 280 (11-15-2004)
	Updated for AMX Mod X 1.00.
	Added KWo's bot support.  Thank you, KWo!
	Added many more spawn points from the community.
	Fixed a bug where some weapons could not be blocked.
1.69 Release Build 275 (04-22-2004)
	Fixed trivial Condition Zero support.
	Fixed crash bug in C4 removal code (thanks to BMC for test server).
	  Note on the above: this would cause the game to crash on Ts joining.
	Fixed radio blocking.
	Updated some messages.
1.68 Release Build 268 (04-16-2004)
	Converted to AMX Mod X.
	Added trivial support for Condition Zero.
	Added entities for de_train (Freeman)
	Added entities+spawns for scoutezknives, iceworld, awp_map, ka_legoland (-[Dos]- Clan).
	Added cvar csdm_sounds (defaults to 1) to turn the spawning sounds off.
	Fixed bad variable notation in for loops.
	Fixed references to get_user_weapons (AMX bug).
	Fixed errors relating to grenade blocking.
	Hostages SHOULD be restored properly on csdm shutdown now.
	Note: There was an intermediary 1.67 release for trivial AMXx support.
1.60 Release Build 260 (02-25-2004)
	!!! NEW SPAWN CREATION ALGORITHM
	!!! NEW WEAPON DELETION ALGORITHM
	!!! FIXED CPU/LAG PROBLEMS
	!!! NEW MAP PACK
	Added weapon restriction and limiting.
	Added C4 disabling.
	Added restartround to clear maps for CSDM.
	Added the ability to fully switch CSDM on and off WITHOUT RESTARTING.
	Added new cvar - csdm_steam (defaults to 1).
	Added more voting options and changed voting code.
	Fixed spawn point manipulation commands.
	Fixed spawn point view angles.
	Fixed csdm_drop_weapons - you can drop weapons again.
	Fixed possible internal entity collision problem.
	Fixed spawning to work with new Steam engine.
	Fixed bug where round restart made it impossible to use or get longjumps.
	Fixed bug where pressing "2" in menu mode would not rebuy armor or grenades.
	Fixed bug where voting for CSDM actually did nothing.  Oops.
	Fixed bugs in file parsing algorithms.
	Fixed bugs in entity parsing algorithms.
	Fixed menus to show P90.
	Fixed weapon blocking (1.30+).
	Fixed menus so they no longer disappear on invalid selection.
	Changed some CVAR defaults.
	Removed map cleaning process to appease new Steam engine.
	Removed csdm_allow_smoke - use blocked.cfg.
1.13 Release Build 191 (02-02-2004)
	Added entities for cs_estate( AssKicR).
	Fixed minor bug with ammo.
1.10 Release Build 190 (02-01-2004)
	Added pseudo-random spawning (based on cvar timer).
	Added weapon blocking/restrictions.
	Added AssKicR's changes.
	Added voting to enable CSDM.
	Fixed sound issues with items.
	Fixed random spawning algorithm.
	Fixed csdm_delete_time.
	Completely removed debug mode.
	Made csdm_viewspawns show T or CTs.
	Enhanced readme.
	NOTE: AssKicR is now the CSDM maintainer.
1.00 Release Build 184 (01-29-2004)
	Fixed small error in command blocking.
	Fixed error not being able to pick up MP5s.
1.00 FINAL RELEASE 183 (01-28-2004)
	Final Public Release
	Added auto-gun dropping option.
	Fixed internal entity table (fixes csdm_delent).
	Reverted to original entity creation system.
	Redefined de_dust entities.
	Added entities for cs_militia (BAILOPAN).
	Added entities for cs_office (BAILOPAN).
	Added entities for cs_siege (AssKicR).
	Added entities for de_inferno (AssKicR).
1.00 Release Build 178 (01-27-2004)
	Rewrote weapon entity collision/creation system.
	Wrote a weaponbox deletion system that will safely remove weapons.
1.00 Release Build 171 (01-26-2004)
	Removed unncessary tempent code.
	Hardened crashed protection?
1.00 Release build 170 (01-26-2004)
	Added requirement of Xtrafun (to count entities).
	Added native support for item_healthkit, item_battery, and item_longjump.
	Added more cvars for control.
	Rewrote entity system.  Fixed crashes.
	Fixed spawn/spectator stacking.
	Fixed all entity timing problems.
	Fixed having to restart the plugin to make changes.
	Separated debugging mode into optional compile.
1.00 Beta build 148: (01-12-2004)
	Fixed csdm_setspawn, csdm_setspawnv.
	Fixed small bug in respawn code.
	Removed csdm_add_items requirement for csdm_viewspawns.
1.00 Beta build 145: (01-12-2004)
	Added better buy-blocking, thank you AssKicR.
	Added csdm_look, thank you AssKicR.
	Added csdm_spawn_protect which has new modes.
	Added new says: players can now say "guns", "enablemenu", "menu", and "enable_menu".
	Changed how csdm_setspawn works -- more random and now can set predefined spawn values.
	Fixed weapon dropping AGAIN, this time for bots too.
	Fixed that annoying team join bug.
	Fixed HUD problems by using double spawn trick - again.
	Re-formatted all spawn entries for new format.
1.00 Beta build 143: (01-12-2004)
	Completely rewrote weapon dropping code.
	Added new debug code - csdm_debug.
	Added opt-out option for menus.
	Removed double respawn hack.
	Fixed menus again.
	Fixed crashing bug in force_drop_all().
	Fixed possible edict slot problem in replaceWeapons().
	Fixed loading/viewing spawn angle vectors.
1.00 Beta build 138: (01-10-2004)
	Fixed issues with enable_menu and guns.
	Fixed issues with csdm_spawn_spam.
	Added CVAR csdm_allow_smoke, default 1.
	Finished removing debug code.
1.00 Beta build 137: (01-10-2004)
	Fixed errors in csdm_setent.
	Fixed error with first spawn.
	Fixed how weapons kind of plop down. (AssKicR)
	Added de_aztec entities.
	Removed some issues with dropping weapons.
	Removed debug mode.
1.00 Beta build 136: (01-10-2004)
	Fixed readMapFile() - DO NOT USE BUILD 135
	Made so "guns" and "respawn" can be used through say.
1.00 Beta build 135: (01-10-2004)
	Now uses HEV suit for csdm_viewspawns.
	Removed dummyguerilla precache.
	Changed respawning, again.  Not instaneous anymore.
	Fixed potential crash bug with menus?
	Fixed csdm_killall bug.
	csdm_setspawnv records angles.
	Removed HUD-redrawing code.
1.00 Beta build 134: (01-07-2004)
	Fixed all HUD message problems.
	Fixed spawning problems.
	Fixed weapon dropping problems.
	Fixed weapon deletion problems.
	Fixed weapons dropping on death problems.
	Fixed spawn weapon problems in normal mode.
	Added csdm_ent, fixed csdm_delent.
	Added skeleton code for csdm_look.
1.00 Beta build 131: (01-07-2004)
	Added blocking of radio again.
	Fixed csdm_kill_all issue.
1.00 Beta build 130: (01-07-2004)
	Fixed dropping issue.
	Fixed weapons not disappearing issue.
	Reverted to some older code.
1.00 Beta build 128: (01-07-2004)
	Changed "armour" to "armor".
	Fixed secondary weapon bug.
	Made guns re-enable menu.
	Increased MAX_ENTS to 200.
	[Unrelated] Finished de_dust ents.
	Fixed clip sizes for flashbang, fiveseven.
	Removed blank line error in spawn/ent files.
	Fixed crosshairs.
	Fixed menu issues, again.
1.00 Beta build 127: (01-07-2004)
	Changed "armour" to "armor".
	Fixed secondary weapon bug.
	Made guns re-enable menu.
	Increased MAX_ENTS to 200.
	[Unrelated] Finished de_dust ents.
1.00 Beta Build 126: (01-07-2004)
	Fixed more spawning issues.
	Added more to menu options.
	Added csdm_set_amenu, csdm_set_gmenu, csdm_near, csdm_debug
	Added CVARs csdm_enable_amenu, csdm_enable_gmenu
	Resolved end of map crashing issue.
1.00 Beta Build 121: (01-06-2004)
	Fixed spawning issues.
	Unblocked radio and audio messages.
1.00 Beta Build 120: (01-06-2004)
	Removed old drop hook code and task code.
1.00 Beta Build 119: (01-06-2004)
	Fixed equip bug
1.00 Beta Build 118: (01-06-2004)
	Initial beta release