Dialog wird nicht 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
  • Also ich habe was gemacht das dass auto bei der Ordnungsamt Base stehen bleibt auch nach einem Restart.
    Es geht alles eigentlich doch das Dialgo wird nicht angezeigt.


    new fc2;while(fc2<MAX_FRACTION_CARS)
    {
    for(new f2;f2<5;f2++)
    {
    if(PlayerFraction(playerid) == FractionCars[fc][fFraction][f2])
    {
    if(FractionCars[fc2][fTow] == 1)
    {
    new car = FractionCars[fc][fCarid];
    format(string, sizeof(string), "Auto: %s\nTicket: %d",CarName[car-400],CarInfo[vehicleid][cTicket]);
    ShowPlayerDialog(playerid,66,DIALOG_STYLE_MSGBOX,"Freikaufen",string,"Freikaufen","abbrechen");
    }
    }
    }
    }fc2++;


    Findet einer den Fehler ??


    //E:Immer noch Problem und warte die ganze zeit...

    Einmal editiert, zuletzt von AC/DC ()

  • also da wird es erstellt....


    enum fInfo
    {
    bool:fLock,
    fCarid,
    fVehid,
    Float:fPos[4],
    fCol[2],
    fFraction[5],
    fName[20],
    fTow
    };
    new FractionCars[MAX_FRACTION_CARS][fInfo];

    da soll er schauen ob das auto die fTow variable 1 hat wenn ja dann soll das kommen


    new fc2;while(fc2<MAX_FRACTION_CARS)
    {
    for(new f2;f2<5;f2++)
    {
    if(PlayerFraction(playerid) == FractionCars[fc][fFraction][f2])
    {
    if(FractionCars[fc2][fTow] == 1)//Ist das Auto abgeschleppt
    {
    new car = FractionCars[fc][fCarid];//Herraus finden welches Model vehicleid ist
    format(string, sizeof(string), "Auto: %s\nTicket: %d",CarName[car-400],CarInfo[vehicleid][cTicket]);//Dies ist ein Format mit diesem könnt ihr werte in einen String schreiben! das erste %s sthet für eien string und CarName ist die Funtkion dazu welches Auto das ist und gibt einen string wieder und wird für %s eingefügt CarInfo..Ticket gibt den Preis zum Freikaufen wieder in einem Integer deswegen %d
    ShowPlayerDialog(playerid,66,DIALOG_STYLE_MSGBOX,"Freikaufen",string,"Freikaufen","abbrechen");//hier wird der string in einem Dialog angezeigt
    }
    }
    }
    }fc2++;

  • fc ist die Anzahl der maximalen Cars


    und


    new car = FractionCars[fc][fCarid];
    weil ich ja die Carid brauche... von dem jewaligen car

  • Du brauchst das Model, nicht die Id.


    Zitat

    fc ist die Anzahl der maximalen Cars


    Dann kann die Abfrage garnichts machen.


    if(PlayerFraction(playerid) == FractionCars[fc][fFraction][f2])
    Dadurch bekommst du einen ungültigen Wert (= 0), somit wird garnichts angezeigt.

  • Ja schon nur dann wurde er das ja falsch anzeigen aber er zeigt ja nichts an kein Dialog...

  • habe es jetzt so





    new fc2;while(fc2<MAX_FRACTION_CARS)
    {
    for(new f2;f2<5;f2++)
    {
    if(PlayerFraction(playerid) == FractionCars[fc2][fFraction][f2])
    {
    if(FractionCars[fc2][fTow] == 1)//Ist das Auto abgeschleppt
    {
    new car = FractionCars[fc][fCarid];//Herraus finden welches Model vehicleid ist
    format(string, sizeof(string), "Auto: %s\nTicket: %d",CarName[car-400],CarInfo[vehicleid][cTicket]);//Dies ist ein Format mit diesem könnt ihr werte in einen String schreiben! das erste %s sthet für eien string und CarName ist die Funtkion dazu welches Auto das ist und gibt einen string wieder und wird für %s eingefügt CarInfo..Ticket gibt den Preis zum Freikaufen wieder in einem Integer deswegen %d
    ShowPlayerDialog(playerid,66,DIALOG_STYLE_MSGBOX,"Freikaufen",string,"Freikaufen","abbrechen");//hier wird der string in einem Dialog angezeigt
    }
    }
    }
    }fc2++;
    aber immer noch nicht ...



    //edit
    hier mal denn befehl...


    if (strcmp("/abschleppen", cmdtext, true, 10) == 0)//Wie der Befehl heißt
    {
    if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11)//Für welche Fraktion oder Beruf er erlaubt ist ACHTUNG! Diesist für GF passt es bitte eurem Script an!
    {
    if(IsPlayerInAnyVehicle(playerid))//Ist Arbeiter in einem Auto
    {
    if(IsPlayerInRangeOfPoint(playerid,30.0,866.0969,-1214.3073,16.9835))//Ist playerid am Filmstudio
    {
    new veh = GetVehicleTrailer(GetPlayerVehicleID(playerid));//ein new in dem die trailerid gespeichert wird
    if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))//Hat das Fahrzeug von playerid einen Anhänger
    {
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    if(FractionCars[fc][fTow] == 0)//Ist Das Auto schon abgeschleppt
    {
    tmp = strtok(cmdtext, idx);//wert herauslesen
    if(!strlen(tmp))//Ist in tmp nichts vorhanden
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /abschleppen [Preis]");//meldung an playerid
    return 1;
    }
    moneys = strval(tmp);//tmp zu einem integer verwandeln und in der Variable moneys speichern
    if(moneys < 1 && moneys > 10000)//Der Preis muss zwischen 1 - 10000 liegen
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Preis bitte zwischen 1 - 10000");//meldung an playerid
    return 1;
    }
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast das Auto abgeschleppt es wird immer Hier in der Oamt base spawnen! Bis es freigekauft wurde!");//meldung an playerid
    FractionCars[veh][fTow] = 1;//Das Auto ist abgeschleppt
    CarInfo[veh][cTicket] = moneys;//Welche Strafe/Preis zum Freikaufen wurde gespeichert
    return 1;
    }
    else//ist das Auto schon abgeschleppt
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Das Auto ist schon abgeschleppt!");//meldung an playerid
    break;
    }
    }
    }
    else//Das Auto hat keinen Trailer/Auto am hacken
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast kein Auto abgeschleppt!");//meldung an playerid
    }
    }
    else//nicht am Filmstudio
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nicht am Abschlepppunkt!");//meldung an playerid
    }
    }
    else//ist playerd in keinem auto
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist in keinen Auto!");//meldung an playerid
    }
    }
    else//Ist nicht in der Fraktion/Beruf
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist kein Oamtler!");//meldung an playerid
    }
    return 1;
    }


    //ich warte immer noch ... ;( und beitrag schon so weit versunken^^
    //Immer noch keine Lösung (super Forum) ;)

    3 Mal editiert, zuletzt von AC/DC ()

  • Tu nicht so, als würden wir extra nicht antworten! Vielleicht weiß es ja auch keiner?!



    B2T:
    Lass dir den Wert der Varibale FractionCars[fc][fCarid]; mal in die Konsole per printf machen.
    Vielleicht ist er <400 oder >611 und damit ungültig und der string wird nicht belegt und bleibt dadurch leer ==> Dialog wird nicht angezeigt.



    //Edit: Text war unlogisch ^^

  • Ich glaube das die Variable beim /abschleppen gar nicht auf eins gesetzt wird...



    //E:Immer noch und weis nicht wie ich es machen soll :( ;/

    Einmal editiert, zuletzt von AC/DC ()