Advertisement
Guest User

Untitled

a guest
Sep 25th, 2010
939
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.16 KB | None | 0 0
  1. /*
  2. SA-MP Streamer Plugin v2.3.8
  3. Copyright © 2010 Incognito
  4.  
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9.  
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18.  
  19. #if defined _streamer_included
  20. #endinput
  21. #endif
  22. #define _streamer_included
  23. #pragma library streamer
  24.  
  25. // Definitions
  26.  
  27. #define STREAMER_TYPE_OBJECT (0)
  28. #define STREAMER_TYPE_PICKUP (1)
  29. #define STREAMER_TYPE_CP (2)
  30. #define STREAMER_TYPE_RACE_CP (3)
  31. #define STREAMER_TYPE_MAP_ICON (4)
  32. #define STREAMER_TYPE_3D_TEXT_LABEL (5)
  33. #define STREAMER_TYPE_AREA (6)
  34.  
  35. // Enumerator
  36.  
  37. enum
  38. {
  39. E_STREAMER_ATTACHED_PLAYER,
  40. E_STREAMER_ATTACHED_VEHICLE,
  41. E_STREAMER_COLOR,
  42. E_STREAMER_DISTANCE,
  43. E_STREAMER_DRAW_DISTANCE,
  44. E_STREAMER_EXTRA_ID,
  45. E_STREAMER_INTERIOR_ID,
  46. E_STREAMER_MARKER_TYPE,
  47. E_STREAMER_MAX_X,
  48. E_STREAMER_MAX_Y,
  49. E_STREAMER_MAX_Z,
  50. E_STREAMER_MIN_X,
  51. E_STREAMER_MIN_Y,
  52. E_STREAMER_MIN_Z,
  53. E_STREAMER_MODEL_ID,
  54. E_STREAMER_NEXT_X,
  55. E_STREAMER_NEXT_Y,
  56. E_STREAMER_NEXT_Z,
  57. E_STREAMER_PLAYER_ID,
  58. E_STREAMER_R_X,
  59. E_STREAMER_R_Y,
  60. E_STREAMER_R_Z,
  61. E_STREAMER_SIZE,
  62. E_STREAMER_TEST_LOS,
  63. E_STREAMER_TYPE,
  64. E_STREAMER_WORLD_ID,
  65. E_STREAMER_X,
  66. E_STREAMER_Y,
  67. E_STREAMER_Z
  68. }
  69.  
  70. // Natives (Settings)
  71.  
  72. native Streamer_TickRate(rate);
  73. native Streamer_MaxItems(type, items);
  74. native Streamer_VisibleItems(type, items);
  75.  
  76. // Natives (Updates)
  77.  
  78. native Streamer_Update(playerid);
  79. native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z);
  80.  
  81. // Natives (Data Manipulation)
  82.  
  83. native Streamer_GetFloatData(type, {Text3D,_}:id, data, &Float:result);
  84. native Streamer_GetIntData(type, {Text3D,_}:id, data);
  85. native Streamer_SetFloatData(type, {Text3D,_}:id, data, Float:value);
  86. native Streamer_SetIntData(type, {Text3D,_}:id, data, value);
  87. native Streamer_GetUpperBound(type);
  88.  
  89. // Natives (Miscellaneous)
  90.  
  91. native Streamer_IsItemVisible(playerid, type, {Text3D,_}:id);
  92. native Streamer_DestroyAllVisibleItems(playerid, type);
  93. native Streamer_CountVisibleItems(playerid, type);
  94.  
  95. // Natives (Objects)
  96.  
  97. native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 200.0);
  98. native DestroyDynamicObject(objectid);
  99. native IsValidDynamicObject(objectid);
  100. native SetDynamicObjectPos(objectid, Float:x, Float:y, Float:z);
  101. native GetDynamicObjectPos(objectid, &Float:x, &Float:y, &Float:z);
  102. native SetDynamicObjectRot(objectid, Float:rx, Float:ry, Float:rz);
  103. native GetDynamicObjectRot(objectid, &Float:rx, &Float:ry, &Float:rz);
  104. native MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed);
  105. native StopDynamicObject(objectid);
  106. native DestroyAllDynamicObjects();
  107. native CountDynamicObjects();
  108.  
  109. // Natives (Pickups)
  110.  
  111. native CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
  112. native DestroyDynamicPickup(pickupid);
  113. native IsValidDynamicPickup(pickupid);
  114. native DestroyAllDynamicPickups();
  115. native CountDynamicPickups();
  116.  
  117. // Natives (Checkpoints)
  118.  
  119. native CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
  120. native DestroyDynamicCP(checkpointid);
  121. native IsValidDynamicCP(checkpointid);
  122. native TogglePlayerDynamicCP(playerid, checkpointid, toggle);
  123. native TogglePlayerAllDynamicCPs(playerid, toggle);
  124. native IsPlayerInDynamicCP(playerid, checkpointid);
  125. native DestroyAllDynamicCPs();
  126. native CountDynamicCPs();
  127.  
  128. // Natives (Race Checkpoints)
  129.  
  130. native CreateDynamicRaceCP(type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
  131. native DestroyDynamicRaceCP(checkpointid);
  132. native IsValidDynamicRaceCP(checkpointid);
  133. native TogglePlayerDynamicRaceCP(playerid, checkpointid, toggle);
  134. native TogglePlayerAllDynamicRaceCPs(playerid, toggle);
  135. native IsPlayerInDynamicRaceCP(playerid, checkpointid);
  136. native DestroyAllDynamicRaceCPs();
  137. native CountDynamicRaceCPs();
  138.  
  139. // Natives (Map Icons)
  140.  
  141. native CreateDynamicMapIcon(Float:x, Float:y, Float:z, markertype, color, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
  142. native DestroyDynamicMapIcon(iconid);
  143. native IsValidDynamicMapIcon(iconid);
  144. native DestroyAllDynamicMapIcons();
  145. native CountDynamicMapIcons();
  146.  
  147. // Natives (3D Text Labels)
  148.  
  149. native Text3D:CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
  150. native DestroyDynamic3DTextLabel(Text3D:id);
  151. native IsValidDynamic3DTextLabel(Text3D:id);
  152. native UpdateDynamic3DTextLabelText(Text3D:id, color, const text[]);
  153. native DestroyAllDynamic3DTextLabels();
  154. native CountDynamic3DTextLabels();
  155.  
  156. // Natives (Areas)
  157.  
  158. native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
  159. native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
  160. native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
  161. native CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
  162. native DestroyDynamicArea(areaid);
  163. native IsValidDynamicArea(areaid);
  164. native TogglePlayerDynamicArea(playerid, areaid, toggle);
  165. native TogglePlayerAllDynamicAreas(playerid, toggle);
  166. native IsPlayerInDynamicArea(playerid, areaid);
  167. native DestroyAllDynamicAreas();
  168. native CountDynamicAreas();
  169.  
  170. // Natives (Internals)
  171.  
  172. native Streamer_AddPlayer(playerid);
  173. native Streamer_RemovePlayer(playerid);
  174. native Streamer_VerifyPickup(playerid, pickupid);
  175. native Streamer_VerifyCheckpoint(playerid, type, status);
  176. native Streamer_RegisterInterface();
  177.  
  178. // Callbacks
  179.  
  180. forward OnDynamicObjectMoved(objectid);
  181. forward OnPlayerPickUpDynamicPickup(playerid, pickupid);
  182. forward OnPlayerEnterDynamicCP(playerid, checkpointid);
  183. forward OnPlayerLeaveDynamicCP(playerid, checkpointid);
  184. forward OnPlayerEnterDynamicRaceCP(playerid, checkpointid);
  185. forward OnPlayerLeaveDynamicRaceCP(playerid, checkpointid);
  186. forward OnPlayerEnterDynamicArea(playerid, areaid);
  187. forward OnPlayerLeaveDynamicArea(playerid, areaid);
  188.  
  189. // Callback Hook Section
  190.  
  191. static bool:Streamer_g_OPC = false;
  192. static bool:Streamer_g_OPDC = false;
  193. static bool:Streamer_g_OPPP = false;
  194. static bool:Streamer_g_OPEC = false;
  195. static bool:Streamer_g_OPLC = false;
  196. static bool:Streamer_g_OPERC = false;
  197. static bool:Streamer_g_OPLRC = false;
  198. static bool:Streamer_g_RI = false;
  199.  
  200. public OnFilterScriptInit()
  201. {
  202. if (!Streamer_g_RI)
  203. {
  204. Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
  205. Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -1;
  206. Streamer_g_OPPP = funcidx("Streamer_OnPlayerPickUpPickup") != -1;
  207. Streamer_g_OPEC = funcidx("Streamer_OnPlayerEnterCP") != -1;
  208. Streamer_g_OPLC = funcidx("Streamer_OnPlayerLeaveCP") != -1;
  209. Streamer_g_OPERC = funcidx("Streamer_OnPlayerEnterRaceCP") != -1;
  210. Streamer_g_OPLRC = funcidx("Streamer_OnPlayerLeaveRaceCP") != -1;
  211. Streamer_g_RI = true;
  212. Streamer_RegisterInterface();
  213. }
  214. if (funcidx("Streamer_OnFilterScriptInit") != -1)
  215. {
  216. return CallLocalFunction("Streamer_OnFilterScriptInit", "");
  217. }
  218. return 1;
  219. }
  220.  
  221. #if defined _ALS_OnFilterScriptInit
  222. #undef OnFilterScriptInit
  223. #else
  224. #define _ALS_OnFilterScriptInit
  225. #endif
  226. #define OnFilterScriptInit Streamer_OnFilterScriptInit
  227.  
  228. forward Streamer_OnFilterScriptInit();
  229.  
  230. public OnGameModeInit()
  231. {
  232. if (!Streamer_g_RI)
  233. {
  234. Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
  235. Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -1;
  236. Streamer_g_OPPP = funcidx("Streamer_OnPlayerPickUpPickup") != -1;
  237. Streamer_g_OPEC = funcidx("Streamer_OnPlayerEnterCP") != -1;
  238. Streamer_g_OPLC = funcidx("Streamer_OnPlayerLeaveCP") != -1;
  239. Streamer_g_OPERC = funcidx("Streamer_OnPlayerEnterRaceCP") != -1;
  240. Streamer_g_OPLRC = funcidx("Streamer_OnPlayerLeaveRaceCP") != -1;
  241. Streamer_g_RI = true;
  242. Streamer_RegisterInterface();
  243. }
  244. if (funcidx("Streamer_OnGameModeInit") != -1)
  245. {
  246. return CallLocalFunction("Streamer_OnGameModeInit", "");
  247. }
  248. return 1;
  249. }
  250.  
  251. #if defined _ALS_OnGameModeInit
  252. #undef OnGameModeInit
  253. #else
  254. #define _ALS_OnGameModeInit
  255. #endif
  256. #define OnGameModeInit Streamer_OnGameModeInit
  257.  
  258. forward Streamer_OnGameModeInit();
  259.  
  260. public OnPlayerConnect(playerid)
  261. {
  262. if (!IsPlayerNPC(playerid))
  263. {
  264. Streamer_AddPlayer(playerid);
  265. }
  266. if (Streamer_g_OPC)
  267. {
  268. return CallLocalFunction("Streamer_OnPlayerConnect", "d", playerid);
  269. }
  270. return 1;
  271. }
  272.  
  273. #if defined _ALS_OnPlayerConnect
  274. #undef OnPlayerConnect
  275. #else
  276. #define _ALS_OnPlayerConnect
  277. #endif
  278. #define OnPlayerConnect Streamer_OnPlayerConnect
  279.  
  280. forward Streamer_OnPlayerConnect(playerid);
  281.  
  282. public OnPlayerDisconnect(playerid, reason)
  283. {
  284. if (!IsPlayerNPC(playerid))
  285. {
  286. Streamer_RemovePlayer(playerid);
  287. }
  288. if (Streamer_g_OPDC)
  289. {
  290. return CallLocalFunction("Streamer_OnPlayerDisconnect", "dd", playerid, reason);
  291. }
  292. return 1;
  293. }
  294.  
  295. #if defined _ALS_OnPlayerDisconnect
  296. #undef OnPlayerDisconnect
  297. #else
  298. #define _ALS_OnPlayerDisconnect
  299. #endif
  300. #define OnPlayerDisconnect Streamer_OnPlayerDisconnect
  301.  
  302. forward Streamer_OnPlayerDisconnect(playerid, reason);
  303.  
  304. public OnPlayerPickUpPickup(playerid, pickupid)
  305. {
  306. Streamer_VerifyPickup(playerid, pickupid);
  307. if (Streamer_g_OPPP)
  308. {
  309. return CallLocalFunction("Streamer_OnPlayerPickUpPickup", "dd", playerid, pickupid);
  310. }
  311. return 1;
  312. }
  313.  
  314. #if defined _ALS_OnPlayerPickUpPickup
  315. #undef OnPlayerPickUpPickup
  316. #else
  317. #define _ALS_OnPlayerPickUpPickup
  318. #endif
  319. #define OnPlayerPickUpPickup Streamer_OnPlayerPickUpPickup
  320.  
  321. forward Streamer_OnPlayerPickUpPickup(playerid, pickupid);
  322.  
  323. public OnPlayerEnterCheckpoint(playerid)
  324. {
  325. Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_CP, 0);
  326. if (Streamer_g_OPEC)
  327. {
  328. return CallLocalFunction("Streamer_OnPlayerEnterCP", "d", playerid);
  329. }
  330. return 1;
  331. }
  332.  
  333. #if defined _ALS_OnPlayerEnterCP
  334. #undef OnPlayerEnterCheckpoint
  335. #else
  336. #define _ALS_OnPlayerEnterCP
  337. #endif
  338. #define OnPlayerEnterCheckpoint Streamer_OnPlayerEnterCP
  339.  
  340. forward Streamer_OnPlayerEnterCP(playerid);
  341.  
  342. public OnPlayerLeaveCheckpoint(playerid)
  343. {
  344. Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_CP, 1);
  345. if (Streamer_g_OPLC)
  346. {
  347. return CallLocalFunction("Streamer_OnPlayerLeaveCP", "d", playerid);
  348. }
  349. return 1;
  350. }
  351.  
  352. #if defined _ALS_OnPlayerLeaveCP
  353. #undef OnPlayerLeaveCheckpoint
  354. #else
  355. #define _ALS_OnPlayerLeaveCP
  356. #endif
  357. #define OnPlayerLeaveCheckpoint Streamer_OnPlayerLeaveCP
  358.  
  359. forward Streamer_OnPlayerLeaveCP(playerid);
  360.  
  361. public OnPlayerEnterRaceCheckpoint(playerid)
  362. {
  363. Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_RACE_CP, 0);
  364. if (Streamer_g_OPERC)
  365. {
  366. return CallLocalFunction("Streamer_OnPlayerEnterRaceCP", "d", playerid);
  367. }
  368. return 1;
  369. }
  370.  
  371. #if defined _ALS_OnPlayerEnterRaceCP
  372. #undef OnPlayerEnterRaceCheckpoint
  373. #else
  374. #define _ALS_OnPlayerEnterRaceCP
  375. #endif
  376. #define OnPlayerEnterRaceCheckpoint Streamer_OnPlayerEnterRaceCP
  377.  
  378. forward Streamer_OnPlayerEnterRaceCP(playerid);
  379.  
  380. public OnPlayerLeaveRaceCheckpoint(playerid)
  381. {
  382. Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_RACE_CP, 1);
  383. if (Streamer_g_OPLRC)
  384. {
  385. return CallLocalFunction("Streamer_OnPlayerLeaveRaceCP", "d", playerid);
  386. }
  387. return 1;
  388. }
  389.  
  390. #if defined _ALS_OnPlayerLeaveRaceCP
  391. #undef OnPlayerLeaveRaceCheckpoint
  392. #else
  393. #define _ALS_OnPlayerLeaveRaceCP
  394. #endif
  395. #define OnPlayerLeaveRaceCheckpoint Streamer_OnPlayerLeaveRaceCP
  396.  
  397. forward Streamer_OnPlayerLeaveRaceCP(playerid);
  398.  
  399. // PAWN Invoke Section
  400.  
  401. forward Streamer_PublicFunction();
  402.  
  403. public Streamer_PublicFunction()
  404. {
  405. new Float:value;
  406. CreatePickup(0, 0, 0.0, 0.0, 0.0, 0);
  407. CreatePlayer3DTextLabel(0, "", 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0);
  408. CreatePlayerObject(0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  409. DeletePlayer3DTextLabel(0, PlayerText3D:0);
  410. DestroyPickup(0);
  411. DestroyPlayerObject(0, 0);
  412. DisablePlayerCheckpoint(0);
  413. DisablePlayerRaceCheckpoint(0);
  414. GetPlayerInterior(0);
  415. GetPlayerPos(0, value, value, value);
  416. GetPlayerState(0);
  417. GetPlayerVirtualWorld(0);
  418. GetVehiclePos(0, value, value, value);
  419. MovePlayerObject(0, 0, 0.0, 0.0, 0.0, 0.0);
  420. RemovePlayerMapIcon(0, 0);
  421. SetPlayerCheckpoint(0, 0.0, 0.0, 0.0, 0.0);
  422. SetPlayerMapIcon(0, 0, 0.0, 0.0, 0.0, 0, 0);
  423. SetPlayerObjectPos(0, 0, 0.0, 0.0, 0.0);
  424. SetPlayerObjectRot(0, 0, 0.0, 0.0, 0.0);
  425. SetPlayerRaceCheckpoint(0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  426. StopPlayerObject(0, 0);
  427. UpdatePlayer3DTextLabelText(0, PlayerText3D:0, 0, "");
  428. return 1;
  429. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement