plugins/testsuite/entpropelements.sp
author Nicholas Hastings <skamonkey@gmail.com>
Fri Nov 04 10:01:33 2011 -0400 (2011-11-04)
changeset 3438 07a1b8a8a2ba
parent 3293 f688cf4a4201
permissions -rw-r--r--
Updated TF2_OnIsHolidayActive ret behavior to match doc (bug 5155, r=fyren).
skamonkey@3293
     1
#include <sourcemod>
skamonkey@3293
     2
#include <sdktools>
skamonkey@3293
     3
skamonkey@3293
     4
// Coverage:
skamonkey@3293
     5
// GetEntPropArraySize - PropSend/PropData
skamonkey@3293
     6
skamonkey@3293
     7
// GetEntPropString - PropData
skamonkey@3293
     8
skamonkey@3293
     9
// GetEntProp    - PropSend/PropData
skamonkey@3293
    10
// GetEntPropEnt - PropSend/PropData
skamonkey@3293
    11
skamonkey@3293
    12
// SetEntProp    - PropSend/PropData
skamonkey@3293
    13
skamonkey@3293
    14
public OnPluginStart()
skamonkey@3293
    15
{
skamonkey@3293
    16
	RegConsoleCmd("sm_listammo", sm_listammo, "sm_listammo <send|data> [target] - Lists current ammo for self or specified player");
skamonkey@3293
    17
	RegConsoleCmd("sm_listweapons", sm_listweapons, "sm_listweapons <send|data> [target] - Lists current weapons for self or specified player");
skamonkey@3293
    18
	RegConsoleCmd("sm_setammo", sm_setammo, "sm_setammo <ammotype> <amount> <send|data> [target]");
skamonkey@3293
    19
	RegConsoleCmd("sm_teststrings", sm_teststrings);
skamonkey@3293
    20
}
skamonkey@3293
    21
skamonkey@3293
    22
public Action:sm_listammo(client, argc)
skamonkey@3293
    23
{
skamonkey@3293
    24
	decl String:buffer[64];
skamonkey@3293
    25
	new target = client;
skamonkey@3293
    26
	if (argc >= 2)
skamonkey@3293
    27
	{
skamonkey@3293
    28
		GetCmdArg(2, buffer, sizeof(buffer));
skamonkey@3293
    29
		target = FindTarget(client, buffer, false, false);
skamonkey@3293
    30
		if (target <= 0)
skamonkey@3293
    31
		{
skamonkey@3293
    32
			ReplyToCommand(client, "Bad client");
skamonkey@3293
    33
			return Plugin_Handled;
skamonkey@3293
    34
		}
skamonkey@3293
    35
	}
skamonkey@3293
    36
	else if (client == 0)
skamonkey@3293
    37
	{
skamonkey@3293
    38
		ReplyToCommand(client, "Dillweed");
skamonkey@3293
    39
		return Plugin_Handled;
skamonkey@3293
    40
	}
skamonkey@3293
    41
	
skamonkey@3293
    42
	new PropType:proptype = PropType:-1;
skamonkey@3293
    43
	GetCmdArg(1, buffer, sizeof(buffer));
skamonkey@3293
    44
	if (!strcmp(buffer, "send"))
skamonkey@3293
    45
		proptype = Prop_Send;
skamonkey@3293
    46
	else if (!strcmp(buffer, "data"))
skamonkey@3293
    47
		proptype = Prop_Data;
skamonkey@3293
    48
	
skamonkey@3293
    49
	new ammo;
skamonkey@3293
    50
	new max = GetEntPropArraySize(target, proptype, "m_iAmmo");
skamonkey@3293
    51
	for (new i = 0; i < max; i++)
skamonkey@3293
    52
	{
skamonkey@3293
    53
		if ((ammo = GetEntProp(target, proptype, "m_iAmmo", _, i)) > 0)
skamonkey@3293
    54
			ReplyToCommand(client, "Slot %d, Ammo %d", i, ammo);
skamonkey@3293
    55
	}
skamonkey@3293
    56
		
skamonkey@3293
    57
	return Plugin_Handled;
skamonkey@3293
    58
}
skamonkey@3293
    59
skamonkey@3293
    60
public Action:sm_listweapons(client, argc)
skamonkey@3293
    61
{
skamonkey@3293
    62
	decl String:buffer[64];
skamonkey@3293
    63
	new target = client;
skamonkey@3293
    64
	if (argc >= 2)
skamonkey@3293
    65
	{
skamonkey@3293
    66
		GetCmdArg(2, buffer, sizeof(buffer));
skamonkey@3293
    67
		target = FindTarget(client, buffer, false, false);
skamonkey@3293
    68
		if (target <= 0)
skamonkey@3293
    69
		{
skamonkey@3293
    70
			ReplyToCommand(client, "Bad client");
skamonkey@3293
    71
			return Plugin_Handled;
skamonkey@3293
    72
		}
skamonkey@3293
    73
	}
skamonkey@3293
    74
	else if (client == 0)
skamonkey@3293
    75
	{
skamonkey@3293
    76
		ReplyToCommand(client, "Dillweed");
skamonkey@3293
    77
		return Plugin_Handled;
skamonkey@3293
    78
	}
skamonkey@3293
    79
	
skamonkey@3293
    80
	new PropType:proptype = PropType:-1;
skamonkey@3293
    81
	GetCmdArg(1, buffer, sizeof(buffer));
skamonkey@3293
    82
	if (!strcmp(buffer, "send"))
skamonkey@3293
    83
		proptype = Prop_Send;
skamonkey@3293
    84
	else if (!strcmp(buffer, "data"))
skamonkey@3293
    85
		proptype = Prop_Data;
skamonkey@3293
    86
	
skamonkey@3293
    87
	new weapon, String:classname[64];
skamonkey@3293
    88
	new max = GetEntPropArraySize(target, proptype, "m_hMyWeapons");
skamonkey@3293
    89
	for (new i = 0; i < max; i++)
skamonkey@3293
    90
	{
skamonkey@3293
    91
		if ((weapon = GetEntPropEnt(target, proptype, "m_hMyWeapons", i)) == -1)
skamonkey@3293
    92
			continue;
skamonkey@3293
    93
		
skamonkey@3293
    94
		GetEdictClassname(weapon, classname, sizeof(classname));
skamonkey@3293
    95
		ReplyToCommand(client, "Slot %d - \"%s\"", i, classname);
skamonkey@3293
    96
	}
skamonkey@3293
    97
		
skamonkey@3293
    98
	return Plugin_Handled;
skamonkey@3293
    99
}
skamonkey@3293
   100
skamonkey@3293
   101
public Action:sm_setammo(client, argc)
skamonkey@3293
   102
{
skamonkey@3293
   103
	decl String:buffer[64];
skamonkey@3293
   104
	new target = client;
skamonkey@3293
   105
	if (argc >= 4)
skamonkey@3293
   106
	{
skamonkey@3293
   107
		GetCmdArg(4, buffer, sizeof(buffer));
skamonkey@3293
   108
		target = FindTarget(client, buffer, false, false);
skamonkey@3293
   109
		if (target <= 0)
skamonkey@3293
   110
		{
skamonkey@3293
   111
			ReplyToCommand(client, "Bad client");
skamonkey@3293
   112
			return Plugin_Handled;
skamonkey@3293
   113
		}
skamonkey@3293
   114
	}
skamonkey@3293
   115
	else if (client == 0)
skamonkey@3293
   116
	{
skamonkey@3293
   117
		ReplyToCommand(client, "Dillweed");
skamonkey@3293
   118
		return Plugin_Handled;
skamonkey@3293
   119
	}
skamonkey@3293
   120
	
skamonkey@3293
   121
	new PropType:proptype = PropType:-1;
skamonkey@3293
   122
	GetCmdArg(3, buffer, sizeof(buffer));
skamonkey@3293
   123
	if (!strcmp(buffer, "send"))
skamonkey@3293
   124
		proptype = Prop_Send;
skamonkey@3293
   125
	else if (!strcmp(buffer, "data"))
skamonkey@3293
   126
		proptype = Prop_Data;
skamonkey@3293
   127
	
skamonkey@3293
   128
	new max = GetEntPropArraySize(target, proptype, "m_iAmmo");
skamonkey@3293
   129
	
skamonkey@3293
   130
	GetCmdArg(1, buffer, sizeof(buffer));
skamonkey@3293
   131
	new ammotype = StringToInt(buffer);
skamonkey@3293
   132
	
skamonkey@3293
   133
	if (ammotype >= max)
skamonkey@3293
   134
	{
skamonkey@3293
   135
		ReplyToCommand(client, "Ammotype out of bounds");
skamonkey@3293
   136
		return Plugin_Handled;
skamonkey@3293
   137
	}
skamonkey@3293
   138
	
skamonkey@3293
   139
	GetCmdArg(2, buffer, sizeof(buffer));
skamonkey@3293
   140
	new amount = StringToInt(buffer);
skamonkey@3293
   141
	
skamonkey@3293
   142
	SetEntProp(target, proptype, "m_iAmmo", amount, _, ammotype);
skamonkey@3293
   143
	
skamonkey@3293
   144
	return Plugin_Handled;
skamonkey@3293
   145
}
skamonkey@3293
   146
skamonkey@3293
   147
public Action:sm_teststrings(client, argc)
skamonkey@3293
   148
{
skamonkey@3293
   149
	new gpe = CreateEntityByName("game_player_equip");
skamonkey@3293
   150
	DispatchKeyValue(gpe, "tf_weapon_rocketlauncher", "2");
skamonkey@3293
   151
	DispatchKeyValue(gpe, "tf_weapon_pistol",         "1");
skamonkey@3293
   152
	
skamonkey@3293
   153
	decl String:value[64];
skamonkey@3293
   154
	for (new i = 0; i < 2; i++)
skamonkey@3293
   155
	{
skamonkey@3293
   156
		GetEntPropString(gpe, Prop_Data, "m_weaponNames", value, sizeof(value), i);
skamonkey@3293
   157
		ReplyToCommand(client, "At %d, I see a \"%s\"", i, value);
skamonkey@3293
   158
	}
skamonkey@3293
   159
	
skamonkey@3293
   160
	AcceptEntityInput(gpe, "Kill");
skamonkey@3293
   161
	
skamonkey@3293
   162
	return Plugin_Handled;
skamonkey@3293
   163
}