Object Streamer ?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Moin Leute,
    ich editiere im moment das YsF Godfather..
    Jetzt wollte ich wissen wie viel platz noch im Object Streamer ist.
    Ich möchte nicht mit Objecten rum ballern bis irgendwann die Tore etc. net mehr angezeigt werden.
    Gibts da ne Möglichkeit rauszufinden wie viele Objecte noch in Script passen ?


    Mit freundlichen Grüßen,
    SoxX

  • Benutzt du den Streamer auch von YSF gehe ich stark von aus.
    Wenn ja wäre es brauchbar wenn du mir die Include zu kommen lässt dann kann ich dir sagen wieviele Objekte maximal gestreamet werden.
    Ich empfehle dir aber den Plugin Object Streamer von Icognito.


    LG RFT

    RFT

  • /*
    SA-MP Streamer Plugin v2.3.8
    Copyright © 2010 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/>.
    */


    #if defined _streamer_included
    #endinput
    #endif
    #define _streamer_included
    #pragma library streamer


    // 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)


    // Enumerator


    enum
    {
    E_STREAMER_ATTACHED_PLAYER,
    E_STREAMER_ATTACHED_VEHICLE,
    E_STREAMER_COLOR,
    E_STREAMER_DISTANCE,
    E_STREAMER_DRAW_DISTANCE,
    E_STREAMER_EXTRA_ID,
    E_STREAMER_INTERIOR_ID,
    E_STREAMER_MARKER_TYPE,
    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_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_TEST_LOS,
    E_STREAMER_TYPE,
    E_STREAMER_WORLD_ID,
    E_STREAMER_X,
    E_STREAMER_Y,
    E_STREAMER_Z
    }


    // Natives (Settings)


    native Streamer_TickRate(rate);
    native Streamer_MaxItems(type, items);
    native Streamer_VisibleItems(type, items);


    // Natives (Updates)


    native Streamer_Update(playerid);
    native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z);


    // Natives (Data Manipulation)


    native Streamer_GetFloatData(type, {Text3D,_}:id, data, &Float:result);
    native Streamer_GetIntData(type, {Text3D,_}:id, data);
    native Streamer_SetFloatData(type, {Text3D,_}:id, data, Float:value);
    native Streamer_SetIntData(type, {Text3D,_}:id, data, value);
    native Streamer_GetUpperBound(type);


    // Natives (Miscellaneous)


    native Streamer_IsItemVisible(playerid, type, {Text3D,_}:id);
    native Streamer_DestroyAllVisibleItems(playerid, type);
    native Streamer_CountVisibleItems(playerid, type);


    // Natives (Objects)


    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);
    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);
    native StopDynamicObject(objectid);
    native DestroyAllDynamicObjects();
    native CountDynamicObjects();


    // Natives (Pickups)


    native CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
    native DestroyDynamicPickup(pickupid);
    native IsValidDynamicPickup(pickupid);
    native DestroyAllDynamicPickups();
    native CountDynamicPickups();


    // Natives (Checkpoints)


    native CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
    native DestroyDynamicCP(checkpointid);
    native IsValidDynamicCP(checkpointid);
    native TogglePlayerDynamicCP(playerid, checkpointid, toggle);
    native TogglePlayerAllDynamicCPs(playerid, toggle);
    native IsPlayerInDynamicCP(playerid, checkpointid);
    native DestroyAllDynamicCPs();
    native CountDynamicCPs();


    // Natives (Race Checkpoints)


    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);
    native DestroyDynamicRaceCP(checkpointid);
    native IsValidDynamicRaceCP(checkpointid);
    native TogglePlayerDynamicRaceCP(playerid, checkpointid, toggle);
    native TogglePlayerAllDynamicRaceCPs(playerid, toggle);
    native IsPlayerInDynamicRaceCP(playerid, checkpointid);
    native DestroyAllDynamicRaceCPs();
    native CountDynamicRaceCPs();


    // Natives (Map Icons)


    native CreateDynamicMapIcon(Float:x, Float:y, Float:z, markertype, color, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
    native DestroyDynamicMapIcon(iconid);
    native IsValidDynamicMapIcon(iconid);
    native DestroyAllDynamicMapIcons();
    native CountDynamicMapIcons();


    // Natives (3D Text Labels)


    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);
    native DestroyDynamic3DTextLabel(Text3D:id);
    native IsValidDynamic3DTextLabel(Text3D:id);
    native UpdateDynamic3DTextLabelText(Text3D:id, color, const text[]);
    native DestroyAllDynamic3DTextLabels();
    native CountDynamic3DTextLabels();


    // Natives (Areas)


    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 DestroyDynamicArea(areaid);
    native IsValidDynamicArea(areaid);
    native TogglePlayerDynamicArea(playerid, areaid, toggle);
    native TogglePlayerAllDynamicAreas(playerid, toggle);
    native IsPlayerInDynamicArea(playerid, areaid);
    native DestroyAllDynamicAreas();
    native CountDynamicAreas();


    // Natives (Internals)


    native Streamer_AddPlayer(playerid);
    native Streamer_RemovePlayer(playerid);
    native Streamer_VerifyPickup(playerid, pickupid);
    native Streamer_VerifyCheckpoint(playerid, type, status);
    native Streamer_RegisterInterface();


    // Callbacks


    forward OnDynamicObjectMoved(objectid);
    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


    static bool:Streamer_g_OPC = false;
    static bool:Streamer_g_OPDC = 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;
    static bool:Streamer_g_RI = false;


    public OnFilterScriptInit()
    {
    if (!Streamer_g_RI)
    {
    Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
    Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -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;
    Streamer_g_RI = true;
    Streamer_RegisterInterface();
    }
    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()
    {
    if (!Streamer_g_RI)
    {
    Streamer_g_OPC = funcidx("Streamer_OnPlayerConnect") != -1;
    Streamer_g_OPDC = funcidx("Streamer_OnPlayerDisconnect") != -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;
    Streamer_g_RI = true;
    Streamer_RegisterInterface();
    }
    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_AddPlayer(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_RemovePlayer(playerid);
    }
    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 OnPlayerPickUpPickup(playerid, pickupid)
    {
    Streamer_VerifyPickup(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)
    {
    Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_CP, 0);
    if (Streamer_g_OPEC)
    {
    return CallLocalFunction("Streamer_OnPlayerEnterCP", "d", playerid);
    }
    return 1;
    }


    #if defined _ALS_OnPlayerEnterCP
    #undef OnPlayerEnterCheckpoint
    #else
    #define _ALS_OnPlayerEnterCP
    #endif
    #define OnPlayerEnterCheckpoint Streamer_OnPlayerEnterCP


    forward Streamer_OnPlayerEnterCP(playerid);


    public OnPlayerLeaveCheckpoint(playerid)
    {
    Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_CP, 1);
    if (Streamer_g_OPLC)
    {
    return CallLocalFunction("Streamer_OnPlayerLeaveCP", "d", playerid);
    }
    return 1;
    }


    #if defined _ALS_OnPlayerLeaveCP
    #undef OnPlayerLeaveCheckpoint
    #else
    #define _ALS_OnPlayerLeaveCP
    #endif
    #define OnPlayerLeaveCheckpoint Streamer_OnPlayerLeaveCP


    forward Streamer_OnPlayerLeaveCP(playerid);


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_RACE_CP, 0);
    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)
    {
    Streamer_VerifyCheckpoint(playerid, STREAMER_TYPE_RACE_CP, 1);
    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);


    // PAWN Invoke Section


    forward Streamer_PublicFunction();


    public Streamer_PublicFunction()
    {
    new Float:value;
    CreatePickup(0, 0, 0.0, 0.0, 0.0, 0);
    CreatePlayer3DTextLabel(0, "", 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0);
    CreatePlayerObject(0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
    DeletePlayer3DTextLabel(0, PlayerText3D:0);
    DestroyPickup(0);
    DestroyPlayerObject(0, 0);
    DisablePlayerCheckpoint(0);
    DisablePlayerRaceCheckpoint(0);
    GetPlayerInterior(0);
    GetPlayerPos(0, value, value, value);
    GetPlayerState(0);
    GetPlayerVirtualWorld(0);
    GetVehiclePos(0, value, value, value);
    MovePlayerObject(0, 0, 0.0, 0.0, 0.0, 0.0);
    RemovePlayerMapIcon(0, 0);
    SetPlayerCheckpoint(0, 0.0, 0.0, 0.0, 0.0);
    SetPlayerMapIcon(0, 0, 0.0, 0.0, 0.0, 0, 0);
    SetPlayerObjectPos(0, 0, 0.0, 0.0, 0.0);
    SetPlayerObjectRot(0, 0, 0.0, 0.0, 0.0);
    SetPlayerRaceCheckpoint(0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
    StopPlayerObject(0, 0);
    UpdatePlayer3DTextLabelText(0, PlayerText3D:0, 0, "");
    return 1;
    }


    Das ist die streamer.inc ? Ist das das richtige?

  • Ich finde kein Limit.
    Aber wenn dus so machst das der Spieler immer nur 200 Objekte gleichzeitig sieht.
    Kanns eigentlich bis ins unendliche gehen.
    Du weißt ja hoffentlich wie ein Streamer Funktioniert oder ?


    Es gibt in SA-MP ein Limit von Maximal 2 Objekten.
    Um dies zu übersteigen werden Streamer eingesetzt.
    Ein Streamer zeigt den Spielern nur die Objekte wenn er sich in einer bestimmten entfernung aufhält.
    Fährt der Spieler woanders hin werden die Objekte wieder gelöscht und dort wo er sich befindet werden die Objekte die dort stehen geladen.


    LG RFT

    RFT

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen