deliverpakete Befehl 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
  • Tach Breadfishler,


    Ich bekomme ein paar errors in meinem deliverpakete Befehl


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3309) : warning 213: tag mismatch
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : error 028: invalid subscript (not an array or too many subscripts): "Materialspakete"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : 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.



    hier der deliverpakete Befehl:


    ocmd::deliverpakete(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,-91.8772,-40.3565,6.4844))return SendClientMessage(playerid,ROT,"Du bist nicht am Abgabe punkt!"); //betrofffene Zeile
    new string[128];
    if(Materialspakete[playerid] == 0) //betrofffene Zeile
    new mats = (Materialspakete[playerid]*50);
    format(string, sizeof(string), "Du hast %d Pakete abgegeben und %d Materialien dafür erhalten.", Materialspakete[playerid], mats);
    SendClientMessage(playerid, HELLBLAU, string);
    Materialspakete[playerid] = 0;
    Spieler[playerid][Materials] += mats;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du hast keine Pakete zum abgeben.");
    }
    return 1;
    }


    hier der getpakete Befehl:


    ocmd:getpakete(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,-91.8772,-40.3565,6.4844))return SendClientMessage(playerid,ROT,"Du bist nicht am Paketekaufpunkt!");
    new Materialss;
    if(sscanf(params, "d", Materialss))return SendClientMessage(playerid,GELB,"Verwendung: /getpakete [Anzahl an Pakete]");
    new string[128];
    if(Materialss < 0 || Materialss > 15) { SendClientMessage(playerid, ROT, "*Die anzahl an Pakete darf nicht unter 0 und über 15 sein."); return 1; }
    if(Materialss +sSpieler[playerid][Materialspakete] < 16)
    {
    new Paketpreis = Materialss*150;
    sSpieler[playerid][Materialspakete] += Materialss;
    GivePlayerMoney(playerid, -Paketpreis);
    format(string,sizeof(string), "Du hast dir %i Materialspakete für %d$ gekauft!", Materialss, Paketpreis);
    SendClientMessage(playerid,GREEN,string);
    SendClientMessage(playerid,HELLBLAU,"Fahre nun schnell nach San Fierro bevor dich die Cops erwischen!");
    }
    else if(Materialss + sSpieler[playerid][Materialspakete] < 15)
    {
    SendClientMessage(playerid,ROT,"Du kannst Maximal 15 Materialpakete bei dir Tragen!");
    }
    return 1;
    }


    hier das Spielerdaten Enum:


    enum Spielerdaten
    {
    Adminlevel,
    Suplvl,
    level,
    Fraktion,
    Alter,
    Geschlecht,
    Skin,
    slogin,
    Rang,
    PaydayZeit,
    Bargeld,
    DDrogen,
    Materialspakete,
    Materials,
    SBDrogen,
    SBMats,
    Bankguthaben,
    Festgeld,
    FestgeldTime,
    Gangjailticket,
    Bauerticket,
    Pilotticket
    };



    Hoffe einer hat eine Lösung dafür X/


    Vielen Dank im Vorraus! :D

    Einmal editiert, zuletzt von KinGRaPTiiC ()

  • Ich kann mir vorstellen dass if(Materialspakete[playerid] == 0) ein Boolean ist, so
    würde ich gerne diesen Bool haben; stell ihn mal bitte hier rein. Du hast ihn wahrscheinlich
    irgendwo bei den "new"-Definitionen oben im Skript.

    So könnte dein Bool aussehen:

    new bool:Materialspaketel[MAX_PLAYERS];

    @KinGRaPTiiC

  • habe den Befehl von einem anderen Script nur etwas verändert und da ich das nur so kenne wie es im
    Befehl ist habe ich leider keine Ahnung aber habe halt schon nen bool mit ADuty aber als ich grade versucht habe


    new bool:Materialspakete[MAX_PLAYERS];


    einzüfügen kam das dabei raus:


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(217) : error 021: symbol already defined: "Materialspakete"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3310) : warning 213: tag mismatch
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3312) : warning 213: tag mismatch
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3313) : error 003: declaration of a local variable must appear in a compound block
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3313) : error 017: undefined symbol "mats"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3313) : warning 213: tag mismatch
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3313) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3314) : error 017: undefined symbol "mats"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : warning 213: tag mismatch
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3317) : error 017: undefined symbol "Spieler"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3317) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3317) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3317) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3317) : fatal error 107: too many error messages on one line


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



    8 Errors.



    @Kristik47

  • @thetvMt2,


    das kam dabei raus:


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(217) : error 021: symbol already defined: "Materialspakete"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3312) : error 003: declaration of a local variable must appear in a compound block
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3312) : error 017: undefined symbol "mats"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3312) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3313) : error 017: undefined symbol "mats"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : error 017: undefined symbol "Spieler"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3316) : fatal error 107: too many error messages on one line


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



    8 Errors.


    PS @German_ScripterHD


    Danke dir habs voll übersehen :D

  • @XeroX


    Nun kommen diese Erros:


    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : error 028: invalid subscript (not an array or too many subscripts): "Materialspakete"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : warning 215: expression has no effect
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : error 001: expected token: ";", but found "]"
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\SERVER\gamemodes\NGR.pwn(3311) : 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.

  • Kannst du nochmal die genauen Zeilen bzw. den Befehl mit dieser Zeile zeigen. Es hat sich ja was geändert.


    @KinGRaPTiiC

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Klar hier:


    ocmd:deliverpakete(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,-91.8772,-40.3565,6.4844))return SendClientMessage(playerid,ROT,"Du bist nicht am Abgabe punkt!");
    new string[128];
    if(Materialspakete[playerid] == 0)
    new mats = (Materialspakete[playerid]*50);
    format(string, sizeof(string), "Du hast %d Pakete abgegeben und %d Materialien dafür erhalten.", Materialspakete[playerid], mats);
    SendClientMessage(playerid, HELLBLAU, string);
    sSpieler[playerid][Materialspakete] = 0;
    sSpieler[playerid][Materials] += mats;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du hast keine Pakete zum abgeben.");
    }
    return 1;
    }



    ocmd:getpakete(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,-91.8772,-40.3565,6.4844))return SendClientMessage(playerid,ROT,"Du bist nicht am Paketekaufpunkt!");
    new Materialss;
    if(sscanf(params, "d", Materialss))return SendClientMessage(playerid,GELB,"Verwendung: /getpakete [Anzahl an Pakete]");
    new string[128];
    if(Materialss < 0 || Materialss > 15) { SendClientMessage(playerid, ROT, "*Die anzahl an Pakete darf nicht unter 0 und über 15 sein."); return 1; }
    if(Materialss +sSpieler[playerid][Materialspakete] < 16)
    {
    new Paketpreis = Materialss*150;
    sSpieler[playerid][Materialspakete] += Materialss;
    GivePlayerMoney(playerid, -Paketpreis);
    format(string,sizeof(string), "Du hast dir %i Materialspakete für %d$ gekauft!", Materialss, Paketpreis);
    SendClientMessage(playerid,GREEN,string);
    SendClientMessage(playerid,HELLBLAU,"Fahre nun schnell nach San Fierro bevor dich die Cops erwischen!");
    }
    else if(Materialss + sSpieler[playerid][Materialspakete] < 15)
    {
    SendClientMessage(playerid,ROT,"Du kannst Maximal 15 Materialpakete bei dir Tragen!");
    }
    return 1;
    }

  • Hab'n bisschen rumgespielt, konnte aber nur eine Lösung für ocmd:getpakete finden. für ocmd:deliverpakete habe ich nichts scripten können Klappte bei mir einfach nicht.



    ocmd:getpakete(playerid, params[])
    {
    //if(!IsPlayerInRangeOfPoint(playerid,5.0,-91.8772,-40.3565,6.4844))return SendClientMessage(playerid,-1,"Du bist nicht am Paketekaufpunkt!");
    new Materialss;
    if(sscanf(params, "d", Materialss))return SendClientMessage(playerid,-1,"Verwendung: /getpakete [Anzahl der Pakete]");
    new string[128];
    if(Materialss < 0 || Materialss > 15) { SendClientMessage(playerid, -1, "*Die anzahl an Pakete darf nicht unter 0 und über 15 sein."); return 1; }
    if(Materialss +sSpieler[playerid][sMatsPack] < 16)
    {
    new Paketpreis = Materialss*150;
    sSpieler[playerid][sMatsPack] += Materialss;
    GivePlayerMoney(playerid, -Paketpreis);
    format(string,sizeof(string), "Du hast dir %i Materialspakete für %d$ gekauft!", Materialss, Paketpreis);
    SendClientMessage(playerid,-1,string);
    SendClientMessage(playerid,-1,"Fahre nun schnell nach San Fierro bevor dich die Cops erwischen!");
    Materialspakete[playerid] = true; //Vergessen bei get den bool auf true zu setzen, um ihn bei deliver auszulesen.
    }
    else if(Materialss + sSpieler[playerid][sMatsPack] > 15)
    {
    SendClientMessage(playerid,-1,"Du kannst Maximal 15 Materialpakete bei dir Tragen!");
    }
    else
    {
    SendClientMessage(playerid,-1,"Du hast bereits die maximale Anzahl an Paketen.");
    }
    return 1;
    }


    Beachte bitte, dass sich in deinem Skript keine Wörter verdoppeln. Du kannst keinen bool mit Materialspakete erstellen und
    dabei nochmal Materialspakete im Enum definieren. So habe ich dir statt Materialspakete im Enum ein sMatsPack erstellt.


    Bzw. füg bei dir mal im Enum statt Materialspakete ein sMatsPack ein


    @KinGRaPTiiC