Advertisement
Guest User

Untitled

a guest
Apr 16th, 2017
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.64 KB | None | 0 0
  1. /*
  2. Doors.inc
  3. Jelly23
  4. */
  5.  
  6. /*Config*/
  7. #define DD_USAR_STREAMER (true)
  8. #define DD_MAX_DOORS (300)
  9.  
  10. /*Sentidos*/
  11. #define SENTIDO_HORARIO (0)
  12. #define SENTIDO_ANTIHORARIO (1)
  13.  
  14. /*Enumerador*/
  15. enum DD_ENUM_J23
  16. {
  17. ID,
  18. Trancada,
  19. Aberta,
  20. Sentido,
  21. Float:dX,
  22. Float:dY,
  23. Float:dZ,
  24. Float:drX,
  25. Float:drY,
  26. Float:drZ
  27. };
  28.  
  29. static ddInfo[DD_MAX_DOORS][DD_ENUM_J23];
  30.  
  31. /*Funções*/
  32. stock CreateDoor(model, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, trancada = 0, sentido = SENTIDO_HORARIO)
  33. {
  34. for(new i = 0; i < DD_MAX_DOORS; i++)
  35. {
  36. #if DD_USAR_STREAMER true
  37. if(!IsValidDynamicObject(ddInfo[i][ID]))
  38. {
  39. ddInfo[i][ID] = CreateDynamicObject(model, X, Y, Z, rX, rY, rZ);
  40. ddInfo[i][Trancada] = trancada;
  41. ddInfo[i][Sentido] = sentido;
  42. ddInfo[i][Aberta] = 0;
  43. ddInfo[i][dX] = X;
  44. ddInfo[i][dY] = Y;
  45. ddInfo[i][dZ] = Z;
  46. ddInfo[i][drX] = rX;
  47. ddInfo[i][drY] = rY;
  48. ddInfo[i][drZ] = rZ;
  49. return i;
  50. }
  51. #else
  52. if(!IsValidObject(ddInfo[i][ID]))
  53. {
  54. ddInfo[i][ID] = CreateObject(model, X, Y, Z, rX, rY, rZ);
  55. ddInfo[i][Trancada] = trancada;
  56. ddInfo[i][Sentido] = sentido;
  57. ddInfo[i][Aberta] = 0;
  58. ddInfo[i][dX] = X;
  59. ddInfo[i][dY] = Y;
  60. ddInfo[i][dZ] = Z;
  61. ddInfo[i][drX] = rX;
  62. ddInfo[i][drY] = rY;
  63. ddInfo[i][drZ] = rZ;
  64. return i;
  65. }
  66. #endif
  67. }
  68. return -1;
  69. }
  70.  
  71. stock DestroyDoor(doorid)
  72. {
  73. #if DD_USAR_STREAMER true
  74. if(IsValidDynamicObject(ddInfo[doorid][ID]))
  75. {
  76. DestroyDynamicObject(ddInfo[doorid][ID]);
  77. }
  78. #else
  79. if(!IsValidObject(ddInfo[doorid][ID]))
  80. {
  81. DestroyObject(ddInfo[doorid][ID]);
  82. }
  83. #endif
  84. }
  85.  
  86. stock DestroyAllDoors()
  87. {
  88. for(new i = 0; i < DD_MAX_DOORS; i++)
  89. {
  90. #if DD_USAR_STREAMER true
  91. if(IsValidDynamicObject(ddInfo[i][ID]))
  92. {
  93. DestroyDynamicObject(ddInfo[i][ID]);
  94. }
  95. #else
  96. if(IsValidObject(ddInfo[i][ID]))
  97. {
  98. DestroyObject(ddInfo[i][ID]);
  99. }
  100. #endif
  101. }
  102. }
  103.  
  104. stock IsValidDoor(doorid)
  105. {
  106. #if DD_USAR_STREAMER true
  107. if(IsValidDynamicObject(ddInfo[doorid][ID]))
  108. #else
  109. if(IsValidObject(ddInfo[doorid][ID]))
  110. #endif
  111. {
  112. return 1;
  113. }
  114. return 0;
  115. }
  116.  
  117. stock OpenDoor(doorid, sentido = -1)
  118. {
  119. #if DD_USAR_STREAMER true
  120. if(IsValidDynamicObject(ddInfo[doorid][ID]))
  121. {
  122. if(ddInfo[doorid][Aberta] == 1) return 0;
  123. if(sentido == -1) sentido = ddInfo[doorid][Sentido];
  124. ddInfo[doorid][Aberta] = 1;
  125. if(sentido == SENTIDO_HORARIO)
  126. {
  127. MoveDynamicObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]-100.0);
  128. }
  129. else
  130. {
  131. MoveDynamicObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]+100.0);
  132. }
  133. }
  134. #else
  135. if(IsValidObject(ddInfo[doorid][ID]))
  136. {
  137. if(ddInfo[doorid][Aberta] == 1) return 0;
  138. ddInfo[doorid][Aberta] = 1;
  139. if(sentido == SENTIDO_HORARIO)
  140. {
  141. MoveObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]-100.0);
  142. }
  143. else
  144. {
  145. MoveObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]+100.0);
  146. }
  147. }
  148. #endif
  149. return 1;
  150. }
  151.  
  152. stock CloseDoor(doorid)
  153. {
  154. #if DD_USAR_STREAMER true
  155. if(IsValidDynamicObject(ddInfo[doorid][ID]))
  156. {
  157. if(ddInfo[doorid][Aberta] == 0) return 0;
  158. ddInfo[doorid][Aberta] = 0;
  159. MoveDynamicObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]-0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]);
  160. }
  161. #else
  162. if(IsValidObject(ddInfo[doorid][ID]))
  163. {
  164. if(ddInfo[doorid][Aberta] == 0) return 0;
  165. ddInfo[doorid][Aberta] = 0;
  166. MoveObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]-0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]);
  167. }
  168. #endif
  169. return 1;
  170. }
  171.  
  172. stock UnlockDoor(doorid)
  173. {
  174. #if DD_USAR_STREAMER true
  175. if(IsValidDynamicObject(ddInfo[doorid][ID]))
  176. {
  177. ddInfo[doorid][Trancada] = 0;
  178. }
  179. #else
  180. if(IsValidObject(ddInfo[doorid][ID]))
  181. {
  182. ddInfo[doorid][Trancada] = 0;
  183. }
  184. #endif
  185. }
  186.  
  187. stock LockDoor(doorid)
  188. {
  189. #if DD_USAR_STREAMER true
  190. if(IsValidDynamicObject(ddInfo[doorid][ID]))
  191. {
  192. ddInfo[doorid][Trancada] = 1;
  193. }
  194. #else
  195. if(IsValidObject(ddInfo[doorid][ID]))
  196. {
  197. ddInfo[doorid][Trancada] = 1;
  198. }
  199. #endif
  200. }
  201.  
  202. stock GetClosestDoor(playerid, Float:dDistance)
  203. {
  204. for(new i = 0; i < DD_MAX_DOORS; i++)
  205. {
  206. #if DD_USAR_STREAMER true
  207. if(IsValidDynamicObject(ddInfo[i][ID]))
  208. #else
  209. if(IsValidObject(ddInfo[i][ID]))
  210. #endif
  211. {
  212. if(IsPlayerInRangeOfPoint(playerid, dDistance, ddInfo[i][dX], ddInfo[i][dY], ddInfo[i][dZ]))
  213. {
  214. return i;
  215. }
  216. }
  217. }
  218. return -1;
  219. }
  220.  
  221. stock IsDoorLocked(doorid) return ddInfo[doorid][Trancada];
  222.  
  223. stock IsDoorOpen(doorid) return ddInfo[doorid][Aberta];
  224.  
  225. stock TotalDoors()
  226. {
  227. new DD_MD;
  228. for(new i = 0; i < DD_MAX_DOORS; i++)
  229. {
  230. #if DD_USAR_STREAMER true
  231. if(IsValidDynamicObject(ddInfo[i][ID]))
  232. #else
  233. if(IsValidObject(ddInfo[i][ID]))
  234. #endif
  235. {
  236. DD_MD++;
  237. }
  238. }
  239. return DD_MD;
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement