@OnyxDog78 Alexander Blade's ScriptHook includes helper libraries in which he already wrote wrapper functions for the natves, so you dont have to use hashes, but can write natives in clear text (which helps a lot, I think).
Outside of your main logic you would need stuff like this:
void DrawText(float x, float y, char* str) //method you will use to draw text on the screen
{
UI::DRAW_TEXT(GAMEPLAY::CREATE_STRING(10, "LITERAL_STRING", str), x, y); //wrapper for 0xD79334A4BB99BAD1
}
char c[50]; //char array for storing your text
int timer; //int for storing your game timer
string text; //the text to be displayed in front of your timer variable
And in you main method, you can use it like:
timer = GAMEPLAY::GET_GAME_TIMER() //wrapper for 0x4F67E8ECA7D3F667
text = "Gameplay Timer: " + std::to_string(timer); //adding the timer variable to your string
strcpy(c, text.c_str()); //copying the string to the char array
DrawText(0.5, 0.5, c); //displaying the char array
The thing with the char array is a bit uncomfortable, but since you cant pass a string to the DRAW_TEXT method, thats the way I have been using it.
The alternative would be include the "copying a string into a char array" portion into the DRAW_TEXT method, but then you would have to have a fixed char array size, which I prefer to specify outside of the method itself (in case I need more space).
Bear in mind that I am a noob and others might be able to give better advice 😛