plugins/testsuite/structtest.sp
author Nicholas Hastings <skamonkey@gmail.com>
Mon Feb 08 19:57:20 2010 -0800 (2010-02-08)
changeset 2914 bf5f9aa53abe
parent 2360 1db1d8c288ca
permissions -rw-r--r--
Fixed FindEntityByClassname crash in Synergy (bug 4235, r=dvander).
pred@2224
     1
#include <sourcemod>
pred@2360
     2
#include <structs>
pred@2224
     3
pred@2224
     4
public Plugin:myinfo = 
pred@2224
     5
{
pred@2224
     6
	name = "Struct Abstraction Test",
pred@2224
     7
	author = "pRED*",
pred@2224
     8
	description = "",
pred@2224
     9
	version = "1.0",
pred@2224
    10
	url = "http://www.sourcemod.net/"
pred@2224
    11
};
pred@2224
    12
pred@2224
    13
public OnPluginStart()
pred@2224
    14
{
pred@2224
    15
	RegServerCmd("sm_getstructstring", Command_GetString);
pred@2224
    16
	RegServerCmd("sm_setstructstring", Command_SetString);
pred@2224
    17
	
pred@2224
    18
	RegServerCmd("sm_getstructint", Command_GetInt);
pred@2224
    19
	RegServerCmd("sm_setstructint", Command_SetInt);
pred@2224
    20
	
pred@2224
    21
	RegServerCmd("sm_getstructfloat", Command_GetFloat);
pred@2224
    22
	RegServerCmd("sm_setstructfloat", Command_SetFloat);
pred@2224
    23
pred@2224
    24
}
pred@2224
    25
pred@2224
    26
public Action:Command_GetString(args)
pred@2224
    27
{
pred@2224
    28
	if (args != 2)
pred@2224
    29
	{
pred@2224
    30
		ReplyToCommand(0, "[SM] Usage: sm_getstructstring <struct> <string>");
pred@2224
    31
		return Plugin_Handled;
pred@2224
    32
	}
pred@2224
    33
pred@2224
    34
	decl String:arg1[32], String:arg2[32], String:value[32];
pred@2224
    35
	GetCmdArg(1, arg1, sizeof(arg1));
pred@2224
    36
	GetCmdArg(2, arg2, sizeof(arg2));
pred@2224
    37
pred@2224
    38
	new Handle:strct = GetWeaponStruct(arg1);
pred@2224
    39
	GetStructString(strct, arg2, value, sizeof(value));
pred@2224
    40
pred@2224
    41
	LogMessage("Value of %s: %s", arg2, value);
pred@2224
    42
pred@2224
    43
	CloseHandle(strct);
pred@2224
    44
pred@2224
    45
	return Plugin_Handled;
pred@2224
    46
}
pred@2224
    47
pred@2224
    48
public Action:Command_SetString(args)
pred@2224
    49
{
pred@2224
    50
	if (args != 3)
pred@2224
    51
	{
pred@2224
    52
		ReplyToCommand(0, "[SM] Usage: sm_setstructstring <struct> <string> <value>");
pred@2224
    53
		return Plugin_Handled;
pred@2224
    54
	}
pred@2224
    55
pred@2224
    56
	decl String:arg1[32], String:arg2[32], String:value[32];
pred@2224
    57
	GetCmdArg(1, arg1, sizeof(arg1));
pred@2224
    58
	GetCmdArg(2, arg2, sizeof(arg2));
pred@2224
    59
	GetCmdArg(3, value, sizeof(value));
pred@2224
    60
pred@2224
    61
	new Handle:strct = GetWeaponStruct(arg1);
pred@2224
    62
	SetStructString(strct, arg2, value);
pred@2224
    63
pred@2224
    64
	CloseHandle(strct);
pred@2224
    65
pred@2224
    66
	return Plugin_Handled;	
pred@2224
    67
	
pred@2224
    68
}
pred@2224
    69
pred@2224
    70
