Frage wegen Abfrage [Motor System]

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 Miteinander,
    ich habe ein kleines denkproblem ?( Ich habe eine Abfrage gemacht, wenn man den motor startet, ob man den motor starten kann. nun bleibt es stehen bei dieser abfrage:


    if(!IsASpielerCar(vid,playerid))return SendClientMessage(playerid,COLOR_GREY,"Du kannst den Motor nicht starten, da das Auto nicht dir gehört!");


    Sie fragt ab, ob es ein Spielerfahrzeug ist und ob es dem spieler gehört. Hier mal der Code dazu:


    public IsASpielerCar(carid,playerid)
    {
    for(new i = 0; i < MAX_CARS_PER_PLAYER; i++)
    {
    if(carid == Spielercar[playerid][i])
    {
    return 1;
    }
    }
    return 0;
    }


    Jetzt weiß ich nicht wie ich das mache, dass wenn es ein Spielerfahrzeug ist, es ihm nicht gehört, dass der Motor nicht an geht, aber wenn ja soll er an gehen. Und wenn es gar kein Spielerfahrzeug ist, soll er weiter machen. Irgendwie hört da mein Gedankengang auf :S. Es wäre total lieb wenn ihr mir helfen würdet.


    Mit freundlichen Grüßen
    ChaoZz

  • Ich verstehe das nicht ganz :/ Habe nun mal auf die schnelle was gemacht:


    public IsASpielerCar(carid)
    {
    for(new i = 0; i < MAX_CARS_PER_PLAYER; i++)
    {
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    if(carid == Spielercar[p][i])
    {
    return 1;
    }
    else continue;
    }
    }
    return 0;
    }
    public IsPlayersSpielerCar(carid,playerid)
    {
    for(new i = 0; i < MAX_CARS_PER_PLAYER; i++)
    {
    if(carid == Spielercar[playerid][i])
    {
    return 1;
    }
    }
    return 0;
    }


    Abfrage sieht dann so aus:
    if(IsASpielerCar(vid) && IsPlayersSpielerCar(vid,playerid))return SendClientMessage(playerid,COLOR_GREY," Du hast kein Schlüssel für dieses Fahrzeug.");
    Funktioniert trotzdem nicht

  • Dein Gedankengang ist schon falsch. Du machst eine Schleife durch die maximalen Spielercars, die man besitzen kann? - Klar, sowas wird nie richtig sein.


    Mein Tip(p):
    Eine Schleife von allen gültigen Fahrzeugen. Prüfen ob die ID einem Spielerfahrzeug zugeordnet ist und dann einen positiven Rückgabewert geben. Dann sollte es auch funktionieren.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Mir war schon bewusst, dass Du zwei Parameter bei SpielerCar hast.
    Dann helf ich Dir mal ein bisschen mehr, obwohl ich nichts davon halte.


    for(new carid = 0; carid < MAX_VEHICLES; carid ++)
    {
    for(new i = 0; i < MAX_CARS_PER_PLAYER; i++)
    {
    //Dein Code
    }
    }

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Dann solltest Du Dir wirklich nochmal die Grundlagen anschauen. Ich hab Dir jetzt fast den ganzen Code geschrieben. Wenn Du es bis morgen nicht hinbekommst, schick mir eine PN mit Deinem Code.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • if(IsASpielerCar(vid) == 1 && IsPlayersCar(playerid,vid) == 0)return SendClientMessage(playerid,COLOR_GREY," Du hast kein Schlüssel für dieses Fahrzeug.");


    EDIT:
    Es liegt glaub ich an der Abfrage. Bzw. es muss daran liegen, denn ich habe noch andere abfragen drin und wenn ich die oberste raus nehme also die mit den autos, dann zeigt er mir die nachricht auch an. wenn ich alle ausklammer dann nicht. Was mache ich falsch bei der Abfrage? Hier mal die für die Polizei wagen:
    if(IsACopCar(vid) && !IsACop(playerid))return SendClientMessage(playerid,COLOR_GREY," Du hast kein Schlüssel für dieses Fahrzeug.");