hook.pwn 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. stock hook_CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren = 0) {
  2. new vehicleid = CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren);
  3. if( vehicleid != INVALID_VEHICLE_ID ) {
  4. if( GetVehicleModelName(vehicletype, g_CommentString, MAX_COMMENT_LEN+1) ) {
  5. strpack(g_VehicleData[vehicleid-1][VEHICLE_DATA_COMMENT], g_CommentString, MAX_COMMENT_LEN+1); // Set Vehicle Comment
  6. }
  7. g_VehicleData[vehicleid-1][VEHICLE_DATA_COLOR_1] = color1;
  8. g_VehicleData[vehicleid-1][VEHICLE_DATA_COLOR_2] = color2;
  9. g_VehicleData[vehicleid-1][VEHICLE_DATA_PAINTJOB] = INVALID_PAINTJOB_ID;
  10. }
  11. return vehicleid;
  12. }
  13. #if defined _ALS_CreateVehicle
  14. #undef CreateVehicle
  15. #else
  16. #define _ALS_CreateVehicle
  17. #endif
  18. #define CreateVehicle hook_CreateVehicle
  19. stock hook_DestroyVehicle(vehicleid) {
  20. new success = DestroyVehicle(vehicleid);
  21. if( success ) {
  22. for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
  23. if( !IsPlayerConnected(playerid) ) {
  24. continue;
  25. }
  26. if( GetPlayerEditVehicle(playerid) == vehicleid ) {
  27. g_PlayerData[playerid][PLAYER_DATA_EDIT_IDTYPE] = ID_TYPE_NONE;
  28. }
  29. new edit_row = g_SelectVehListData[playerid][SELECTLIST_DATA_EDIT_ROW];
  30. if( edit_row != INVALID_ROW ) {
  31. new edit_vehicleid = g_SelectVehListData[playerid][SELECTLIST_DATA_ROW_ID][edit_row];
  32. if( vehicleid == edit_vehicleid ) {
  33. g_SelectVehListData[playerid][SELECTLIST_DATA_EDIT_ROW] = INVALID_ROW;
  34. }
  35. }
  36. for(new row; row < MAX_SELECTLIST_ROWS; row ++) {
  37. if( vehicleid != g_SelectVehListData[playerid][SELECTLIST_DATA_ROW_ID][row] ) {
  38. continue;
  39. }
  40. g_SelectVehListData[playerid][SELECTLIST_DATA_ROW_ID][row] = INVALID_VEHICLE_ID;
  41. if( g_PlayerData[playerid][PLAYER_DATA_TDMODE] != TDMODE_SELECTLIST_VEHICLE ) {
  42. continue;
  43. }
  44. PlayerTextDrawHide(playerid, g_SelectListPTD[playerid][SELECTLIST_PTD_ID_ROW][row]);
  45. PlayerTextDrawHide(playerid, g_SelectListPTD[playerid][SELECTLIST_PTD_COMMENT_ROW][row]);
  46. }
  47. }
  48. for(new objectid = 1; objectid <= MAX_OBJECTS; objectid ++) {
  49. if( IsValidObject(objectid) && GetObjectAttachVehicle(objectid) == vehicleid) {
  50. DestroyObject(objectid);
  51. }
  52. }
  53. }
  54. return success;
  55. }
  56. #if defined _ALS_DestroyVehicle
  57. #undef DestroyVehicle
  58. #else
  59. #define _ALS_DestroyVehicle
  60. #endif
  61. #define DestroyVehicle hook_DestroyVehicle