array must be indexed (variable "deutsch") - WHAT? :D

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
  • Hey,
    möchte soeben meinen Gamemode auf 2-sprachig umstellen ...
    schon folgendes Problem:


    C:\Dokumente und Einstellungen\Peter Pan\Desktop\Server\gamemodes\blablablabla.pwn(906) : error 033: array must be indexed (variable "deutsch")
    C:\Dokumente und Einstellungen\Peter Pan\Desktop\Server\gamemodes\blablablabla.pwn(914) : error 033: array must be indexed (variable "englisch")


    if(Player[playerid][deutsch] == 1)//Zeile 906
    {
    SendClientMessage(playerid,0xFFB400FF,"________--- Information ---________");
    SendClientMessage(playerid,0xF5FF00FF,"Alle DM-Modis findest du unter /dm. Alle anderen unter /fun!");
    SendClientMessage(playerid,0xF5FF00FF,"Cheater, Hacker und andere wichtige Dinge kannst du per /report melden!");
    SendClientMessageToAll(0xFFB400FF,"________--- Information Ende ---________");
    }

    if(Player[playerid][englisch] == 1)//Zeile 914
    {
    SendClientMessage(playerid,0xFFB400FF,"________--- information ---________");
    SendClientMessage(playerid,0xF5FF00FF,"You can see all dm-modifications at /dm. All other modifications at /fun!");
    SendClientMessage(playerid,0xF5FF00FF,"Cheater, Hacker and other important things can you report at /report! Have Fun!");
    SendClientMessageToAll(0xFFB400FF,"________--- information end ---________");
    }


    Dazu habe ich noch folgendes:
    new deutsch[MAX_PLAYERS];
    new englisch[MAX_PLAYERS];


    if(strcmp("/changelanguage",cmdtext) == 0)
    {
    ShowPlayerDialog(playerid,sprache,DIALOG_STYLE_LIST,"Choose your language/Wähle deine Sprache!","German/Deutsch\nEnglish/Englisch","Betreten","Abbruch");
    return 1;
    }


    if(dialogid == sprache)
    {
    if(response)
    {
    if(listitem == 0)
    {
    deutsch[playerid] = 1;
    englisch[playerid] = 0;
    SendClientMessage(playerid,FarbeGruen,"Sprache 'Deutsch' gewählt! Die verschiedenen Spielmodis kannst du im /dm & /fun einsehen!");
    }

    if(listitem == 1)
    {
    englisch[playerid] = 1;
    deutsch[playerid] = 0;
    SendClientMessage(playerid,FarbeGruen,"Language: 'english' choosed! Now you can see all deathmatch-areas in /dm and other things in /fun!");
    }
    }
    return 1;
    }




    Was ist da nu falsch?

  • Du musst die DIALOGE oben definen also so:
    #define DIALOG_SPRACHE 34

  • Okeee, ty Tommy.
    Folgende Errors bleiben allerdings:
    C:\Dokumente und Einstellungen\Peter Pan\Desktop\Server\gamemodes\gtawcdmvdrei.pwn(614) : error 028: invalid subscript (not an array or too many subscripts): "deutsch"
    C:\Dokumente und Einstellungen\Peter Pan\Desktop\Server\gamemodes\gtawcdmvdrei.pwn(614) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Peter Pan\Desktop\Server\gamemodes\gtawcdmvdrei.pwn(614) : error 001: expected token: ";", but found "]"
    C:\Dokumente und Einstellungen\Peter Pan\Desktop\Server\gamemodes\gtawcdmvdrei.pwn(614) : error 029: invalid expression, assumed zero


    if(dialogid == sprache)
    {
    if(response)
    {
    if(listitem == 0)
    {
    deutsch[playerid] = 1;//Zeile 614
    englisch[playerid] = 0;
    SendClientMessage(playerid,FarbeGruen,"Sprache 'Deutsch' gewählt! Die verschiedenen Spielmodis kannst du im /dm & /fun einsehen!");
    }

    if(listitem == 1)
    {
    englisch[playerid] = 1;
    deutsch[playerid] = 0;
    SendClientMessage(playerid,FarbeGruen,"Language: 'english' choosed! Now you can see all deathmatch-areas in /dm and other things in /fun!");
    }
    }
    return 1;
    }

  • if(dialogid == sprache)
    {
    if(response)
    {
    if(listitem == 0)
    {
    Player[playerid][deutsch]= 1;//Zeile 614
    Player[playerid][englisch] = 0;
    SendClientMessage(playerid,FarbeGruen,"Sprache 'Deutsch' gewählt! Die verschiedenen Spielmodis kannst du im /dm & /fun einsehen!");
    }

    if(listitem == 1)
    {
    Player[playerid][englisch] = 1;
    Player[playerid][deutsch] = 0;
    SendClientMessage(playerid,FarbeGruen,"Language: 'english' choosed! Now you can see all deathmatch-areas in /dm and other things in /fun!");
    }
    }
    return 1;
    }

  • Hol dir den deutschen PAWN Compiler von Trooper der hilft Anfängern
    Dann verstehst du es besser...

  • Mal abgesehen vom Code ist choose unregelmäßig ;). Die Formen sind choose, chose, chosen. Du brauchst chose xD


    Zum Code: Poste bitte mal den gesamten Codeblock in dem die if-Abfrage steht, und kopiers am Besten direkt.