streamer.inc 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. /*
  2. * Copyright (C) 2017 Incognito
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #if defined _streamer_included
  17. #endinput
  18. #endif
  19. #define _streamer_included
  20. #include <a_samp>
  21. // Definitions
  22. #define STREAMER_TYPE_OBJECT (0)
  23. #define STREAMER_TYPE_PICKUP (1)
  24. #define STREAMER_TYPE_CP (2)
  25. #define STREAMER_TYPE_RACE_CP (3)
  26. #define STREAMER_TYPE_MAP_ICON (4)
  27. #define STREAMER_TYPE_3D_TEXT_LABEL (5)
  28. #define STREAMER_TYPE_AREA (6)
  29. #define STREAMER_TYPE_ACTOR (7)
  30. #define STREAMER_AREA_TYPE_CIRCLE (0)
  31. #define STREAMER_AREA_TYPE_CYLINDER (1)
  32. #define STREAMER_AREA_TYPE_SPHERE (2)
  33. #define STREAMER_AREA_TYPE_RECTANGLE (3)
  34. #define STREAMER_AREA_TYPE_CUBOID (4)
  35. #define STREAMER_AREA_TYPE_POLYGON (5)
  36. #define STREAMER_OBJECT_TYPE_GLOBAL (0)
  37. #define STREAMER_OBJECT_TYPE_PLAYER (1)
  38. #define STREAMER_OBJECT_TYPE_DYNAMIC (2)
  39. #define STREAMER_MAX_TYPES (8)
  40. #define STREAMER_MAX_AREA_TYPES (5)
  41. #define STREAMER_MAX_OBJECT_TYPES (3)
  42. #define INVALID_STREAMER_ID (0)
  43. #if !defined FLOAT_INFINITY
  44. #define FLOAT_INFINITY (Float:0x7F800000)
  45. #endif
  46. #if !defined STREAMER_ENABLE_TAGS
  47. #define STREAMER_TAG_OBJECT
  48. #define STREAMER_TAG_OBJECT_ALT
  49. #define STREAMER_TAG_PICKUP
  50. #define STREAMER_TAG_CP
  51. #define STREAMER_TAG_RACE_CP
  52. #define STREAMER_TAG_MAP_ICON
  53. #define STREAMER_TAG_AREA
  54. #define STREAMER_TAG_ACTOR
  55. #if !defined STREAMER_REMOVE_TEXT3D_TAG
  56. #if !defined STREAMER_USE_DYNAMIC_TEXT3D_TAG
  57. #define STREAMER_TAG_3D_TEXT_LABEL Text3D:
  58. #define STREAMER_ALL_TAGS {Text3D,_}:
  59. #else
  60. #define STREAMER_TAG_3D_TEXT_LABEL DynamicText3D:
  61. #define STREAMER_ALL_TAGS {DynamicText3D,_}:
  62. #endif
  63. #else
  64. #define STREAMER_TAG_3D_TEXT_LABEL
  65. #define STREAMER_ALL_TAGS
  66. #endif
  67. #else
  68. #define STREAMER_TAG_OBJECT DynamicObject:
  69. #define STREAMER_TAG_OBJECT_ALT {DynamicObject,_}:
  70. #define STREAMER_TAG_PICKUP DynamicPickup:
  71. #define STREAMER_TAG_CP DynamicCP:
  72. #define STREAMER_TAG_RACE_CP DynamicRaceCP:
  73. #define STREAMER_TAG_MAP_ICON DynamicMapIcon:
  74. #define STREAMER_TAG_3D_TEXT_LABEL DynamicText3D:
  75. #define STREAMER_TAG_AREA DynamicArea:
  76. #define STREAMER_TAG_ACTOR DynamicActor:
  77. #define STREAMER_ALL_TAGS {DynamicObject,DynamicPickup,DynamicCP,DynamicRaceCP,DynamicMapIcon,DynamicText3D,DynamicArea,DynamicActor,_}:
  78. #endif
  79. #if !defined STREAMER_OBJECT_SD
  80. #define STREAMER_OBJECT_SD 300.0
  81. #endif
  82. #if !defined STREAMER_OBJECT_DD
  83. #define STREAMER_OBJECT_DD 0.0
  84. #endif
  85. #if !defined STREAMER_PICKUP_SD
  86. #define STREAMER_PICKUP_SD 200.0
  87. #endif
  88. #if !defined STREAMER_CP_SD
  89. #define STREAMER_CP_SD 200.0
  90. #endif
  91. #if !defined STREAMER_RACE_CP_SD
  92. #define STREAMER_RACE_CP_SD 200.0
  93. #endif
  94. #if !defined STREAMER_MAP_ICON_SD
  95. #define STREAMER_MAP_ICON_SD 200.0
  96. #endif
  97. #if !defined STREAMER_3D_TEXT_LABEL_SD
  98. #define STREAMER_3D_TEXT_LABEL_SD 200.0
  99. #endif
  100. #if !defined STREAMER_ACTOR_SD
  101. #define STREAMER_ACTOR_SD 200.0
  102. #endif
  103. // Include File Version
  104. public Streamer_IncludeFileVersion = 0x291;
  105. #pragma unused Streamer_IncludeFileVersion
  106. // Enumerator
  107. enum
  108. {
  109. E_STREAMER_AREA_ID,
  110. E_STREAMER_ATTACHED_OBJECT,
  111. E_STREAMER_ATTACHED_PLAYER,
  112. E_STREAMER_ATTACHED_VEHICLE,
  113. E_STREAMER_ATTACH_OFFSET_X,
  114. E_STREAMER_ATTACH_OFFSET_Y,
  115. E_STREAMER_ATTACH_OFFSET_Z,
  116. E_STREAMER_ATTACH_R_X,
  117. E_STREAMER_ATTACH_R_Y,
  118. E_STREAMER_ATTACH_R_Z,
  119. E_STREAMER_ATTACH_X,
  120. E_STREAMER_ATTACH_Y,
  121. E_STREAMER_ATTACH_Z,
  122. E_STREAMER_COLOR,
  123. E_STREAMER_DRAW_DISTANCE,
  124. E_STREAMER_EXTRA_ID,
  125. E_STREAMER_HEALTH,
  126. E_STREAMER_INTERIOR_ID,
  127. E_STREAMER_INVULNERABLE,
  128. E_STREAMER_MAX_X,
  129. E_STREAMER_MAX_Y,
  130. E_STREAMER_MAX_Z,
  131. E_STREAMER_MIN_X,
  132. E_STREAMER_MIN_Y,
  133. E_STREAMER_MIN_Z,
  134. E_STREAMER_MODEL_ID,
  135. E_STREAMER_MOVE_R_X,
  136. E_STREAMER_MOVE_R_Y,
  137. E_STREAMER_MOVE_R_Z,
  138. E_STREAMER_MOVE_SPEED,
  139. E_STREAMER_MOVE_X,
  140. E_STREAMER_MOVE_Y,
  141. E_STREAMER_MOVE_Z,
  142. E_STREAMER_NEXT_X,
  143. E_STREAMER_NEXT_Y,
  144. E_STREAMER_NEXT_Z,
  145. E_STREAMER_PLAYER_ID,
  146. E_STREAMER_PRIORITY,
  147. E_STREAMER_ROTATION,
  148. E_STREAMER_R_X,
  149. E_STREAMER_R_Y,
  150. E_STREAMER_R_Z,
  151. E_STREAMER_SIZE,
  152. E_STREAMER_STREAM_DISTANCE,
  153. E_STREAMER_STYLE,
  154. E_STREAMER_SYNC_ROTATION,
  155. E_STREAMER_TEST_LOS,
  156. E_STREAMER_TYPE,
  157. E_STREAMER_WORLD_ID,
  158. E_STREAMER_X,
  159. E_STREAMER_Y,
  160. E_STREAMER_Z
  161. }
  162. // Natives (Settings)
  163. native Streamer_GetTickRate();
  164. native Streamer_SetTickRate(rate);
  165. native Streamer_GetPlayerTickRate(playerid);
  166. native Streamer_SetPlayerTickRate(playerid, rate);
  167. native Streamer_GetChunkTickRate(type, playerid = -1);
  168. native Streamer_SetChunkTickRate(type, rate, playerid = -1);
  169. native Streamer_GetChunkSize(type);
  170. native Streamer_SetChunkSize(type, size);
  171. native Streamer_GetMaxItems(type);
  172. native Streamer_SetMaxItems(type, items);
  173. native Streamer_GetVisibleItems(type, playerid = -1);
  174. native Streamer_SetVisibleItems(type, items, playerid = -1);
  175. native Streamer_GetRadiusMultiplier(type, &Float:multiplier, playerid = -1);
  176. native Streamer_SetRadiusMultiplier(type, Float:multiplier, playerid = -1);
  177. native Streamer_GetTypePriority(types[], maxtypes = sizeof types);
  178. native Streamer_SetTypePriority(const types[], maxtypes = sizeof types);
  179. native Streamer_GetCellDistance(&Float:distance);
  180. native Streamer_SetCellDistance(Float:distance);
  181. native Streamer_GetCellSize(&Float:size);
  182. native Streamer_SetCellSize(Float:size);
  183. native Streamer_ToggleItemStatic(type, STREAMER_ALL_TAGS id, toggle);
  184. native Streamer_IsToggleItemStatic(type, STREAMER_ALL_TAGS id);
  185. native Streamer_ToggleItemInvAreas(type, STREAMER_ALL_TAGS id, toggle);
  186. native Streamer_IsToggleItemInvAreas(type, STREAMER_ALL_TAGS id);
  187. native Streamer_ToggleItemCallbacks(type, STREAMER_ALL_TAGS id, toggle);
  188. native Streamer_IsToggleItemCallbacks(type, STREAMER_ALL_TAGS id);
  189. native Streamer_ToggleErrorCallback(toggle);
  190. native Streamer_IsToggleErrorCallback();
  191. // Natives (Updates)
  192. native Streamer_ProcessActiveItems();
  193. native Streamer_ToggleIdleUpdate(playerid, toggle);
  194. native Streamer_IsToggleIdleUpdate(playerid);
  195. native Streamer_ToggleCameraUpdate(playerid, toggle);
  196. native Streamer_IsToggleCameraUpdate(playerid);
  197. native Streamer_ToggleItemUpdate(playerid, type, toggle);
  198. native Streamer_IsToggleItemUpdate(playerid, type);
  199. native Streamer_GetLastUpdateTime(&Float:time);
  200. native Streamer_Update(playerid, type = -1);
  201. native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, type = -1, compensatedtime = -1, freezeplayer = 1);
  202. // Natives (Data Manipulation)
  203. native Streamer_GetFloatData(type, STREAMER_ALL_TAGS id, data, &Float:result);
  204. native Streamer_SetFloatData(type, STREAMER_ALL_TAGS id, data, Float:value);
  205. native Streamer_GetIntData(type, STREAMER_ALL_TAGS id, data);
  206. native Streamer_SetIntData(type, STREAMER_ALL_TAGS id, data, value);
  207. native Streamer_GetArrayData(type, STREAMER_ALL_TAGS id, data, dest[], maxdest = sizeof dest);
  208. native Streamer_SetArrayData(type, STREAMER_ALL_TAGS id, data, const src[], maxsrc = sizeof src);
  209. native Streamer_IsInArrayData(type, STREAMER_ALL_TAGS id, data, value);
  210. native Streamer_AppendArrayData(type, STREAMER_ALL_TAGS id, data, value);
  211. native Streamer_RemoveArrayData(type, STREAMER_ALL_TAGS id, data, value);
  212. native Streamer_GetUpperBound(type);
  213. // Natives (Miscellaneous)
  214. native Streamer_GetDistanceToItem(Float:x, Float:y, Float:z, type, STREAMER_ALL_TAGS id, &Float:distance, dimensions = 3);
  215. native Streamer_ToggleItem(playerid, type, STREAMER_ALL_TAGS id, toggle);
  216. native Streamer_IsToggleItem(playerid, type, STREAMER_ALL_TAGS id);
  217. native Streamer_ToggleAllItems(playerid, type, toggle, exceptions[] = { -1 }, maxexceptions = sizeof exceptions);
  218. native Streamer_GetItemInternalID(playerid, type, STREAMER_ALL_TAGS streamerid);
  219. native Streamer_GetItemStreamerID(playerid, type, internalid);
  220. native Streamer_IsItemVisible(playerid, type, STREAMER_ALL_TAGS id);
  221. native Streamer_DestroyAllVisibleItems(playerid, type, serverwide = 1);
  222. native Streamer_CountVisibleItems(playerid, type, serverwide = 1);
  223. native Streamer_DestroyAllItems(type, serverwide = 1);
  224. native Streamer_CountItems(type, serverwide = 1);
  225. native Streamer_GetNearbyItems(Float:x, Float:y, Float:z, type, STREAMER_ALL_TAGS items[], maxitems = sizeof items, Float:range = 300.0);
  226. native Streamer_GetAllVisibleItems(playerid, type, STREAMER_ALL_TAGS items[], maxitems = sizeof items);
  227. native Streamer_GetItemOffset(type, STREAMER_ALL_TAGS id, &Float:x, &Float:y, &Float:z);
  228. native Streamer_SetItemOffset(type, STREAMER_ALL_TAGS id, Float:x, Float:y, Float:z);
  229. // Natives (Objects)
  230. native STREAMER_TAG_OBJECT CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  231. native DestroyDynamicObject(STREAMER_TAG_OBJECT objectid);
  232. native IsValidDynamicObject(STREAMER_TAG_OBJECT objectid);
  233. native GetDynamicObjectPos(STREAMER_TAG_OBJECT objectid, &Float:x, &Float:y, &Float:z);
  234. native SetDynamicObjectPos(STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z);
  235. native GetDynamicObjectRot(STREAMER_TAG_OBJECT objectid, &Float:rx, &Float:ry, &Float:rz);
  236. native SetDynamicObjectRot(STREAMER_TAG_OBJECT objectid, Float:rx, Float:ry, Float:rz);
  237. native GetDynamicObjectNoCameraCol(STREAMER_TAG_OBJECT objectid);
  238. native SetDynamicObjectNoCameraCol(STREAMER_TAG_OBJECT objectid);
  239. native MoveDynamicObject(STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0);
  240. native StopDynamicObject(STREAMER_TAG_OBJECT objectid);
  241. native IsDynamicObjectMoving(STREAMER_TAG_OBJECT objectid);
  242. native AttachCameraToDynamicObject(playerid, STREAMER_TAG_OBJECT objectid);
  243. native AttachDynamicObjectToObject(STREAMER_TAG_OBJECT objectid, attachtoid, Float:offsetx, Float:offsety, Float:offsetz, Float:rx, Float:ry, Float:rz, syncrotation = 1);
  244. native AttachDynamicObjectToPlayer(STREAMER_TAG_OBJECT objectid, playerid, Float:offsetx, Float:offsety, Float:offsetz, Float:rx, Float:ry, Float:rz);
  245. native AttachDynamicObjectToVehicle(STREAMER_TAG_OBJECT objectid, vehicleid, Float:offsetx, Float:offsety, Float:offsetz, Float:rx, Float:ry, Float:rz);
  246. native EditDynamicObject(playerid, STREAMER_TAG_OBJECT objectid);
  247. native IsDynamicObjectMaterialUsed(STREAMER_TAG_OBJECT objectid, materialindex);
  248. native GetDynamicObjectMaterial(STREAMER_TAG_OBJECT objectid, materialindex, &modelid, txdname[], texturename[], &materialcolor, maxtxdname = sizeof txdname, maxtexturename = sizeof texturename);
  249. native SetDynamicObjectMaterial(STREAMER_TAG_OBJECT objectid, materialindex, modelid, const txdname[], const texturename[], materialcolor = 0);
  250. native IsDynamicObjectMaterialTextUsed(STREAMER_TAG_OBJECT objectid, materialindex);
  251. native GetDynamicObjectMaterialText(STREAMER_TAG_OBJECT objectid, materialindex, text[], &materialsize, fontface[], &fontsize, &bold, &fontcolor, &backcolor, &textalignment, maxtext = sizeof text, maxfontface = sizeof fontface);
  252. native SetDynamicObjectMaterialText(STREAMER_TAG_OBJECT objectid, materialindex, const text[], materialsize = OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0);
  253. native STREAMER_TAG_OBJECT GetPlayerCameraTargetDynObject(playerid);
  254. // Natives (Pickups)
  255. native STREAMER_TAG_PICKUP CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_PICKUP_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  256. native DestroyDynamicPickup(STREAMER_TAG_PICKUP pickupid);
  257. native IsValidDynamicPickup(STREAMER_TAG_PICKUP pickupid);
  258. // Natives (Checkpoints)
  259. native STREAMER_TAG_CP CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_CP_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  260. native DestroyDynamicCP(STREAMER_TAG_CP checkpointid);
  261. native IsValidDynamicCP(STREAMER_TAG_CP checkpointid);
  262. native IsPlayerInDynamicCP(playerid, STREAMER_TAG_CP checkpointid);
  263. native GetPlayerVisibleDynamicCP(playerid);
  264. // Natives (Race Checkpoints)
  265. native STREAMER_TAG_RACE_CP CreateDynamicRaceCP(type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_RACE_CP_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  266. native DestroyDynamicRaceCP(STREAMER_TAG_RACE_CP checkpointid);
  267. native IsValidDynamicRaceCP(STREAMER_TAG_RACE_CP checkpointid);
  268. native IsPlayerInDynamicRaceCP(playerid, STREAMER_TAG_RACE_CP checkpointid);
  269. native GetPlayerVisibleDynamicRaceCP(playerid);
  270. // Natives (Map Icons)
  271. native STREAMER_TAG_MAP_ICON CreateDynamicMapIcon(Float:x, Float:y, Float:z, type, color, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_MAP_ICON_SD, style = MAPICON_LOCAL, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  272. native DestroyDynamicMapIcon(STREAMER_TAG_MAP_ICON iconid);
  273. native IsValidDynamicMapIcon(STREAMER_TAG_MAP_ICON iconid);
  274. // Natives (3D Text Labels)
  275. native STREAMER_TAG_3D_TEXT_LABEL 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:streamdistance = STREAMER_3D_TEXT_LABEL_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  276. native DestroyDynamic3DTextLabel(STREAMER_TAG_3D_TEXT_LABEL id);
  277. native IsValidDynamic3DTextLabel(STREAMER_TAG_3D_TEXT_LABEL id);
  278. native GetDynamic3DTextLabelText(STREAMER_TAG_3D_TEXT_LABEL id, text[], maxtext = sizeof text);
  279. native UpdateDynamic3DTextLabelText(STREAMER_TAG_3D_TEXT_LABEL id, color, const text[]);
  280. // Natives (Areas)
  281. native STREAMER_TAG_AREA CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  282. native STREAMER_TAG_AREA CreateDynamicCylinder(Float:x, Float:y, Float:minz, Float:maxz, Float:size, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  283. native STREAMER_TAG_AREA CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  284. native STREAMER_TAG_AREA CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  285. native STREAMER_TAG_AREA CreateDynamicCuboid(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  286. native STREAMER_TAG_AREA CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  287. native STREAMER_TAG_AREA CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
  288. native DestroyDynamicArea(STREAMER_TAG_AREA areaid);
  289. native IsValidDynamicArea(STREAMER_TAG_AREA areaid);
  290. native GetDynamicPolygonPoints(STREAMER_TAG_AREA areaid, Float:points[], maxpoints = sizeof points);
  291. native GetDynamicPolygonNumberPoints(STREAMER_TAG_AREA areaid);
  292. native IsPlayerInDynamicArea(playerid, STREAMER_TAG_AREA areaid, recheck = 0);
  293. native IsPlayerInAnyDynamicArea(playerid, recheck = 0);
  294. native IsAnyPlayerInDynamicArea(STREAMER_TAG_AREA areaid, recheck = 0);
  295. native IsAnyPlayerInAnyDynamicArea(recheck = 0);
  296. native GetPlayerDynamicAreas(playerid, STREAMER_TAG_AREA areas[], maxareas = sizeof areas);
  297. native GetPlayerNumberDynamicAreas(playerid);
  298. native IsPointInDynamicArea(STREAMER_TAG_AREA areaid, Float:x, Float:y, Float:z);
  299. native IsPointInAnyDynamicArea(Float:x, Float:y, Float:z);
  300. native IsLineInDynamicArea(STREAMER_TAG_AREA areaid, Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2);
  301. native IsLineInAnyDynamicArea(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2);
  302. native GetDynamicAreasForPoint(Float:x, Float:y, Float:z, STREAMER_TAG_AREA areas[], maxareas = sizeof areas);
  303. native GetNumberDynamicAreasForPoint(Float:x, Float:y, Float:z);
  304. native GetDynamicAreasForLine(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, STREAMER_TAG_AREA areas[], maxareas = sizeof areas);
  305. native GetNumberDynamicAreasForLine(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2);
  306. native AttachDynamicAreaToObject(STREAMER_TAG_AREA areaid, STREAMER_TAG_OBJECT_ALT objectid, type = STREAMER_OBJECT_TYPE_DYNAMIC, playerid = INVALID_PLAYER_ID, Float:offsetx = 0.0, Float:offsety = 0.0, Float:offsetz = 0.0);
  307. native AttachDynamicAreaToPlayer(STREAMER_TAG_AREA areaid, playerid, Float:offsetx = 0.0, Float:offsety = 0.0, Float:offsetz = 0.0);
  308. native AttachDynamicAreaToVehicle(STREAMER_TAG_AREA areaid, vehicleid, Float:offsetx = 0.0, Float:offsety = 0.0, Float:offsetz = 0.0);
  309. native ToggleDynAreaSpectateMode(STREAMER_TAG_AREA areaid, toggle);
  310. native IsToggleDynAreaSpectateMode(STREAMER_TAG_AREA areaid);
  311. // Natives (Actors)
  312. native STREAMER_TAG_ACTOR CreateDynamicActor(modelid, Float:x, Float:y, Float:z, Float:r, invulnerable = 1, Float:health = 100.0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_ACTOR_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0);
  313. native DestroyDynamicActor(STREAMER_TAG_ACTOR actorid);
  314. native IsValidDynamicActor(STREAMER_TAG_ACTOR actorid);
  315. native IsDynamicActorStreamedIn(STREAMER_TAG_ACTOR actorid, forplayerid);
  316. native GetDynamicActorVirtualWorld(STREAMER_TAG_ACTOR actorid);
  317. native SetDynamicActorVirtualWorld(STREAMER_TAG_ACTOR actorid, vworld);
  318. native ApplyDynamicActorAnimation(STREAMER_TAG_ACTOR actorid, animlib[], animname[], Float:fdelta, loop, lockx, locky, freeze, time);
  319. native ClearDynamicActorAnimations(STREAMER_TAG_ACTOR actorid);
  320. native GetDynamicActorFacingAngle(STREAMER_TAG_ACTOR actorid, &Float:ang);
  321. native SetDynamicActorFacingAngle(STREAMER_TAG_ACTOR actorid, Float:ang);
  322. native GetDynamicActorPos(STREAMER_TAG_ACTOR actorid, &Float:x, &Float:y, &Float:z);
  323. native SetDynamicActorPos(STREAMER_TAG_ACTOR actorid, Float:x, Float:y, Float:z);
  324. native GetDynamicActorHealth(STREAMER_TAG_ACTOR actorid, &Float:health);
  325. native SetDynamicActorHealth(STREAMER_TAG_ACTOR actorid, Float:health);
  326. native SetDynamicActorInvulnerable(STREAMER_TAG_ACTOR actorid, invulnerable = 1);
  327. native IsDynamicActorInvulnerable(STREAMER_TAG_ACTOR actorid);
  328. native STREAMER_TAG_ACTOR GetPlayerTargetDynamicActor(playerid);
  329. native STREAMER_TAG_ACTOR GetPlayerCameraTargetDynActor(playerid);
  330. // Natives (Extended)
  331. native STREAMER_TAG_OBJECT CreateDynamicObjectEx(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  332. native STREAMER_TAG_PICKUP CreateDynamicPickupEx(modelid, type, Float:x, Float:y, Float:z, Float:streamdistance = STREAMER_PICKUP_SD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  333. native STREAMER_TAG_CP CreateDynamicCPEx(Float:x, Float:y, Float:z, Float:size, Float:streamdistance = STREAMER_CP_SD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  334. native STREAMER_TAG_RACE_CP CreateDynamicRaceCPEx(type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size, Float:streamdistance = STREAMER_RACE_CP_SD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  335. native STREAMER_TAG_MAP_ICON CreateDynamicMapIconEx(Float:x, Float:y, Float:z, type, color, style = MAPICON_LOCAL, Float:streamdistance = STREAMER_MAP_ICON_SD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  336. native STREAMER_TAG_3D_TEXT_LABEL CreateDynamic3DTextLabelEx(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, Float:streamdistance = STREAMER_3D_TEXT_LABEL_SD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  337. native STREAMER_TAG_AREA CreateDynamicCircleEx(Float:x, Float:y, Float:size, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  338. native STREAMER_TAG_AREA CreateDynamicCylinderEx(Float:x, Float:y, Float:minz, Float:maxz, Float:size, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  339. native STREAMER_TAG_AREA CreateDynamicSphereEx(Float:x, Float:y, Float:z, Float:size, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  340. native STREAMER_TAG_AREA CreateDynamicRectangleEx(Float:minx, Float:miny, Float:maxx, Float:maxy, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  341. native STREAMER_TAG_AREA CreateDynamicCuboidEx(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  342. native STREAMER_TAG_AREA CreateDynamicCubeEx(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  343. native STREAMER_TAG_AREA CreateDynamicPolygonEx(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  344. native STREAMER_TAG_ACTOR CreateDynamicActorEx(modelid, Float:x, Float:y, Float:z, Float:r, invulnerable = 1, Float:health = 100.0, Float:streamdistance = STREAMER_ACTOR_SD, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, STREAMER_TAG_AREA areas[] = { STREAMER_TAG_AREA -1 }, priority = 0, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players, maxareas = sizeof areas);
  345. // Natives (Deprecated)
  346. native Streamer_CallbackHook(callback, {Float,_}:...);
  347. native Streamer_TickRate(rate);
  348. native Streamer_MaxItems(type, items);
  349. native Streamer_VisibleItems(type, items, playerid = -1);
  350. native Streamer_CellDistance(Float:distance);
  351. native Streamer_CellSize(Float:size);
  352. native DestroyAllDynamicObjects();
  353. native CountDynamicObjects();
  354. native DestroyAllDynamicPickups();
  355. native CountDynamicPickups();
  356. native DestroyAllDynamicCPs();
  357. native CountDynamicCPs();
  358. native DestroyAllDynamicRaceCPs();
  359. native CountDynamicRaceCPs();
  360. native DestroyAllDynamicMapIcons();
  361. native CountDynamicMapIcons();
  362. native DestroyAllDynamic3DTextLabels();
  363. native CountDynamic3DTextLabels();
  364. native DestroyAllDynamicAreas();
  365. native CountDynamicAreas();
  366. native TogglePlayerDynamicCP(playerid, STREAMER_TAG_CP checkpointid, toggle);
  367. native TogglePlayerAllDynamicCPs(playerid, toggle, exceptions[] = { -1 }, maxexceptions = sizeof exceptions);
  368. native TogglePlayerDynamicRaceCP(playerid, STREAMER_TAG_RACE_CP checkpointid, toggle);
  369. native TogglePlayerAllDynamicRaceCPs(playerid, toggle, exceptions[] = { -1 }, maxexceptions = sizeof exceptions);
  370. native TogglePlayerDynamicArea(playerid, STREAMER_TAG_AREA areaid, toggle);
  371. native TogglePlayerAllDynamicAreas(playerid, toggle, exceptions[] = { -1 }, maxexceptions = sizeof exceptions);
  372. // Callbacks
  373. forward OnDynamicObjectMoved(STREAMER_TAG_OBJECT objectid);
  374. forward OnPlayerEditDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
  375. forward OnPlayerSelectDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, modelid, Float:x, Float:y, Float:z);
  376. forward OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z);
  377. forward OnPlayerPickUpDynamicPickup(playerid, STREAMER_TAG_PICKUP pickupid);
  378. forward OnPlayerEnterDynamicCP(playerid, STREAMER_TAG_CP checkpointid);
  379. forward OnPlayerLeaveDynamicCP(playerid, STREAMER_TAG_CP checkpointid);
  380. forward OnPlayerEnterDynamicRaceCP(playerid, STREAMER_TAG_RACE_CP checkpointid);
  381. forward OnPlayerLeaveDynamicRaceCP(playerid, STREAMER_TAG_RACE_CP checkpointid);
  382. forward OnPlayerEnterDynamicArea(playerid, STREAMER_TAG_AREA areaid);
  383. forward OnPlayerLeaveDynamicArea(playerid, STREAMER_TAG_AREA areaid);
  384. forward OnPlayerGiveDamageDynamicActor(playerid, STREAMER_TAG_ACTOR actorid, Float:amount, weaponid, bodypart);
  385. forward OnDynamicActorStreamIn(STREAMER_TAG_ACTOR actorid, forplayerid);
  386. forward OnDynamicActorStreamOut(STREAMER_TAG_ACTOR actorid, forplayerid);
  387. forward Streamer_OnItemStreamIn(type, STREAMER_ALL_TAGS id);
  388. forward Streamer_OnItemStreamOut(type, STREAMER_ALL_TAGS id);
  389. forward Streamer_OnPluginError(error[]);