[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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. Ich bin schon am verzweifeln.
    Ich möchte Checkpoints setzen, und diese entfernen lassen SOBALD dieser erreicht wurde.
    Unter "OnPlayerEnterCheckpoint" Würde ich es nicht so gerne machen, da ich z.B. für die Stadthalle unter "Berufe" dann "Busfahrer" auch ein Checkpoint erstellen lasse.


    Könnte man es aber so machen man schreibt unter "OnPlayerEnterCheckPoint" z.B.

    Code
    if(IsPlayerInVehicle(playerid,431))
    {
     	SetPlayerCheckPoint();
     	GivePlayerMoney(playerid,300);
    }


    Weil ich schon oben drüber stehen hab

    Code
    DisablePlayerCheckpoint(playerid);


    Ich hatte alles unter "OnDialogResponse" da ich ein Dialog schrieb wo man nehmen konnte "Linie 1" oder "Linie 2" und da hab ich halt alles unter Linie 1 geschrieben.

  • Willkommen auf Breadfish!


    So würde ich es dir empfehlen:
    if(SpielerInfo[playerid][BusJob] == 1)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckPoint(/*Ausfüllen*/);
    GivePlayerMoney(playerid,300);
    }
    }


  • Okay danke. Und wie macht man das, das diese Route erst abgerufen wird wenn der Spieler auf Linie1 drückt?



    if(Spieler[playerid][sBeruf] == 1)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
    {
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,gelb,"Nächste Haltestelle: Stadthalle");
    SetPlayerCheckPoint(playerid,1456.0122,-1735.9861,13.0879,5.0);
    GivePlayerMoney(playerid,300);
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,gelb,"Nächste Haltestelle: Los Santos Police Department (LSPD)");
    SetPlayerCheckPoint(playerid,1533.0491,-1690.4596,13.0872.50,5.0);
    GivePlayermoney(playerid,300);
    DisablePlayerCheckpoint(playerid);
    }
    }

    Würde das so reintheoretisch gehen?

  • Das kannst du dann so machen:
    if(Spieler[playerid][IstSpielerInBeruf] == 1)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
    {
    DisablePlayerCheckpoint(playerid);
    if(Spieler[playerid][Linie] == 1)
    {
    SendClientMessage(playerid,gelb,"Nächste Haltestelle: Stadthalle");
    SetPlayerCheckPoint(playerid,1456.0122,-1735.9861,13.0879,5.0);
    GivePlayerMoney(playerid,300);
    }
    else if(Spieler[playerid][Linie] == 2)
    {
    SendClientMessage(playerid,gelb,"Nächste Haltestelle: Los Santos Police Department (LSPD)");
    SetPlayerCheckPoint(playerid,1533.0491,-1690.4596,13.0872.50);
    GivePlayermoney(playerid,300);
    }
    }
    }
    Gegebenenfalls musst du noch, wenn du mehrere Checkpoints hast, die Nummer des Checkpoints innerhalb der Linie setzen und abfragen.


    PS: Unterlasse bitte diese Vollzitate mit Code, das macht keinen Sinn.


  • Gegebenenfalls musst du noch, wenn du mehrere Checkpoints hast, die Nummer des Checkpoints innerhalb der Linie setzen und abfragen.


    PS: Unterlasse bitte diese Vollzitate mit Code, das macht keinen Sinn.


    Ah okay. Danke. Bisschen kompliziert aber musste den Code nochmal bisschen anpassen ich konnte diesen "IstSpielerInBeruf" nicht benutzen also nahm ich dafür oben den Beruf den ich definiert habe:

    #define sBeruf "Busfahrer"


    Also heißt dieser Code so:

    if(Spieler[playerid][sBeruf] == 1)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
    {
    //muss ich noch umändern
    }
    }


    Okay. Also muss ich Linie noch definieren dann müsste es gehen.


  • Das geht so nicht. Das sBeruf muss in einem enum stehen, sonst läuft das auf Fehler raus.


    Achso sag das doch gleich das, dass in Enum gemeinte gemeint war.
    Das heißt "Beruf"
    Ok habs jetzt umgeändert. Nur irgendwie zeigt der mir jetzt ein Fehler an mit "Spieler"


    Mein Stock heißt ja

    stock IstSpielerInBeruf(playerid,berufsid)
    {
    if(sSpieler[playerid][Beruf] == berufsid) return 1;
    return 0;
    }


    Und dieses "if..." heißt:

    if(sSpieler[playerid][Beruf] == 1)


    Ok gut, diesesn Fehler habe ich jetzt behoben.


    Nur noch hier ein Fehler:

    new Linie;
    listitem 0 == Linie;


    da kommt: "error 001: expected token: ";", but found "-integer value-""


    Das ganze Dialog heißt:

    if(dialogid == LINIE)
    {
    if(response == 0)
    {
    return 1;
    }
    if(listitem == 0)
    {
    new Linie;
    listitem 0 == Linie;
    }
    }


    Und auftreten soll der Fehler in der Zeile:

    listitem 0 == Linie;