| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- public OnFilterScriptInit() {
- CreateGenericCategoryManager();
- for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
- if( IsPlayerConnected(playerid) ) {
- DefaultCategoryManagerData(playerid);
- }
- }
- #if defined cm_OnFilterScriptInit
- cm_OnFilterScriptInit();
- #endif
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit cm_OnFilterScriptInit
- #if defined cm_OnFilterScriptInit
- forward cm_OnFilterScriptInit();
- #endif
- public OnFilterScriptExit() {
- DestroyGenericCategoryManager();
- #if defined cm_OnFilterScriptExit
- cm_OnFilterScriptExit();
- #endif
- }
- #if defined _ALS_OnFilterScriptExit
- #undef OnFilterScriptExit
- #else
- #define _ALS_OnFilterScriptExit
- #endif
- #define OnFilterScriptExit cm_OnFilterScriptExit
- #if defined cm_OnFilterScriptExit
- forward cm_OnFilterScriptExit();
- #endif
- public OnPlayerConnect(playerid) {
- DefaultCategoryManagerData(playerid);
- #if defined cm_OnPlayerConnect
- return cm_OnPlayerConnect(playerid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect cm_OnPlayerConnect
- #if defined cm_OnPlayerConnect
- forward cm_OnPlayerConnect(playerid);
- #endif
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch( dialogid ) {
- case DIALOGID_CATMANAGER_CAT_CREATE: {
- if( !response ) {
- return 1;
- }
- if( isempty(inputtext) ) {
- ShowCategoryManagerDialog(playerid, dialogid);
- SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter anything into the textfield!");
- return 1;
- }
- new create_success;
- switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
- case TDMODE_CATMANAGER_MODELS: {
- create_success = CreateModelCategory(inputtext);
- }
- case TDMODE_CATMANAGER_VEHICLES: {
- create_success = CreateVehicleCategory(inputtext);
- }
- case TDMODE_CATMANAGER_SKINS: {
- create_success = CreateSkinCategory(inputtext);
- }
- case TDMODE_CATMANAGER_TEXTURES: {
- create_success = CreateTextureCategory(inputtext);
- }
- default: {
- return 1;
- }
- }
- if( create_success ) {
- SendClientMessage(playerid, RGBA_GREEN, "Category created successfully.");
- } else {
- SendClientMessage(playerid, RGBA_RED, "ERROR: Category could not be created!");
- ShowCategoryManagerDialog(playerid, dialogid);
- }
- return 1;
- }
- case DIALOGID_CATMANAGER_CAT_DESTROY: {
- if( !response ) {
- return 1;
- }
- if( isempty(inputtext) || strcmp(inputtext, CATMANAGER_DELETE_CODE, true) != 0 ) {
- SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter the correct delete code!");
- ShowCategoryManagerDialog(playerid, dialogid);
- return 1;
- }
- new categoryid = g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY];
- if( categoryid == INVALID_CATEGORY_ID ) {
- return 1;
- }
- new success;
- switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
- case TDMODE_CATMANAGER_MODELS: {
- success = DestroyModelCategory(categoryid);
- }
- case TDMODE_CATMANAGER_VEHICLES: {
- success = DestroyVehicleCategory(categoryid);
- }
- case TDMODE_CATMANAGER_SKINS: {
- success = DestroySkinCategory(categoryid);
- }
- case TDMODE_CATMANAGER_TEXTURES: {
- success = DestroyTextureCategory(categoryid);
- }
- default: {
- return 1;
- }
- }
- if( success ) {
- SendClientMessage(playerid, RGBA_GREEN, "Category destroyed successfully.");
- SetCategoryManagerPage(playerid, CATMANAGER_WINDOW_CAT, MIN_CATMANAGER_PAGE);
- g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY] = INVALID_CATEGORY_ID;
- LoadCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
- ApplyCategoryManagerPage(playerid, CATMANAGER_WINDOW_CAT);
- ApplyCategoryManagerCatName(playerid);
- ApplyCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
- } else {
- SendClientMessage(playerid, RGBA_RED, "ERROR: This category could not be removed!");
- ShowCategoryManagerDialog(playerid, dialogid);
- }
- return 1;
- }
- case DIALOGID_CATMANAGER_CAT_RENAME: {
- if( !response ) {
- return 1;
- }
- if( isempty(inputtext) ) {
- SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter anything into the textfield!");
- ShowCategoryManagerDialog(playerid, dialogid);
- return 1;
- }
- new categoryid = g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY];
- if( categoryid == INVALID_CATEGORY_ID ) {
- return 1;
- }
- new success;
- switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
- case TDMODE_CATMANAGER_MODELS: {
- success = RenameModelCategory(categoryid, inputtext);
- }
- case TDMODE_CATMANAGER_VEHICLES: {
- success = RenameVehicleCategory(categoryid, inputtext);
- }
- case TDMODE_CATMANAGER_SKINS: {
- success = RenameSkinCategory(categoryid, inputtext);
- }
- case TDMODE_CATMANAGER_TEXTURES: {
- success = RenameTextureCategory(categoryid, inputtext);
- }
- default: {
- return 1;
- }
- }
- if( success ) {
- SendClientMessage(playerid, RGBA_GREEN, "Category renamed successfully.");
- ApplyCategoryManagerCatName(playerid);
- } else {
- SendClientMessage(playerid, RGBA_RED, "ERROR: This category could not be renamed!");
- ShowCategoryManagerDialog(playerid, dialogid);
- }
- return 1;
- }
- case DIALOGID_CATMANAGER_PAGE_ALL, DIALOGID_CATMANAGER_PAGE_CAT: {
- if( !response ) {
- return 1;
- }
- new
- bool:window = (dialogid == DIALOGID_CATMANAGER_PAGE_ALL) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
- maxpage = GetCategoryManagerMaxPage(playerid, window),
- page
- ;
- if( sscanf(inputtext, "i", page) || (page-1) < MIN_CATMANAGER_PAGE || (page-1) > maxpage ) {
- SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter a valid page number!");
- ShowCategoryManagerDialog(playerid, dialogid);
- return 1;
- }
- SetCategoryManagerPage(playerid, window, page - 1);
- LoadCategoryManagerRowData(playerid, window);
- ApplyCategoryManagerPage(playerid, window);
- ApplyCategoryManagerRowData(playerid, window);
- return 1;
- }
- case DIALOGID_CATMANAGER_SEARCH_ALL, DIALOGID_CATMANAGER_SEARCH_CAT: {
- if( !response ) {
- return 1;
- }
- new bool:window = (dialogid == DIALOGID_CATMANAGER_SEARCH_ALL) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT;
- SetCategoryManagerSearch(playerid, window, inputtext);
- SetCategoryManagerPage(playerid, window, MIN_CATMANAGER_PAGE);
- LoadCategoryManagerRowData(playerid, window);
- ApplyCategoryManagerSearch(playerid, window);
- ApplyCategoryManagerPage(playerid, window);
- ApplyCategoryManagerRowData(playerid, window);
- return 1;
- }
- }
- #if defined cm_OnDialogResponse
- return cm_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
- #else
- return 0;
- #endif
- }
- #if defined _ALS_OnDialogResponse
- #undef OnDialogResponse
- #else
- #define _ALS_OnDialogResponse
- #endif
- #define OnDialogResponse cm_OnDialogResponse
- #if defined cm_OnDialogResponse
- forward cm_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
- #endif
- public OnPlayerClickTextDraw(playerid, Text:clickedid) {
- if( clickedid == Text: INVALID_TEXT_DRAW ) {
- switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
- case TDMODE_CATMANAGER_MODELS, TDMODE_CATMANAGER_VEHICLES, TDMODE_CATMANAGER_SKINS, TDMODE_CATMANAGER_TEXTURES: {
- HidePlayerTextdrawMode(playerid);
- }
- }
- }
- if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_CLOSE] ) {
- return HidePlayerTextdrawMode(playerid), 1;
- }
- if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_CATEGORY_CREATE] ) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_CAT_CREATE), 1;
- }
- if(clickedid == g_CatManagerGTD[CATMANAGER_GTD_CATEGORY_DESTROY]) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_CAT_DESTROY), 1;
- }
- if(clickedid == g_CatManagerGTD[CATMANAGER_GTD_CATEGORY_RENAME]) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_CAT_RENAME), 1;
- }
- if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_F_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_F_CAT] ) {
- new bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_F_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT;
- if( GetCategoryManagerPage(playerid, window) == MIN_CATMANAGER_PAGE ) {
- return 1;
- }
- SetCategoryManagerPage(playerid, window, MIN_CATMANAGER_PAGE);
- LoadCategoryManagerRowData(playerid, window);
- ApplyCategoryManagerPage(playerid, window);
- ApplyCategoryManagerRowData(playerid, window);
- return 1;
- }
- if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_P_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_P_CAT] ) {
- new
- bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_P_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
- page = GetCategoryManagerPage(playerid, window)
- ;
- if( page == MIN_CATMANAGER_PAGE ) {
- return 1;
- }
- if( -- page < MIN_CATMANAGER_PAGE ) {
- page = MIN_CATMANAGER_PAGE;
- }
- SetCategoryManagerPage(playerid, window, page);
- LoadCategoryManagerRowData(playerid, window);
- ApplyCategoryManagerPage(playerid, window);
- ApplyCategoryManagerRowData(playerid, window);
- return 1;
- }
- if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_N_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_N_CAT] ) {
- new
- bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_N_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
- page = GetCategoryManagerPage(playerid, window),
- maxpage = GetCategoryManagerMaxPage(playerid, window)
- ;
- if( page == maxpage ) {
- return 1;
- }
- if( ++ page > maxpage ) {
- page = maxpage;
- }
- SetCategoryManagerPage(playerid, window, page);
- LoadCategoryManagerRowData(playerid, window);
- ApplyCategoryManagerPage(playerid, window);
- ApplyCategoryManagerRowData(playerid, window);
- return 1;
- }
- if( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_L_ALL] || clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_L_CAT] ) {
- new
- bool: window = ( clickedid == g_CatManagerGTD[CATMANAGER_GTD_PAGE_L_ALL] ) ? CATMANAGER_WINDOW_ALL : CATMANAGER_WINDOW_CAT,
- maxpage = GetCategoryManagerMaxPage(playerid, window)
- ;
- if( GetCategoryManagerPage(playerid, window) == maxpage ) {
- return 1;
- }
- SetCategoryManagerPage(playerid, window, maxpage);
- LoadCategoryManagerRowData(playerid, window);
- ApplyCategoryManagerPage(playerid, window);
- ApplyCategoryManagerRowData(playerid, window);
- return 1;
- }
- #if defined cm_OnPlayerClickTextDraw
- return cm_OnPlayerClickTextDraw(playerid, Text:clickedid);
- #else
- return 0;
- #endif
- }
- #if defined _ALS_OnPlayerClickTextDraw
- #undef OnPlayerClickTextDraw
- #else
- #define _ALS_OnPlayerClickTextDraw
- #endif
- #define OnPlayerClickTextDraw cm_OnPlayerClickTextDraw
- #if defined cm_OnPlayerClickTextDraw
- forward cm_OnPlayerClickTextDraw(playerid, Text:clickedid);
- #endif
- public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) {
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_MODELS] ) {
- return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_MODELS), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_VEHICLES] ) {
- return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_VEHICLES), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_SKINS] ) {
- return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_SKINS), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_TYPE_TEXTURES] ) {
- return ShowPlayerTextdrawMode(playerid, TDMODE_CATMANAGER_TEXTURES), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_CATEGORY_NAME] ) {
- DefaultCategorySelectData(playerid);
- LoadCategorySelectData(playerid);
- ShowCategorySelect(playerid);
- return 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_PAGE_ALL] ) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_PAGE_ALL), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_PAGE_CAT] ) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_PAGE_CAT), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_SEARCH_ALL] ) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_SEARCH_ALL), 1;
- }
- if( playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_SEARCH_CAT] ) {
- return ShowCategoryManagerDialog(playerid, DIALOGID_CATMANAGER_SEARCH_CAT), 1;
- }
- for(new row; row < MAX_CATMANAGER_ROWS; row ++) {
- if(
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_1_ALL][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_2_ALL][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_3_ALL][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_1_CAT][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_2_CAT][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_3_CAT][row]
- ) {
- new bool: window;
- if(
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_1_ALL][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_2_ALL][row] ||
- playertextid == g_CatManagerPTD[playerid][CATMANAGER_PTD_ROW_3_ALL][row]
- ) {
- window = CATMANAGER_WINDOW_ALL;
- } else {
- window = CATMANAGER_WINDOW_CAT;
- }
- new
- bool: prev_window = g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_WINDOW],
- prev_row = g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_ROW],
- row_id = GetCategoryManagerRowID(playerid, window, row),
- bool: ismodel
- ;
- // model or texture ?
- switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
- case TDMODE_CATMANAGER_MODELS, TDMODE_CATMANAGER_VEHICLES, TDMODE_CATMANAGER_SKINS: {
- ismodel = true; // model
- }
- default: {
- ismodel = false; // texture
- }
- }
- if( ismodel && row_id == INVALID_MODEL_ID ) {
- return 1; // invalid modelid
- }
- if( !ismodel && row_id == INVALID_TEXTURE_ID ) {
- return 1; // invalid textureid
- }
- if( prev_window != window || prev_row != row ) {
- // New row selected
- g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_WINDOW] = window;
- g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_ROW] = row;
- g_CatManagerData[playerid][CATMANAGER_DATA_SELECT_ID] = row_id;
- if( prev_row != INVALID_ROW ) {
- ApplyCategoryManagerRowColor(playerid, prev_window, prev_row); // apply color to previous row (uncolor)
- }
- ApplyCategoryManagerRowColor(playerid, window, row); // apply color to new row
- if( ismodel ) {
- DestroyTextureView(playerid);
- g_ModelViewData[playerid][MODELVIEW_DATA_MODELID] = row_id;
- if( g_ModelViewData[playerid][MODELVIEW_DATA_TOGGLE] ) {
- ApplyModelViewModel(playerid, .showtd = true);
- } else {
- ShowModelView(playerid);
- }
- } else {
- HideModelView(playerid);
- RefreshTextureView(playerid, .textureid = row_id);
- }
- return 1;
- }
- // Same row selected
- new categoryid = g_CatManagerData[playerid][CATMANAGER_DATA_CATEGORY];
- if( categoryid == INVALID_CATEGORY_ID ) {
- return 1;
- }
- new
- bool: create_bind = (window == CATMANAGER_WINDOW_ALL) ? true : false,
- bool: bind_success = false
- ;
- switch( g_PlayerData[playerid][PLAYER_DATA_TDMODE] ) {
- case TDMODE_CATMANAGER_MODELS: {
- if( create_bind ) {
- bind_success = ( CreateModelCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
- } else {
- bind_success = ( DestroyModelCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
- }
- }
- case TDMODE_CATMANAGER_VEHICLES: {
- if( create_bind ) {
- bind_success = ( CreateVehicleCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
- } else {
- bind_success = ( DestroyVehicleCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
- }
- }
- case TDMODE_CATMANAGER_SKINS: {
- if( create_bind ) {
- bind_success = ( CreateSkinCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
- } else {
- bind_success = ( DestroySkinCategoryBind(categoryid, .modelid = row_id) ) ? true : false;
- }
- }
- case TDMODE_CATMANAGER_TEXTURES: {
- if( create_bind ) {
- bind_success = ( CreateTextureCategoryBind(categoryid, .textureid = row_id) ) ? true : false;
- } else {
- bind_success = ( DestroyTextureCategoryBind(categoryid, .textureid = row_id) ) ? true : false;
- }
- }
- }
- if( bind_success ) {
- LoadCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
- ApplyCategoryManagerRowData(playerid, CATMANAGER_WINDOW_CAT);
- } else {
- format(g_ClientMessage, sizeof g_ClientMessage, "ERROR: This item could not be %s the category!", create_bind ? ("added to") : ("removed from"));
- SendClientMessage(playerid, RGBA_RED, g_ClientMessage);
- }
- return 1;
- }
- }
- #if defined cm_OnPlayerClickPlayerTD
- return cm_OnPlayerClickPlayerTD(playerid, PlayerText:playertextid);
- #else
- return 0;
- #endif
- }
- #if defined _ALS_OnPlayerClickPlayerTD
- #undef OnPlayerClickPlayerTextDraw
- #else
- #define _ALS_OnPlayerClickPlayerTD
- #endif
- #define OnPlayerClickPlayerTextDraw cm_OnPlayerClickPlayerTD
- #if defined cm_OnPlayerClickPlayerTD
- forward cm_OnPlayerClickPlayerTD(playerid, PlayerText:playertextid);
- #endif
|