/addons/sourcemod/scripting/funvotes/votealltalk.sp
Unknown | 104 lines | 92 code | 12 blank | 0 comment | 0 complexity | b092e87919252143512a913609e74912 MD5 | raw file
- /**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod Basefunvotes Plugin
- * Provides votealltalk functionality
- *
- * SourceMod (C)2004-2008 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 <http://www.gnu.org/licenses/>.
- *
- * 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 <http://www.sourcemod.net/license.php>.
- *
- * Version: $Id$
- */
-
- DisplayVoteAllTalkMenu(client)
- {
- if (IsVoteInProgress())
- {
- ReplyToCommand(client, "[SM] %t", "Vote in Progress");
- return;
- }
-
- if (!TestVoteDelay(client))
- {
- return;
- }
-
- LogAction(client, -1, "\"%L\" initiated an alltalk vote.", client);
- ShowActivity2(client, "[SM] ", "%t", "Initiated Vote Alltalk");
-
- g_voteType = voteType:alltalk;
- g_voteInfo[VOTE_NAME][0] = '\0';
-
- g_hVoteMenu = CreateMenu(Handler_VoteCallback, MenuAction:MENU_ACTIONS_ALL);
-
- if (GetConVarBool(g_Cvar_Alltalk))
- {
- SetMenuTitle(g_hVoteMenu, "Votealltalk Off");
- }
- else
- {
- SetMenuTitle(g_hVoteMenu, "Votealltalk On");
- }
-
- AddMenuItem(g_hVoteMenu, VOTE_YES, "Yes");
- AddMenuItem(g_hVoteMenu, VOTE_NO, "No");
- SetMenuExitButton(g_hVoteMenu, false);
- VoteMenuToAll(g_hVoteMenu, 20);
- }
-
-
- public AdminMenu_VoteAllTalk(Handle:topmenu,
- TopMenuAction:action,
- TopMenuObject:object_id,
- param,
- String:buffer[],
- maxlength)
- {
- if (action == TopMenuAction_DisplayOption)
- {
- Format(buffer, maxlength, "%T", "Alltalk vote", param);
- }
- else if (action == TopMenuAction_SelectOption)
- {
- DisplayVoteAllTalkMenu(param);
- }
- else if (action == TopMenuAction_DrawOption)
- {
- /* disable this option if a vote is already running */
- buffer[0] = !IsNewVoteAllowed() ? ITEMDRAW_IGNORE : ITEMDRAW_DEFAULT;
- }
- }
-
- public Action:Command_VoteAlltalk(client, args)
- {
- if (args > 0)
- {
- ReplyToCommand(client, "[SM] Usage: sm_votealltalk");
- return Plugin_Handled;
- }
-
- DisplayVoteAllTalkMenu(client);
-
- return Plugin_Handled;
- }