Advertisement
Guest User

13th

a guest
Mar 11th, 2009
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define MAX_PICKUPS 10000
  4.  
  5. forward CreateStreamPickup(model,type,Float:x,Float:y,Float:z,range);
  6. forward StreamPickups();
  7. forward Pickup_AnyPlayerToPoint(Float:radi, Float:x, Float:y, Float:z);
  8. forward DestroyStreamPickup(ID);
  9. forward ChangeStreamPickupModel(ID,newmodel);
  10. forward ChangeStreamPickupType(ID,newtype);
  11. forward IsStreamPickup(ID);
  12.  
  13.  
  14.  
  15. enum pickupINFO
  16. {
  17. pickupCreated,
  18. pickupVisible,
  19. pickupID,
  20. pickupRange,
  21. Float:pickupX,
  22. Float:pickupY,
  23. Float:pickupZ,
  24. pickupType,
  25. pickupModel
  26. }
  27. new Pickup[MAX_PICKUPS+1][pickupINFO];
  28.  
  29. public CreateStreamPickup(model,type,Float:x,Float:y,Float:z,range)
  30. {
  31. new FoundID = 0;
  32. new ID;
  33.  
  34. for ( new i = 0; FoundID <= 0 ; i++)
  35. {
  36. if( Pickup[i][pickupCreated] == 0 )
  37. {
  38. if( FoundID == 0 )
  39. {
  40. ID = i;
  41. FoundID = 1;
  42. }
  43. }
  44. if( i > MAX_PICKUPS )
  45. {
  46. FoundID = 2;
  47. }
  48. }
  49. if( FoundID == 2 )
  50. {
  51. print("Pickup limit reached! Pickup not created!");
  52. return -1;
  53. }
  54. Pickup[ID][pickupCreated] = 1;
  55. Pickup[ID][pickupVisible] = 0;
  56. Pickup[ID][pickupModel] = model;
  57. Pickup[ID][pickupType] = type;
  58. Pickup[ID][pickupX] = x;
  59. Pickup[ID][pickupY] = y;
  60. Pickup[ID][pickupZ] = z;
  61. Pickup[ID][pickupRange] = range;
  62. return ID;
  63.  
  64. }
  65. public DestroyStreamPickup(ID)
  66. {
  67. Pickup[ID][pickupCreated] = 0;
  68. DestroyPickup(Pickup[ID][pickupID]);
  69. }
  70. public StreamPickups()
  71. {
  72. for(new i = 0; i < MAX_PICKUPS; i++)
  73. {
  74. if( Pickup[i][pickupCreated] == 1 )
  75. {
  76. if( Pickup_AnyPlayerToPoint(Pickup[i][pickupRange],Pickup[i][pickupX],Pickup[i][pickupY],Pickup[i][pickupZ]) )
  77. {
  78. if( Pickup[i][pickupVisible] == 0 )
  79. {
  80. Pickup[i][pickupID] = CreatePickup(Pickup[i][pickupModel],Pickup[i][pickupType],Pickup[i][pickupX],Pickup[i][pickupY],Pickup[i][pickupZ]);
  81. Pickup[i][pickupVisible] = 1;
  82. }
  83. }
  84. else
  85. {
  86. if( Pickup[i][pickupVisible] == 1 )
  87. {
  88. DestroyPickup(Pickup[i][pickupID]);
  89. Pickup[i][pickupVisible] = 0;
  90. }
  91. }
  92. }
  93. }
  94. }
  95. public Pickup_AnyPlayerToPoint(Float:radi, Float:x, Float:y, Float:z)
  96. {
  97. for ( new i = 0; i < MAX_PLAYERS; i++ )
  98. {
  99. if(IsPlayerConnected(i))
  100. {
  101. new Float:oldposx, Float:oldposy, Float:oldposz;
  102. new Float:tempposx, Float:tempposy, Float:tempposz;
  103. GetPlayerPos(i, oldposx, oldposy, oldposz);
  104. tempposx = (oldposx -x);
  105. tempposy = (oldposy -y);
  106. tempposz = (oldposz -z);
  107. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  108. {
  109. return 1;
  110. }
  111. }
  112. }
  113. return 0;
  114. }
  115. public ChangeStreamPickupModel(ID,newmodel)
  116. {
  117. DestroyPickup(Pickup[ID][pickupID]);
  118. Pickup[ID][pickupVisible] = 0;
  119. Pickup[ID][pickupModel] = newmodel;
  120. }
  121. public ChangeStreamPickupType(ID,newtype)
  122. {
  123. DestroyPickup(Pickup[ID][pickupID]);
  124. Pickup[ID][pickupVisible] = 0;
  125. Pickup[ID][pickupType] = newtype;
  126. }
  127. public IsStreamPickup(ID)
  128. {
  129. for( new i = 0; i < MAX_PICKUPS; i++ )
  130. {
  131. if( Pickup[i][pickupID] == ID && Pickup[i][pickupCreated] == 1 )
  132. {
  133. return i;
  134. }
  135. }
  136. return -1;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement