Noch ein Problem mit einer For-Schleife

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 liebe Community,
    Ich habs heute irgendwie mit den ganzen schleifen..


    new fullstring[1024],i = 0;
    while(i < sizeof(c_weapon))
    {
    new string[56];
    if(c_weapon[veh][i] == 0){format(string,sizeof(string),"[Platz %d] - Leerer Waffenplatz -\n",i+1);}
    if(c_weapon[veh][i] != 0){format(string,sizeof(string),"[Platz %d] - %s mit %d Schuss -\n",i+1,WeapName[c_weapon[veh][i]],c_ammo[veh][i]);}
    strcat(fullstring,string);
    SendClientMessage(playerid,COLOR_WHITE,string);
    i++;
    }
    ShowPlayerDialog(playerid,DIA_CAR_WAFFERAUS,DIALOG_STYLE_LIST,"Gangcars","Test","Ändern","Zurück");
    Wieder ists ein Array was abgefragt werden sollen.
    EGAL Was ich machen, ShowPlayerDialog wird nicht ausgeführt.
    Zum Debuggen habe ich mir immer den erstellten string senden lassen.
    Nur wird der Verdammte Dialog nicht ausgeführt..


    Vor der schleife sind keine returns oder sowas..
    Der Code nach der Schleife wird nicht ausgeführt...


    Jemand ne Idee?

  • Ist vielleicht deine DialogID zu hoch?


    Das kann manchmal passieren, das es dann nicht aufgerufen wird,
    oder du hast nen buffer underflow, weil dein string zu klein ist.


    Probier mal das hier: http://forum.sa-mp.com/showthread.php?t=262796

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • DialogID ist 202.. Habe ich auch schon in betracht gezogen.
    Am string liegts nicht.. Aber Crashdetect hat was gefunden.


    Ich werd daraus aber nicht besonders schlau.
    [19:58:19] [debug] Run time error 4: "Array index out of bounds"
    [19:58:19] [debug] Accessing element at index 4 past array upper bound 3
    [19:58:19] [debug] Backtrace:
    [19:58:19] [debug] #0 0001c110 in public OnDialogResponse () from gm.amx
    Klar versteh ich, dass der Fehler in OnDialogResponse auftritt.
    [19:58:19] [debug] Run time error 4: "Array index out of bounds"


    [19:58:19] [debug] Accessing element at index 4 past array upper bound 3


    Wenn mir jemand den Fehler erklären kann müsste ich den Rest alleine schaffen :D

  • es könnte so sein wie ich es mir dachte,


    wenn du sizeof/varname) nimmst gibt er die die größe des KOMPLETTEN arrays das wäre dann 4*MAX_VEHICLES,
    soviel kannst du aber gar nicht verwerten,
    also müsste
    sizeof(varname[]) angebracht sein ;)


    // Gut das sich das erledigt hat :)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski