Funktion funktioniert nicht

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
  • N´Abend!


    Habe Trucks und Flugzeuge. Beide Laden Produkte.
    Wenn ich einsteige will ich, dass wenn es ein Truck ist, dass angezeigt wird: x/1000 Ladung ( x = Aktuelle Ladung )
    Und bei den Flugzeugen will ich, dass angezeigt wird: x/5000 Ladung ( x = Aktuelle Ladung )
    Bloß wenn ich in ein Flugzeug einsteige kommt x/5000 Ladung. Passt alles.
    Aber wenn ich in einen Truck einsteige kommt auch x/5000 Ladung. Hier soll aber x/1000 Ladung kommen.
    Hier der Code:


    Die beiden Funktionen


    stock IsATruck(ii)
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(PlayerCar[i][vid] == ii)
    {
    if(PlayerCar[i][JobCar] == 1)
    {
    if(PlayerCar[i][Job] == 1)
    {
    return 1;
    }
    }
    return 1;
    }
    }
    return 0;
    }


    stock IsAJobPlane(ii)
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(PlayerCar[i][vid] == ii)
    {
    if(PlayerCar[i][JobCar] == 1)
    {
    if(PlayerCar[i][Job] == 2)
    {
    return 1;
    }
    }
    return 1;
    }
    }
    return 0;
    }


    Und OnPlayerStateChange:


    if(IsAJobPlane(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/5000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }
    else if(IsATruck(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/1000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }


    Aber:


    x/1000 Ladung UND x/5000 Ladung beim einsteigen kommt, wenn ich das so mache:

    if(IsAJobPlane(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/5000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }
    if(IsATruck(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/1000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }



    Warum will das nicht?
    Die Variablen passen, das hab ich geprüft.
    Hilfe wäre gut =)


    LG
    Evil

  • Jap sind alle Integer. Sonst würde der Compiler ja meckern ^^


    Das steht davor:
    if(VehInfo[GetPlayerVehicleID(playerid)][Motor])
    {
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, al, doors, bo, boot, obj);
    SendClientMessage(playerid, Yellow, "Der Motor läuft und du kannst fahren!");
    }
    else if(!VehInfo[GetPlayerVehicleID(playerid)][Motor])
    {
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, al, doors, bo, boot, obj);
    SendClientMessage(playerid, Yellow, "Der Motor ist aus! Du kannst ihn mit der Taste 'ALT' starten!");
    }

  • Habs getestet. Und jetzt ist mir aufgefallen, dass egal in welchem Car ich bin, IMMER 1 returnt wird. Egal ob PlayerCar[i][Job] == 1 bzw. PlayerCar[i][Job] == 2 stimmt oder nicht.
    Aber jetz bin ich ja wieder am Anfang, weil ich weiß, dass die Funktionen nicht funktionieren. Sieht da jemand nen Fehler?