Fixed client serials not being unique on Windows (
bug 5285, r=psychonic).
6 name = "Struct Abstraction Test",
10 url = "http://www.sourcemod.net/"
13 public OnPluginStart()
15 RegServerCmd("sm_getstructstring", Command_GetString);
16 RegServerCmd("sm_setstructstring", Command_SetString);
18 RegServerCmd("sm_getstructint", Command_GetInt);
19 RegServerCmd("sm_setstructint", Command_SetInt);
21 RegServerCmd("sm_getstructfloat", Command_GetFloat);
22 RegServerCmd("sm_setstructfloat", Command_SetFloat);
26 public Action:Command_GetString(args)
30 ReplyToCommand(0, "[SM] Usage: sm_getstructstring <struct> <string>");
31 return Plugin_Handled;
34 decl String:arg1[32], String:arg2[32], String:value[32];
35 GetCmdArg(1, arg1, sizeof(arg1));
36 GetCmdArg(2, arg2, sizeof(arg2));
38 new Handle:strct = GetWeaponStruct(arg1);
39 GetStructString(strct, arg2, value, sizeof(value));
41 LogMessage("Value of %s: %s", arg2, value);
45 return Plugin_Handled;
48 public Action:Command_SetString(args)
52 ReplyToCommand(0, "[SM] Usage: sm_setstructstring <struct> <string> <value>");
53 return Plugin_Handled;
56 decl String:arg1[32], String:arg2[32], String:value[32];
57 GetCmdArg(1, arg1, sizeof(arg1));
58 GetCmdArg(2, arg2, sizeof(arg2));
59 GetCmdArg(3, value, sizeof(value));
61 new Handle:strct = GetWeaponStruct(arg1);
62 SetStructString(strct, arg2, value);
66 return Plugin_Handled;
70 public Action:Command_GetInt(args)
74 ReplyToCommand(0, "[SM] Usage: sm_getstructint <struct> <string>");
75 return Plugin_Handled;
78 decl String:arg1[32], String:arg2[32];
79 GetCmdArg(1, arg1, sizeof(arg1));
80 GetCmdArg(2, arg2, sizeof(arg2));
82 new Handle:strct = GetWeaponStruct(arg1);
83 new value = GetStructInt(strct, arg2);
85 LogMessage("Value of %s: %i", arg2, value);
89 return Plugin_Handled;
92 public Action:Command_SetInt(args)
96 ReplyToCommand(0, "[SM] Usage: sm_setstructint <struct> <string> <value>");
97 return Plugin_Handled;
100 decl String:arg1[32], String:arg2[32], String:value[32];
101 GetCmdArg(1, arg1, sizeof(arg1));
102 GetCmdArg(2, arg2, sizeof(arg2));
103 GetCmdArg(3, value, sizeof(value));
105 new Handle:strct = GetWeaponStruct(arg1);
106 SetStructInt(strct, arg2, StringToInt(value));
111 return Plugin_Handled;
114 public Action:Command_GetFloat(args)
118 ReplyToCommand(0, "[SM] Usage: sm_getstructint <struct> <string>");
119 return Plugin_Handled;
122 decl String:arg1[32], String:arg2[32];
123 GetCmdArg(1, arg1, sizeof(arg1));
124 GetCmdArg(2, arg2, sizeof(arg2));
126 new Handle:strct = GetWeaponStruct(arg1);
127 new Float:value = GetStructFloat(strct, arg2);
129 LogMessage("Value of %s: %f", arg2, value);
133 return Plugin_Handled;
136 public Action:Command_SetFloat(args)
140 ReplyToCommand(0, "[SM] Usage: sm_setstructint <struct> <string> <value>");
141 return Plugin_Handled;
144 decl String:arg1[32], String:arg2[32], String:value[32];
145 GetCmdArg(1, arg1, sizeof(arg1));
146 GetCmdArg(2, arg2, sizeof(arg2));
147 GetCmdArg(3, value, sizeof(value));
149 new Handle:strct = GetWeaponStruct(arg1);
150 SetStructFloat(strct, arg2, StringToFloat(value));
155 return Plugin_Handled;