S4T3K

Useful iterators

Jun 17th, 2014
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.39 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_iterate>
  3.  
  4. #if defined _ALS_ITERATORS_INCLUDED
  5.     #endinput
  6. #endif
  7.  
  8. #define _ALS_ITERATORS_INCLUDED
  9.  
  10. new
  11.     Iterator:Vehicle<MAX_VEHICLES>,
  12.     Iterator:Pickup<MAX_PICKUPS>,
  13.     Iterator:Object<MAX_OBJECTS>,
  14.     Iterator:DObject<MAX_OBJECTS>,
  15.     Iterator:Label<MAX_3DTEXT_GLOBAL>;
  16.  
  17.  
  18. stock IT_AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2)
  19. {
  20.     new v = AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2);
  21.     Iter_Add(Vehicle, v);
  22.     return v;
  23. }
  24.  
  25.  
  26. stock IT_AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2, respawn_delay)
  27. {
  28.     new v = AddStaticVehicleEx(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2, respawn_delay);
  29.     Iter_Add(Vehicle, v);
  30.     return v;
  31. }
  32.  
  33. stock IT_CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay)
  34. {
  35.     new v = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);
  36.     Iter_Add(Vehicle, v);
  37.     return v;
  38. }
  39.  
  40. stock IT_DestroyVehicle(vehicleid)
  41. {
  42.     if(!Iter_Contains(Vehicle, vehicleid)) return DestroyVehicle(vehicleid);
  43.     Iter_Remove(Vehicle, vehicleid);
  44.     return DestroyVehicle(vehicleid);
  45. }
  46.  
  47. stock DestroyAllVehicles(vehicleid)
  48. {
  49.     new next;
  50.     foreach(new i : Vehicle)
  51.     {
  52.         DestroyVehicle(i);
  53.         Iter_SafeRemove(Vehicle, i, next);
  54.         i = next;
  55.     }
  56. }
  57.  
  58. stock IT_CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ)
  59. {
  60.     new o = CreateObject(modelid, X, Y, Z, rX, rY, rZ);
  61.     Iter_Add(Object, o);
  62.     return o;
  63. }
  64.  
  65. stock IT_DestroyObject(objectid)
  66. {
  67.     if(!Iter_Contains(Object, objectid)) return DestroyObject(objectid);
  68.     Iter_Remove(Object, objectid);
  69.     return DestroyObject(objectid);
  70. }
  71.  
  72. stock IT_CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:drawdistance = 100.0, Float:streamdistance = 100.0)
  73. {
  74.     new o = CreateDynamicObject(modelid, x, y, z, rx, ry, rz, worldid, interiorid, playerid, drawdistane, streamdistance);
  75.     Iter_Add(DObject, o);
  76.     return o;
  77. }
  78.  
  79. stock IT_DestroyDynamicObject(objectid)
  80. {
  81.     if(!Iter_Contains(DObject, objectid)) return DestroyDynamicObject(objectid);
  82.     Iter_Remove(DObject, objectid);
  83.     return DestroyDynamicObject(objectid);
  84. }
  85.  
  86.  
  87. stock IT_AddStaticPickup(model, type, Float:X, Float:Y, Float:Z)
  88. {
  89.     new p = AddStaticPickup(model, type, X, Y, Z);
  90.     Iter_Add(Pickup, p);
  91.     return p;
  92. }
  93.  
  94. stock IT_CreatePickup(model, type, X, Y, Z)
  95. {
  96.     new p = CreatePickup(model, type, X, Y, Z);
  97.     Iter_Add(Pickup, p);
  98.     return p;
  99. }
  100.  
  101. stock IT_DestroyPickup(pickup)
  102. {
  103.     if(!Iter_Contains(Pickup, pickup)) return DestroyPickup(pickup);
  104.     Iter_Remove(Pickup, pickup)
  105.     return DestroyPickup(pickup);
  106. }
  107.  
  108. stock IsValidPickup(pickupid)
  109. {
  110.     return Iter_Contains(Pickup, pickupid);
  111. }
  112.  
  113. stock Text3D:IT_Create3DTextLabel(text[], color, X, Y, Z, DrawDistance, virtualworld)
  114. {
  115.     new Text3D:l = CreateLabelLabel(text[], color, X, Y, Z, DrawDistance, virtualworld):
  116.     Iter_Add(Label, l);
  117.     return l;
  118. }
  119.  
  120. stock IT_Delete3DTextLabel(Text3D:id)
  121. {
  122.     if(!Iter_Contains(Label, id)) return DeleteLabelLabel(id);
  123.     Iter_Remove(Label, id);
  124.     return DeleteLabelLabel(id);
  125. }
  126.  
  127. stock IsValid3DTextLabel(Text3D:id)
  128. {
  129.     return Iter_Contains(Label, id);
  130. }
  131.  
  132. stock Iter_IsClean(Iterator:Iter)
  133. {
  134.     return (Iter_First(Iter) == (Iter_Free(Iter)) && (Iter_First(Iter) == 0)) ? true : false;  
  135. }
  136.  
  137.  
  138. #if defined _ALS_AddStaticVehicle
  139.     #undef AddStaticVehicle
  140. #else
  141.     #define _ALS_AddStaticVehicle
  142. #endif
  143. #define AddStaticVehicle IT_AddStaticVehicle
  144.  
  145. #if defined _ALS_AddStaticVehicleEx
  146.     #undef AddStaticVehicleEx
  147. #else
  148.     #define _ALS_AddStaticVehicleEx
  149. #endif
  150. #define AddStaticVehicleEx IT_AddStaticVehicleEx
  151.  
  152. #if defined _ALS_CreateVehicle
  153.     #undef CreateVehicle
  154. #else
  155.     #define _ALS_CreateVehicle
  156. #endif
  157. #define CreateVehicle IT_CreateVehicle
  158.  
  159. #if defined _ALS_DestroyVehicle
  160.     #undef DestroyVehicle
  161. #else
  162.     #define _ALS_DestroyVehicle
  163. #endif
  164. #define DestroyVehicle IT_DestroyVehicle
  165.  
  166. #if defined _ALS_CreateObject
  167.     #undef CreateObject
  168. #else
  169.     #define _ALS_CreateObject
  170. #endif
  171. #define CreateObject IT_CreateObject
  172.  
  173. #if defined _ALS_DestroyObject
  174.     #undef DestroyObject
  175. #else
  176.     #define _ALS_DestroyObject
  177. #endif
  178. #define DestroyObject IT_DestroyObject
  179.  
  180. #if defined _ALS_CreateDynamicObject
  181.     #undef CreateDynamicObject
  182. #else
  183.     #define _ALS_CreateDynamicObject
  184. #endif
  185. #define CreateDynamicObject IT_CreateDynamicObject
  186.  
  187. #if defined _ALS_DestroyDynamicObject
  188.     #undef DestroyDynamicObject
  189. #else
  190.     #define _ALS_DestroyDynamicObject
  191. #endif
  192. #define DestroyDynamicObject IT_DestroyDynamicObject
  193.  
  194. #if defined _ALS_AddStaticPickup
  195.     #undef AddStaticPickup
  196. #else
  197.     #define _ALS_AddStaticPickup
  198. #endif
  199. #define AddStaticPickup IT_AddStaticPickup
  200.  
  201. #if defined _ALS_CreatePickup
  202.     #undef CreatePickup
  203. #else
  204.     #define _ALS_CreatePickup
  205. #endif
  206. #define CreatePickup IT_CreatePickup
  207.  
  208. #if defined _ALS_DestroyPickup
  209.     #undef DestroyPickup
  210. #else
  211.     #define _ALS_DestroyPickup
  212. #endif
  213. #define DestroyPickup IT_DestroyPickup
  214.  
  215. #if defined _ALS_Create3DTextLabel
  216.     #undef Create3DTextLabel
  217. #else
  218.     #define _ALS_Create3DTextLabel
  219. #endif
  220. #define Create3DTextLabel IT_Create3DTextLabel
  221.  
  222. #if defined _ALS_Delete3DTextLabel
  223.     #undef Delete3DTextLabel
  224. #else
  225.     #define _ALS_Delete3DTextLabel
  226. #endif
  227. #define Delete3DTextLabel IT_Delete3DTextLabel
Advertisement
Add Comment
Please, Sign In to add comment