Advertisement
Guest User

Untitled

a guest
Apr 13th, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #define MAX_DYN_OBJECTS 1000
  7.  
  8. public OnFilterScriptInit()
  9. {
  10. print("\n--------------------------------------");
  11. print(" Streamer на Pawn by Caypen v0.1.3");
  12. print("--------------------------------------\n");
  13. return 1;
  14. }
  15.  
  16. public OnFilterScriptExit()
  17. {
  18. return 1;
  19. }
  20. new DynObjects;
  21. enum ObjInf
  22. {
  23. stream_modelid2,
  24. Float:stream_X2,
  25. Float:stream_Y2,
  26. Float:stream_Z2,
  27. Float:rstream_X2,
  28. Float:rstream_Y2,
  29. Float:rstream_Z2,
  30. Float:stream_DrawDistance2
  31. };
  32. new Oinf[MAX_DYN_OBJECTS][ObjInf];
  33. new timerupdate[MAX_PLAYERS];
  34. CreateDynObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 0.0)
  35. {
  36. if(DynObjects >= MAX_DYN_OBJECTS-1) return INVALID_OBJECT_ID;
  37. new rands = AddObject();
  38. Oinf[rands][stream_modelid2] = modelid;
  39. Oinf[rands][stream_X2] = X;
  40. Oinf[rands][stream_Y2] = Y;
  41. Oinf[rands][stream_Z2] = Z;
  42. Oinf[rands][rstream_X2] = rX;
  43. Oinf[rands][rstream_Y2] = rY;
  44. Oinf[rands][rstream_Z2] = rZ;
  45. Oinf[rands][stream_DrawDistance2] = DrawDistance;
  46. DynObjects ++;
  47. return rands;
  48. }
  49. static streamer__CreatedForPlayerFlag[MAX_PLAYERS][MAX_DYN_OBJECTS char];
  50. forward UpdateObjects(player);
  51. public UpdateObjects(player)
  52. {
  53. for(new obj = 0;obj < MAX_DYN_OBJECTS;obj++)
  54. {
  55. if(Oinf[obj][stream_modelid2] == 0) continue;
  56. if(IsPlayerInRangeOfPoint(player,Oinf[obj][stream_DrawDistance2],Oinf[obj][stream_X2],Oinf[obj][stream_Y2],Oinf[obj][stream_Z2]))
  57. {
  58. if(streamer__CreatedForPlayerFlag[player][obj] == 0)
  59. {
  60. CreatePlayerObject(player, Oinf[obj][stream_modelid2], Oinf[obj][stream_X2],Oinf[obj][stream_Y2],Oinf[obj][stream_Z2], Oinf[obj][rstream_X2],Oinf[obj][rstream_Y2],Oinf[obj][rstream_Z2], Oinf[obj][stream_DrawDistance2]);
  61. streamer__CreatedForPlayerFlag[player][obj] = 1;
  62. }
  63. }
  64. else
  65. {
  66. if(streamer__CreatedForPlayerFlag[player][obj] == 1)
  67. {
  68. DestroyPlayerObject(player, obj);
  69. streamer__CreatedForPlayerFlag[player][obj] = 0;
  70. }
  71. }
  72. }
  73. return 1;
  74. }
  75. AddObject()
  76. {
  77. for(new rands = 0;rands < MAX_DYN_OBJECTS;rands++)
  78. {
  79. if(Oinf[rands][stream_modelid2] == 0)
  80. {
  81. return rands;
  82. }
  83. }
  84. return INVALID_OBJECT_ID;
  85. }
  86. stock DestroyDynObject(objectid)
  87. {
  88. Oinf[objectid][stream_modelid2] = 0;
  89. Oinf[objectid][stream_X2] = -1;
  90. Oinf[objectid][stream_Y2] = -1;
  91. Oinf[objectid][stream_Z2] = -1;
  92. Oinf[objectid][rstream_X2] = -1;
  93. Oinf[objectid][rstream_Y2] = -1;
  94. Oinf[objectid][rstream_Z2] = -1;
  95. Oinf[objectid][stream_DrawDistance2] = -1;
  96. DynObjects--;
  97. return 1;
  98. }
  99. public OnPlayerConnect(playerid)
  100. {
  101. if(IsPlayerNPC(playerid))return 1;
  102. timerupdate[playerid] = SetTimerEx("UpdateObjects", 2000, 1, "i", playerid);
  103. return 1;
  104. }
  105.  
  106. public OnPlayerDisconnect(playerid, reason)
  107. {
  108. if(IsPlayerNPC(playerid)) return 1;
  109. KillTimer(timerupdate[playerid]);
  110. for(new obj = 0;obj < MAX_DYN_OBJECTS;obj++)
  111. {
  112. if(Oinf[obj][stream_modelid2] == 0) continue;
  113. if(IsPlayerInRangeOfPoint(playerid,Oinf[obj][stream_DrawDistance2],Oinf[obj][stream_X2],Oinf[obj][stream_Y2],Oinf[obj][stream_Z2]))
  114. {
  115. if(streamer__CreatedForPlayerFlag[playerid][obj] == 1)
  116. {
  117. DestroyPlayerObject(playerid, obj);
  118. streamer__CreatedForPlayerFlag[playerid][obj] = 0;
  119. }
  120. }
  121. streamer__CreatedForPlayerFlag[playerid][obj] = 0;
  122. }
  123. return 1;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement