Linien Dialog wie viele fahren eine Linie

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 bräuchte ein bischen hilfe und zwar möchte ich in meinem Linien Dialog einfügen wie viele Spieler grade diese Linie fahren. Aber ich bin mir nicht ganz sicher wie ich das mache. Ich kann es mir ein bischen denken aber wollte es genau wissen.

  • Was für 'ne Linie? Buslinie?
    //e: Falls du Buslinie meinst; erstelle eine Schleife (i<MAX_PLAYERS..), überprüfe ob "i" in dem Bus sitzt (if(GetPlayerVehicleID..) und setz, falls ja, eine Variable hoch (value++). In der Variable steht dann, wie viele Leute auf der Linie fahren.

  • Leider geht das nicht. Im Print steht immer das 0 Spieler eine Linie fahren. Und im Dialog ist auch eine 0.


    Das ist vom Dialog.


    new anzahl, string[200];
    format(string, sizeof(string),"{FFFFFF}Linie 1: LS Stadtlinie 1{00D15A}(%d){FFFFFF}, ab Skill 0\n{FFFFFF}Linie 2: LS Stadtlinie 2, ab Skill 2\n{FFFFFF}Linie 3: LS-SF, ab Skill 4\n{FFFFFF}Linie 4: SF-LS, ab Skill 4\n{FFFFFF}Linie 5: SF Stadtlinie 1, ab Skill 6", anzahl);
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST,"{FFFFFF}Linien Auswahl", string, "Starten", "Abbrechen");
    return 1;


    Und das wo die Linie startet.


    new anzahl;
    for(new i=0; i<MAX_PLAYERS; i++)if(IsPlayerConnected(i) && Spieler[i][BusLinie] == 1) anzahl++;
    printf("%d Spieler sind in Linie 1", anzahl);
    buscd[playerid] = 11;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF;
    new p = GetPlayerVehicleID(playerid);
    Bankporter = Create3DTextLabel("Linie 1\nLS Stadtlinie 1",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter, p, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates[0][0], BusCoordinates[0][1], BusCoordinates[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");

  • if(dialogid==DIALOG_LINIE)
    {
    if(response)
    {
    if(listitem==0)
    {
    new anzahl;
    for(new i=0; i<MAX_PLAYERS; i++)if(IsPlayerConnected(i) && Spieler[i][BusLinie] == 1) anzahl++;
    printf("%d Spieler sind in Linie 1", anzahl);
    buscd[playerid] = 11;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF;
    new p = GetPlayerVehicleID(playerid);
    Bankporter = Create3DTextLabel("Linie 1\nLS Stadtlinie 1",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter, p, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates[0][0], BusCoordinates[0][1], BusCoordinates[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");
    }
    if(listitem==1)
    {
    if(Spieler[playerid][BusSkill] < 2)
    {
    SendClientMessage(playerid,COLOR_RED,"Du brauchst den Busfahrer Skill 2!");
    return 1;
    }
    buscd[playerid] = 11;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF2;
    new s = GetPlayerVehicleID(playerid);
    Bankporter2 = Create3DTextLabel("Linie 2\nLS Stadtlinie 2",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter2, s, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates2[0][0], BusCoordinates2[0][1], BusCoordinates2[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");
    }
    if(listitem==2)
    {
    if(Spieler[playerid][BusSkill] < 4)
    {
    SendClientMessage(playerid,COLOR_RED,"Du brauchst den Busfahrer Skill 4!");
    return 1;
    }
    buscd[playerid] = 9;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF3;
    new m = GetPlayerVehicleID(playerid);
    Bankporter3 = Create3DTextLabel("Linie 3\nLS-SF",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter3, m, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates3[0][0], BusCoordinates3[0][1], BusCoordinates3[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");
    }
    if(listitem==3)
    {
    if(Spieler[playerid][BusSkill] < 4)
    {
    SendClientMessage(playerid,COLOR_RED,"Du brauchst den Busfahrer Skill 4!");
    return 1;
    }
    buscd[playerid] = 8;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF4;
    new a = GetPlayerVehicleID(playerid);
    Bankporter4 = Create3DTextLabel("Linie 4\nSF-LS",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter4, a, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates4[0][0], BusCoordinates4[0][1], BusCoordinates4[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");
    }
    if(listitem==4)
    {
    if(Spieler[playerid][BusSkill] < 6)
    {
    SendClientMessage(playerid,COLOR_RED,"Du brauchst den Busfahrer Skill 6!");
    return 1;
    }
    buscd[playerid] = 14;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF5;
    new b = GetPlayerVehicleID(playerid);
    Bankporter5 = Create3DTextLabel("Linie 5\nSF Stadtlinie 1",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter5, b, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates5[0][0], BusCoordinates5[0][1], BusCoordinates5[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");
    }
    }
    else
    {
    return 1;
    }

  • new p = GetPlayerVehicleID(playerid);
    new anzahl;
    for(new i=0; i<MAX_PLAYERS; i++)if(IsPlayerConnected(i) && GetPlayerVehicleID(i) == p) anzahl++;
    printf("%d Spieler sind in Linie 1", anzahl);
    buscd[playerid] = 11;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF;
    Bankporter = Create3DTextLabel("Linie 1\nLS Stadtlinie 1",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter, p, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates[0][0], BusCoordinates[0][1], BusCoordinates[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");


  • Danke das mit dem Print geht jetzt. Aber mit dem Dialog noch nicht.

  • new anzahl, string[200];
    format(string, sizeof(string),"{FFFFFF}Linie 1: LS Stadtlinie 1{00D15A}(%d){FFFFFF}, ab Skill 0\n{FFFFFF}Linie 2: LS Stadtlinie 2, ab Skill 2\n{FFFFFF}Linie 3: LS-SF, ab Skill 4\n{FFFFFF}Linie 4: SF-LS, ab Skill 4\n{FFFFFF}Linie 5: SF Stadtlinie 1, ab Skill 6", anzahl);
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST,"{FFFFFF}Linien Auswahl", string, "Starten", "Abbrechen");
    return 1;


    Das hier kann auch nicht funktionieren, du erstellst eine Variable (anzahl) und versuchst dann dessen Wert in deinem Dialog auszugeben, aber du hast den Wert der Variable nie versucht zu ändern.


    new p = GetPlayerVehicleID(playerid);
    new anzahl, string[200];
    for(new i=0; i<MAX_PLAYERS; i++)if(IsPlayerConnected(i) && GetPlayerVehicleID(i) == p) anzahl++;
    format(string, sizeof(string),"{FFFFFF}Linie 1: LS Stadtlinie 1{00D15A}(%d){FFFFFF}, ab Skill 0\n{FFFFFF}Linie 2: LS Stadtlinie 2, ab Skill 2\n{FFFFFF}Linie 3: LS-SF, ab Skill 4\n{FFFFFF}Linie 4: SF-LS, ab Skill 4\n{FFFFFF}Linie 5: SF Stadtlinie 1, ab Skill 6", anzahl);
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST,"{FFFFFF}Linien Auswahl", string, "Starten", "Abbrechen");
    return 1;


  • [ASAP]Frosty:
    new p = GetPlayerVehicleID(playerid);
    new anzahl, string[200];
    for(new i=0; i<MAX_PLAYERS; i++)if(IsPlayerConnected(i) && SpielerInfo[i][BusLinie] == 1) anzahl++;
    format(string, sizeof(string),"{FFFFFF}Linie 1: LS Stadtlinie 1{00D15A}(%d){FFFFFF}, ab Skill 0\n{FFFFFF}Linie 2: LS Stadtlinie 2, ab Skill 2\n{FFFFFF}Linie 3: LS-SF, ab Skill 4\n{FFFFFF}Linie 4: SF-LS, ab Skill 4\n{FFFFFF}Linie 5: SF Stadtlinie 1, ab Skill 6", anzahl);
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST,"{FFFFFF}Linien Auswahl", string, "Starten", "Abbrechen");
    return 1;
    Dann aber so. Er möchte ja abfragen wie viele Spieler in der BusLinie 1 fahren. Was du gemacht hast ist, wie viele Leute Bus fahren. ;)

  • Woher kommt überhaupt die Variable SpielerInfo?
    Und es dürfte auch auf meine Art funktionieren, denn GetPlayerVehicleID ist nicht das selbe wie GetVehicleModel (damit würde ich überprüfen, ob man Bus fährt).


    Mit GetPlayerVehicleID prüfe ich, wie viele Leute mit genau diesem Bus fahren, sprich wie viele Leute mit Linie 1 fahren, oder nicht?

  • Beitrag von Mister.Anonym ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Woher kommt überhaupt die Variable SpielerInfo?
    Und es dürfte auch auf meine Art funktionieren, denn GetPlayerVehicleID ist nicht das selbe wie GetVehicleModel (damit würde ich überprüfen, ob man Bus fährt).


    Mit GetPlayerVehicleID prüfe ich, wie viele Leute mit genau diesem Bus fahren, sprich wie viele Leute mit Linie 1 fahren, oder nicht?


    Würde theoretisch funktionieren, aber er will abfragen wie viele Leute die Linie 1 fahren (als Busfahrer, die sitzen ja nicht alle im gleichen Bus ^^), so habe ich das verstanden.

  • Ich habe es jetzt so gemacht und das geht auch. Jetzt habe ich nur noch 2 Probleme. Bei manchen Linien sollen nur 5 Leute fahren. Wen die Linie voll ist soll keiner mehr fahren können. Ich weiß jetzt nicht wie ich die abfrage darein bringe.
    Und ich wollte noch das so machen wen man im Dialog nochmal auf Linie1 klickt das sie beendet wird. Ich habe da schon was ausprobiert das ging aber nicht.


    new string[200];
    format(string, sizeof(string),"{FFFFFF}Linie 1: LS Stadtlinie 1 {00D15A}(%d){FFFFFF}, ab Skill 0\n{FFFFFF}Linie 2: LS Stadtlinie 2 {00D15A}(%d){FFFFFF}, ab Skill 2\n{FFFFFF}Linie 3: LS-SF {00D15A}(%d){FFFFFF}, ab Skill 4\n{FFFFFF}Linie 4: SF-LS {00D15A}(%d){FFFFFF}, ab Skill 4\n{FFFFFF}Linie 5: SF Stadtlinie 1 {00D15A}(%d){FFFFFF}, ab Skill 6", Linie1,Linie2,Linie3,Linie4,Linie5);
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST,"{FFFFFF}Linien Auswahl", string, "Starten", "Abbrechen");
    return 1;



    new p = GetPlayerVehicleID(playerid);
    new anzahl;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && GetPlayerVehicleID(i) == p) anzahl++;
    {
    //printf("%d Spieler ist in Linie 1", anzahl);
    Linie1 = 1;
    }
    }
    buscd[playerid] = 11;
    BusCP[playerid] = 2;
    pCP[playerid] = CHECKPOINT_BUSBERUF;
    Bankporter = Create3DTextLabel("Linie 1\nLS Stadtlinie 1",0x00CDFFFF,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(Bankporter, p, 0.0, 0.0, 1.0);
    SetPlayerCheckpoint(playerid, BusCoordinates[0][0], BusCoordinates[0][1], BusCoordinates[0][2], 3);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast die Linie Gestartet, Folge nun den Checkpoins!");



    public BusCountdownTimer(playerid)
    {
    if(buscd[playerid] > 1)
    {
    new str[45];
    buscd[playerid]--;
    format(str, sizeof(str), "~w~haltestelle...~n~~b~%i", buscd[playerid]);
    GameTextForPlayer(playerid, str, 1000, 4);
    BusCountdown[playerid] = SetTimerEx("BusCountdownTimer", 1000, false, "d", playerid);
    }
    else
    {
    TogglePlayerControllable(playerid, 1);
    new msg[128];
    if(BusCP[playerid] < 11)
    {
    format(msg, sizeof(msg), "Die nächste Haltestelle wurde dir Makiert!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, msg);
    SetPlayerCheckpoint(playerid, BusCoordinates[BusCP[playerid]-1][0], BusCoordinates[BusCP[playerid]-1][1], BusCoordinates[BusCP[playerid]-1][2], 3);
    BusCP[playerid]++;
    }
    else
    {
    Delete3DTextLabel(Bankporter);
    new exp = random(2)+1;
    format(msg, sizeof(msg), "Die Fahrt ist nun zuende. Dir werden 2900$ am nächsten PayDay hinzugefügt. Erhaltende EXP: %d",exp);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, msg);
    Spieler[playerid][PayDayCash] += 2900;
    DisablePlayerCheckpoint(playerid);
    Spieler[playerid][BusExp] += exp;
    Linie1 = 0;
    BusCP[playerid] = 0;
    if(Spieler[playerid][BusExp] >= Spieler[playerid][BusMaxExp])
    {
    Spieler[playerid][BusExp] = 0;
    Spieler[playerid][BusMaxExp] *=2;
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du bist um 1 Bus Skill aufgestiegen");
    Spieler[playerid][BusSkill] += 1;
    }
    }
    }
    }

  • if(anzahl >= 5) return SendClientMessage(playerid, 0xFF0000FF, "Error: Das können nur 5 Leute machen.");


    Und um zu beenden, beim Dialog:
    if(SpielerInfo[playerid][BusLinie] == 1)
    {
    //Beenden
    }
    else
    {
    SpielerInfo[playerid][BusLinie] = 1;
    //Starten...
    }