Checkpoint erkennt das richtige Fahrzeug 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
  • Hey Leute, ich hab ein Problem mit den Racecheckpoint. Ich erklär das ganze mal gleich mit dem Code



    public OnGameModeInit()
    {
    //---------------------------------[Motorräder]---------------------------------


    PruefungsMotorrad1 = CreateVehicle(461,-2072.6853,-82.5738,34.7510,359.6081,2,1,-1); // 216 School Instructor pcj1
    PruefungsMotorrad2 = CreateVehicle(461,-2076.9294,-82.7126,34.7477,359.2628,2,1,-1); // 217 School Instructor pcj2


    //---------------------------------[PKW's]--------------------------------------


    PruefungsAuto1 = CreateVehicle(405,-2064.2168,-84.0112,35.0390,358.7374,2,1,-1); // 214 Driving School/*Sentinel*/
    PruefungsAuto2 = CreateVehicle(405,-2068.6062,-84.2244,35.0383,359.9138,2,1,-1); // 215 Driving School/*Sentinel*/
    }




    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    new veh;
    veh = GetPlayerVehicleID(playerid);
    if(FahrschulpruefungKlasseB(playerid))
    {
    if(!IsAPruefungsAuto(veh))
    {
    SendClientMessage(playerid,ROT,"Du befindest dich nicht in dem dafür vorgesehenen Fahrzeug! Du bist durchgefallen!");
    DisablePlayerRaceCheckpoint(playerid);
    playerLastAutoCheckpoint[playerid] = 0;
    IsInPruefung[playerid] = 0;
    return 0;
    }
    else
    {
    //hier passiert dann irgendwas!
    }
    }
    }



    //BIS HIERHIN KLAPPTS... ABER DANN KOMMT DAS SELBE NOCHMAL ABER MIT ANDEREN FAHRZEUGEN, DOCH DA SAGT ER MIR TROTZ DAS ICH IM PRUEFUNGSMOTORRAD SITZE DAS ICH IM FALSCHEN FAHRZEUG SITZE




    else if(FahrschulpruefungKlasseA(playerid))
    {
    if(!IsAPruefungsMotorrad(veh))
    {
    SendClientMessage(playerid,ROT,"Du befindest dich nicht in dem dafür vorgesehenen Fahrzeug! Du bist durchgefallen!");
    DisablePlayerRaceCheckpoint(playerid);
    playerLastMotorradCheckpoint[playerid] = 0;
    IsInPruefung[playerid] = 0;
    return 0;
    }
    else
    {
    //hier passiert irgendetwas!
    }
    }
    }
    else
    {
    SendClientMessage(playerid,ROT, "Du befindest dich in keiner Prüfung!");
    }
    return 1;
    }



    public IsAPruefungsMotorrad(carid)
    {
    if(carid==PruefungsMotorrad1||carid==PruefungsMotorrad2)
    {
    return 1;
    }
    return 0;
    }


    public IsAPruefungsAuto(carid)
    {
    if(carid==PruefungsAuto1||carid==PruefungsAuto2)
    {
    return 1;
    }
    return 0;
    }



    Ich hoffe ihr versteht mein Problem und jemand weiß Rat... ich verzweifle schon daran T_T

  • weiß denn niemand Rat? ich verzweifle an dem Problem T_T

  • nein leider immer noch das selbe Problem :( weiß jemand weiter?


    btw: was bewirkt return 1; oder return 0; eigentlich?

  • return liefert immer ein wert zurück ans script


    return 1; --> Wert 1 also Ja ist eins der Fahrzeuge
    return 0; --> Wert 0 also Nein ist keins der Fahrzeuge


    liegt es vllt an der Funktion FahrschulpruefungKlasseA(playerid)`????

    MTA Reallife


    http://www.vio-rl.de
    MTA-Reallife: 178.63.2.73:22003
    TS3: 178.63.2.73
    MTA-Race-IP: 85.25.1.219:22003

  • von wegen abbrechen es gibt nurn wert zurück


    wie das wort



    RETURN


    schon sagt ^^
    1 = An/Ja/Wahr.....
    0 = Nein/Falsch


    es gibt auch returns die andere Werte ZURÜCKLIEFERN zB
    wenn man sowas hat


    VehKontrolle()
    blabla = GetVehicleModel ( ID)
    return blabla


    oder solche sachen

    MTA Reallife


    http://www.vio-rl.de
    MTA-Reallife: 178.63.2.73:22003
    TS3: 178.63.2.73
    MTA-Race-IP: 85.25.1.219:22003

  • wie gesagt return 1; bricht an der besagten stelle ab je nach verwendung


    Beispiel

    new var;


    var = 1;


    if(var == 1)
    {
    return 1;
    }


    SendClientMessage(playerid,0x00000FF,"Diese Nachricht wird nicht gezeigt");

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • ja ne weil return 1


    da den wert 1 an die vorangehenden script abschnitt zurückliefert und damit die abfolge bei dem vorrangehenden endet


    das funktioniert aber nur wenn die public eine funktion ist die werte zurückgeben soll


    zb onplayerconnect/Onplayerlogin usw

    MTA Reallife


    http://www.vio-rl.de
    MTA-Reallife: 178.63.2.73:22003
    TS3: 178.63.2.73
    MTA-Race-IP: 85.25.1.219:22003

  • Geht auch bei cmds, dabei ist es egal ,aws er returnt:
    new gla=random(5);
    switch(gla) {
    case 0: return 1;
    case 1: return 0;
    case 2: return;
    case 3: return SendClientMessage(playerid,farbe,"Diese Nachricht wird gesendet, die untere nicht");
    case 4: return 2;
    }
    SendClientMessage(playerid,farbe,"Diese Nachricht wird nciht gezeigt");

  • du verstehst nicht wie ich es meine ist jetzt auch ega


    es gibt IMMER nur werte zurück mehr nicht
    abgebrochen wird es nicht sagen wir nur nich ausgeführt da das return zurückspring mit dem entsprechenden wert


    ach ja und keks... cmds können auch werte sein es ist egal was ich eingebe ein wert wird zurückgegeben und genutzt und bei dir isses halt ein cmd der dann ausgeführt wird
    ist ja auch piepe xD

    MTA Reallife


    http://www.vio-rl.de
    MTA-Reallife: 178.63.2.73:22003
    TS3: 178.63.2.73
    MTA-Race-IP: 85.25.1.219:22003

  • okok is ja auch egal^^


    hier sind auf jeden fall die funktionen


    public FahrschulpruefungKlasseB(playerid)
    {
    SetPlayerRaceCheckpoint(playerid, 0,
    AutocheckpointPos[playerLastAutoCheckpoint[playerid]][0],AutocheckpointPos[playerLastAutoCheckpoint[playerid]][1],
    AutocheckpointPos[playerLastAutoCheckpoint[playerid]][2],AutocheckpointPos[playerLastAutoCheckpoint[playerid]][3],
    AutocheckpointPos[playerLastAutoCheckpoint[playerid]][4],AutocheckpointPos[playerLastAutoCheckpoint[playerid]][5],SIZE_OF_CP);
    }


    public FahrschulpruefungKlasseA(playerid)
    {
    SetPlayerRaceCheckpoint(playerid, 0,
    MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]][0],MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]][1],
    MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]][2],MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]+1][0],
    MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]+1][1],MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]+1][2],SIZE_OF_CP);
    }


    public IsAPruefungsMotorrad(carid)
    {
    if(carid==PruefungsMotorrad1||carid==PruefungsMotorrad2)
    {
    return 1;
    }
    return 0;
    }


    public IsAPruefungsAuto(carid)
    {
    if(carid==PruefungsAuto1||carid==PruefungsAuto2)
    {
    return 1;
    }
    return 0;
    }


    bitte bitte brauch dringend eine Lösung :whistling::rolleyes:

  • wieso machst du mit den Klassen if abfragen lol:


    public FahrschulpruefungKlasseA(playerid)
    {
    SetPlayerRaceCheckpoint(playerid, 0,
    MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]][0],MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]][1],
    MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]][2],MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]+1][0],
    MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]+1][1],MotorradcheckpointPos[playerLastMotorradCheckpoint[playerid]+1][2],SIZE_OF_CP);
    }


    Die gibt garnix zurück ^^ also iwie sinnlos

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • und ... wie dann? :|


    sorry wenn ich doof frage blick iwie garnet durch^^

  • ok vielen Dank habs kapiert und auch ne Lösung gefunden. An alle Vielen dank für eure Hilfe