hook.pwn 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. stock h_CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 0.0) {
  2. new objectid = CreateObject(modelid, X, Y, Z, rX, rY, rZ, DrawDistance);
  3. if(objectid != INVALID_OBJECT_ID) {
  4. if( GetModelName(modelid, g_CommentString, sizeof g_CommentString) ) {
  5. strpack(g_ObjectData[objectid-1][OBJECT_DATA_COMMENT], g_CommentString, sizeof g_CommentString);
  6. }
  7. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] = ID_TYPE_NONE;
  8. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_X] = 0.0;
  9. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Y] = 0.0;
  10. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Z] = 0.0;
  11. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RX] = 0.0;
  12. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RY] = 0.0;
  13. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RZ] = 0.0;
  14. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_MODCOUNT] = 0;
  15. for(new materialindex; materialindex < MAX_OBJECT_INDEX; materialindex ++) {
  16. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] = MATERIALINDEX_TYPE_NONE;
  17. }
  18. }
  19. return objectid;
  20. }
  21. #if defined _ALS_CreateObject
  22. #undef CreateObject
  23. #else
  24. #define _ALS_CreateObject
  25. #endif
  26. #define CreateObject h_CreateObject
  27. stock h_CreatePlayerObject(playerid, modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 0.0) {
  28. new objectid = CreatePlayerObject(playerid, modelid, X, Y, Z, rX, rY, rZ, DrawDistance);
  29. if( objectid != INVALID_OBJECT_ID ) {
  30. if( GetModelName(modelid, g_CommentString, sizeof g_CommentString) ) {
  31. strpack(g_ObjectData[objectid-1][OBJECT_DATA_COMMENT], g_CommentString, sizeof g_CommentString);
  32. }
  33. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_IDTYPE] = ID_TYPE_NONE;
  34. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_X] = 0.0;
  35. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Y] = 0.0;
  36. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_Z] = 0.0;
  37. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RX] = 0.0;
  38. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RY] = 0.0;
  39. g_ObjectData[objectid-1][OBJECT_DATA_ATTACH_RZ] = 0.0;
  40. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_MODCOUNT] = 0;
  41. for(new materialindex; materialindex < MAX_OBJECT_INDEX; materialindex ++) {
  42. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_TYPE][materialindex] = MATERIALINDEX_TYPE_NONE;
  43. }
  44. }
  45. return objectid;
  46. }
  47. #if defined _ALS_CreatePlayerObject
  48. #undef CreatePlayerObject
  49. #else
  50. #define _ALS_CreatePlayerObject
  51. #endif
  52. #define CreatePlayerObject h_CreatePlayerObject
  53. stock h_DestroyObject(objectid) {
  54. new isvalid = IsValidObject(objectid);
  55. DestroyObject(objectid);
  56. if( isvalid ) {
  57. for(new playerid, max_playerid = GetPlayerPoolSize(); playerid <= max_playerid; playerid ++) {
  58. if( !IsPlayerConnected(playerid) ) {
  59. continue;
  60. }
  61. if( GetPlayerEditObject(playerid) == objectid ) {
  62. g_PlayerData[playerid][PLAYER_DATA_EDIT_IDTYPE] = ID_TYPE_NONE;
  63. }
  64. if( g_PlayerData[playerid][PLAYER_DATA_EDIT_ATTACHOBJECT] == objectid ) {
  65. g_PlayerData[playerid][PLAYER_DATA_EDIT_ATTACHOBJECT] = INVALID_OBJECT_ID;
  66. }
  67. if( g_PlayerData[playerid][PLAYER_DATA_EDIT_MATERIALOBJ] == objectid ) {
  68. g_PlayerData[playerid][PLAYER_DATA_EDIT_MATERIALOBJ] = INVALID_OBJECT_ID;
  69. }
  70. new edit_row = g_SelectObjListData[playerid][SELECTLIST_DATA_EDIT_ROW];
  71. if( edit_row != INVALID_ROW ) {
  72. new edit_objectid = g_SelectObjListData[playerid][SELECTLIST_DATA_ROW_ID][edit_row];
  73. if( objectid == edit_objectid ) {
  74. g_SelectObjListData[playerid][SELECTLIST_DATA_EDIT_ROW] = INVALID_ROW;
  75. }
  76. }
  77. for(new row; row < MAX_SELECTLIST_ROWS; row ++) {
  78. if( objectid != g_SelectObjListData[playerid][SELECTLIST_DATA_ROW_ID][row] ) {
  79. continue;
  80. }
  81. g_SelectObjListData[playerid][SELECTLIST_DATA_ROW_ID][row] = INVALID_OBJECT_ID;
  82. if( g_PlayerData[playerid][PLAYER_DATA_TDMODE] != TDMODE_SELECTLIST_OBJECT ) {
  83. continue;
  84. }
  85. PlayerTextDrawHide(playerid, g_SelectListPTD[playerid][SELECTLIST_PTD_ID_ROW][row]);
  86. PlayerTextDrawHide(playerid, g_SelectListPTD[playerid][SELECTLIST_PTD_COMMENT_ROW][row]);
  87. }
  88. }
  89. for(new loop_objectid = 1; loop_objectid <= MAX_OBJECTS; loop_objectid ++) {
  90. if( IsValidObject(loop_objectid) && GetObjectAttachObject(loop_objectid) == objectid ) {
  91. DestroyObject(loop_objectid);
  92. }
  93. }
  94. }
  95. }
  96. #if defined _ALS_DestroyObject
  97. #undef DestroyObject
  98. #else
  99. #define _ALS_DestroyObject
  100. #endif
  101. #define DestroyObject h_DestroyObject
  102. stock h_DestroyPlayerObject(playerid, objectid) {
  103. new isvalid = IsValidPlayerObject(playerid, objectid);
  104. DestroyPlayerObject(playerid, objectid);
  105. if( isvalid ) {
  106. if( g_PlayerData[playerid][PLAYER_DATA_CLICKDRAG_POID] == objectid ) {
  107. g_PlayerData[playerid][PLAYER_DATA_CLICKDRAG_POID] = INVALID_OBJECT_ID;
  108. }
  109. }
  110. }
  111. #if defined _ALS_DestroyPlayerObject
  112. #undef DestroyPlayerObject
  113. #else
  114. #define _ALS_DestroyPlayerObject
  115. #endif
  116. #define DestroyPlayerObject h_DestroyPlayerObject
  117. stock h_SetObjectMaterial(objectid, materialindex, modelid, txdname[], texturename[], materialcolor) {
  118. new success = SetObjectMaterial(objectid, materialindex, modelid, txdname, texturename, materialcolor);
  119. if( success ) {
  120. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_MODCOUNT] ++;
  121. }
  122. return success;
  123. }
  124. #if defined _ALS_SetObjectMaterial
  125. #undef SetObjectMaterial
  126. #else
  127. #define _ALS_SetObjectMaterial
  128. #endif
  129. #define SetObjectMaterial h_SetObjectMaterial
  130. stock h_SetPlayerObjectMaterial(playerid, objectid, materialindex, modelid, txdname[], texturename[], materialcolor) {
  131. SetPlayerObjectMaterial(playerid, objectid, materialindex, modelid, txdname, texturename, materialcolor);
  132. if( IsValidPlayerObject(playerid, objectid) ) {
  133. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_MODCOUNT] ++;
  134. }
  135. }
  136. #if defined _ALS_SetPlayerObjectMaterial
  137. #undef SetPlayerObjectMaterial
  138. #else
  139. #define _ALS_SetPlayerObjectMaterial
  140. #endif
  141. #define SetPlayerObjectMaterial h_SetPlayerObjectMaterial
  142. stock h_SetObjectMaterialText(objectid, text[], materialindex = 0, materialsize = OBJECT_MATERIAL_SIZE_256x128, fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0) {
  143. new success = SetObjectMaterialText(objectid, text, materialindex, materialsize, fontface, fontsize, bold, fontcolor, backcolor, textalignment);
  144. if( success ) {
  145. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_MODCOUNT] ++;
  146. }
  147. return success;
  148. }
  149. #if defined _ALS_SetObjectMaterialText
  150. #undef SetObjectMaterialText
  151. #else
  152. #define _ALS_SetObjectMaterialText
  153. #endif
  154. #define SetObjectMaterialText h_SetObjectMaterialText
  155. stock h_SetPlayerObjectMaterialText(playerid, objectid, text[], materialindex = 0, materialsize = OBJECT_MATERIAL_SIZE_256x128, fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0) {
  156. SetPlayerObjectMaterialText(playerid, objectid, text, materialindex, materialsize, fontface, fontsize, bold, fontcolor, backcolor, textalignment);
  157. if( IsValidPlayerObject(playerid, objectid) ) {
  158. g_ObjectData[objectid-1][OBJECT_DATA_MATINDEX_MODCOUNT] ++;
  159. }
  160. }
  161. #if defined _ALS_SetPlayerObjMaterialText
  162. #undef SetPlayerObjectMaterialText
  163. #else
  164. #define _ALS_SetPlayerObjMaterialText
  165. #endif
  166. #define SetPlayerObjectMaterialText h_SetPlayerObjectMaterialText