Dialog wird nicht weiter angezeigt?

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 habe folgendes Problem. Undzwar wenn ich /carcreate eingebe. Öffent sich das Dialog mit dem VehId aber nicht das mit der Farbe :S


    ocmd:carcreate(playerid)
    {
    if(carget[playerid] == 1)return SendClientMessage(playerid,-1,"Du hast bereits ein erstelltes Auto.");
    ShowPlayerDialog(playerid,DIALOG_CAR,DIALOG_STYLE_INPUT,"Car Creator","Gib hier die ID des Fahrzeug's ein.","Bestätigen","Abbrechen");
    return 1;
    }


    Unter OnPlayerDialogResponse
    new vehid,cc1,cc2;
    if(dialogid == DIALOG_CAR)
    {
    if(response == 1)
    {
    if(vehid >= 400 || vehid < 612)
    {
    vehid = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_COLOR1,DIALOG_STYLE_INPUT,"Farbe","Gib hier die erste FarbID ein.","Bestätigen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,-1,"Die VehID darf nur zwischen 400 & 611 sein.");
    }
    }
    }


    MfG

  • Also bei mir tuts. Ich hab als ID 415 eingegeben.


    Hab dir den Code nebenbei mal etwas zusammengerückt:
    if(dialogid == DIALOG_CAR && response)
    {
    new vehid = strval(inputtext);
    if(vehid >= 400 && vehid < 612) ShowPlayerDialog(playerid,DIALOG_COLOR1,DIALOG_STYLE_INPUT,"Farbe","Gib hier die erste FarbID ein.","Bestätigen","Abbrechen");
    else SendClientMessage(playerid,-1,"Die VehID darf nur zwischen 400 & 611 sein.");
    }

    ^ Also genau so tut es bei mir.
    Wenn es bei dir nicht tut, liegt das an was anderem, vielleicht hast du die ID von DIALOG_CAR schon definiert bei einem anderen Dialog, oder OnDialogResponse erreicht die Abfrage erst gar nicht, weil du das Callback schon zuvor beendest.

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new vehid = strval (inputtext),cc1 = strval(inputtext),cc2 = strval(inputtext);
    if(dialogid == DIALOG_CAR)
    {
    if(response == 1)
    {
    if(vehid >= 400 && vehid < 612)
    {
    vehid = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_COLOR1,DIALOG_STYLE_INPUT,"Farbe","Gib hier die erste FarbID ein.","Bestätigen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,-1,"Die VehID darf nur zwischen 400 & 611 sein.");
    }
    }
    }
    if(dialogid == DIALOG_COLOR1)
    {
    if(response == 1)
    {
    if(cc1 >= 0 || cc1 < 256)
    {
    cc1 = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_COLOR2,DIALOG_STYLE_INPUT,"Farbe","Gib hier die zweite FarbID ein.","Bestätigen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,-1,"Die FarbID darf nur zwischen 0 & 255 sein.");
    }
    }
    }
    if(dialogid == DIALOG_COLOR2)
    {
    if(response == 1)
    {
    if(cc1 >= 0 || cc1 < 256)
    {
    cc2 = strval(inputtext);
    carget[playerid] = 1;
    new Float:x, Float:y, Float:z;
    new Float:Angle;
    GetPlayerFacingAngle(playerid, Angle);
    GetPlayerPos(playerid, x, y, z);
    for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1, cc2,300);
    }
    }
    else
    {
    SendClientMessage(playerid,-1,"Die FarbID darf nur zwischen 0 & 255 sein.");
    }
    }
    }
    return 1;
    }

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    static cc1[MAX_PLAYERS];
    if(dialogid == DIALOG_CAR && response)
    {
    new vehid = strval(inputtext);
    if(vehid >= 400 && vehid < 612) ShowPlayerDialog(playerid,DIALOG_COLOR1,DIALOG_STYLE_INPUT,"Farbe","Gib hier die erste FarbID ein.","Bestätigen","Abbrechen");
    else SendClientMessage(playerid,-1,"Die VehID darf nur zwischen 400 & 611 sein.");
    }
    if(dialogid == DIALOG_COLOR1 && response)
    {
    cc1[playerid] = strval(inputtext);
    if(cc1[playerid] >= 0 && cc1[playerid] < 256) ShowPlayerDialog(playerid,DIALOG_COLOR2,DIALOG_STYLE_INPUT,"Farbe","Gib hier die zweite FarbID ein.","Bestätigen","Abbrechen");
    else SendClientMessage(playerid,-1,"Die FarbID darf nur zwischen 0 & 255 sein.");
    }
    if(dialogid == DIALOG_COLOR2 && response)
    {
    new cc2 = strval(inputtext);
    if(cc2 >= 0 && cc2 < 256)
    {
    carget[playerid] = 1;
    new Float:x, Float:y, Float:z;
    new Float:Angle;
    GetPlayerFacingAngle(playerid, Angle);
    GetPlayerPos(playerid, x, y, z);
    for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }
    }
    else SendClientMessage(playerid,-1,"Die FarbID darf nur zwischen 0 & 255 sein.");
    }
    return 1;
    }


    Also so tut es bei mir.
    Die Frage ist nur, warum du MAX_CARS auf einmal an der selben Stelle spawnen willst. Sei dahingestellt, dein code. ^^


  • Was meinst du mit an der selben Stelle?

  • for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }
    Dieser Teil erstellt dir MAX_CARS an der Position X,Y,Z.
    Ich weiß nicht ob das das ist was du damit bezwecken willst, kann ich mir nur schwer vorstellen.

  • for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }
    Dieser Teil erstellt dir MAX_CARS an der Position X,Y,Z.
    Ich weiß nicht ob das das ist was du damit bezwecken willst, kann ich mir nur schwer vorstellen.


    Wird das Fahrzeug nicht da erstellt, wo der Spieler ist?

  • Doch, aber eben MAX_CARS oft. Wenn du MAX_CARS zu 100 definiert hast, stehen dort 100 Autos. ^^


    Wenn du das nicht haben willst, sondern nur eins:
    for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }


    zu:
    CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);


    Also die Schleife weg machen.

  • Aber ich wollte das so erweitern, dass er sein Auto zerstörern kann heißt, wenn er veh[1] hat, dann soll es addiert werden, sodass ein anderer user veh[2] hat, und dann halt wenn spieler 1 mit veh[1], /delcar eintippt soll veh[1] zerstört werden.


    MfG

  • Pro Spieler ein Auto, oder kann ein Spieler such mehrere Autos haben? Wie willst du es haben?


    Hast du den /delcar Command schon? Wenn ja, bitte posten, wenn Nein kannste ja mal versuchen ihn zu machen.


    Klappt der Dialog eigentlich jetzt bei dir?