hook.pwn 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. stock hook_CreatePickup(model, type, Float:X, Float:Y, Float:Z, virtualworld = 0) {
  2. new pickupid = CreatePickup(model, type, X, Y, Z, virtualworld);
  3. if( pickupid != INVALID_PICKUP_ID ) {
  4. g_PickupData[pickupid][PICKUP_DATA_ISVALID] = true;
  5. g_PickupData[pickupid][PICKUP_DATA_MODEL] = model;
  6. g_PickupData[pickupid][PICKUP_DATA_X] = X;
  7. g_PickupData[pickupid][PICKUP_DATA_Y] = Y;
  8. g_PickupData[pickupid][PICKUP_DATA_Z] = Z;
  9. if( GetModelName(model, g_CommentString, MAX_COMMENT_LEN+1) ) {
  10. strpack(g_PickupData[pickupid][PICKUP_DATA_COMMENT], g_CommentString, MAX_COMMENT_LEN+1); // Set Comment
  11. }
  12. }
  13. return pickupid;
  14. }
  15. #if defined _ALS_CreatePickup
  16. #undef CreatePickup
  17. #else
  18. #define _ALS_CreatePickup
  19. #endif
  20. #define CreatePickup hook_CreatePickup
  21. stock hook_DestroyPickup(pickupid) {
  22. new isvalid = IsValidPickup(pickupid);
  23. DestroyPickup(pickupid);
  24. if( isvalid ) {
  25. g_PickupData[pickupid][PICKUP_DATA_ISVALID] = false;
  26. for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
  27. if( !IsPlayerConnected(playerid) ) {
  28. continue;
  29. }
  30. if( GetPlayerEditPickup(playerid) == pickupid ) {
  31. g_PlayerData[playerid][PLAYER_DATA_EDIT_IDTYPE] = ID_TYPE_NONE;
  32. }
  33. new edit_row = g_SelectPickListData[playerid][SELECTLIST_DATA_EDIT_ROW];
  34. if( edit_row != INVALID_ROW ) {
  35. new edit_pickupid = g_SelectPickListData[playerid][SELECTLIST_DATA_ROW_ID][edit_row];
  36. if( pickupid == edit_pickupid ) {
  37. g_SelectPickListData[playerid][SELECTLIST_DATA_EDIT_ROW] = INVALID_ROW;
  38. }
  39. }
  40. for(new row; row < MAX_SELECTLIST_ROWS; row ++) {
  41. if( pickupid != g_SelectPickListData[playerid][SELECTLIST_DATA_ROW_ID][row] ) {
  42. continue;
  43. }
  44. g_SelectPickListData[playerid][SELECTLIST_DATA_ROW_ID][row] = INVALID_PICKUP_ID;
  45. if( g_PlayerData[playerid][PLAYER_DATA_TDMODE] != TDMODE_SELECTLIST_PICKUP ) {
  46. continue;
  47. }
  48. PlayerTextDrawHide(playerid, g_SelectListPTD[playerid][SELECTLIST_PTD_ID_ROW][row]);
  49. PlayerTextDrawHide(playerid, g_SelectListPTD[playerid][SELECTLIST_PTD_COMMENT_ROW][row]);
  50. }
  51. }
  52. }
  53. }
  54. #if defined _ALS_DestroyPickup
  55. #undef DestroyPickup
  56. #else
  57. #define _ALS_DestroyPickup
  58. #endif
  59. #define DestroyPickup hook_DestroyPickup