diff -r 05d54accf5c0 -r f401d4b85215 plugins/playercommands.sp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/playercommands.sp Wed Dec 19 01:34:01 2007 +0000 @@ -0,0 +1,103 @@ +/** + * vim: set ts=4 : + * ============================================================================= + * SourceMod SlapSlay Commands Plugin + * Implements slap and slay commands + * + * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved. + * ============================================================================= + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, version 3.0, as published by the + * Free Software Foundation. + * + * 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, see . + * + * As a special exception, AlliedModders LLC gives you permission to link the + * code of this program (as well as its derivative works) to "Half-Life 2," the + * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software + * by the Valve Corporation. You must obey the GNU General Public License in + * all respects for all other code used. Additionally, AlliedModders LLC grants + * this exception to all derivative works. AlliedModders LLC defines further + * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), + * or . + * + * Version: $Id$ + */ + +#pragma semicolon 1 + +#include +#include +#undef REQUIRE_PLUGIN +#include + +public Plugin:myinfo = +{ + name = "SlapSlay Commands", + author = "AlliedModders LLC", + description = "Slap and Slay Commands", + version = SOURCEMOD_VERSION, + url = "http://www.sourcemod.net/" +}; + +new Handle:hTopMenu = INVALID_HANDLE; + +#include "playercommands/slay.sp" +#include "playercommands/slap.sp" + +public OnPluginStart() +{ + LoadTranslations("common.phrases"); + LoadTranslations("slapslay.phrases"); + + RegAdminCmd("sm_slap", Command_Slap, ADMFLAG_SLAY, "sm_slap <#userid|name> [damage]"); + RegAdminCmd("sm_slay", Command_Slay, ADMFLAG_SLAY, "sm_slay <#userid|name>"); + + /* Account for late loading */ + new Handle:topmenu; + if (LibraryExists("adminmenu") && ((topmenu = GetAdminTopMenu()) != INVALID_HANDLE)) + { + OnAdminMenuReady(topmenu); + } +} + +public OnAdminMenuReady(Handle:topmenu) +{ + /* Block us from being called twice */ + if (topmenu == hTopMenu) + { + return; + } + + /* Save the Handle */ + hTopMenu = topmenu; + + /* Find the "Player Commands" category */ + new TopMenuObject:player_commands = FindTopMenuCategory(hTopMenu, ADMINMENU_PLAYERCOMMANDS); + + if (player_commands != INVALID_TOPMENUOBJECT) + { + AddToTopMenu(hTopMenu, + "sm_slay", + TopMenuObject_Item, + AdminMenu_Slay, + player_commands, + "sm_slay", + ADMFLAG_SLAY); + + AddToTopMenu(hTopMenu, + "sm_slap", + TopMenuObject_Item, + AdminMenu_Slap, + player_commands, + "sm_slap", + ADMFLAG_SLAY); + } +} \ No newline at end of file