IsVehicleOccupied - 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
  • Hallo.
    Ich habe eine kleine Funktion hier, undzwar eine IsVehicleOccupied Funktion, welche normal 1 returnen soll, wenn jemand drin sitzt, und 0 wenn nicht.
    Die Funktion sieht folgendermaßen aus:
    stock IsVehicleOccupied(vehicleid) // Returns 1 if there is anyone in the vehicle
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInAnyVehicle(i))
    {
    if(GetPlayerVehicleID(i)==vehicleid)
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    }
    return 1;
    }


    Nun habe ich in meinem HauptTimer welche jede Sekunde aufgerufen wird, 2 Schleifen drinnen, welche so aussehen:
    for(new vehicleid=0;vehicleid<MAX_VEHICLES;vehicleid++)
    {
    for(new i=0;i<sizeof(drogen);i++){
    if(vehicleid == drogen[i]) {
    gGas[drogen[i]] = 100;
    gMaxGas[drogen[i]] = 100;
    if(!IsVehicleOccupied(drogen[i]))
    {
    UnLockCar(drogen[i]);
    }
    }
    }
    }


    Aber das Fahrzeug wird sobald ich aussteige nicht aufgeschlossen.
    An der Funktion "UnLockCar" liegt es nicht, da ich bei anderen Funktionen ebenfalls damit arbeite und es funktioniert. ;)

  • Die obere Funktion muss anders aussehen...
    1. wird gleich beim Spieler mit der playerId 0, 0 returnt, selbst wenn er nicht im Fahrzeug sitzt.
    Wenn die Funktion 0 returnt, ist sie vorbei, d.h. die anderen Spieler werden nichtmehr überprüft.
    2. Selbst wenn niemand im Fahrzeug sitzt wird am ende 1 zurückgegeben, das wäre ja irwie sinnlos.


    Also müsste das ganze so aussehen: