[INC]BFX Streamer 4.3

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
  • Hallo Leute,


    ich habe meinen Streamer nun komplett neu aufgebaut, sprich nichts basiert mehr auf der 3.5 , der Kern des ganze liegt nun in einem Filterscript,
    die Verknüpfungen in einer inc Datei, ich habe diesen Schritt vorgenommen um das ganze etwas zu erleichtern zudem müsste ihr nicht in jedes Skript extra
    Ressourcen beziehen also ein Kern wo alles ausgeht & euer Skript braucht nur die Verknüpfungen zu den Funktionen, zudem sollte der Streamer mit neuer Basis
    viel besser laufen & auch angenehmer.


    Installation


    • Archiv herunterladen
    • Aus dem Archiv ,,bfx_stream.amx´´ in Filterscripts packen zudem in die Server.cfg eintragen
    • ,,bfx_oStream.inc´´ in den Include Ordner verschieben bzw. kopieren was auch immer Hauptsache die inc ist drin.
    • Nehmt euer Skript & bezieht bfx_oStream ein.


    Nutzung


    b_CreateObject(modelid,Float:bx,Float:by,Float:bz,Float:brx,Float:bry,Float:brz,interiorid = 0,virtualwid = 0,stream_dis = STREAMER_DISTANCE,forplayerid = -1,draw_distance);

    • Model ID - Modell des Objekts
    • X,Y,Z - Koordinaten/Standpunkt des Objekts
    • RX,RY,RZ - Rotation des Objekts
    • Innenraum - Raum in dem das Objekt existieren soll ( Angabe des Parameters ab hier nicht erforderlich )
    • Virtuelle Welt - Zwischenwelt für das Objekt ( Optional )
    • Spezielle Distanz bis zum Laden des Objekts
    • Für speziellen Spieler.
    • Distanz bis Objekt angezeigt wird ( Seitens Sa-mp )


    b_DestroyObject(id);

    • Objekt zerstören


    b_SetObjectPos(id,Float:posx,Float:posy,Float:posz);

    • Objekt Position festlegen ( X, Y, Z )


    b_SetObjectRot(id,Float:posrx,Float:posry,Float:posrz);

    • Objekt Rotation festlegen ( RX, RY, RZ )


    b_MoveObject(id,Float:mx,Float:my,Float:mz,Float:speed);

    • Objekt bewegen mit normalen Angaben


    b_StopObject(id);

    • Objekt anhalten


    b_SetAreaLimit(limit);

    • Limit der Objekte für die Umgebung festlegen ( Maximal 251 , Minimal 0 [ Limit durch Streamer gesichert ] )


    b_GetPlayerPos(id,&Float:x,&Float:y,&Float:z);

    • Objekt Position Speichern sprich wiedergeben ( Live , wenn das Objekt gerade bewegt wird so wird die Position die das Objekt derzeit hat auch zurückgegeben )


    b_GetPlayerRot(id,&Float:rx,&Float:ry,&Float:rz);

    • Objekt Rotation Speichern sprich wiedergeben ( Live , wenn das Objekt gerade bewegt wird so wird die Position die das Objekt derzeit hat auch zurückgegeben )


    b_GetObjectCount();

    • Anzahl der geladenen Objekte ermitteln

    b_SetTotalLimit(stream_limit)


    • Setzt das Maximale Limit an Objekten


    b_SetObjectToPlayer(id,playerid)

    • Setzt das Objekt für den Spieler bzw für einen bestimmten Spieler


    So ihr müsst nichts extra ins Skript tun nur die Verknüpfungen zu den Funktionen die erhaltet ihr beim einbeziehen von ,,bfx_oStream.inc´´


    //é : Test Map hinzugefügt


    Vergessen folgendes zu erwähnen :


    Es gibt 2 neue Callbacks


    OnBFXObjectStreamIn(streamobjectid,forplayerid,playerObjectCount,MaxmimalObjects)
    OnBFXObjectStreamOut(streamobjectid,forplayerid,playerObjectCount,MaxmimalObjects)


    __________________________________________________________________________________________________________________
    + Funktion hinzugefügt
    b_DestroyAllObjects();

    • zerstört alle Objekte im Streamer und löscht sie endgültig


    Kleine Änderung, der Stream Radius wurde von 135.0 auf 200.0 gesetzt , so sollte Auslastung des Streamer bei optimalen 83% liegen,
    sprich es wird mehr von der Umgebung sichtbar vor allem schneller sichtbar.



    + Funktion hinzugefügt
    b_LoadMap(Mapname[],Float:Streamer_Distance_ = STREAMER_DISTANCE,Float:Draw_Distance_ = DRAW_DIST);

    • Lädt MTA Deathmatch Map's ab Version 1.0.0 und älter...
    • Funktion verbessert, lädt nun auch Interior/Virtual World angaben aus der Map
    • mehrere Optionen hinzugefügt , müssen aber nicht ausgefüllt werden da sie bereits Standard Angaben enthalten können bei bedarf jedoch geändert werden...


    b_SetStreamDistance(id,Float:Streamer_Distance_ = DRAW_DIST);

    • Damit können die Distanzen für die Objekte nochmal neu gesetzt werden bzw. extra gesetzt werden für den Built in Streamer von Sa-mp


    + MapLoader Nebenfunktion
    b_GetStreamVarID(varname[])

    • Gibt die StreamID wieder vom Objekt mit der enthaltenen Variable
    • Wie wird die Variable festgelegt ? Ganz einfach sie wird aus dem Namen in des Objekts in der ".map" Datei festgelegt bzw. genau danach benannt so kann man bestimmte Objekte auch aus Maps locker ansprechen.


    Beispiel bzw. als Vorzeigemodell ...


    Das Objekt aus der Map...

    Code
    <object name="Test1" posX="478.566162" posY="-2389.019043" posZ="9.785888" rotX="0" rotY="0" rotZ="90.240852733105" model="1984"/>


    oder

    Code
    <object id="Test1" posX="478.566162" posY="-2389.019043"  posZ="9.785888" rotX="0" rotY="0" rotZ="90.240852733105"  model="1984"/>


    Unser Virtuelle Variable für das Objekt hier "Test1" wie man sehen kann...
    nun wollen wir die Position dieses Objekts herausfinden wissen jedoch die Stream ID nicht , wäre ja scheiße wenn man diese extra immer lokalisieren müsste...
    new Float:poses[3];
    b_GetPlayerPos(b_GetStreamVarID("Test1"),poses[0],poses[1],poses[2]);


    So nun haben wir die Position des gewünschten Objektes. Wie man sieht ein ganz einfaches Prinzip.
    __________________________________________________________________________________________________________________
    b_StartCore(intervall);

    • Startet den Streamer mit eigenem Intervall.


    b_StopCore();

    • Beendet den Streamer sprich den Kern


    b_ExitStreamer();

    • Beendet und entlädt den Streamer vollständig + Objekte und allem Zeugs.

    __________________________________________________________________________________________________________________


    geben beide zurück für welchen Spieler das Momentane Objekte geladen & entladen wurde ,
    auch die ID des Stream Objekts wird zurückgegeben zudem noch die Anzahl der Momentanen
    Objekte die für den Spieler aufgebaut wurden & die Maximale Anzahl der Objekte im Umkreis falls nötig


    INFO : VW -1 = Alle Welten genau das gleich gilt für Innenräume , auch den bestimmten Spieler für das Objekt auf -1 stellen für alle ansonsten sind
    die Parameter nur Optional und müssen nur angegeben werden wenn es nötig ist.


    Pastebin


    Download ( 4.3 ) ( 0.3a und b ) ( Achtung Streamer Distanz Einstellungen für den Built in Streamer in der 0.3a nicht verfügbar! )


    Test Map + Beispiel ( Map Loader )


    Dokumentation : Download ( PDF )
    >> Update seit 26. August 2010 << ( 19:44 )

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    39 Mal editiert, zuletzt von BlackFoX ()

  • Danke für das bisherige Feedback, hab die Rückgabe der Position sowohl auch Rotation hinzugefügt.


    Opachen ich hab bei dir nicht ab geguckt bin selber drauf gekommen, hab nicht gewusst das du deinen mit selber Methode laufen lässt.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Was genau ist daran nun anderst als an der Alten Version?

  • Ich habe den kompletten Kern des Streamer nochmal neu geschrieben , vieles Optimiert & zum Teil auch besser gemacht, der
    Kern ist nun kürzer & optimiert so sollte der Code selber auch schneller laufen, alle Funktionen wurden natürlich auch neu geschrieben,
    ich habe es möglichst so zusammengestellt das alles vor Augen des Spielers passiert sprich so das sich die Funktionen gegenüber
    den Originalen nicht unterscheiden mit dem Unterschied das natürlich mehr Objekte unterstützt werden.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Tut mir ja leid, Sir ;( ;( ;( ;( ;(
    Aber wo ist der Quellcode?
    * böse fühl * ;(

  • Quellcode werde ich Morgen raus stellen vorher muss ich noch ein paar Sachen einbauen ^^


    //é : So(w) , Streamer Quellcode ist nun verfügbar , nur gucken nicht anfassen ^^ ( Nein Scherz die Makros oben dürft ihr verändern wenn ihr möchtet bezüglich Objekt Anzahl usw. )

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    Einmal editiert, zuletzt von BlackFoX ()

  • Achtung, weiteres Update, Streamer läuft nun zum Teil schneller & Stabiler, ein kleiner Fehler bezüglich des Objekt erstellens wurde ebenfalls behoben.


    //é und bevor ihr euch wundert wo der Source Code ist, der ist nun im Archiv dabei ( Hauptarchiv )

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Könntest ja einen Counter erstellen, damit man sieht, wie viele man insgesamt erstellt hat ^^
    Wäre auch ein schönes, einfaches Feature.

  • Hammer. Mein persönlicher Tip: Mach den Timer auf 913 Ms. Dann ist es nicht soooo wahrscheinlich, dass er sich mit einem anderen überschneidet, könnte die Performance um einen kleinen Tick verbessern.


    Meine Bewertung:
    Windows & Linux 32Bit:
    10/10
    Lädt schneller als YSI, habe 8745 Objekte drin. Sobald ich an einen gut gemappten Ort komme, sind die Objekte schon fetig geladen, bei YSI und xStreamer seh ich die noch laden.
    Hoffe der geht auch für 64bit, werde das heute Abend testen.


    Wunderschöne Arbeit, bfx.

  • Ist doch kein Fehler, ein Hinweis auf deine Code Struktur mehr nicht, hängt davon ab wie viel Tabs du zur Code Formation/Reihenfolge verwendest


    Richtig
    code
    {
    code
    {
    code
    }
    }



    Falsch
    code
    {
    code
    {
    code
    }
    }


    #pragma tabsize 0


    sollte auch helfen, einfach Lokal definieren.


    Hat im Direkten Sinne nichts mit dem Streamer zu tun ;)

    Mfg. BlackFoX_UD_ alias [BFX]Explosion