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...
<object name="Test1" posX="478.566162" posY="-2389.019043" posZ="9.785888" rotX="0" rotY="0" rotZ="90.240852733105" model="1984"/>
oder
<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.
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 )