Autos aufbrechen

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
  • Guten Tag,


    ich arbeite gerade an einem Fun-Script und bräuchte kurz Hilfe bei einem Problem. Ich möchte am Straßenrand und auf Parkplätzen Autos abstellen welche jeder User aufbrechen kann, einmal aufgebrochen soll dies natürlich gespeichert werden, damit sie nicht jedes mal neu aufgebrochen werden müssen. Und genau dabei liegt mein Problem.


    new randomcar[1];
    forward randommcar(playerid);


    Unter OnGameModeInit
    randomcar[0]=AddStaticVehicle(426,1227.3014,-914.5999,42.6447,280.9932,7,7);


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(randomcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==randomcar)
    {
    SetTimerEx("randommcar",10000,0,"d",playerid);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,ROT,"Du schließt gerade das Auto kurz, bitte warte 10 Sekunden.");
    }
    }
    }
    return 1;
    }


    public randommcar(playerid)
    {
    TogglePlayerControllable(playerid,1);
    }Bisher müssen die Autos jedes mal erneut aufgebrochen werden, wie ändere ich dass? Ich hatte bisher schon einen Ansatz den ich jetzt allerdings nicht mit gepostet habe, auf Wunsch poste ich ihn.

    Vielen Dank!

  • So pass auf ;)


    [tabmenu]


    [tab=Bei den new's]

    new autogeknackt[MAX_VEHICLES];

    [tab=OnPlayerStateChange]

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(randomcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==randomcar)
    {
    if(autogeknackt[GetPlayerVehicleID(playerid)] == 1)
    {
    SendClientMessage(playerid,ROT,"Dieses Fahrzeug ist bereits kurzgeschlossen.");
    }
    else
    {
    SetTimerEx("randommcar",10000,0,"d",playerid);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,ROT,"Du schließt gerade das Auto kurz, bitte warte 10 Sekunden.");
    }
    }
    }
    }
    return 1;
    }

    [/tabmenu]


    Somit haben wir eine neue Variable für jedes Auto erstellt (autogeknackt[MAX_VEHICLES];).
    Sobald ein Spieler nun in ein Fahrzeug als Fahrer einsteigt (PLAYER_STATE_DRIVER) und das Fahrzeug schon geknackt ist (autogeknackt[GetPlayerVehicleID(playerid)] == 1), dann kann der Spieler ohne Probleme losfahren ;)

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Da mein "public OnPlayerStateChange" noch weitere Abfragen (bezügich Fraktionscars enthält) habe ich dein "else" in ein "else if" geändert, die Errors verschwinden. Allerdings muss ich trotzdem jedes mal das Auto erneut kurzschließen.
    EDIT: Auch ohne Fraktionscars muss jedes Auto immer erneut kurzgeschlossen werden.


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(groovecar); i++)
    {
    if(GetPlayerVehicleID(playerid)==groovecar[i])
    {
    if(gTeam[playerid] != TEAM_GROOVE)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren.");
    }
    }
    }
    for(new i=0; i<sizeof(lspdcar); i++)
    {
    if(GetPlayerVehicleID(playerid)==lspdcar[i])
    {
    if(gTeam[playerid] != TEAM_LSPD)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren.");
    }
    }
    }
    for(new i=0; i<sizeof(randomcar); i++)
    {
    if(autogeknackt[GetPlayerVehicleID(playerid)] == 1)
    {
    SendClientMessage(playerid,ROT,"Dieses Fahrzeug ist bereits kurzgeschlossen.");
    }
    else if (GetPlayerVehicleID(playerid)==randomcar[i])
    {
    SetTimerEx("randommcar",10000,0,"d",playerid);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,ROT,"Du schließt gerade das Auto kurz, bitte warte 10 Sekunden.");
    }
    }
    }
    return 1;
    }

  • So solls doch eben nich sein -.-


    Das

    if(autogeknackt[GetPlayerVehicleID(playerid)] == 1)
    {
    SendClientMessage(playerid,ROT,"Dieses Fahrzeug ist bereits kurzgeschlossen.");
    }
    else if (GetPlayerVehicleID(playerid)==randomcar[i])
    {
    SetTimerEx("randommcar",10000,0,"d",playerid);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,ROT,"Du schließt gerade das Auto kurz, bitte warte 10 Sekunden.");
    }

    zu

    if(GetPlayerVehicleID(playerid) == randomcar[i])
    {
    if(autogeknackt[GetPlayerVehicleID(playerid)] == 1)
    {
    SendClientMessage(playerid,ROT,"Dieses Fahrzeug ist bereits kurzgeschlossen.");
    }
    else
    {
    SetTimerEx("randommcar",10000,0,"d",playerid);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,ROT,"Du schließt gerade das Auto kurz, bitte warte 10 Sekunden.");
    }
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Ja mal FAIL meinerseits X(
    Logisch, er setzt die Variable ja nicht auf 1 X( Ach mist, Sorry.



    public randommcar(playerid)
    {
    TogglePlayerControllable(playerid,1);
    autogeknackt[GetPlayerVehicleID(playerid)] = 1;
    }


    Bitte anpassen ^^

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Jetzt klappts, keine Sorge.


    Wie gesagt, ich war ein wenig in Eile, da hab ich vergessen, beim erste kurzschließen die Variable zu setzen ^^

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|