Auf einmal errors beim /givecash cmd

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
  • Hallo seitdem ich heute ein Waffenmenu gemacht habe, bekomme ich errors bei meinen /givecash cmd, warum weis ich nicht. Könnt ihr mir da helfen?


    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(792) : error 017: undefined symbol "dcmd_givemoney"
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(938) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(963) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(980) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(983) : warning 225: unreachable code
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1053) : warning 217: loose indentation
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1053) : error 029: invalid expression, assumed zero
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1053) : error 004: function "OnPlayerClickPlayer" is not implemented
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1055) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1059) : warning 225: unreachable code
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1059) : error 017: undefined symbol "dcmd_givemoney"
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1065) : error 017: undefined symbol "sscanf"
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1067) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1071) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1086) : error 079: inconsistent return types (array & non-array)
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : warning 225: unreachable code
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : error 029: invalid expression, assumed zero
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : error 017: undefined symbol "sscanf"
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : error 029: invalid expression, assumed zero
    C:\Users\Fährmann\Desktop\Samp Server\gamemodes(meine)\test.pwn(1120) : fatal error 107: too many error messages on one line


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



    16 Errors.


    Mein Script:


    }
    dcmd(givemoney,9,cmdtext);
    return 0;
    }



    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    //Das hab ich noch net benutzt was hier eig. wäre^^ gekürtzt wegen 10000 zeichen


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Waffenmenu) // Name des Menüs, das wir als ID 0 definiert haben
    {
    if(response)
    {
    if(listitem == 0) // Pistole
    {
    GivePlayerWeapon(playerid,22,100); //22 ist die WaffenID, 100 ist die Munition
    GivePlayerMoney(playerid, -150);
    }
    if(listitem == 1) // Desert Eagle
    {
    GivePlayerWeapon(playerid,24,30);
    GivePlayerMoney(playerid, -180);


    }
    if(listitem == 2) // MP5
    {
    GivePlayerWeapon(playerid,29,50);
    GivePlayerMoney(playerid, -250);
    }
    if(listitem == 3) // Ak47
    {
    GivePlayerWeapon(playerid,30,50);
    GivePlayerMoney(playerid, -300);
    }



    }
    }



    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }



    dcmd_givemoney(playerid,params[])
    {
    new
    betrag, // hier erstellen wir die parameter. in deinem fall den betrag des geldes das gegeben wird und pID ist der spieler der das ganze erhalten soll
    pID;


    if(sscanf(params, "di",pID,betrag))
    {
    return SendClientMessage(playerid,BLAU,"Nutze: /givemoney [ID] [betrag]"); // hier wird abgefragt ob beide parameter angegeben werden. wenn nein returnt das ganze mit der nachricht
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,BLAU,"Kein Spieler mit angegebener ID Online"); // hier wird abgefragt ob der Spieler mit der angegebenen Id online ist
    }


    if(GetPlayerMoney(playerid)>=betrag) // dast ist zwar nicht unbedingt notwendig, sollte aber drin sein. da wird überprüft ob der spieler genügend geld hat. deswegen wird abgefragt ob das geld das er gerade hat (getplayermoney) größer oder gleich (>=) wie der angegebene betrag ist.
    {
    new name[MAX_PLAYER_NAME],nachricht[64];
    GetPlayerName(playerid,name,sizeof(name)); // das ist einfach für die Nachricht damit der Spieler der das geld bekommt informiert wird wie viel und von wem er geld bekommen hat.
    format(nachricht,sizeof(nachricht),"%s gab dir %i €",name,betrag);



    SendClientMessage(pID,BLAU,nachricht); //das ist der wesentliche teil: die geldübergabe. hier wird die nachricht gesendet
    GivePlayerMoney(pID,betrag); // hier wird pID, also dem spieler der angegeben wurde das geld in höhe von betrag gegeben
    GivePlayerMoney(playerid,-betrag); // und hier wird dem spieler der das commando ausführt der betrag abgezogen (-betrag)
    }


    return 1;
    }



    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {
    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }