plugins/playercommands.sp
author Scott Ehlert <ds@alliedmods.net>
Thu Apr 17 10:00:52 2008 +0000 (2008-04-17)
changeset 2014 2cd20f4e007b
parent 1952 b7aa2b626807
child 2289 44045ead61cd
permissions -rw-r--r--
Updated NOTICE.txt to describe how to add svn:keywords to existing files
     1 /**
     2  * vim: set ts=4 :
     3  * =============================================================================
     4  * SourceMod SlapSlay Commands Plugin
     5  * Implements slap and slay commands
     6  *
     7  * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
     8  * =============================================================================
     9  *
    10  * This program is free software; you can redistribute it and/or modify it under
    11  * the terms of the GNU General Public License, version 3.0, as published by the
    12  * Free Software Foundation.
    13  * 
    14  * This program is distributed in the hope that it will be useful, but WITHOUT
    15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    16  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
    17  * details.
    18  *
    19  * You should have received a copy of the GNU General Public License along with
    20  * this program.  If not, see <http://www.gnu.org/licenses/>.
    21  *
    22  * As a special exception, AlliedModders LLC gives you permission to link the
    23  * code of this program (as well as its derivative works) to "Half-Life 2," the
    24  * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
    25  * by the Valve Corporation.  You must obey the GNU General Public License in
    26  * all respects for all other code used.  Additionally, AlliedModders LLC grants
    27  * this exception to all derivative works.  AlliedModders LLC defines further
    28  * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
    29  * or <http://www.sourcemod.net/license.php>.
    30  *
    31  * Version: $Id$
    32  */
    33 
    34 #pragma semicolon 1
    35 
    36 #include <sourcemod>
    37 #include <sdktools>
    38 #undef REQUIRE_PLUGIN
    39 #include <adminmenu>
    40 
    41 public Plugin:myinfo =
    42 {
    43 	name = "SlapSlay Commands",
    44 	author = "AlliedModders LLC",
    45 	description = "Slap and Slay Commands",
    46 	version = SOURCEMOD_VERSION,
    47 	url = "http://www.sourcemod.net/"
    48 };
    49 
    50 new Handle:hTopMenu = INVALID_HANDLE;
    51 
    52 #include "playercommands/slay.sp"
    53 #include "playercommands/slap.sp"
    54 
    55 public OnPluginStart()
    56 {
    57 	LoadTranslations("common.phrases");
    58 	LoadTranslations("slapslay.phrases");
    59 
    60 	RegAdminCmd("sm_slap", Command_Slap, ADMFLAG_SLAY, "sm_slap <#userid|name> [damage]");
    61 	RegAdminCmd("sm_slay", Command_Slay, ADMFLAG_SLAY, "sm_slay <#userid|name>");
    62 	
    63 	/* Account for late loading */
    64 	new Handle:topmenu;
    65 	if (LibraryExists("adminmenu") && ((topmenu = GetAdminTopMenu()) != INVALID_HANDLE))
    66 	{
    67 		OnAdminMenuReady(topmenu);
    68 	}
    69 }
    70 
    71 public OnAdminMenuReady(Handle:topmenu)
    72 {
    73 	/* Block us from being called twice */
    74 	if (topmenu == hTopMenu)
    75 	{
    76 		return;
    77 	}
    78 	
    79 	/* Save the Handle */
    80 	hTopMenu = topmenu;
    81 	
    82 	/* Find the "Player Commands" category */
    83 	new TopMenuObject:player_commands = FindTopMenuCategory(hTopMenu, ADMINMENU_PLAYERCOMMANDS);
    84 
    85 	if (player_commands != INVALID_TOPMENUOBJECT)
    86 	{
    87 		AddToTopMenu(hTopMenu,
    88 			"sm_slay",
    89 			TopMenuObject_Item,
    90 			AdminMenu_Slay,
    91 			player_commands,
    92 			"sm_slay",
    93 			ADMFLAG_SLAY);
    94 			
    95 		AddToTopMenu(hTopMenu,
    96 			"sm_slap",
    97 			TopMenuObject_Item,
    98 			AdminMenu_Slap,
    99 			player_commands,
   100 			"sm_slap",
   101 			ADMFLAG_SLAY);	
   102 	}
   103 }