Problem mit if(vehicleid == und if(vehicleid != oder else

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 ein kleines Problem wenn ich meine "vehicle" Abfragen machen möchte



    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0;i<sizeof(pilotcars);i++)
    {
    if(vehicleid == pilotcars[i])
    {
    if(Spieler[playerid][Job] == 1)
    {
    if(PilotDuty[playerid] == 0)
    {
    PilotDuty[playerid] = 1;
    PilotCheckTime[playerid] = 10;
    pCP[playerid] = CHECKPOINT_PILOTBEGIN;
    SetPlayerCheckpoint(playerid, 2048.8923,-2591.4380,13.2739, 5.0);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast deinen Dienst begonnen. Bewege dich mit dem Flugzeug zum ersten Checkpoint.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist kein Pilot.");
    return 1;
    }
    }
    else if(vehicleid != pilotcars[i])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist in keinem Flugzeug - Zufinden auf dem Los Santos Airport.");
    return 1;
    }
    }


    Wenn ich nun in ein Fahrzeug einsteige, welches auch ein "Pilot-Car" ist also ein Flugzeug, dann zeigt er mir bei dem else if(vehicleid ...) die Nachricht "Du hast deinen Dienst begonnen" und "Du bist in keinem Flugzeug" an.


    Verwende ich wiederrum nur "else" sagt er mir dass ich in keinem Flugzeug bin...


    Das sind eindeutig die Flugzeuge da ich sie erstellt habe, hinter ihrem namen im script ein //Beagle haben und ich vor das "AddStaticVehicleEx" ein pilotcars[0], pilotcars[1] etc angehangen hab. ;)


    Ich hoffe ihr könnt mir helfen. :)

  • Nene, ich möchte sobald mein Spieler in eines der Pilot-Cars geht, dass er /duty machen kann. (/duty Ausschnitt ist der oben im ersten Beitrag)
    Wenn er in einem Pilot-Car ist, dann wird er zum Checkpoint weitergeleitet usw.
    Wenn er es nicht ist, dann soll ihm eine Nachricht gesendet werden, dass er in keinem Pilot-Car ist. ;)

  • versuchs mal so



    new vehicleid = GetPlayerVehicleID(playerid);
    new treffer = 0; //geht bestimmt schöner aber ich hab gerade keine zeit etwas zu probieren
    if(Spieler[playerid][Job] == 0)return SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Pilot.");
    if(PilotDuty[playerid] == 1)return SendClientMessage(playerid,COLOR_GRAD2,"Du bist bereits im Dienst.");
    for(new i=0;i<sizeof(pilotcars);i++)
    {
    if(vehicleid == pilotcars[i])
    {
    {
    PilotDuty[playerid] = 1;
    PilotCheckTime[playerid] = 10;
    pCP[playerid] = CHECKPOINT_PILOTBEGIN;
    SetPlayerCheckpoint(playerid, 2048.8923,-2591.4380,13.2739, 5.0);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast deinen Dienst begonnen. Bewege dich mit dem Flugzeug zum ersten Checkpoint.");
    treffer = 1;
    break;//unterbircht schleife da treffer :)
    }
    }
    }
    if(treffer == 0)return SendClientMessage(playerid, COLOR_GRAD2, "Du bist in keinem Flugzeug - Zufinden auf dem Los Santos Airport.");


    einrücken musste selbst