/// <summary> /// Gets a parameter's value. /// </summary> /// <param name="index">The parameter's index.</param> /// <returns>A string representing the parameter's value.</returns> private string getParamValue(int index) { SParameter tempParam = new SParameter(); CEditableStruct tempStruct = GlobalVars.Structures[this.currentStructIndex]; tempStruct.GetGenericParamByIndex(index, out tempParam); if (tempParam.Type == typeof(float)) { float value = 0f; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } else if (tempParam.Type == typeof(string)) { string value = string.Empty; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value); } else if (tempParam.Type == typeof(char)) { char value = '\0'; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } else if (tempParam.Type == typeof(int)) { int value = 0; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } else if (tempParam.Type == typeof(uint)) { uint value = 0; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } else if (tempParam.Type == typeof(short)) { short value = 0; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } else if (tempParam.Type == typeof(double)) { double value = 0f; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } else if (tempParam.Type == typeof(long)) { long value = 0; tempStruct.GetParamValue(this.currentElementIndex, index, ref value); return(value.ToString()); } return(string.Empty); }
/// <summary> /// Prints a structure´s parameter values to the console. /// </summary> /// <param name="parameters">The console input.</param> private void printStructureValues_console(ParameterCollection parameters) { if (parameters.Count < 2) { Game.Console.Print("usage: si_printvalues <structure name> <element index>"); return; } string structName = parameters.ToString(0); int index = 0; if (!int.TryParse(parameters.ToString(1), out index)) { Game.Console.Print("Invalid index specified!"); return; } CEditableStruct tempStruct = GlobalVars.Structures.Find(x => x.Name == structName); if (tempStruct == null) { Game.Console.Print("No struct found with name \"" + structName + "\"!"); return; } SParameter tempParam = new SParameter(); for (int i = 0; i < tempStruct.NumParams; i++) { tempStruct.GetGenericParamByIndex(i, out tempParam); if (tempParam.Type == typeof(float)) { float value = 0f; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } else if (tempParam.Type == typeof(uint)) { uint value = 0; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } else if (tempParam.Type == typeof(string)) { string value = string.Empty; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value); } else if (tempParam.Type == typeof(char)) { char value = '\0'; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value); } else if (tempParam.Type == typeof(int)) { int value = 0; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } else if (tempParam.Type == typeof(short)) { short value = 0; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } else if (tempParam.Type == typeof(double)) { double value = 0f; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } else if (tempParam.Type == typeof(long)) { long value = 0; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } else if (tempParam.Type == typeof(char[])) { int value = 0; tempStruct.GetParamValue(index, i, ref value); Game.Console.Print(tempParam.ParamName + " " + value.ToString()); } } }
private void getParamValue_scriptCmd(GTA.Script sender, GTA.ObjectCollection parameters) { // si_getparamvalue <call identifier> <structure name> <element index> <parameter name> if (parameters.Count < 4) { // Error code 1: invalid parameter count SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 1); return; } string structName = parameters.Convert <string>(1); int index = 0; if (!int.TryParse(parameters.Convert <string>(2), out index)) { // Error code 2: invalid index SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 2); return; } CEditableStruct tempStruct = GlobalVars.Structures.Find(x => x.Name == structName); if (tempStruct == null) { // Error code 3: invalid struct name SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 3); return; } string paramName = parameters.Convert <string>(3); SParameter tempParam = new SParameter(); if (tempStruct.GetGenericParamByName(paramName, ref tempParam) != 0) { // Error code 4: invalid param name SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 4); return; } if (tempParam.Type == typeof(int)) { int retVal = 0; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } else if (tempParam.Type == typeof(string)) { string retVal = string.Empty; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } else if (tempParam.Type == typeof(char)) { char retVal = char.MinValue; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } else if (tempParam.Type == typeof(float)) { float retVal = 0f; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } else if (tempParam.Type == typeof(double)) { double retVal = 0f; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } else if (tempParam.Type == typeof(short)) { short retVal = 0; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } else if (tempParam.Type == typeof(long)) { long retVal = 0; tempStruct.GetParamValue(index, paramName, ref retVal); SendScriptCommand(sender, "si_getparamvalue_response", parameters[0], 0, retVal); } return; }