call.pwn 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  2. switch( dialogid ) {
  3. case DIALOGID_MAP_SAVE_AS: {
  4. if( !response ) {
  5. return 1;
  6. }
  7. new
  8. objects_saved,
  9. vehicles_saved,
  10. pickups_saved,
  11. actors_saved,
  12. attachments_saved,
  13. buildings_saved,
  14. save_success
  15. ;
  16. save_success = SaveMap(
  17. .mapname = inputtext,
  18. .objects_saved = objects_saved,
  19. .vehicles_saved = vehicles_saved,
  20. .pickups_saved = pickups_saved,
  21. .actors_saved = actors_saved,
  22. .attachments_saved = attachments_saved,
  23. .buildings_saved = buildings_saved,
  24. .playerid = playerid
  25. );
  26. if( !save_success ) {
  27. SendClientMessage(playerid, RGBA_RED, "ERROR: This map could not be saved!");
  28. ShowMapSaveDialog(playerid, dialogid);
  29. return 1;
  30. }
  31. if( GetMapID(inputtext) == INVALID_MAP_ID ) {
  32. CreateMapID(.mapname = inputtext);
  33. }
  34. format(g_ClientMessage, sizeof g_ClientMessage, "[%i] %s has saved this map as: %s", playerid, ret_GetPlayerName(playerid), inputtext);
  35. SendClientMessageToAll(RGBA_WHITE, g_ClientMessage);
  36. format(g_ClientMessage, sizeof g_ClientMessage, "Saved: %i Object(s), %i Vehicle(s), %i Pickup(s), %i Actor(s), %i Building(s).", objects_saved, vehicles_saved, pickups_saved, buildings_saved);
  37. SendClientMessageToAll(RGBA_WHITE, g_ClientMessage);
  38. if( attachments_saved > 0 ) {
  39. format(g_ClientMessage, sizeof g_ClientMessage, "+ %i of your attachment(s).", attachments_saved);
  40. SendClientMessage(playerid, RGBA_WHITE, g_ClientMessage);
  41. }
  42. return 1;
  43. }
  44. case DIALOGID_MAP_SAVE_CONFIRM: {
  45. if( !response ) {
  46. return 1;
  47. }
  48. if( g_MapLoadedID == INVALID_MAP_ID ) {
  49. SendClientMessage(playerid, RGBA_RED, "ERROR: A map has not been loaded!");
  50. ShowMapSaveDialog(playerid, dialogid);
  51. return 1;
  52. }
  53. if( isempty(inputtext) || strcmp(inputtext, SAVEMAP_COMMAND, true) != 0 ) {
  54. SendClientMessage(playerid, RGBA_RED, "ERROR: You did not enter the correct command into the textfield!");
  55. ShowMapSaveDialog(playerid, dialogid);
  56. return 1;
  57. }
  58. GetMapName(g_MapLoadedID, g_MapString, sizeof g_MapString);
  59. new
  60. objects_saved,
  61. vehicles_saved,
  62. pickups_saved,
  63. actors_saved,
  64. attachments_saved,
  65. buildings_saved,
  66. save_success
  67. ;
  68. save_success = SaveMap(
  69. .mapname = g_MapString,
  70. .objects_saved = objects_saved,
  71. .vehicles_saved = vehicles_saved,
  72. .pickups_saved = pickups_saved,
  73. .actors_saved = actors_saved,
  74. .attachments_saved = attachments_saved,
  75. .buildings_saved = buildings_saved,
  76. .playerid = playerid
  77. );
  78. if( !save_success ) {
  79. SendClientMessage(playerid, RGBA_RED, "ERROR: This map could not be saved!");
  80. ShowMapSaveDialog(playerid, dialogid);
  81. return 1;
  82. }
  83. format(g_ClientMessage, sizeof g_ClientMessage, "[%i] %s has saved the map.", playerid, ret_GetPlayerName(playerid));
  84. SendClientMessageToAll(RGBA_WHITE, g_ClientMessage);
  85. format(g_ClientMessage, sizeof g_ClientMessage, "Saved: %i Object(s), %i Vehicle(s), %i Pickup(s), %i Actor(s), %i Building(s).", objects_saved, vehicles_saved, pickups_saved, actors_saved, buildings_saved);
  86. SendClientMessageToAll(RGBA_WHITE, g_ClientMessage);
  87. if( attachments_saved > 0 ) {
  88. format(g_ClientMessage, sizeof g_ClientMessage, "+ %i of your attachment(s)", attachments_saved);
  89. SendClientMessage(playerid, RGBA_WHITE, g_ClientMessage);
  90. }
  91. return 1;
  92. }
  93. }
  94. #if defined msave_OnDialogResponse
  95. return msave_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
  96. #else
  97. return 0;
  98. #endif
  99. }
  100. #if defined _ALS_OnDialogResponse
  101. #undef OnDialogResponse
  102. #else
  103. #define _ALS_OnDialogResponse
  104. #endif
  105. #define OnDialogResponse msave_OnDialogResponse
  106. #if defined msave_OnDialogResponse
  107. forward msave_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  108. #endif