Motorenbefehl 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
  • Moin,


    Mein Motorenbefehl funktioniert leider nicht, und ich finde den Fehler nicht.



    if(strcmp(cmdtext,"/m",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine==0)
    {
    SetVehicleParamsEx(vid,1,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_GREEN"An");
    return 1;
    }
    else if(engine==1)
    {
    SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_RED"Aus");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst dafür in einem Auto sitzen.");
    }
    return 1;
    }

    In OnGameModeInit habe ich ManualVehicleEngineAndLights();
    damit die Motoren Automatisch aus sind.
    Wo liegt der Fehler?


    MfG

  • Ehm hast du eventuell einen Godfather ? Weil im Godfather ist der /m Befehl schon genutzt

  • Zitat

    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_GREEN"An");

    Zitat

    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_RED"Aus");

    2 Fehler ;) Was macht das COL_RED dadrin?!


    //EDIT: Du hast 2x engine benutze also einmal für GetVehicleParamsEx und einmal für if(engine==1)
    und == 0

  • Nein ich verwende keinen Godfather.


    COL_GREEN und COL_RED werden oben als Farbe Definiert, so z.B.:
    #define COL_GREEN "{6EF83C}"
    Ist ne neue 0.3c Funktion, Da steht dann z.B.:
    Motor: An
    Daran liegts auch nicht.


    Und Klar verwende ich das 2 Mal, GetVehicleParamsEx findet heraus ob der Motor An oder Aus ist, An = 1 und Aus = 0, dann Überprüft es ob der Motor Aus ist, und schaltet ihn an.

  • Du musst auch die Variable auf 1 machen oder 0


    if(strcmp(cmdtext,"/m",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine==0)
    {
    SetVehicleParamsEx(vid,1,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_GREEN"An");
    engine = 1;
    return 1;
    }
    else if(engine==1)
    {
    SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_RED"Aus");
    engine = 0;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst dafür in einem Auto sitzen.");
    }
    return 1;
    }

  • Fail...


    Die Variable wird erst in dem Command erstellt, also bringt dir das rein garnichts. SA-MP Macht das Automatisch.


    Ist der Motor ein, Ist die Variable Automatisch 1, Ist der Motor aus, Ist die variable Automatisch 0

  • aber du kannst doch nicht 1 Variable für 2 Sachen machen mach doch ne andere abfrage.

  • Das sieht eigentlich richtig aus... (bis auf das mit der Sendclientmessage, das sieht doch SEHR merkwürdig aus..hab mich damit aber noch nicht beschäftigt.)
    Meld dich mal, was die prints so sagen:

    if(strcmp(cmdtext,"/m",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    print("Punkt 1");
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    printf("%i",engine);
    if(engine==0)
    {
    SetVehicleParamsEx(vid,1,lights,alarm,doors,bonnet,boot,objective);
    print("Punkt 2");
    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_GREEN"An");
    print("Punkt 3");
    return 1;
    }
    else if(engine==1)
    {
    print("Punkt 4");
    SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
    print("Punkt 5");
    SendClientMessage(playerid,COLOR_WHITE,"Motor: "COL_RED"Aus");
    print("Punkt 6");
    return 1;
    }
    printf("%i",engine);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst dafür in einem Auto sitzen.");
    }
    return 1;
    }

  • Ausgabe von Erics Code:
    [14:02:06] Punkt 1
    [14:02:06] -1
    [14:02:06] -1


    Edit: Nun seh ich den Fehler auch... Wieso wird der Motor als -1 Angegeben wenn er Aus ist?


    Edit2: Hat sich erledigt.
    if(engine==0) 
    ersetzt durch
    if(engine==0 || engine==-1)

    2 Mal editiert, zuletzt von Intrepidus ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen