Autohaus Spieler Freezen wenn er im Auto sitzt

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,


    bin gerade dabei ein Autohaus zu schreiben habe jetzt auch alles fertig bis auf eins,
    wenn der Spieler sich in das auto setzt soll er angezeigt kriegen Autoname Preis und rep kosten, wie im Script unten zu sehen ist und er soll IM Auto gefreezed werden.
    Ich habe es einfach mit "TogglePlayerControllable(playerid,0);" versucht nur da ist das Problem das der Spieler auserhalb des autos gefreezed wird -.-


    hier mal der Code
    if(IsAAutohauscar(vehicleid))
    {
    if(vehicleid == Autohausls[0])
    {
    SendClientMessage(playerid,COLOR_YELLOW,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid,COLOR_YELLOW,"Stratum");
    SendClientMessage(playerid,COLOR_YELLOW,"Kosten : 1.500.000$");
    SendClientMessage(playerid,COLOR_YELLOW,"Reparatur Kosten : 15.000$");
    SendClientMessage(playerid,COLOR_YELLOW,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid,COLOR_GREEN,"Benutze /buycar um dir das Auto zu kaufen");
    TogglePlayerControllable(playerid,0);
    }

    else if(vehicleid == Autohausls[1])
    {
    SendClientMessage(playerid,COLOR_YELLOW,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid,COLOR_YELLOW,"Huntley");
    SendClientMessage(playerid,COLOR_YELLOW,"Kosten : 250.000$");
    SendClientMessage(playerid,COLOR_YELLOW,"Reparatur Kosten : 250$");
    SendClientMessage(playerid,COLOR_YELLOW,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid,COLOR_GREEN,"Benutze /buycar um dir das Auto zu kaufen");
    TogglePlayerControllable(playerid,0);
    }
    else if(vehicleid == Autohausls[2])
    {
    SendClientMessage(playerid,COLOR_YELLOW,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid,COLOR_YELLOW,"Landstalker");
    SendClientMessage(playerid,COLOR_YELLOW,"Kosten : 250.000$");
    SendClientMessage(playerid,COLOR_YELLOW,"Reparatur Kosten 2.500$");
    SendClientMessage(playerid,COLOR_YELLOW,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid,COLOR_GREEN,"Benutze /buycar um dir das Auto zu kaufen");
    TogglePlayerControllable(playerid,0);
    }

  • hmm jetzt habe ich folgendes bei OnPlayerStateChange


    if(newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER)) <------- 9150
    {
    if (IsAAutohauscar(GetPlayerVehicleID(playerid)))
    {
    TogglePlayerControllable(playerid,0);
    }


    }



    und bekomme folgenden fehler


    (9150) : error 029: invalid expression, assumed zero





    /edit:


    hat sich erledigt mit:
    if(newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER && IsAAutohauscar(GetPlayerVehicleID(playerid)))
    {


    TogglePlayerControllable(playerid,0);


    }

    Einmal editiert, zuletzt von VaporX ()

  • Du hast da eine Klammer zu viel also so eine )
    es muss nicht so sein:
    if(newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER))

    sondern so:
    if(newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER)

    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann


  • hmmm funst doch nicht man wird nicht gefreezd aber das heist es kann nur an IsAAutohauscar(GetPlayerVehicleID(playerid)) ligen

  • public IsAAutohauscar(carid)
    {
    for(new i = 0; i < sizeof(Autohausls); i++)
    {
    if(carid == Autohausls[i])
    {
    return 1;
    }
    }
    return 0;
    }


    müsste aber theoretisch richtig sein da sie ja auch bei der ausgabe der fahrzeugnamen/kosten ihren dienst tut ?!



    //edit



    hat sich erledigt danke

    Einmal editiert, zuletzt von VaporX ()