Problem mit /testfahrt

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 habe bei meinem Autohaus einen /testfahrt befehl einzufügen.. es funktioniert auch alles wunderbar bis darauf, dass du trotz Testfahrt = playerid; ein Auto testen kannst.


    Code:


    else if (strcmp("/testfahrt", cmd, true, 10) == 0)
    {
    if (Spectating[playerid][0]!=-1)
    {
    if(Testfahrt == playerid)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du testes bereits ein Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid, 1);
    }
    else
    {
    for(new i = 0; i < Max_Player_Cars; i++)
    {
    if (Carlist[playerid][i][Typ]==-1)
    {
    GivePlayerMoney(playerid, -500);
    AddStaticVehicleEx(Kaufliste[Spectating[playerid][0]][Modelid],1702.1490,-1473.2861,13.3280,177.3230,-1,-1,1);
    SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
    Spectating[playerid][0]=-1;
    TogglePlayerControllable(playerid,1);
    Testfahrt = playerid;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du besichtigst kein Auto!");
    }
    return 1;
    }


    Hat jemand eine Ahnung?


    LG

  • Testfahrt sie aus als ob es eine globale Variable wäre.
    Wenn jetzt jemand eine Testfahrt macht, wird die Variable auf die playerid gesetzt.
    Macht jetzt ein 2. Spieler eine Testfahrt, beinhaltet die Variable die ID des neuen Players.
    D.h. du musst einen Integer-Array anlegen, der so groß ist wie die maximale Anzahl von Spielern am Server und legst die ID dann so fest:



    Testfahrt[playerid] = 1;


    #Brotfischbaron


    In schā'a llāh

  • Mach es lieber so:


    if(strcmp(cmd, "/testfahrt", true) == 0)
    {
    if (Spectating[playerid][0]!=-1)
    {
    if(Testfahrt[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du testes bereits ein Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid, 1);
    }
    else
    {
    for(new i = 0; i < Max_Player_Cars; i++)
    {
    if (Carlist[playerid][i][Typ]==-1)
    {
    GivePlayerMoney(playerid, -500);
    AddStaticVehicleEx(Kaufliste[Spectating[playerid][0]][Modelid],1702.1490,-1473.2861,13.3280,177.3230,-1,-1,1);
    SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
    Spectating[playerid][0]=-1;
    TogglePlayerControllable(playerid,1);
    Testfahrt[playerid] = 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du besichtigst kein Auto!");
    }
    return 1;
    }


    musst halt Testfahrt neu deklarieren in:


    new Testfahrt[MAX_PLAYERS];


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Jo stimmt auf die idee hätte ich auch kommen können :pinch:


    Hab ich zwar geändert .. allerdings wenn ich jetzt /testfahrt eingebe spawnt das auto. ich steige aus dem auto, welches ich besichtige und steige wieder ein und wiederhole den Befehl. Jetzt spawnt das Auto allerdings trotzdem..

  • if(Testfahrt[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du testes bereits ein Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid, 1);
    return 1;
    }


    da noch evtl ein return 1; ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S