pred@2224: #include pred@2360: #include pred@2224: pred@2224: public Plugin:myinfo = pred@2224: { pred@2224: name = "Struct Abstraction Test", pred@2224: author = "pRED*", pred@2224: description = "", pred@2224: version = "1.0", pred@2224: url = "http://www.sourcemod.net/" pred@2224: }; pred@2224: pred@2224: public OnPluginStart() pred@2224: { pred@2224: RegServerCmd("sm_getstructstring", Command_GetString); pred@2224: RegServerCmd("sm_setstructstring", Command_SetString); pred@2224: pred@2224: RegServerCmd("sm_getstructint", Command_GetInt); pred@2224: RegServerCmd("sm_setstructint", Command_SetInt); pred@2224: pred@2224: RegServerCmd("sm_getstructfloat", Command_GetFloat); pred@2224: RegServerCmd("sm_setstructfloat", Command_SetFloat); pred@2224: pred@2224: } pred@2224: pred@2224: public Action:Command_GetString(args) pred@2224: { pred@2224: if (args != 2) pred@2224: { pred@2224: ReplyToCommand(0, "[SM] Usage: sm_getstructstring "); pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: decl String:arg1[32], String:arg2[32], String:value[32]; pred@2224: GetCmdArg(1, arg1, sizeof(arg1)); pred@2224: GetCmdArg(2, arg2, sizeof(arg2)); pred@2224: pred@2224: new Handle:strct = GetWeaponStruct(arg1); pred@2224: GetStructString(strct, arg2, value, sizeof(value)); pred@2224: pred@2224: LogMessage("Value of %s: %s", arg2, value); pred@2224: pred@2224: CloseHandle(strct); pred@2224: pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: public Action:Command_SetString(args) pred@2224: { pred@2224: if (args != 3) pred@2224: { pred@2224: ReplyToCommand(0, "[SM] Usage: sm_setstructstring "); pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: decl String:arg1[32], String:arg2[32], String:value[32]; pred@2224: GetCmdArg(1, arg1, sizeof(arg1)); pred@2224: GetCmdArg(2, arg2, sizeof(arg2)); pred@2224: GetCmdArg(3, value, sizeof(value)); pred@2224: pred@2224: new Handle:strct = GetWeaponStruct(arg1); pred@2224: SetStructString(strct, arg2, value); pred@2224: pred@2224: CloseHandle(strct); pred@2224: pred@2224: return Plugin_Handled; pred@2224: pred@2224: } pred@2224: pred@2224: public Action:Command_GetInt(args) pred@2224: { pred@2224: if (args != 2) pred@2224: { pred@2224: ReplyToCommand(0, "[SM] Usage: sm_getstructint "); pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: decl String:arg1[32], String:arg2[32]; pred@2224: GetCmdArg(1, arg1, sizeof(arg1)); pred@2224: GetCmdArg(2, arg2, sizeof(arg2)); pred@2224: pred@2224: new Handle:strct = GetWeaponStruct(arg1); pred@2224: new value = GetStructInt(strct, arg2); pred@2224: pred@2224: LogMessage("Value of %s: %i", arg2, value); pred@2224: pred@2224: CloseHandle(strct); pred@2224: pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: public Action:Command_SetInt(args) pred@2224: { pred@2224: if (args != 3) pred@2224: { pred@2224: ReplyToCommand(0, "[SM] Usage: sm_setstructint "); pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: decl String:arg1[32], String:arg2[32], String:value[32]; pred@2224: GetCmdArg(1, arg1, sizeof(arg1)); pred@2224: GetCmdArg(2, arg2, sizeof(arg2)); pred@2224: GetCmdArg(3, value, sizeof(value)); pred@2224: pred@2224: new Handle:strct = GetWeaponStruct(arg1); pred@2224: SetStructInt(strct, arg2, StringToInt(value)); pred@2224: pred@2224: pred@2224: CloseHandle(strct); pred@2224: pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: public Action:Command_GetFloat(args) pred@2224: { pred@2224: if (args != 2) pred@2224: { pred@2224: ReplyToCommand(0, "[SM] Usage: sm_getstructint "); pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: decl String:arg1[32], String:arg2[32]; pred@2224: GetCmdArg(1, arg1, sizeof(arg1)); pred@2224: GetCmdArg(2, arg2, sizeof(arg2)); pred@2224: pred@2224: new Handle:strct = GetWeaponStruct(arg1); pred@2224: new Float:value = GetStructFloat(strct, arg2); pred@2224: pred@2224: LogMessage("Value of %s: %f", arg2, value); pred@2224: pred@2224: CloseHandle(strct); pred@2224: pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: public Action:Command_SetFloat(args) pred@2224: { pred@2224: if (args != 3) pred@2224: { pred@2224: ReplyToCommand(0, "[SM] Usage: sm_setstructint "); pred@2224: return Plugin_Handled; pred@2224: } pred@2224: pred@2224: decl String:arg1[32], String:arg2[32], String:value[32]; pred@2224: GetCmdArg(1, arg1, sizeof(arg1)); pred@2224: GetCmdArg(2, arg2, sizeof(arg2)); pred@2224: GetCmdArg(3, value, sizeof(value)); pred@2224: pred@2224: new Handle:strct = GetWeaponStruct(arg1); pred@2224: SetStructFloat(strct, arg2, StringToFloat(value)); pred@2224: pred@2224: pred@2224: CloseHandle(strct); pred@2224: pred@2224: return Plugin_Handled; pred@2224: }