| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- ShowPickupDialog(playerid, dialogid) {
- switch( dialogid ) {
- case DIALOGID_PICKUP_MAIN: {
- new pickupid = GetPlayerEditPickup(playerid);
- if( !IsValidPickup(pickupid) ) {
- return 1;
- }
- g_DialogInfo = "";
- for(new listitem; listitem < MAX_LISTITEMS_PICKUP; listitem ++) {
- switch(listitem) {
- case LISTITEM_PICKUP_GOTO: {
- strcat(g_DialogInfo, "Goto\t \n");
- }
- case LISTITEM_PICKUP_GET: {
- strcat(g_DialogInfo, "Get\t \n");
- }
- case LISTITEM_PICKUP_COORD: {
- strcat(g_DialogInfo, "Coordinates\t \n");
- }
- case LISTITEM_PICKUP_MOVE: {
- strcat(g_DialogInfo, "Click & Drag Move\t \n");
- }
- case LISTITEM_PICKUP_REMOVE: {
- strcat(g_DialogInfo, "Remove\t \n");
- }
- case LISTITEM_PICKUP_DUPLICATE: {
- strcat(g_DialogInfo, "Duplicate\t \n");
- }
- case LISTITEM_PICKUP_COMMENT: {
- strunpack(g_CommentString, g_PickupData[pickupid][PICKUP_DATA_COMMENT], sizeof g_CommentString); // Get Comment
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Comment\t%s\n", g_CommentString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- case LISTITEM_PICKUP_COMMENT_RESET: {
- GetModelName(g_PickupData[pickupid][PICKUP_DATA_MODEL], g_ModelString, sizeof g_ModelString);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "Reset Comment To\t%s\n", g_ModelString);
- strcat(g_DialogInfo, g_DialogInfoRow);
- }
- default: {
- strcat(g_DialogInfo, " \t \n");
- }
- }
- }
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_TABLIST, "Pickup", g_DialogInfo, "Select", "Cancel");
- }
- case DIALOGID_PICKUP_COORD: {
- new pickupid = GetPlayerEditPickup(playerid);
- if( !IsValidPickup(pickupid) ) {
- return 1;
- }
- g_DialogInfo = "";
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "x\t%f\n", g_PickupData[pickupid][PICKUP_DATA_X]);
- strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "y\t%f\n", g_PickupData[pickupid][PICKUP_DATA_Y]);
- strcat(g_DialogInfo, g_DialogInfoRow);
- format(g_DialogInfoRow, sizeof g_DialogInfoRow, "z\t%f\n", g_PickupData[pickupid][PICKUP_DATA_Z]);
- strcat(g_DialogInfo, g_DialogInfoRow);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Pickup Coordinates", g_DialogInfo, "Enter", "Cancel");
- }
- case DIALOGID_PICKUP_COMMENT: {
- new pickupid = GetPlayerEditPickup(playerid);
- if( !IsValidPickup(pickupid) ) {
- return 1;
- }
- strunpack(g_CommentString, g_PickupData[pickupid][PICKUP_DATA_COMMENT], sizeof g_CommentString);
- format(g_DialogInfo, sizeof g_DialogInfo, "Current Comment: %s", g_CommentString);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Pickup Comment", g_DialogInfo, "Enter", "Cancel");
- }
- default: {
- return 0;
- }
- }
- return 1;
- }
- RecreatePickup(copy_pickupid) {
- new paste_pickupid = CopyPickup(copy_pickupid);
- if( paste_pickupid != INVALID_PICKUP_ID ) {
- for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
- if( !IsPlayerConnected(playerid) ) {
- continue;
- }
- if( GetPlayerEditPickup(playerid) == copy_pickupid ) {
- g_PlayerData[playerid][PLAYER_DATA_EDIT_ID] = paste_pickupid;
- }
- for(new row; row < MAX_SELECTLIST_ROWS; row ++) {
- if( copy_pickupid != g_SelectPickListData[playerid][SELECTLIST_DATA_ROW_ID][row] ) {
- continue;
- }
- g_SelectPickListData[playerid][SELECTLIST_DATA_ROW_ID][row] = paste_pickupid;
- if( g_PlayerData[playerid][PLAYER_DATA_TDMODE] == TDMODE_SELECTLIST_PICKUP ) {
- ApplySelectListRowData(playerid, row);
- }
- }
- }
- DestroyPickup(copy_pickupid);
- }
- return paste_pickupid;
- }
- CopyPickup(copy_pickupid) {
- new paste_pickupid = CreatePickup(
- g_PickupData[copy_pickupid][PICKUP_DATA_MODEL],
- 1,
- g_PickupData[copy_pickupid][PICKUP_DATA_X],
- g_PickupData[copy_pickupid][PICKUP_DATA_Y],
- g_PickupData[copy_pickupid][PICKUP_DATA_Z]
- );
- if( paste_pickupid != INVALID_PICKUP_ID ) {
- strunpack(g_CommentString, g_PickupData[copy_pickupid][PICKUP_DATA_COMMENT], sizeof g_CommentString); // Get Comment
- strpack(g_PickupData[paste_pickupid][PICKUP_DATA_COMMENT], g_CommentString, sizeof g_CommentString); // Set Comment
- g_PickupData[paste_pickupid][PICKUP_DATA_MEMORY_X] = g_PickupData[copy_pickupid][PICKUP_DATA_MEMORY_X];
- g_PickupData[paste_pickupid][PICKUP_DATA_MEMORY_Y] = g_PickupData[copy_pickupid][PICKUP_DATA_MEMORY_Y];
- g_PickupData[paste_pickupid][PICKUP_DATA_MEMORY_Z] = g_PickupData[copy_pickupid][PICKUP_DATA_MEMORY_Z];
- }
- return paste_pickupid;
- }
- FindPickups(result[], result_size, search[], offset, &max_offset) {
- new
- rows_found,
- rows_added,
- search_int = -1,
- packed_search[MAX_SEARCH_LEN+1 char]
- ;
- sscanf(search, "i", search_int);
- strpack(packed_search, search);
- for(new pickupid, modelid, cache_index; pickupid < MAX_PICKUPS; pickupid ++) {
- if( !g_PickupData[pickupid][PICKUP_DATA_ISVALID] ) {
- continue;
- }
- modelid = g_PickupData[pickupid][PICKUP_DATA_MODEL];
- cache_index = GetModelCacheIndex(modelid);
- if(
- isempty(search) ||
- search_int == pickupid ||
- search_int == modelid ||
- strfind(g_PickupData[pickupid][PICKUP_DATA_COMMENT], packed_search, true) != -1 ||
- ( cache_index != INVALID_ARRAY_INDEX && strfind(g_ModelCache[cache_index][MODEL_CACHE_NAME], packed_search, true) != -1 )
- ){
- if( rows_found ++ < offset ) {
- continue;
- }
- if( rows_added < result_size ) {
- result[rows_added ++] = pickupid;
- }
- }
- }
- max_offset = rows_found - 1;
- if( max_offset < 0 ) {
- max_offset = 0;
- }
- return rows_added;
- }
|