nikita488 Posted January 2, 2016 Share Posted January 2, 2016 (edited) So i want to draw something like in GTA Online Character Creator Features menu: So i think i find it in "pause_menu_pages_char_mom_dad.gfx", it's collect all stuff from Character Creator menu. But i think it can't be called by _PUSH_SCALEFORM_MOVIE_FUNCTION, only by _0xAB58C27C2E6123C6. But when i try to push functions with _0xAB58C27C2E6123C6 it don't work and always return false. This code based on code from maintransition.c4: Anyone knows how to solve? public static void sub_7e1d9(int a_0, bool a_1) { if (Function.Call<bool>(Hash._0xAB58C27C2E6123C6, "SET_COLUMN_CAN_JUMP")) { Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, !a_1); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); } else { UI.ShowSubtitle("SET_COLUMN_CAN_JUMP don't work"); } } public static void sub_7e1fe(int a_0, bool a_1, bool a_2) { if (Function.Call<bool>(Hash._0xAB58C27C2E6123C6, "SET_COLUMN_FOCUS")) { Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, a_1); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, a_1); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, a_2); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); } else { UI.ShowSubtitle("SET_COLUMN_FOCUS don't work"); } } public static void sub_7e22e(int a_0) { if (Function.Call<bool>(Hash._0xAB58C27C2E6123C6, "DISPLAY_DATA_SLOT")) { Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_0); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); } else { UI.ShowSubtitle("DISPLAY_DATA_SLOT don't work"); } } public static void sub_7fcbb(int a_0, int a_1, int a_2, int a_3, int a_4, bool a_5) { Function.Call(Hash._0xAB58C27C2E6123C6, "INIT_COLUMN_SCROLL"); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, false); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_1); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_2); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_3); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, true); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_4); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, a_5); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); } public static void sub_84f7b(int a_0, int a_1, bool a_2) { if (Function.Call<bool>(Hash._0xAB58C27C2E6123C6, "SET_COLUMN_HIGHLIGHT")) { Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_1); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, false); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, a_2); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); } else { UI.ShowSubtitle("SET_COLUMN_HIGHLIGHT don't work"); } } public static void sub_7de1d(int a_0, bool a_1) { if (Function.Call<bool>(Hash._0xAB58C27C2E6123C6, "SHOW_COLUMN")) { Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, a_0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, a_1); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); } else { UI.ShowSubtitle("SHOW_COLUMN don't work"); } } public static void faceFeatureConfigSetup() { sub_7e22e(3); sub_7e1fe(1, true, true); sub_7fcbb(1, 1, 1, 1, 0, false); sub_84f7b(1, 0, true); sub_7e1d9(1, true); sub_7de1d(3, true); } public static void addfaceFeatureConfig() { if (Function.Call<bool>(Hash._0xAB58C27C2E6123C6, "SET_DATA_SLOT")) { Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 3); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 79 + 1000); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 1); Function.Call(Hash._BEGIN_TEXT_COMPONENT, "FACE_F_UP_B"); Function.Call(Hash._END_TEXT_COMPONENT); Function.Call(Hash._BEGIN_TEXT_COMPONENT, "FACE_F_IN_B"); Function.Call(Hash._END_TEXT_COMPONENT); Function.Call(Hash._BEGIN_TEXT_COMPONENT, "FACE_F_OUT_B"); Function.Call(Hash._END_TEXT_COMPONENT); Function.Call(Hash._BEGIN_TEXT_COMPONENT, "FACE_F_DOWN_B"); Function.Call(Hash._END_TEXT_COMPONENT); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT, 1.0F); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_FLOAT, 1.0F); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_INT, 0); Function.Call(Hash._PUSH_SCALEFORM_MOVIE_FUNCTION_PARAMETER_BOOL, true); Function.Call(Hash._POP_SCALEFORM_MOVIE_FUNCTION_VOID); UI.ShowSubtitle("SET_DATA_SLOT works!"); } else { UI.ShowSubtitle("SET_DATA_SLOT don't work"); } } Edited January 2, 2016 by nikita488 Link to comment Share on other sites More sharing options...
Fireboyd78 Posted January 18, 2016 Share Posted January 18, 2016 Have you figured out the issue yet? I haven't been around lately and just came across your thread. I think you need to make sure the Scaleform movie itself has loaded before you call those functions. Link to comment Share on other sites More sharing options...
nikita488 Posted January 25, 2016 Author Share Posted January 25, 2016 It start working when i write this: int GetHash = Function.Call<int>(Hash.GET_HASH_KEY, "fe_menu_version_mp_character_creation"); Function.Call(Hash.SET_FRONTEND_ACTIVE, 0); Function.Call(Hash.ACTIVATE_FRONTEND_MENU, GetHash, 0, -1); jedijosh920 1 Link to comment Share on other sites More sharing options...
jedijosh920 Posted January 25, 2016 Share Posted January 25, 2016 Nice! Can you get/set data? Link to comment Share on other sites More sharing options...
CliffHanger Posted January 26, 2016 Share Posted January 26, 2016 (edited) It start working when i write this: int GetHash = Function.Call<int>(Hash.GET_HASH_KEY, "fe_menu_version_mp_character_creation"); Function.Call(Hash.SET_FRONTEND_ACTIVE, 0); Function.Call(Hash.ACTIVATE_FRONTEND_MENU, GetHash, 0, -1); That GFX must be tiny in size. From what I've read from Alex Blade is you're supposed to wait for it to load first in a while loop. int GetHash = Function.Call<int>(Hash.GET_HASH_KEY, "fe_menu_version_mp_character_creation");Function.Call(Hash.REQUEST_SCALEFORM_MOVIE("fe_menu_version_mp_character_creation")while (Function.Call(Hash.HAS_SCALEFORM_MOVIE_LOADED(GetHash)) WAIT(0);Function.Call(Hash.SET_FRONTEND_ACTIVE, 0);Function.Call(Hash.ACTIVATE_FRONTEND_MENU, GetHash, 0, -1); Edited January 26, 2016 by CliffHanger Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now