Hallo Leute,
ich habe gestern eine Map erstellt die über 3k Fahrzeuge enthielt, nun war mein Problem sa-mp unterstützt die ja gar nicht, da hab ich mir einfach einen Fahrzeug Streamer gebaut,
er beinhaltet alle nötigen Funktionen aber bevor ich euch diese zeige möchte ich euch eine kleine Erklärung zur Installation des Streamers abliefern.
Installation
- bfx_vstream.pwn in den Filterscript Ordner & kompilieren, vorher eventuell die Menge der Maximalen Fahrzeuge bestimmen
- Nun nehmt ihr die die Datei bfx_vStream.inc und packt sie in den Include Ordner damit ihr auch die Verknüpfungen zu den Funktionen habt.
- packt die bfx_vstream als FS dazu in eure Server Konfiguration
- Nun könnt ihr euer Skript fügt bfx_vStream als Include File hinzu und nun könnt ihr euer Skript mit folgenden Funktionen schmücken
Funktionen
b_CreateVehicle(model,Float:x,Float:y,Float:z,Float:a,Color1,Color2,Interior = 0,virtualworld = 0,Float:StreamDistance = (MAX_STREAM_DIS));
- Fahrzeug erstellen mit gewünschten Angaben
- Die Parameter ab Interior sind Optional ( Für die, die nicht wissen was damit gemeint ist sie haben einen Standardwert & müssen nicht extra angegeben werden )
b_DestroyVehicle(id);
- Fahrzeug zerstören/löschen
b_GetVehiclePos(id,&Float:x,&Float:y,&Float:z);
- Fahrzeug Position ermitteln
b_GetVehicleZAngle(id,&Float:a);
- Fahrzeug Ausrichtung ermitteln
b_SetVehicleToRespawn(id);
- Fahrzeug erneuern (Respawn)
b_LinkVehicleToInterior(id,interiorid);
- Fahrzeug in einen Innenraum setzen
b_AddVehicleComponent(id,componentid);
- Fahrzeugkomponenten hinzufügen
b_RemoveVehicleComponent(id,componentid);
- Fahrzeugkomponenten löschen
b_ChangeVehicleColor(id,color1,color2);
- Fahrzeug Farben setzen
b_ChangeVehiclePaintjob(id,paintjobid);
- Fahrzeug Lackierung setzen
b_SetVehicleHealth(id,Float:health);
- Fahrzeug Energie setzen
b_GetVehicleHealth(id,&Float:health);
- Fahrzeug Energie ermitteln
b_AttachTrailerToVehicle(id,stream_trailer);
- Fahrzeuganhänger an ein Fahrzeug hängen ( Hänger muss auch ein Stream Fahrzeug sein )
b_DetachTrailerFromVehicle(id);
- Anhänger vom Fahrzeug entfernen
b_IsTrailerAttachedToVehicle(id);
- Abfragen ob das Fahrzeug einen Hänger hat
b_GetVehicleModel(id);
- Fahrzeug Modell ermitteln
b_GetVehicleComponentInSlot(id,slot);
- Fahrzeugkomponenten ermitteln
b_RepairVehicle(id);
- Fahrzeug reparieren
b_GetVehicleStreamID(vehicleid);
- Fahrzeug Stream ID ermitteln
b_SetVehicleVirtualWorld(vehicleid,virtualworld);
- Setzt das Fahrzeug in eine Virtuelle Welt
b_SetVehiclePos(vehicleid,Float:x,Float:y,Float:z);
- Fahrzeug Position setzen
b_SetVehicleZAngle(vehicleid,Float:a);
- Fahrzeug Ausrichtung setzen
So das war es zu den Funktionen, der Streamer selber unterstützt soweit so viel Fahrzeug wie ihr möchtet, ich habe ihn Persönlich ja mit 3000 Fahrzeugen getestet,
er läuft bisher Stabil & Crash Gefahr ist auch gleich 0 sprich der Streamer ist abgesichert.
So zum Schluss noch die neuen Callbacks & das Hauptskript.
(( Callbacks Funktionieren wie die Standards nur das sie nur die Stream Fahrzeuge unterstützen sprich normale Fahrzeuge werden nicht beachtet ))
public OnBFXVehicleStreamerStreamIn(vehicleid)
public OnBFXVehicleStreamerStreamOut(vehicleid)
public OnBFXVehicleSpawn(vehicleid)
public OnBFXPlayerEnterVehicle(playerid,vehicleid,ispassenger)
public OnBFXPlayerExitVehicle(playerid,vehicleid)
public OnBFXVehicleMod(playerid,vehicleid,componentid)
public OnBFXVehiclePaintjob(playerid,vehicleid,paintjobid)
public OnBFXVehicleRespray(playerid,vehicleid,color1,color2)
public OnBFXVehicleStreamIn(vehicleid,forplayerid)
public OnBFXVehicleStreamOut(vehicleid,forplayerid)
Immer darauf achten das vehicleid != vehicleid sondern die Stream ID benötigt ! dazu verwendet ihr in Kommandos oder so
wo es nicht vorhanden ist ,,b_GetVehicleStreamID´´ ( !! Die Callbacks geben bereits die StreamID wieder !! )
So und nun Viel Spaß