Spielername Error

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
  • Ich versteh nicht, wieso ich hier ein Error bekommen .. :O



    stock GetPlayerKaufCar(playerid)
    {
    for(new i=0;i<MAX_AUTOS;i++)
    {
    new namess[MAX_PLAYER_NAME];
    GetPlayerName(playerid,namess,sizeof(namess));
    if(Spielername(playerid) == PlayerAuto[i][vkey])
    {
    KaufCar[playerid] = i;
    }
    }
    return 1;
    }


    stock Spielername(playerid)
    {
    new xn[MAX_PLAYER_NAME];
    GetPlayerName(playerid,xn,sizeof(xn));
    return xn;
    }


    Error: C:\Users\The Darkmen\Downloads\GTA SAN ANDREAS\GTA SAN ANDREAS\samp03e_svr_RC6_win32\gamemodes\Cobra.pwn(2501) : error 033: array must be indexed (variable "Spielername")

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Du hättest zumindest mal die Zeile markieren können,in der der Fehler angezeigt wird.


    if(Spielername(playerid) == PlayerAuto[i][vkey])
    Strings / Arrays kann man nicht über den Vergleichsoperator ( == ) direkt vergleichen.Dafür brauchst du die Funktion strcmp.
    Hier findest du die Anwendung der Funktion :
    http://wiki.sa-mp.com/wiki/Strcmp


    Vergiss nicht die Warnung unter der Funktion zu lesen.


    Übrigens machst du hier die Dinge doppelt:
    new namess[MAX_PLAYER_NAME];
    GetPlayerName(playerid,namess,sizeof(namess));
    if(Spielername(playerid) == PlayerAuto[i][vkey])

  • So?:

    stock GetPlayerKaufCar(playerid)
    {
    for(new i=0;i<MAX_AUTOS;i++)
    {
    if(strcmp(Spielername(playerid),PlayerAuto[i][vkey], false, 5))
    {
    KaufCar[playerid] = i;
    }
    }
    return 1;
    }

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Danke an euch, aber die Anwendung funktioniert trotzdem nicht.. :D.



    stock GetPlayerKaufCar(playerid)
    {
    for(new i=0;i<MAX_AUTOS;i++)
    {
    if(strcmp(Spielername(playerid), PlayerAuto[i][vkey], true) == 0)
    {
    KaufCar[playerid] = i;
    }
    }
    return 1;
    }


    So sieht sie jetzt aus..
    Vielleicht kann mir ja noch einer helfen.


    Ahja, PlayerAuto[vkey] ist der Name des Fahrzeugbesitzers & Spielername ist ja klar.


    //edit: Ich hab die Anwendung mal zum Test beim Befehl reingemacht, und der zeigt immer an, das die FahrzeugID 1 ist, obwohl das nicht stimmt.

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • #define MAX_AUTOS 100
    Das hängt mit dem Autohaus zsm.

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.