public Action:Command_GetInt(args)
pred@2224
    71
{
pred@2224
    72
	if (args != 2)
pred@2224
    73
	{
pred@2224
    74
		ReplyToCommand(0, "[SM] Usage: sm_getstructint <struct> <string>");
pred@2224
    75
		return Plugin_Handled;
pred@2224
    76
	}
pred@2224
    77
pred@2224
    78
	decl String:arg1[32], String:arg2[32];
pred@2224
    79
	GetCmdArg(1, arg1, sizeof(arg1));
pred@2224
    80
	GetCmdArg(2, arg2, sizeof(arg2));
pred@2224
    81
pred@2224
    82
	new Handle:strct = GetWeaponStruct(arg1);
pred@2224
    83
	new value = GetStructInt(strct, arg2);
pred@2224
    84
pred@2224
    85
	LogMessage("Value of %s: %i", arg2, value);
pred@2224
    86
pred@2224
    87
	CloseHandle(strct);
pred@2224
    88
pred@2224
    89
	return Plugin_Handled;
pred@2224
    90
}
pred@2224
    91
pred@2224
    92
public Action:Command_SetInt(args)
pred@2224
    93
{
pred@2224
    94
	if (args != 3)
pred@2224
    95
	{
pred@2224
    96
		ReplyToCommand(0, "[SM] Usage: sm_setstructint <struct> <string> <value>");
pred@2224
    97
		return Plugin_Handled;
pred@2224
    98
	}
pred@2224
    99
pred@2224
   100
	decl String:arg1[32], String:arg2[32], String:value[32];
pred@2224
   101
	GetCmdArg(1, arg1, sizeof(arg1));
pred@2224
   102
	GetCmdArg(2, arg2, sizeof(arg2));
pred@2224
   103
	GetCmdArg(3, value, sizeof(value));
pred@2224
   104
pred@2224
   105
	new Handle:strct = GetWeaponStruct(arg1);
pred@2224
   106
	SetStructInt(strct, arg2, StringToInt(value));
pred@2224
   107
pred@2224
   108
pred@2224
   109
	CloseHandle(strct);
pred@2224
   110
pred@2224
   111
	return Plugin_Handled;
pred@2224
   112
}
pred@2224
   113
pred@2224
   114
public Action:Command_GetFloat(args)
pred@2224
   115
{
pred@2224
   116
	if (args != 2)
pred@2224
   117
	{
pred@2224
   118
		ReplyToCommand(0, "[SM] Usage: sm_getstructint <struct> <string>");
pred@2224
   119
		return Plugin_Handled;
pred@2224
   120
	}
pred@2224
   121
pred@2224
   122
	decl String:arg1[32], String:arg2[32];
pred@2224
   123
	GetCmdArg(1, arg1, sizeof(arg1));
pred@2224
   124
	GetCmdArg(2, arg2, sizeof(arg2));
pred@2224
   125
pred@2224
   126
	new Handle:strct = GetWeaponStruct(arg1);
pred@2224
   127
	new Float:value = GetStructFloat(strct, arg2);
pred@2224
   128
pred@2224
   129
	LogMessage("Value of %s: %f", arg2, value);
pred@2224
   130
pred@2224
   131
	CloseHandle(strct);
pred@2224
   132
pred@2224
   133
	return Plugin_Handled;
pred@2224
   134
}
pred@2224
   135
pred@2224
   136
public Action:Command_SetFloat(args)
pred@2224
   137
{
pred@2224
   138
	if (args != 3)
pred@2224
   139
	{
pred@2224
   140
		ReplyToCommand(0, "[SM] Usage: sm_setstructint <struct> <string> <value>");
pred@2224
   141
		return Plugin_Handled;
pred@2224
   142
	}
pred@2224
   143
pred@2224
   144
	decl String:arg1[32], String:arg2[32], String:value[32];
pred@2224
   145
	GetCmdArg(1, arg1, sizeof(arg1));
pred@2224
   146
	GetCmdArg(2, arg2, sizeof(arg2));
pred@2224
   147
	GetCmdArg(3, value, sizeof(value));
pred@2224
   148
pred@2224
   149
	new Handle:strct = GetWeaponStruct(arg1);
pred@2224
   150
	SetStructFloat(strct, arg2, StringToFloat(value));
pred@2224
   151
pred@2224
   152
pred@2224
   153
	CloseHandle(strct);
pred@2224
   154
pred@2224
   155
	return Plugin_Handled;
pred@2224
   156
}