157 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
| #include <sourcemod>
 | |
| #include <structs>
 | |
| 
 | |
| 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;
 | |
| }
 |