| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534 |
- /*
- SA-MP Streamer Plugin v2.6.1
- Copyright © 2012 Incognito
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- #include <a_samp>
- // Definitions
- #define STREAMER_TYPE_OBJECT (0)
- #define STREAMER_TYPE_PICKUP (1)
- #define STREAMER_TYPE_CP (2)
- #define STREAMER_TYPE_RACE_CP (3)
- #define STREAMER_TYPE_MAP_ICON (4)
- #define STREAMER_TYPE_3D_TEXT_LABEL (5)
- #define STREAMER_TYPE_AREA (6)
- #define STREAMER_AREA_TYPE_CIRCLE (0)
- #define STREAMER_AREA_TYPE_RECTANGLE (1)
- #define STREAMER_AREA_TYPE_SPHERE (2)
- #define STREAMER_AREA_TYPE_CUBE (3)
- #define STREAMER_AREA_TYPE_POLYGON (4)
- #define STREAMER_OBJECT_TYPE_GLOBAL (0)
- #define STREAMER_OBJECT_TYPE_PLAYER (1)
- #define STREAMER_OBJECT_TYPE_DYNAMIC (2)
- #if !defined FLOAT_INFINITY
- #define FLOAT_INFINITY (Float:0x7F800000)
- #endif
- // Include File Version
- public Streamer_IncludeFileVersion = 0x26104;
- #pragma unused Streamer_IncludeFileVersion
- // Enumerator
- enum
- {
- E_STREAMER_ATTACHED_OBJECT,
- E_STREAMER_ATTACHED_PLAYER,
- E_STREAMER_ATTACHED_VEHICLE,
- E_STREAMER_ATTACH_OFFSET_X,
- E_STREAMER_ATTACH_OFFSET_Y,
- E_STREAMER_ATTACH_OFFSET_Z,
- E_STREAMER_ATTACH_R_X,
- E_STREAMER_ATTACH_R_Y,
- E_STREAMER_ATTACH_R_Z,
- E_STREAMER_ATTACH_X,
- E_STREAMER_ATTACH_Y,
- E_STREAMER_ATTACH_Z,
- E_STREAMER_COLOR,
- E_STREAMER_DRAW_DISTANCE,
- E_STREAMER_EXTRA_ID,
- E_STREAMER_INTERIOR_ID,
- E_STREAMER_MAX_X,
- E_STREAMER_MAX_Y,
- E_STREAMER_MAX_Z,
- E_STREAMER_MIN_X,
- E_STREAMER_MIN_Y,
- E_STREAMER_MIN_Z,
- E_STREAMER_MODEL_ID,
- E_STREAMER_MOVE_R_X,
- E_STREAMER_MOVE_R_Y,
- E_STREAMER_MOVE_R_Z,
- E_STREAMER_MOVE_SPEED,
- E_STREAMER_MOVE_X,
- E_STREAMER_MOVE_Y,
- E_STREAMER_MOVE_Z,
- E_STREAMER_NEXT_X,
- E_STREAMER_NEXT_Y,
- E_STREAMER_NEXT_Z,
- E_STREAMER_PLAYER_ID,
- E_STREAMER_R_X,
- E_STREAMER_R_Y,
- E_STREAMER_R_Z,
- E_STREAMER_SIZE,
- E_STREAMER_STREAM_DISTANCE,
- E_STREAMER_STYLE,
- E_STREAMER_TEST_LOS,
- E_STREAMER_TYPE,
- E_STREAMER_WORLD_ID,
- E_STREAMER_X,
- E_STREAMER_Y,
- E_STREAMER_Z
- }
- // Setting Natives
- native Streamer_TickRate(rate);
- native Streamer_MaxItems(type, items);
- native Streamer_VisibleItems(type, items);
- native Streamer_CellDistance(Float:distance);
- native Streamer_CellSize(Float:size);
- // Update Natives
- native Streamer_ProcessActiveItems();
- native Streamer_ToggleIdleUpdate(playerid, toggle);
- native Streamer_Update(playerid);
- native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1);
- // Data Manipulation Natives
- native Streamer_GetFloatData(type, {Text3D,_}:id, data, &Float:result);
- native Streamer_SetFloatData(type, {Text3D,_}:id, data, Float:value);
- native Streamer_GetIntData(type, {Text3D,_}:id, data);
- native Streamer_SetIntData(type, {Text3D,_}:id, data, value);
- native Streamer_GetArrayData(type, {Text3D,_}:id, data, dest[], maxlength = sizeof dest);
- native Streamer_SetArrayData(type, {Text3D,_}:id, data, const src[], maxlength = sizeof src);
- native Streamer_IsInArrayData(type, {Text3D,_}:id, data, value);
- native Streamer_AppendArrayData(type, {Text3D,_}:id, data, value);
- native Streamer_RemoveArrayData(type, {Text3D,_}:id, data, value);
- native Streamer_GetUpperBound(type);
- // Miscellaneous Natives
- native Streamer_GetDistanceToItem(Float:x, Float:y, Float:z, type, {Text3D,_}:id, &Float:distance);
- native Streamer_IsItemVisible(playerid, type, {Text3D,_}:id);
- native Streamer_DestroyAllVisibleItems(playerid, type);
- native Streamer_CountVisibleItems(playerid, type);
- // Object Natives
- 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);
- native DestroyDynamicObject(objectid);
- native IsValidDynamicObject(objectid);
- native SetDynamicObjectPos(objectid, Float:x, Float:y, Float:z);
- native GetDynamicObjectPos(objectid, &Float:x, &Float:y, &Float:z);
- native SetDynamicObjectRot(objectid, Float:rx, Float:ry, Float:rz);
- native GetDynamicObjectRot(objectid, &Float:rx, &Float:ry, &Float:rz);
- native MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed, Float:rx = -1000.0, Float:ry = -1000.0, Float:rz = -1000.0);
- native StopDynamicObject(objectid);
- native IsDynamicObjectMoving(objectid);
- native AttachCameraToDynamicObject(playerid, objectid);
- native AttachDynamicObjectToVehicle(objectid, vehicleid, Float:offsetx, Float:offsety, Float:offsetz, Float:rx, Float:ry, Float:rz);
- native EditDynamicObject(playerid, objectid);
- native GetDynamicObjectMaterial(objectid, materialindex, &modelid, txdname[], texturename[], &materialcolor, maxtxdname = sizeof txdname, maxtexturename = sizeof texturename);
- native SetDynamicObjectMaterial(objectid, materialindex, modelid, const txdname[], const texturename[], materialcolor = 0);
- native GetDynamicObjectMaterialText(objectid, materialindex, text[], &materialsize, fontface[], &fontsize, &bold, &fontcolor, &backcolor, &textalignment, maxtext = sizeof text, maxfontface = sizeof fontface);
- native SetDynamicObjectMaterialText(objectid, materialindex, const text[], materialsize = OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0);
- native DestroyAllDynamicObjects();
- native CountDynamicObjects();
- // Pickup Natives
- native CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
- native DestroyDynamicPickup(pickupid);
- native IsValidDynamicPickup(pickupid);
- native DestroyAllDynamicPickups();
- native CountDynamicPickups();
- // Checkpoint Natives
- native CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
- native DestroyDynamicCP(checkpointid);
- native IsValidDynamicCP(checkpointid);
- native TogglePlayerDynamicCP(playerid, checkpointid, toggle);
- native TogglePlayerAllDynamicCPs(playerid, toggle);
- native IsPlayerInDynamicCP(playerid, checkpointid);
- native GetPlayerVisibleDynamicCP(playerid);
- native DestroyAllDynamicCPs();
- native CountDynamicCPs();
- // Race Checkpoint Natives
- 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);
- native DestroyDynamicRaceCP(checkpointid);
- native IsValidDynamicRaceCP(checkpointid);
- native TogglePlayerDynamicRaceCP(playerid, checkpointid, toggle);
- native TogglePlayerAllDynamicRaceCPs(playerid, toggle);
- native IsPlayerInDynamicRaceCP(playerid, checkpointid);
- native GetPlayerVisibleDynamicRaceCP(playerid);
- native DestroyAllDynamicRaceCPs();
- native CountDynamicRaceCPs();
- // Map Icon Natives
- native CreateDynamicMapIcon(Float:x, Float:y, Float:z, type, color, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
- native DestroyDynamicMapIcon(iconid);
- native IsValidDynamicMapIcon(iconid);
- native DestroyAllDynamicMapIcons();
- native CountDynamicMapIcons();
- // 3D Text Label Natives
- 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);
- native DestroyDynamic3DTextLabel(Text3D:id);
- native IsValidDynamic3DTextLabel(Text3D:id);
- native GetDynamic3DTextLabelText(Text3D:id, text[], maxlength = sizeof text);
- native UpdateDynamic3DTextLabelText(Text3D:id, color, const text[]);
- native DestroyAllDynamic3DTextLabels();
- native CountDynamic3DTextLabels();
- // Area Natives
- native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
- native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
- native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
- native CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
- native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1);
- native DestroyDynamicArea(areaid);
- native IsValidDynamicArea(areaid);
- native TogglePlayerDynamicArea(playerid, areaid, toggle);
- native TogglePlayerAllDynamicAreas(playerid, toggle);
- native IsPlayerInDynamicArea(playerid, areaid);
- native IsPlayerInAnyDynamicArea(playerid);
- native IsPointInDynamicArea(areaid, Float:x, Float:y, Float:z);
- native IsPointInAnyDynamicArea(Float:x, Float:y, Float:z);
- native AttachDynamicAreaToObject(areaid, objectid, type = STREAMER_OBJECT_TYPE_DYNAMIC, playerid = INVALID_PLAYER_ID);
- native AttachDynamicAreaToPlayer(areaid, playerid);
- native AttachDynamicAreaToVehicle(areaid, vehicleid);
- native DestroyAllDynamicAreas();
- native CountDynamicAreas();
- // Extended Natives
- 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);
- 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);
- 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);
- 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);
- 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);
- 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);
- native CreateDynamicCircleEx(Float:x, Float:y, Float:size, worlds[] = { -1 }, interiors[] = { -1 }, players[] = { -1 }, maxworlds = sizeof worlds, maxinteriors = sizeof interiors, maxplayers = sizeof players);
- 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);
- 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);
- 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);
- 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);
- // Internal Natives
- native Streamer_CallbackHook(callback, {Float,_}:...);
- // Callbacks
- forward OnDynamicObjectMoved(objectid);
- forward OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
- forward OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z);
- forward OnPlayerPickUpDynamicPickup(playerid, pickupid);
- forward OnPlayerEnterDynamicCP(playerid, checkpointid);
- forward OnPlayerLeaveDynamicCP(playerid, checkpointid);
- forward OnPlayerEnterDynamicRaceCP(playerid, checkpointid);
- forward OnPlayerLeaveDynamicRaceCP(playerid, checkpointid);
- forward OnPlayerEnterDynamicArea(playerid, areaid);
- forward OnPlayerLeaveDynamicArea(playerid, areaid);
- // Callback Hook Section
- #define STREAMER_OPC (0)
- #define STREAMER_OPDC (1)
- #define STREAMER_OPEO (2)
- #define STREAMER_OPSO (3)
- #define STREAMER_OPPP (4)
- #define STREAMER_OPEC (5)
- #define STREAMER_OPLC (6)
- #define STREAMER_OPERC (7)
- #define STREAMER_OPLRC (8)
- static bool:Streamer_g_OPC = false;
- static bool:Streamer_g_OPDC = false;
- static bool:Streamer_g_OPEO = false;
- static bool:Streamer_g_OPSO = false;
- static bool:Streamer_g_OPPP = false;
- static bool:Streamer_g_OPEC = false;
- static bool:Streamer_g_OPLC = false;
- static bool:Streamer_g_OPERC = false;
- static bool:Streamer_g_OPLRC = false;
- public OnFilterScriptInit()
- {
- Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
- Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -1;
- Streamer_g_OPEO = funcidx("Streamer_OnPlayerEditObject") != -1;
- Streamer_g_OPSO = funcidx("Streamer_OnPlayerSelectObject") != -1;
- Streamer_g_OPPP = funcidx("Streamer_OnPlayerPickUpPickup") != -1;
- Streamer_g_OPEC = funcidx("Streamer_OnPlayerEnterCP") != -1;
- Streamer_g_OPLC = funcidx("Streamer_OnPlayerLeaveCP") != -1;
- Streamer_g_OPERC = funcidx("Streamer_OnPlayerEnterRaceCP") != -1;
- Streamer_g_OPLRC = funcidx("Streamer_OnPlayerLeaveRaceCP") != -1;
- if (funcidx("Streamer_OnFilterScriptInit") != -1)
- {
- return CallLocalFunction("Streamer_OnFilterScriptInit", "");
- }
- return 1;
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit Streamer_OnFilterScriptInit
- forward Streamer_OnFilterScriptInit();
- public OnGameModeInit()
- {
- Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
- Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -1;
- Streamer_g_OPEO = funcidx("Streamer_OnPlayerEditObject") != -1;
- Streamer_g_OPSO = funcidx("Streamer_OnPlayerSelectObject") != -1;
- Streamer_g_OPPP = funcidx("Streamer_OnPlayerPickUpPickup") != -1;
- Streamer_g_OPEC = funcidx("Streamer_OnPlayerEnterCP") != -1;
- Streamer_g_OPLC = funcidx("Streamer_OnPlayerLeaveCP") != -1;
- Streamer_g_OPERC = funcidx("Streamer_OnPlayerEnterRaceCP") != -1;
- Streamer_g_OPLRC = funcidx("Streamer_OnPlayerLeaveRaceCP") != -1;
- if (funcidx("Streamer_OnGameModeInit") != -1)
- {
- return CallLocalFunction("Streamer_OnGameModeInit", "");
- }
- return 1;
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit Streamer_OnGameModeInit
- forward Streamer_OnGameModeInit();
- public OnPlayerConnect(playerid)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPC, playerid);
- }
- if (Streamer_g_OPC)
- {
- return CallLocalFunction("Streamer_OnPlayerConnect", "d", playerid);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect Streamer_OnPlayerConnect
- forward Streamer_OnPlayerConnect(playerid);
- public OnPlayerDisconnect(playerid, reason)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPDC, playerid, reason);
- }
- if (Streamer_g_OPDC)
- {
- return CallLocalFunction("Streamer_OnPlayerDisconnect", "dd", playerid, reason);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect Streamer_OnPlayerDisconnect
- forward Streamer_OnPlayerDisconnect(playerid, reason);
- public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
- {
- if (!IsPlayerNPC(playerid) && playerobject)
- {
- Streamer_CallbackHook(STREAMER_OPEO, playerid, playerobject, objectid, response, fX, fY, fZ, fRotX, fRotY, fRotZ);
- }
- if (Streamer_g_OPEO)
- {
- return CallLocalFunction("Streamer_OnPlayerEditObject", "ddddffffff", playerid, playerobject, objectid, response, fX, fY, fZ, fRotX, fRotY, fRotZ);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerEditObject
- #undef OnPlayerEditObject
- #else
- #define _ALS_OnPlayerEditObject
- #endif
- #define OnPlayerEditObject Streamer_OnPlayerEditObject
- forward Streamer_OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ);
- public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ)
- {
- if (!IsPlayerNPC(playerid) && type == SELECT_OBJECT_PLAYER_OBJECT)
- {
- Streamer_CallbackHook(STREAMER_OPSO, playerid, type, objectid, modelid, fX, fY, fZ);
- }
- if (Streamer_g_OPSO)
- {
- return CallLocalFunction("Streamer_OnPlayerSelectObject", "ddddfff", playerid, type, objectid, modelid, fX, fY, fZ);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerSelectObject
- #undef OnPlayerSelectObject
- #else
- #define _ALS_OnPlayerSelectObject
- #endif
- #define OnPlayerSelectObject Streamer_OnPlayerSelectObject
- forward Streamer_OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ);
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPPP, playerid, pickupid);
- }
- if (Streamer_g_OPPP)
- {
- return CallLocalFunction("Streamer_OnPlayerPickUpPickup", "dd", playerid, pickupid);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerPickUpPickup
- #undef OnPlayerPickUpPickup
- #else
- #define _ALS_OnPlayerPickUpPickup
- #endif
- #define OnPlayerPickUpPickup Streamer_OnPlayerPickUpPickup
- forward Streamer_OnPlayerPickUpPickup(playerid, pickupid);
- public OnPlayerEnterCheckpoint(playerid)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPEC, playerid);
- }
- if (Streamer_g_OPEC)
- {
- return CallLocalFunction("Streamer_OnPlayerEnterCP", "d", playerid);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerEnterCheckpoint
- #undef OnPlayerEnterCheckpoint
- #else
- #define _ALS_OnPlayerEnterCheckpoint
- #endif
- #define OnPlayerEnterCheckpoint Streamer_OnPlayerEnterCP
- forward Streamer_OnPlayerEnterCP(playerid);
- public OnPlayerLeaveCheckpoint(playerid)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPLC, playerid);
- }
- if (Streamer_g_OPLC)
- {
- return CallLocalFunction("Streamer_OnPlayerLeaveCP", "d", playerid);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerLeaveCheckpoint
- #undef OnPlayerLeaveCheckpoint
- #else
- #define _ALS_OnPlayerLeaveCheckpoint
- #endif
- #define OnPlayerLeaveCheckpoint Streamer_OnPlayerLeaveCP
- forward Streamer_OnPlayerLeaveCP(playerid);
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPERC, playerid);
- }
- if (Streamer_g_OPERC)
- {
- return CallLocalFunction("Streamer_OnPlayerEnterRaceCP", "d", playerid);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerEnterRaceCP
- #undef OnPlayerEnterRaceCheckpoint
- #else
- #define _ALS_OnPlayerEnterRaceCP
- #endif
- #define OnPlayerEnterRaceCheckpoint Streamer_OnPlayerEnterRaceCP
- forward Streamer_OnPlayerEnterRaceCP(playerid);
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- if (!IsPlayerNPC(playerid))
- {
- Streamer_CallbackHook(STREAMER_OPLRC, playerid);
- }
- if (Streamer_g_OPLRC)
- {
- return CallLocalFunction("Streamer_OnPlayerLeaveRaceCP", "d", playerid);
- }
- return 1;
- }
- #if defined _ALS_OnPlayerLeaveRaceCP
- #undef OnPlayerLeaveRaceCheckpoint
- #else
- #define _ALS_OnPlayerLeaveRaceCP
- #endif
- #define OnPlayerLeaveRaceCheckpoint Streamer_OnPlayerLeaveRaceCP
- forward Streamer_OnPlayerLeaveRaceCP(playerid);
|