func.pwn 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. ShowMapNewDialog(playerid, dialogid) {
  2. switch( dialogid ) {
  3. case DIALOGID_MAP_NEW: {
  4. format(g_DialogInfo, sizeof g_DialogInfo, "Type & Enter \"%s\" to create a new map.", NEWMAP_COMMAND);
  5. ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "New Map", g_DialogInfo, "Confirm", "Cancel");
  6. }
  7. default: {
  8. return 0;
  9. }
  10. }
  11. return 1;
  12. }
  13. NewMap(
  14. &objects_removed,
  15. &vehicles_removed,
  16. &pickups_removed,
  17. &actors_removed,
  18. &buildings_recreated,
  19. &attachments_removed,
  20. playerid = INVALID_PLAYER_ID
  21. ) {
  22. for(new objectid = 1; objectid <= MAX_OBJECTS; objectid ++) {
  23. if( IsValidObject(objectid) ) {
  24. DestroyObject(objectid);
  25. objects_removed ++;
  26. }
  27. }
  28. for(new vehicleid = 1, max_vehicleid = GetVehiclePoolSize(); vehicleid <= max_vehicleid; vehicleid ++) {
  29. if( IsValidVehicle(vehicleid) ) {
  30. DestroyVehicle(vehicleid);
  31. vehicles_removed ++;
  32. }
  33. }
  34. for(new pickupid; pickupid < MAX_PICKUPS; pickupid ++) {
  35. if( g_PickupData[pickupid][PICKUP_DATA_ISVALID] ) {
  36. pickups_removed ++;
  37. }
  38. DestroyPickup(pickupid);
  39. }
  40. for(new actorid, max_actorid = GetActorPoolSize(); actorid <= max_actorid; actorid ++) {
  41. if( DestroyActor(actorid) ) {
  42. actors_removed ++;
  43. }
  44. }
  45. for(new b; b < BUILDING_DATA_SIZE; b ++) {
  46. if( g_BuildingData[b][BUILDING_DATA_ISREMOVED] ) {
  47. g_BuildingData[b][BUILDING_DATA_ISREMOVED] = false;
  48. buildings_recreated ++;
  49. }
  50. }
  51. if( playerid != INVALID_PLAYER_ID ) {
  52. for(new i; i < MAX_PLAYERATTACH_INDEX; i ++) {
  53. if( g_PlayerAttachData[playerid][i][PLAYERATTACH_DATA_TOGGLE] ) {
  54. attachments_removed ++;
  55. }
  56. DefaultPlayerAttachData(playerid, i);
  57. RemovePlayerAttachedObject(playerid, i);
  58. }
  59. }
  60. }