/fpark Problem

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

  • CMD:fparken(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    new fV = IsAFraktionsVeh(vehicleid);
    new Float:pos[4];
    if(Spieler[playerid][pFraktion] == 0)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Fraktion!");
    if(Spieler[playerid][pRank] < RANG_COLEADER)return SendClientMessage(playerid, COLOR_GREY, "** Du musst mindestens den Co-Leader Rank haben.");
    if(fV == INVALID_VEHICLE_ID)return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Fraktionsfahrzeug.");
    if(Spieler[playerid][pFraktion] != fVehicle[fV][vehFraktion])return SendClientMessage(playerid, COLOR_GREY, "** Dieses Fahrzeug gehört nicht zu deiner Fraktion.");
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "** Du musst der Fahrer dieses Fahrzeug sein.");
    GetVehiclePos(vehicleid, pos[0], pos[1], pos[2]);
    GetVehicleZAngle(vehicleid, pos[3]);
    fVehicle[fV][vehPosX] = pos[0];
    fVehicle[fV][vehPosY] = pos[1];
    fVehicle[fV][vehPosZ] = pos[2];
    fVehicle[fV][vehPosA] = pos[3];
    SendClientMessage(playerid, COLOR_YELLOW, "* Fraktionsfahrzeug erfolgreich geparkt.");
    singleSaveFVehicle(fV);
    return 1;
    }


    Hallo wen ich /fpark mache danach ein Carrespawn sind die cars nicht gespeichert und stehn alle wider komisch.

    • Offizieller Beitrag

    Die Funktion SetVehicleToRespawn respawnt die Fahrzeuge an die Position an der das Fahrzeug erstellt wurde.


    Also musst du entweder das Fahrzeug nachdem die Position gesetzt wurde löschen und an der neuen stelle wieder erstellen
    oder du benutzt die Funktion SetVehicleToRespawn nicht und setzt die Position der Fahrzeuge über dein System (fVehicle[fV][vehPosX] etc.)


    Mit
    SetVehiclePos
    SetVehicleZAngle

  • Du hast das Fahrzeug ja beim Laden erstellt an der Position die du geladen hast. Nun hast du durch /park eine neue Position gesetzt, aber durch SetVehicleToRespawn(vehicleid); spawnt es aber dort wo es beim Laden erstellt wurde, dh. musst du das Fahrzeug zestören und neu erstellen damit es an der neuen Position spawnt.. jetzt verstanden?

  • Von der zweiten Idee zur Problemlösung würde ich abraten, da SetVehicleZAngle() an unbesetzten Fahrzeugen nicht funktioniert. Bedeutet, dass die ganzen Fahrzeuge dann (vermutlich) die falsche Rotation hätten und das sieht echt bescheiden aus.