String wird durcheinander gewürfelt

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
  • Heyho,


    ich habe zurzeit ein merkwürdiges Problem und weiß nach 2121x Versuchen nicht mehr weiter. Habe folgenden Code:



    new String[500];
    for(new i=0; i < 5; i++)
    {
    printf("%s #1", pcarKeys[playerid][pcKeys_giver][i]);
    if(pcarKeys[playerid][pcKeys_dbID][i] != 0)
    {
    printf("%s #2", pcarKeys[playerid][pcKeys_giver][i]);
    format(String, 500, "Slot %d: %s (%s)",
    i,
    Fahrzeugname[pcarKeys[playerid][pcKeys_model][i]-400],
    pcarKeys[playerid][pcKeys_giver][i]);
    printf("%s #3", pcarKeys[playerid][pcKeys_giver][i]);
    } else format(String, 500, "{A8CA00}Slot %d: {00DD46}nichts", i);
    SendClientMessage(playerid, -1, String);
    }

    In "pcarKeys[playerid][pcKeys_giver][i]" steht folgendes:


    Code
    pcarKeys[playerid][pcKeys_giver][0] = Markus
    pcarKeys[playerid][pcKeys_giver][1] = Peter
    pcarKeys[playerid][pcKeys_giver][2] = Alfred
    pcarKeys[playerid][pcKeys_giver][3] = Nichts
    pcarKeys[playerid][pcKeys_giver][4] =

    Ausgabe Ingame:


    [15:57:28] Slot 0: Sultan (MPANichts)
    [15:57:28] Slot 1: Maverick (PANichts)
    [15:57:28] Slot 2: Bullet (ANichts)
    [15:57:28] Slot 3: Faggio (Nichts)
    [15:57:28] Slot 4: (in der server log steht "ichts")


    In den Variablen stehen definitiv diese Namen drin, ich kann mir aber einfach nicht erklären wieso der Name vom letzten Slot + die Anfangsbuchstaben immer angezeigt wird und je weiterer Slot immer ein Buchstabe abgezogen wird.

  • Zeig mal bitte, die Variablen Deklaration + Enum :)


    Desweiteren, wie du z.B. einen Wert in die Variable (pcKeys_giver) setzt ;)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • enum pcar_keys_info
    {
    pcKeys_dbID,
    pcKeys_giver[MAX_PLAYER_NAME+1],
    pcKeys_time,
    pcKeys_vehicleid,
    pcKeys_model,
    }
    new pcarKeys[MAX_PLAYERS][pcar_keys_info][10];



    cache_get_field_content(r, "giver", pcarKeys[playerid][pcKeys_giver][idx], dbhandle[0], MAX_PLAYER_NAME+1);
    print(pcarKeys[playerid][pcKeys_giver][idx]);

    Hier gibt er die richtigen Namen aus, sonst wüsste ich wo ich ansetzen könnte.

  • Scheint mir als willst du vierdimensionale Arrays anlegen, das geht nicht.
    Nutze im enum anstatt
    pcKeys_giver[MAX_PLAYER_NAME],
    Das
    pcKeys_giver1[MAX_PLAYER_NAME],
    //...


    (Bei deinem enum fehlt die vierte Dimension, deshalb speichert er nur den ersten Buchstaben, eine vierte Dimension könnte es aber auch nicht geben, daher einzelne Arrays. )


    Edit:
    Oder lagere die Namen im ein separates zweidimensionales Array aus, wenn du per Index auf den Namen zugreifen willst.