SAMProductions

My Streamer Include Code

Nov 7th, 2013
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 20.18 KB | None | 0 0
  1. /*
  2.  * Copyright (C) 2012 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.  
  17. #include <a_samp>
  18.  
  19. // Definitions
  20.  
  21. #define STREAMER_TYPE_OBJECT (0)
  22. #define STREAMER_TYPE_PICKUP (1)
  23. #define STREAMER_TYPE_CP (2)
  24. #define STREAMER_TYPE_RACE_CP (3)
  25. #define STREAMER_TYPE_MAP_ICON (4)
  26. #define STREAMER_TYPE_3D_TEXT_LABEL (5)
  27. #define STREAMER_TYPE_AREA (6)
  28.  
  29. #define STREAMER_AREA_TYPE_CIRCLE (0)
  30. #define STREAMER_AREA_TYPE_RECTANGLE (1)
  31. #define STREAMER_AREA_TYPE_SPHERE (2)
  32. #define STREAMER_AREA_TYPE_CUBE (3)
  33. #define STREAMER_AREA_TYPE_POLYGON (4)
  34.  
  35. #define STREAMER_OBJECT_TYPE_GLOBAL (0)
  36. #define STREAMER_OBJECT_TYPE_PLAYER (1)
  37. #define STREAMER_OBJECT_TYPE_DYNAMIC (2)
  38.  
  39. #if !defined FLOAT_INFINITY
  40.     #define FLOAT_INFINITY (Float:0x7F800000)
  41. #endif
  42.  
  43. // Include File Version
  44.  
  45. public Streamer_IncludeFileVersion = 0x26105;
  46.  
  47. #pragma unused Streamer_IncludeFileVersion
  48.  
  49. // Enumerator
  50.  
  51. enum
  52. {
  53.     E_STREAMER_ATTACHED_OBJECT,
  54.     E_STREAMER_ATTACHED_PLAYER,
  55.     E_STREAMER_ATTACHED_VEHICLE,
  56.     E_STREAMER_ATTACH_OFFSET_X,
  57.     E_STREAMER_ATTACH_OFFSET_Y,
  58.     E_STREAMER_ATTACH_OFFSET_Z,
  59.     E_STREAMER_ATTACH_R_X,
  60.     E_STREAMER_ATTACH_R_Y,
  61.     E_STREAMER_ATTACH_R_Z,
  62.     E_STREAMER_ATTACH_X,
  63.     E_STREAMER_ATTACH_Y,
  64.     E_STREAMER_ATTACH_Z,
  65.     E_STREAMER_COLOR,
  66.     E_STREAMER_DRAW_DISTANCE,
  67.     E_STREAMER_EXTRA_ID,
  68.     E_STREAMER_INTERIOR_ID,
  69.     E_STREAMER_MAX_X,
  70.     E_STREAMER_MAX_Y,
  71.     E_STREAMER_MAX_Z,
  72.     E_STREAMER_MIN_X,
  73.     E_STREAMER_MIN_Y,
  74.     E_STREAMER_MIN_Z,
  75.     E_STREAMER_MODEL_ID,
  76.     E_STREAMER_MOVE_R_X,
  77.     E_STREAMER_MOVE_R_Y,
  78.     E_STREAMER_MOVE_R_Z,
  79.     E_STREAMER_MOVE_SPEED,
  80.     E_STREAMER_MOVE_X,
  81.     E_STREAMER_MOVE_Y,
  82.     E_STREAMER_MOVE_Z,
  83.     E_STREAMER_NEXT_X,
  84.     E_STREAMER_NEXT_Y,
  85.     E_STREAMER_NEXT_Z,
  86.     E_STREAMER_PLAYER_ID,
  87.     E_STREAMER_R_X,
  88.     E_STREAMER_R_Y,
  89.     E_STREAMER_R_Z,
  90.     E_STREAMER_SIZE,
  91.     E_STREAMER_STREAM_DISTANCE,
  92.     E_STREAMER_STYLE,
  93.     E_STREAMER_TEST_LOS,
  94.     E_STREAMER_TYPE,
  95.     E_STREAMER_WORLD_ID,
  96.     E_STREAMER_X,
  97.     E_STREAMER_Y,
  98.     E_STREAMER_Z
  99. }
  100.  
  101. // Natives (Settings)
  102.  
  103. native Streamer_TickRate(rate);
  104. native Streamer_MaxItems(type, items);
  105. native Streamer_VisibleItems(type, items);
  106. native Streamer_CellDistance(Float:distance);
  107. native Streamer_CellSize(Float:size);
  108.  
  109. // Natives (Updates)
  110.  
  111. native Streamer_ProcessActiveItems();
  112. native Streamer_ToggleIdleUpdate(playerid, toggle);
  113. native Streamer_ToggleItemUpdate(playerid, type, toggle);
  114. native Streamer_Update(playerid);
  115. native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1);
  116.  
  117. // Natives (Data Manipulation)
  118.  
  119. native Streamer_GetFloatData(type, {Text3D,_}:id, data, &Float:result);
  120. native Streamer_SetFloatData(type, {Text3D,_}:id, data, Float:value);
  121. native Streamer_GetIntData(type, {Text3D,_}:id, data);
  122. native Streamer_SetIntData(type, {Text3D,_}:id, data, value);
  123. native Streamer_GetArrayData(type, {Text3D,_}:id, data, dest[], maxlength = sizeof dest);
  124. native Streamer_SetArrayData(type, {Text3D,_}:id, data, const src[], maxlength = sizeof src);
  125. native Streamer_IsInArrayData(type, {Text3D,_}:id, data, value);
  126. native Streamer_AppendArrayData(type, {Text3D,_}:id, data, value);
  127. native Streamer_RemoveArrayData(type, {Text3D,_}:id, data, value);
  128. native Streamer_GetUpperBound(type);
  129.  
  130. // Natives (Miscellaneous)
  131.  
  132. native Streamer_GetDistanceToItem(Float:x, Float:y, Float:z, type, {Text3D,_}:id, &Float:distance);
  133. native Streamer_IsItemVisible(playerid, type, {Text3D,_}:id);
  134. native Streamer_DestroyAllVisibleItems(playerid, type);
  135. native Streamer_CountVisibleItems(playerid, type);
  136.  
  137. // Natives (Objects)
  138.  
  139. native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 300.0);
  140. native DestroyDynamicObject(objectid);
  141. native IsValidDynamicObject(objectid);
  142. native SetDynamicObjectPos(objectid, Float:x, Float:y, Float:z);
  143. native GetDynamicObjectPos(objectid, &Float:x, &Float:y, &Float:z);
  144. native SetDynamicObjectRot(objectid, Float:rx, Float:ry, Float:rz);
  145. native GetDynamicObjectRot(objectid, &Float:rx, &Float:ry, &Float:rz);
  146. native MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0);
  147. native StopDynamicObject(objectid);
  148. native IsDynamicObjectMoving(objectid);
  149. native AttachCameraToDynamicObject(playerid, objectid);
  150. native AttachDynamicObjectToVehicle(objectid, vehicleid, Float:offsetx, Float:offsety, Float:offsetz, Float:rx, Float:ry, Float:rz);
  151. native EditDynamicObject(playerid, objectid);
  152. native GetDynamicObjectMaterial(objectid, materialindex, &modelid, txdname[], texturename[], &materialcolor, maxtxdname = sizeof txdname, maxtexturename = sizeof texturename);
  153. native SetDynamicObjectMaterial(objectid, materialindex, modelid, const txdname[], const texturename[], materialcolor = 0);
  154. native GetDynamicObjectMaterialText(objectid, materialindex, text[], &materialsize, fontface[], &fontsize, &bold, &fontcolor, &backcolor, &textalignment, maxtext = sizeof text, maxfontface = sizeof fontface);
  155. native SetDynamicObjectMaterialText(objectid, materialindex, const text[], materialsize = OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0);
  156. native DestroyAllDynamicObjects();
  157. native CountDynamicObjects();
  158.  
  159. // Natives (Pickups)
  160.  
  161. native CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
  162. native DestroyDynamicPickup(pickupid);
  163. native IsValidDynamicPickup(pickupid);
  164. native DestroyAllDynamicPickups();
  165. native CountDynamicPickups();
  166.  
  167. // Natives (Checkpoints)
  168.  
  169. native CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
  170. native DestroyDynamicCP(checkpointid);
  171. native IsValidDynamicCP(checkpointid);
  172. native TogglePlayerDynamicCP(playerid, checkpointid, toggle);
  173. native TogglePlayerAllDynamicCPs(playerid, toggle);
  174. native IsPlayerInDynamicCP(playerid, checkpointid);
  175. native GetPlayerVisibleDynamicCP(playerid);
  176. native DestroyAllDynamicCPs();
  177. native CountDynamicCPs();
  178.  
  179. // Natives (Race Checkpoints)
  180.  
  181. native CreateDynamicRaceCP(type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
  182. native DestroyDynamicRaceCP(checkpointid);
  183. native IsValidDynamicRaceCP(checkpointid);
  184. native TogglePlayerDynamicRaceCP(playerid, checkpointid, toggle);
  185. native TogglePlayerAllDynamicRaceCPs(playerid, toggle);
  186. native IsPlayerInDynamicRaceCP(playerid, checkpointid);
  187. native GetPlayerVisibleDynamicRaceCP(playerid);
  188. native DestroyAllDynamicRaceCPs();
  189. native CountDynamicRaceCPs();
  190.  
  191. // Natives (Map Icons)
  192.  
  193. native CreateDynamicMapIcon(Float:x, Float:y, Float:z, type, color, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
  194. native DestroyDynamicMapIcon(iconid);
  195. native IsValidDynamicMapIcon(iconid);
  196. native DestroyAllDynamicMapIcons();
  197. native CountDynamicMapIcons();
  198.  
  199. // Natives (3D Text Labels)
  200.  
  201. 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:streamdistance = 100.0);
  202. native DestroyDynamic3DTextLabel(Text3D:id);
  203. native IsValidDynamic3DTextLabel(Text3D:id);
  204. native GetDynamic3DTextLabelText(Text3D:id, text[], maxlength = sizeof text);
  205. native UpdateDynamic3DTextLabelText(Text3D:id, color, const text[]);
  206. native DestroyAllDynamic3DTextLabels();
  207. native CountDynamic3DTextLabels();
  208.  
  209. // Natives (Areas)
  210.  
  211. native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
  212. native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
  213. native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
  214. native CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
  215. native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1);
  216. native DestroyDynamicArea(areaid);
  217. native IsValidDynamicArea(areaid);
  218. native TogglePlayerDynamicArea(playerid, areaid, toggle);
  219. native TogglePlayerAllDynamicAreas(playerid, toggle);
  220. native IsPlayerInDynamicArea(playerid, areaid);
  221. native IsPlayerInAnyDynamicArea(playerid);
  222. native IsPointInDynamicArea(areaid, Float:x, Float:y, Float:z);
  223. native IsPointInAnyDynamicArea(Float:x, Float:y, Float:z);
  224. native AttachDynamicAreaToObject(areaid, objectid, type = STREAMER_OBJECT_TYPE_DYNAMIC, playerid = INVALID_PLAYER_ID);
  225. native AttachDynamicAreaToPlayer(areaid, playerid);
  226. native AttachDynamicAreaToVehicle(areaid, vehicleid);
  227. native DestroyAllDynamicAreas();
  228. native CountDynamicAreas();
  229.  
  230. // Natives (Extended)
  231.  
  232. native CreateDynamicObjectEx(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:drawdistance = 0.0, Float:streamdistance = 200.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  233. native CreateDynamicPickupEx(modelid, type, Float:x, Float:y, Float:z, Float:streamdistance = 100.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  234. native CreateDynamicCPEx(Float:x, Float:y, Float:z, Float:size, Float:streamdistance = 100.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  235. native CreateDynamicRaceCPEx(type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size, Float:streamdistance = 100.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  236. native CreateDynamicMapIconEx(Float:x, Float:y, Float:z, type, color, style = MAPICON_LOCAL, Float:streamdistance = 100.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  237. native Text3D:CreateDynamic3DTextLabelEx(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, Float:streamdistance = 100.0, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  238. native CreateDynamicCircleEx(Float:x, Float:y, Float:size, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  239. native CreateDynamicRectangleEx(Float:minx, Float:miny, Float:maxx, Float:maxy, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  240. native CreateDynamicSphereEx(Float:x, Float:y, Float:z, Float:size, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  241. native CreateDynamicCubeEx(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  242. native CreateDynamicPolygonEx(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
  243.  
  244. // Natives (Internal)
  245.  
  246. native Streamer_CallbackHook(callback, {Float,_}:...);
  247.  
  248. // Callbacks
  249.  
  250. forward OnDynamicObjectMoved(objectid);
  251. forward OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
  252. forward OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z);
  253. forward OnPlayerPickUpDynamicPickup(playerid, pickupid);
  254. forward OnPlayerEnterDynamicCP(playerid, checkpointid);
  255. forward OnPlayerLeaveDynamicCP(playerid, checkpointid);
  256. forward OnPlayerEnterDynamicRaceCP(playerid, checkpointid);
  257. forward OnPlayerLeaveDynamicRaceCP(playerid, checkpointid);
  258. forward OnPlayerEnterDynamicArea(playerid, areaid);
  259. forward OnPlayerLeaveDynamicArea(playerid, areaid);
  260.  
  261. // Callback Hook Section
  262.  
  263. #define STREAMER_OPC (0)
  264. #define STREAMER_OPDC (1)
  265. #define STREAMER_OPEO (2)
  266. #define STREAMER_OPSO (3)
  267. #define STREAMER_OPPP (4)
  268. #define STREAMER_OPEC (5)
  269. #define STREAMER_OPLC (6)
  270. #define STREAMER_OPERC (7)
  271. #define STREAMER_OPLRC (8)
  272.  
  273. static bool:Streamer_g_OPC = false;
  274. static bool:Streamer_g_OPDC = false;
  275. static bool:Streamer_g_OPEO = false;
  276. static bool:Streamer_g_OPSO = false;
  277. static bool:Streamer_g_OPPP = false;
  278. static bool:Streamer_g_OPEC = false;
  279. static bool:Streamer_g_OPLC = false;
  280. static bool:Streamer_g_OPERC = false;
  281. static bool:Streamer_g_OPLRC = false;
  282.  
  283. public OnFilterScriptInit()
  284. {
  285.     Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
  286.     Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -1;
  287.     Streamer_g_OPEO = funcidx("Streamer_OnPlayerEditObject") != -1;
  288.     Streamer_g_OPSO = funcidx("Streamer_OnPlayerSelectObject") != -1;
  289.     Streamer_g_OPPP = funcidx("Streamer_OnPlayerPickUpPickup") != -1;
  290.     Streamer_g_OPEC = funcidx("Streamer_OnPlayerEnterCP") != -1;
  291.     Streamer_g_OPLC = funcidx("Streamer_OnPlayerLeaveCP") != -1;
  292.     Streamer_g_OPERC = funcidx("Streamer_OnPlayerEnterRaceCP") != -1;
  293.     Streamer_g_OPLRC = funcidx("Streamer_OnPlayerLeaveRaceCP") != -1;
  294.     if (funcidx("Streamer_OnFilterScriptInit") != -1)
  295.     {
  296.         return CallLocalFunction("Streamer_OnFilterScriptInit", "");
  297.     }
  298.     return 1;
  299. }
  300.  
  301. #if defined _ALS_OnFilterScriptInit
  302.     #undef OnFilterScriptInit
  303. #else
  304.     #define _ALS_OnFilterScriptInit
  305. #endif
  306. #define OnFilterScriptInit Streamer_OnFilterScriptInit
  307.  
  308. forward Streamer_OnFilterScriptInit();
  309.  
  310. public OnGameModeInit()
  311. {
  312.     Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
  313.     Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -1;
  314.     Streamer_g_OPEO = funcidx("Streamer_OnPlayerEditObject") != -1;
  315.     Streamer_g_OPSO = funcidx("Streamer_OnPlayerSelectObject") != -1;
  316.     Streamer_g_OPPP = funcidx("Streamer_OnPlayerPickUpPickup") != -1;
  317.     Streamer_g_OPEC = funcidx("Streamer_OnPlayerEnterCP") != -1;
  318.     Streamer_g_OPLC = funcidx("Streamer_OnPlayerLeaveCP") != -1;
  319.     Streamer_g_OPERC = funcidx("Streamer_OnPlayerEnterRaceCP") != -1;
  320.     Streamer_g_OPLRC = funcidx("Streamer_OnPlayerLeaveRaceCP") != -1;
  321.     if (funcidx("Streamer_OnGameModeInit") != -1)
  322.     {
  323.         return CallLocalFunction("Streamer_OnGameModeInit", "");
  324.     }
  325.     return 1;
  326. }
  327.  
  328. #if defined _ALS_OnGameModeInit
  329.     #undef OnGameModeInit
  330. #else
  331.     #define _ALS_OnGameModeInit
  332. #endif
  333. #define OnGameModeInit Streamer_OnGameModeInit
  334.  
  335. forward Streamer_OnGameModeInit();
  336.  
  337. public OnPlayerConnect(playerid)
  338. {
  339.     Streamer_CallbackHook(STREAMER_OPC, playerid);
  340.     if (Streamer_g_OPC)
  341.     {
  342.         return CallLocalFunction("Streamer_OnPlayerConnect", "d", playerid);
  343.     }
  344.     return 1;
  345. }
  346.  
  347. #if defined _ALS_OnPlayerConnect
  348.     #undef OnPlayerConnect
  349. #else
  350.     #define _ALS_OnPlayerConnect
  351. #endif
  352. #define OnPlayerConnect Streamer_OnPlayerConnect
  353.  
  354. forward Streamer_OnPlayerConnect(playerid);
  355.  
  356. public OnPlayerDisconnect(playerid, reason)
  357. {
  358.     Streamer_CallbackHook(STREAMER_OPDC, playerid, reason);
  359.     if (Streamer_g_OPDC)
  360.     {
  361.         return CallLocalFunction("Streamer_OnPlayerDisconnect", "dd", playerid, reason);
  362.     }
  363.     return 1;
  364. }
  365.  
  366. #if defined _ALS_OnPlayerDisconnect
  367.     #undef OnPlayerDisconnect
  368. #else
  369.     #define _ALS_OnPlayerDisconnect
  370. #endif
  371. #define OnPlayerDisconnect Streamer_OnPlayerDisconnect
  372.  
  373. forward Streamer_OnPlayerDisconnect(playerid, reason);
  374.  
  375. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  376. {
  377.     if (playerobject)
  378.     {
  379.         Streamer_CallbackHook(STREAMER_OPEO, playerid, playerobject, objectid, response, fX, fY, fZ, fRotX, fRotY, fRotZ);
  380.     }
  381.     if (Streamer_g_OPEO)
  382.     {
  383.         return CallLocalFunction("Streamer_OnPlayerEditObject", "ddddffffff", playerid, playerobject, objectid, response, fX, fY, fZ, fRotX, fRotY, fRotZ);
  384.     }
  385.     return 1;
  386. }
  387.  
  388. #if defined _ALS_OnPlayerEditObject
  389.     #undef OnPlayerEditObject
  390. #else
  391.     #define _ALS_OnPlayerEditObject
  392. #endif
  393. #define OnPlayerEditObject Streamer_OnPlayerEditObject
  394.  
  395. forward Streamer_OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ);
  396.  
  397. public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ)
  398. {
  399.     if (type == SELECT_OBJECT_PLAYER_OBJECT)
  400.     {
  401.         Streamer_CallbackHook(STREAMER_OPSO, playerid, type, objectid, modelid, fX, fY, fZ);
  402.     }
  403.     if (Streamer_g_OPSO)
  404.     {
  405.         return CallLocalFunction("Streamer_OnPlayerSelectObject", "ddddfff", playerid, type, objectid, modelid, fX, fY, fZ);
  406.     }
  407.     return 1;
  408. }
  409.  
  410. #if defined _ALS_OnPlayerSelectObject
  411.     #undef OnPlayerSelectObject
  412. #else
  413.     #define _ALS_OnPlayerSelectObject
  414. #endif
  415. #define OnPlayerSelectObject Streamer_OnPlayerSelectObject
  416.  
  417. forward Streamer_OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ);
  418.  
  419. public OnPlayerPickUpPickup(playerid, pickupid)
  420. {
  421.     Streamer_CallbackHook(STREAMER_OPPP, playerid, pickupid);
  422.     if (Streamer_g_OPPP)
  423.     {
  424.         return CallLocalFunction("Streamer_OnPlayerPickUpPickup", "dd", playerid, pickupid);
  425.     }
  426.     return 1;
  427. }
  428.  
  429. #if defined _ALS_OnPlayerPickUpPickup
  430.     #undef OnPlayerPickUpPickup
  431. #else
  432.     #define _ALS_OnPlayerPickUpPickup
  433. #endif
  434. #define OnPlayerPickUpPickup Streamer_OnPlayerPickUpPickup
  435.  
  436. forward Streamer_OnPlayerPickUpPickup(playerid, pickupid);
  437.  
  438. public OnPlayerEnterCheckpoint(playerid)
  439. {
  440.     Streamer_CallbackHook(STREAMER_OPEC, playerid);
  441.     if (Streamer_g_OPEC)
  442.     {
  443.         return CallLocalFunction("Streamer_OnPlayerEnterCP", "d", playerid);
  444.     }
  445.     return 1;
  446. }
  447.  
  448. #if defined _ALS_OnPlayerEnterCheckpoint
  449.     #undef OnPlayerEnterCheckpoint
  450. #else
  451.     #define _ALS_OnPlayerEnterCheckpoint
  452. #endif
  453. #define OnPlayerEnterCheckpoint Streamer_OnPlayerEnterCP
  454.  
  455. forward Streamer_OnPlayerEnterCP(playerid);
  456.  
  457. public OnPlayerLeaveCheckpoint(playerid)
  458. {
  459.     Streamer_CallbackHook(STREAMER_OPLC, playerid);
  460.     if (Streamer_g_OPLC)
  461.     {
  462.         return CallLocalFunction("Streamer_OnPlayerLeaveCP", "d", playerid);
  463.     }
  464.     return 1;
  465. }
  466.  
  467. #if defined _ALS_OnPlayerLeaveCheckpoint
  468.     #undef OnPlayerLeaveCheckpoint
  469. #else
  470.     #define _ALS_OnPlayerLeaveCheckpoint
  471. #endif
  472. #define OnPlayerLeaveCheckpoint Streamer_OnPlayerLeaveCP
  473.  
  474. forward Streamer_OnPlayerLeaveCP(playerid);
  475.  
  476. public OnPlayerEnterRaceCheckpoint(playerid)
  477. {
  478.     Streamer_CallbackHook(STREAMER_OPERC, playerid);
  479.     if (Streamer_g_OPERC)
  480.     {
  481.         return CallLocalFunction("Streamer_OnPlayerEnterRaceCP", "d", playerid);
  482.     }
  483.     return 1;
  484. }
  485.  
  486. #if defined _ALS_OnPlayerEnterRaceCP
  487.     #undef OnPlayerEnterRaceCheckpoint
  488. #else
  489.     #define _ALS_OnPlayerEnterRaceCP
  490. #endif
  491. #define OnPlayerEnterRaceCheckpoint Streamer_OnPlayerEnterRaceCP
  492.  
  493. forward Streamer_OnPlayerEnterRaceCP(playerid);
  494.  
  495. public OnPlayerLeaveRaceCheckpoint(playerid)
  496. {
  497.     Streamer_CallbackHook(STREAMER_OPLRC, playerid);
  498.     if (Streamer_g_OPLRC)
  499.     {
  500.         return CallLocalFunction("Streamer_OnPlayerLeaveRaceCP", "d", playerid);
  501.     }
  502.     return 1;
  503. }
  504.  
  505. #if defined _ALS_OnPlayerLeaveRaceCP
  506.     #undef OnPlayerLeaveRaceCheckpoint
  507. #else
  508.     #define _ALS_OnPlayerLeaveRaceCP
  509. #endif
  510. #define OnPlayerLeaveRaceCheckpoint Streamer_OnPlayerLeaveRaceCP
  511.  
  512. forward Streamer_OnPlayerLeaveRaceCP(playerid);
Add Comment
Please, Sign In to add comment