plugins/basefuncommands/burn.sp
author Matt Woodrow <pred@alliedmods.net>
Sat Oct 13 04:43:42 2007 +0000 (2007-10-13)
changeset 1536 fe2146e4975d
child 1592 ff10cfeaf5d2
permissions -rw-r--r--
Coded menus for most base plugins
pred@1536
     1
PerformBurn(client, target, Float:seconds)
pred@1536
     2
{
pred@1536
     3
	new String:name[32];
pred@1536
     4
pred@1536
     5
	GetClientName(target, name, sizeof(name));
pred@1536
     6
	
pred@1536
     7
	if (!IsPlayerAlive(target))
pred@1536
     8
	{
pred@1536
     9
		ReplyToCommand(client, "[SM] %t", "Cannot performed on dead", name);
pred@1536
    10
		return;
pred@1536
    11
	}
pred@1536
    12
pred@1536
    13
	ShowActivity(client, "%t", "Ignited player", name);
pred@1536
    14
	LogAction(client, target, "\"%L\" ignited \"%L\" (seconds \"%f\")", client, target, seconds);
pred@1536
    15
	IgniteEntity(target, seconds);
pred@1536
    16
}
pred@1536
    17
pred@1536
    18
DisplayBurnMenu(client)
pred@1536
    19
{
pred@1536
    20
	new Handle:menu = CreateMenu(MenuHandler_Burn);
pred@1536
    21
	
pred@1536
    22
	decl String:title[100];
pred@1536
    23
	Format(title, sizeof(title), "%T:", "Burn Player", client);
pred@1536
    24
	SetMenuTitle(menu, title);
pred@1536
    25
	SetMenuExitBackButton(menu, true);
pred@1536
    26
	
pred@1536
    27
	AddTargetsToMenu(menu, client, false);
pred@1536
    28
	
pred@1536
    29
	DisplayMenu(menu, client, MENU_TIME_FOREVER);
pred@1536
    30
}
pred@1536
    31
pred@1536
    32
public AdminMenu_Burn(Handle:topmenu, 
pred@1536
    33
					  TopMenuAction:action,
pred@1536
    34
					  TopMenuObject:object_id,
pred@1536
    35
					  param,
pred@1536
    36
					  String:buffer[],
pred@1536
    37
					  maxlength)
pred@1536
    38
{
pred@1536
    39
	if (action == TopMenuAction_DisplayOption)
pred@1536
    40
	{
pred@1536
    41
		Format(buffer, maxlength, "%T", "Burn Player", param);
pred@1536
    42
	}
pred@1536
    43
	else if (action == TopMenuAction_SelectOption)
pred@1536
    44
	{
pred@1536
    45
		DisplayBurnMenu(param);
pred@1536
    46
	}
pred@1536
    47
}
pred@1536
    48
pred@1536
    49
public MenuHandler_Burn(Handle:menu, MenuAction:action, param1, param2)
pred@1536
    50
{
pred@1536
    51
	if (action == MenuAction_End)
pred@1536
    52
	{
pred@1536
    53
		CloseHandle(menu);
pred@1536
    54
	}
pred@1536
    55
	else if (action == MenuAction_Cancel)
pred@1536
    56
	{
pred@1536
    57
		if (param2 == MenuCancel_ExitBack && hTopMenu != INVALID_HANDLE)
pred@1536
    58
		{
pred@1536
    59
			DisplayTopMenu(hTopMenu, param1, TopMenuPosition_LastCategory);
pred@1536
    60
		}
pred@1536
    61
	}
pred@1536
    62
	else if (action == MenuAction_Select)
pred@1536
    63
	{
pred@1536
    64
		decl String:info[32];
pred@1536
    65
		new userid, target;
pred@1536
    66
		
pred@1536
    67
		GetMenuItem(menu, param2, info, sizeof(info));
pred@1536
    68
		userid = StringToInt(info);
pred@1536
    69
pred@1536
    70
		if ((target = GetClientOfUserId(userid)) == 0)
pred@1536
    71
		{
pred@1536
    72
			PrintToChat(param1, "[SM] %t", "Player no longer available");
pred@1536
    73
		}
pred@1536
    74
		else if (!CanUserTarget(param1, target))
pred@1536
    75
		{
pred@1536
    76
			PrintToChat(param1, "[SM] %t", "Unable to target");
pred@1536
    77
		}
pred@1536
    78
		else
pred@1536
    79
		{
pred@1536
    80
			PerformBurn(param1, target, 20.0);
pred@1536
    81
		}
pred@1536
    82
		
pred@1536
    83
		/* Re-draw the menu if they're still valid */
pred@1536
    84
		if (IsClientInGame(param1) && !IsClientInKickQueue(param1))
pred@1536
    85
		{
pred@1536
    86
			DisplaySlayMenu(param1);
pred@1536
    87
		}
pred@1536
    88
	}
pred@1536
    89
}
pred@1536
    90
pred@1536
    91
public Action:Command_Burn(client, args)
pred@1536
    92
{
pred@1536
    93
	if (args < 1)
pred@1536
    94
	{
pred@1536
    95
		ReplyToCommand(client, "[SM] Usage: sm_burn <#userid|name> [time]");
pred@1536
    96
		return Plugin_Handled;
pred@1536
    97
	}
pred@1536
    98
pred@1536
    99
	decl String:arg[65];
pred@1536
   100
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   101
pred@1536
   102
	new target = FindTarget(client, arg);
pred@1536
   103
	if (target == -1)
pred@1536
   104
	{
pred@1536
   105
		return Plugin_Handled;
pred@1536
   106
	}
pred@1536
   107
	
pred@1536
   108
	new Float:seconds = 20.0;
pred@1536
   109
	
pred@1536
   110
	if (args > 1)
pred@1536
   111
	{
pred@1536
   112
		decl String:time[20];
pred@1536
   113
		GetCmdArg(2, time, sizeof(time));
pred@1536
   114
		if (StringToFloatEx(time, seconds) == 0)
pred@1536
   115
		{
pred@1536
   116
			ReplyToCommand(client, "[SM] %t", "Invalid Amount");
pred@1536
   117
			return Plugin_Handled;
pred@1536
   118
		}
pred@1536
   119
	}
pred@1536
   120
	
pred@1536
   121
	PerformBurn(client, target, seconds);
pred@1536
   122
pred@1536
   123
	return Plugin_Handled;
pred@1536
   124
}