5687a7ba90
--HG-- rename : extensions/structs/structs.txt => gamedata/structs.gamedata.txt rename : extensions/structs/structs.inc => plugins/include/structs.inc rename : extensions/structs/structtest.sp => plugins/testsuite/structtest.sp
157 lines
3.4 KiB
SourcePawn
157 lines
3.4 KiB
SourcePawn
#include <sourcemod>
|
|
#include "structs.inc"
|
|
|
|
public Plugin:myinfo =
|
|
{
|
|
name = "Struct Abstraction Test",
|
|
author = "pRED*",
|
|
description = "",
|
|
version = "1.0",
|
|
url = "http://www.sourcemod.net/"
|
|
};
|
|
|
|
public OnPluginStart()
|
|
{
|
|
RegServerCmd("sm_getstructstring", Command_GetString);
|
|
RegServerCmd("sm_setstructstring", Command_SetString);
|
|
|
|
RegServerCmd("sm_getstructint", Command_GetInt);
|
|
RegServerCmd("sm_setstructint", Command_SetInt);
|
|
|
|
RegServerCmd("sm_getstructfloat", Command_GetFloat);
|
|
RegServerCmd("sm_setstructfloat", Command_SetFloat);
|
|
|
|
}
|
|
|
|
public Action:Command_GetString(args)
|
|
{
|
|
if (args != 2)
|
|
{
|
|
ReplyToCommand(0, "[SM] Usage: sm_getstructstring <struct> <string>");
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
decl String:arg1[32], String:arg2[32], String:value[32];
|
|
GetCmdArg(1, arg1, sizeof(arg1));
|
|
GetCmdArg(2, arg2, sizeof(arg2));
|
|
|
|
new Handle:strct = GetWeaponStruct(arg1);
|
|
GetStructString(strct, arg2, value, sizeof(value));
|
|
|
|
LogMessage("Value of %s: %s", arg2, value);
|
|
|
|
CloseHandle(strct);
|
|
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
public Action:Command_SetString(args)
|
|
{
|
|
if (args != 3)
|
|
{
|
|
ReplyToCommand(0, "[SM] Usage: sm_setstructstring <struct> <string> <value>");
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
decl String:arg1[32], String:arg2[32], String:value[32];
|
|
GetCmdArg(1, arg1, sizeof(arg1));
|
|
GetCmdArg(2, arg2, sizeof(arg2));
|
|
GetCmdArg(3, value, sizeof(value));
|
|
|
|
new Handle:strct = GetWeaponStruct(arg1);
|
|
SetStructString(strct, arg2, value);
|
|
|
|
CloseHandle(strct);
|
|
|
|
return Plugin_Handled;
|
|
|
|
}
|
|
|
|
public Action:Command_GetInt(args)
|
|
{
|
|
if (args != 2)
|
|
{
|
|
ReplyToCommand(0, "[SM] Usage: sm_getstructint <struct> <string>");
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
decl String:arg1[32], String:arg2[32];
|
|
GetCmdArg(1, arg1, sizeof(arg1));
|
|
GetCmdArg(2, arg2, sizeof(arg2));
|
|
|
|
new Handle:strct = GetWeaponStruct(arg1);
|
|
new value = GetStructInt(strct, arg2);
|
|
|
|
LogMessage("Value of %s: %i", arg2, value);
|
|
|
|
CloseHandle(strct);
|
|
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
public Action:Command_SetInt(args)
|
|
{
|
|
if (args != 3)
|
|
{
|
|
ReplyToCommand(0, "[SM] Usage: sm_setstructint <struct> <string> <value>");
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
decl String:arg1[32], String:arg2[32], String:value[32];
|
|
GetCmdArg(1, arg1, sizeof(arg1));
|
|
GetCmdArg(2, arg2, sizeof(arg2));
|
|
GetCmdArg(3, value, sizeof(value));
|
|
|
|
new Handle:strct = GetWeaponStruct(arg1);
|
|
SetStructInt(strct, arg2, StringToInt(value));
|
|
|
|
|
|
CloseHandle(strct);
|
|
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
public Action:Command_GetFloat(args)
|
|
{
|
|
if (args != 2)
|
|
{
|
|
ReplyToCommand(0, "[SM] Usage: sm_getstructint <struct> <string>");
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
decl String:arg1[32], String:arg2[32];
|
|
GetCmdArg(1, arg1, sizeof(arg1));
|
|
GetCmdArg(2, arg2, sizeof(arg2));
|
|
|
|
new Handle:strct = GetWeaponStruct(arg1);
|
|
new Float:value = GetStructFloat(strct, arg2);
|
|
|
|
LogMessage("Value of %s: %f", arg2, value);
|
|
|
|
CloseHandle(strct);
|
|
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
public Action:Command_SetFloat(args)
|
|
{
|
|
if (args != 3)
|
|
{
|
|
ReplyToCommand(0, "[SM] Usage: sm_setstructint <struct> <string> <value>");
|
|
return Plugin_Handled;
|
|
}
|
|
|
|
decl String:arg1[32], String:arg2[32], String:value[32];
|
|
GetCmdArg(1, arg1, sizeof(arg1));
|
|
GetCmdArg(2, arg2, sizeof(arg2));
|
|
GetCmdArg(3, value, sizeof(value));
|
|
|
|
new Handle:strct = GetWeaponStruct(arg1);
|
|
SetStructFloat(strct, arg2, StringToFloat(value));
|
|
|
|
|
|
CloseHandle(strct);
|
|
|
|
return Plugin_Handled;
|
|
}
|