| Carkey - Problem (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
  • Liebe Community,
    ich habe ein Problem bei dem /carkey befehl. Ich bekomme 4 Errors :(


    Errors:


    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(811) : error 017: undefined symbol "CarKey"
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(811) : warning 215: expression has no effect
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(811) : error 001: expected token: ";", but found "]"
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(811) : error 029: invalid expression, assumed zero
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(811) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.




    Die Zeilen:


    [pwn=806] new MaxVeh[MAX_PLAYERS];
    if(strcmp("/carkey", cmd, true) == 0)
    {
    if(MaxVeh[playerid] > 1)
    {
    CarKey[playerid] += 1;
    if(CarKey[playerid] == MaxVeh[playerid])
    {
    CarKey[playerid] = 0;
    }
    if(Carlist[playerid][CarKey[playerid]][Typ] != -1)
    {
    new index = -1;
    for(new i=0; i<sizeof(Kaufliste); i++)
    {
    if(Kaufliste[i][Modelid] == Carlist[playerid][CarKey[playerid]][Typ])
    {
    index = i;
    break;
    }
    }
    if(index == -1) format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, für deinen <unbekannt> !", CarKey[playerid]+1);
    else format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s !", CarKey[playerid]+1, Kaufliste[index][Name]);
    }
    else
    {
    format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel !",CarKey[playerid]+1);
    }
    SendClientMessage(playerid,COLOR_YELLOW,string);
    }
    return 1;
    }[/pwn]




    Ich hoffe ihr könnt helfen. :)




    Mit freundlichen Grüßen,
    James.

  • Musst du unter die Includes schreiben.


    Bekomme jetzt wieder neue errors:


    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(819) : warning 213: tag mismatch
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(819) : error 001: expected token: ")", but found "["
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(819) : error 029: invalid expression, assumed zero
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(819) : warning 215: expression has no effect
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(819) : error 001: expected token: ";", but found "]"
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(819) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    der Befehl:


    [pwn=810]
    if(strcmp(cmd, "/carkey", true) == 0)
    {
    if(MaxVeh[playerid] > 1)
    {
    CarKey[playerid] += 1;
    if(CarKey[playerid] == MaxVeh[playerid])
    {
    CarKey[playerid] = 0;
    }
    if(Carlist[playerid][CarKey[playerid]][Typ] != -1)
    {
    new index = -1;
    for(new i=0; i<sizeof(Kaufliste); i++)
    {
    if(Kaufliste[i][Modelid] == Carlist[playerid][CarKey[playerid]][Typ])
    {
    index = i;
    break;
    }
    }
    if(index == -1) format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, für deinen <unbekannt> !", CarKey[playerid]+1);
    else format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s !", CarKey[playerid]+1, Kaufliste[index][Name]);
    }
    else
    {
    format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel !",CarKey[playerid]+1);
    }
    SendClientMessage(playerid,COLOR_YELLOW,string);
    }
    return 1;
    }
    [/pwn]

  • ändern.


    Jetzt bekomme ich wieder neue errors:


    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(507) : error 091: ambiguous constant; tag override is required (symbol "Carid")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : error 033: array must be indexed (variable "Carlist")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : error 091: ambiguous constant; tag override is required (symbol "X")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : error 033: array must be indexed (variable "Carlist")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Zeilen:


    [pwn=502]
    GetPlayerFromCarlistCar(carid)
    {
    new i;
    for(i=0; i<sizeof(Carlist); i++)
    {
    if(Carlist[i][Carid]==carid) { return i; }
    }
    return -1;
    }
    [/pwn]
    [pwn=662]
    public OnPlayerConnect(playerid)
    {
    new dateiname[MAX_PLAYER_NAME+25];
    new playername[MAX_PLAYER_NAME+25];
    Carlist[playerid][Typ]=-1; Carlist[playerid][X]=0.0; Carlist[playerid][Y]=0.0; Carlist[playerid][Z]=0.0;
    Carlist[playerid][Rotation]=0.0; Carlist[playerid][Status]=0; Carlist[playerid][Lock]=0; Carlist[playerid][Carid]=-1;
    Carlist[playerid][Farbe1]=-1; Carlist[playerid][Farbe2]=-1; Carlist[playerid][mod1]=-1; Carlist[playerid][mod2]=-1;
    Carlist[playerid][mod3]=-1; Carlist[playerid][mod4]=-1; Carlist[playerid][mod5]=-1; Carlist[playerid][mod6]=-1;
    Carlist[playerid][mod7]=-1; Carlist[playerid][mod8]=-1; Carlist[playerid][mod9]=-1; Carlist[playerid][mod10]=-1;
    Carlist[playerid][mod11]=-1; Carlist[playerid][mod12]=-1; Carlist[playerid][mod13]=-1; Carlist[playerid][mod14]=-1;
    Carlist[playerid][mod15]=-1; Carlist[playerid][mod16]=-1; Carlist[playerid][mod17]=-1; Carlist[playerid][Paintjob]=-1;
    Spectating[playerid][0]=-1;
    #if defined CARSELL
    bietetAn[playerid]={-1,0};
    #endif
    GetPlayerName(playerid, playername, sizeof(playername));
    format(dateiname, sizeof(dateiname), "/GekaufteFahrzeuge/%s.car", playername);
    if (fexist(dateiname))
    {
    new File: CarFile = fopen(dateiname, io_read);
    if ( CarFile )
    {
    new key[ 256 ];
    new Data[ 256 ];
    while ( fread( CarFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey(Data);
    if(strcmp(key,"AH_Typ",true)==0) { Carlist[playerid][Typ]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_X",true)==0) { Carlist[playerid][X]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Y",true)==0) { Carlist[playerid][Y]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Z",true)==0) { Carlist[playerid][Z]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Rot",true)==0) { Carlist[playerid][Rotation]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Status",true)==0) { Carlist[playerid][Status]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Lock",true)==0) { Carlist[playerid][Lock]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Paintjob",true)==0) { Carlist[playerid][Paintjob]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Farbe1",true)==0) { Carlist[playerid][Farbe1]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Farbe2",true)==0) { Carlist[playerid][Farbe2]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod1",true)==0) { Carlist[playerid][mod1]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod2",true)==0) { Carlist[playerid][mod2]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod3",true)==0) { Carlist[playerid][mod3]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod4",true)==0) { Carlist[playerid][mod4]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod5",true)==0) { Carlist[playerid][mod5]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod6",true)==0) { Carlist[playerid][mod6]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod7",true)==0) { Carlist[playerid][mod7]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod8",true)==0) { Carlist[playerid][mod8]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod9",true)==0) { Carlist[playerid][mod9]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod10",true)==0) { Carlist[playerid][mod10]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod11",true)==0) { Carlist[playerid][mod11]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod12",true)==0) { Carlist[playerid][mod12]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod13",true)==0) { Carlist[playerid][mod13]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod14",true)==0) { Carlist[playerid][mod14]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod15",true)==0) { Carlist[playerid][mod15]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod16",true)==0) { Carlist[playerid][mod16]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod17",true)==0) { Carlist[playerid][mod17]=strval(ini_GetValue(Data)); }
    }
    }
    fclose(CarFile);
    if(Carlist[playerid][Typ]!=-1 && Carlist[playerid][Status]==1)
    {
    Carlist[playerid][Carid]=CreateTunedCar(playerid);
    }
    }
    SetTimerEx("DelaySetVehicleParams",10000,0,"i",playerid);
    return 1;
    }
    [/pwn]

  • #define MAX_CARS_PER_PLAYER 5 //Wie Jeffry sagte du kannst auch weniger daraus machen aber denk daran nicht zuviel sonst bekommst du bugs [Soweit ich das weiß]
    new Carlist[MAX_PLAYERS][MAX_CARS_PER_PLAYER][ahCar];

  • PAWN Quelltext
    1
    2
    #define MAX_CARS_PER_PLAYER 5 //Wie Jeffry sagte du kannst auch weniger daraus machen aber denk daran nicht zuviel sonst bekommst du bugs [Soweit ich das weiß]
    new Carlist[MAX_PLAYERS][MAX_CARS_PER_PLAYER][ahCar];


    Ok, schön das es mir 2 mal erklärt wurde... jedoch habe ich grad ein anderes Problem sehe oben

  • Beitrag von James.Spader ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Ich bekomme immer noch 5 Errors...


    Die Errors:


    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(507) : error 091: ambiguous constant; tag override is required (symbol "Carid")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : error 033: array must be indexed (variable "Carlist")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : error 091: ambiguous constant; tag override is required (symbol "X")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : error 033: array must be indexed (variable "Carlist")
    C:\SA-MP Server\filterscripts\AutohausSystem.pwn(666) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.



    vielleicht hilft ja das ahCars :)



    enum ahCar
    {
    Typ,
    Float:X,
    Float:Y,
    Float:Z,
    Float:Rotation,
    Status,
    Lock,
    Carid,
    Paintjob,
    Farbe1,
    Farbe2,
    mod1,
    mod2,
    mod3,
    mod4,
    mod5,
    mod6,
    mod7,
    mod8,
    mod9,
    mod10,
    mod11,
    mod12,
    mod13,
    mod14,
    mod15,
    mod16,
    mod17
    };
    new Carlist[MAX_PLAYERS][MAX_CARS_PER_PLAYER][ahCar];


    ( Jeffry )

  • Poste bitte die beiden Zeilen (507 & 666).


    Wir gemacht :)


    [pwn=502]
    GetPlayerFromCarlistCar(carid)
    {
    new i;
    for(i=0; i<sizeof(Carlist); i++)
    {
    if(Carlist[i][Carid]==carid) { return i; }
    }
    return -1;
    }
    [/pwn]


    [pwn=662]
    public OnPlayerConnect(playerid)
    {
    new dateiname[MAX_PLAYER_NAME+25];
    new playername[MAX_PLAYER_NAME+25];
    Carlist[playerid][Typ]=-1; Carlist[playerid][X]=0.0; Carlist[playerid][Y]=0.0; Carlist[playerid][Z]=0.0;
    Carlist[playerid][Rotation]=0.0; Carlist[playerid][Status]=0; Carlist[playerid][Lock]=0; Carlist[playerid][Carid]=-1;
    Carlist[playerid][Farbe1]=-1; Carlist[playerid][Farbe2]=-1; Carlist[playerid][mod1]=-1; Carlist[playerid][mod2]=-1;
    Carlist[playerid][mod3]=-1; Carlist[playerid][mod4]=-1; Carlist[playerid][mod5]=-1; Carlist[playerid][mod6]=-1;
    Carlist[playerid][mod7]=-1; Carlist[playerid][mod8]=-1; Carlist[playerid][mod9]=-1; Carlist[playerid][mod10]=-1;
    Carlist[playerid][mod11]=-1; Carlist[playerid][mod12]=-1; Carlist[playerid][mod13]=-1; Carlist[playerid][mod14]=-1;
    Carlist[playerid][mod15]=-1; Carlist[playerid][mod16]=-1; Carlist[playerid][mod17]=-1; Carlist[playerid][Paintjob]=-1;
    Spectating[playerid][0]=-1;
    #if defined CARSELL
    bietetAn[playerid]={-1,0};
    #endif
    GetPlayerName(playerid, playername, sizeof(playername));
    format(dateiname, sizeof(dateiname), "/GekaufteFahrzeuge/%s.car", playername);
    if (fexist(dateiname))
    {
    new File: CarFile = fopen(dateiname, io_read);
    if ( CarFile )
    {
    new key[ 256 ];
    new Data[ 256 ];
    while ( fread( CarFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey(Data);
    if(strcmp(key,"AH_Typ",true)==0) { Carlist[playerid][Typ]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_X",true)==0) { Carlist[playerid][X]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Y",true)==0) { Carlist[playerid][Y]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Z",true)==0) { Carlist[playerid][Z]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Rot",true)==0) { Carlist[playerid][Rotation]=floatstr(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Status",true)==0) { Carlist[playerid][Status]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Lock",true)==0) { Carlist[playerid][Lock]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Paintjob",true)==0) { Carlist[playerid][Paintjob]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Farbe1",true)==0) { Carlist[playerid][Farbe1]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_Farbe2",true)==0) { Carlist[playerid][Farbe2]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod1",true)==0) { Carlist[playerid][mod1]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod2",true)==0) { Carlist[playerid][mod2]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod3",true)==0) { Carlist[playerid][mod3]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod4",true)==0) { Carlist[playerid][mod4]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod5",true)==0) { Carlist[playerid][mod5]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod6",true)==0) { Carlist[playerid][mod6]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod7",true)==0) { Carlist[playerid][mod7]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod8",true)==0) { Carlist[playerid][mod8]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod9",true)==0) { Carlist[playerid][mod9]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod10",true)==0) { Carlist[playerid][mod10]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod11",true)==0) { Carlist[playerid][mod11]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod12",true)==0) { Carlist[playerid][mod12]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod13",true)==0) { Carlist[playerid][mod13]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod14",true)==0) { Carlist[playerid][mod14]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod15",true)==0) { Carlist[playerid][mod15]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod16",true)==0) { Carlist[playerid][mod16]=strval(ini_GetValue(Data)); }
    else if(strcmp(key,"AH_mod17",true)==0) { Carlist[playerid][mod17]=strval(ini_GetValue(Data)); }
    }
    }
    fclose(CarFile);
    if(Carlist[playerid][Typ]!=-1 && Carlist[playerid][Status]==1)
    {
    Carlist[playerid][Carid]=CreateTunedCar(playerid);
    }
    }
    SetTimerEx("DelaySetVehicleParams",10000,0,"i",playerid);
    return 1;
    }
    [/pwn]


    ( Jeffry )

  • Naja, das ist ja auch irgendwie logisch, dass das nicht geht.
    Du hast jetzt oben in der Variable eine neue Dimension eingefügt, damit, dass ein Spieler mehrere Fahrzeuge haben kann, aber du hast keinen einzigen deiner Codes verändert. Das kann nicht klappen.


    Du musst natürlich dort wo du zuvor Carlist ohne Keys hattest, das so abändern, dass es für den entsprechenden Key, bzw. für alle Keys, gemacht wird.


    Die Funktion sähe dann so aus:
    GetPlayerFromCarlistCar(carid, &pid, &slot)
    {
    for(new i=0; i<sizeof(Carlist); i++)
    {
    for(new j=0; j<sizeof(Carlist[]); j++)
    {
    if(Carlist[i][j][Carid]==carid)
    {
    pid = i;
    slot = j;
    return 1;
    }
    }
    }
    return -1;
    }


    Natürlich musst du dann auch alle Codes die diese Funktion verwenden umschreiben, da du ja jetzt Besitzer UND Slot brauchst.


    Beim OnPlayerConnect musst du mit einer Schleife durch alle Keys gehen.

  • Das muss dir nicht peinlich sein, ist ja kein Problem, dafür ist das Forum ja da.
    Den Besitzer und die Slots speicherst du ja schon, bzw. die Variable dafür wurde angelegt, daher die ganzen Fehler.


    Den Define dazu habe ich dir ja gegeben, das ist die zweite Dimension, das enum hat sich in die dritte verschoben. Genau MAX_CARS_PER_PLAYER ist damit die Slot Anzahl, sprich die Anzahl an Fahrzeugen, die ein Spieler haben kann.


    Du musst jetzt überall wo sowas hier verwendet wird: (nur ein Beispiel)
    Carlist[playerid][Farbe1]
    den Slot hinzufügen. Machst du etwas für alle Slots, machst du es mit einer Schleife:
    for(new s=0; s<MAX_CARS_PER_PLAYER; s++) Carlist[playerid][s][Farbe1] = -1;


    Machst du etwas nur für einen Slot, dann musst du es entweder über den Key machen, wenn du das aktive Fahrzeug nimmst, oder eben über den entsprechenden Slot.
    Carlist[CarKey[playerid]][Farbe1] = -1;


    Das musst du so bei allen Vorkommnissen von Carlist machen, jeweils natürlich entsprechen für die jeweilige Funktion, da es nicht überall gleich ist. Je nach dem wie oft und wo das bei dir überall vorkommt, kann das ein ziemliches Geschäft sein, alles umzustellen, da du im Prinzip das ganze System umbaust.