[GF] Wanteds Speichern (Grundwissen vorrausgesetzt)

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
  • Das gleiche ist hier im Thred mal wieder, einer packt für die Scripter ein Tutorial rein aber es ist nicht Vollständigt das nennt man kein Tutorial man kann doch den leute helfen oder nicht wie z.b wie man die Errors weg bekommt.


    Zitat

    error 017: undefined symbol "dcmd_su"
    error 017: undefined symbol "dcmd_su"
    error 017: undefined symbol "sscanf"

  • Ja alle haben die gleichen Errors kannst du nicht mal bitte das so machen das es geht.

    Einmal editiert, zuletzt von Columbo ()

  • Wenn das schon in eine mAndere nTutorial erklärt wird muss ich es ja nicht doppelt schreiben -.-


    Und die Errors gehen einfach weg wenn man nur man überlegt.


    undefined Symbol ist ja wohl klar und einfachstes Englisch das heist dass es nicht definiert ist also suchen wir nach einer Definierung .

  • also ich hab einmal

    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    dann

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[280];
    new playermoney;
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new playername[MAX_PLAYER_NAME];
    new cmd[280];
    new tmp[280];
    new giveplayerid, moneys, idx;
    cmd = strtok(cmdtext, idx);
    dcmd(su,2,cmdtext);


    und ganz unten ebenfalls in public OnPlayerCommandText(playerid, cmdtext[])

    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':
    {
    setarg(paramPos, 0, _:floatstr(string[stringPos]));
    }
    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;
    }


    so und jetzt komm ich nicht weiter was fehlt denn noch das ich Errors bekomme ? oO


    Code
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(8798) : error 017: undefined symbol "dcmd_su"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(10788) : error 017: undefined symbol "dcmd_su"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(10792) : error 017: undefined symbol "sscanf"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(10859) : warning 225: unreachable code
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(26970) : error 029: invalid expression, assumed zero
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(26970) : error 017: undefined symbol "sscanf"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(26970) : error 029: invalid expression, assumed zero
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(26970) : fatal error 107: too many error messages on one line
  • Zitat

    nein der Sscanf COde ist wie ein eigener Public

    Ja aber könntest es doch posten wenn du schon ein Tutorial machst dann mach es auch Vollständig das ist doch schwchsinn ein Tutorial zu machen was noch nicht mal richtig geht wo die anfänger machen wollen dann ist auch klar das die dann hier voll schreiben '' ICH HABE ERROR ....''.
    Mach es einfach Vollständig sonst bringt das Tutorial erlich nichts.

  • ok ich hab den sscanf Code aus public OnPlayerCommandText rausgenommen und ganz unten im Script einfach ganz normal eingefügt
    aber es kommen immer noch 3 Errors und 1 warning dabei müsste ich jetzt alles haben

    Code
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(8798) : error 017: undefined symbol "dcmd_su"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(10788) : error 017: undefined symbol "dcmd_su"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(10792) : error 017: undefined symbol "params"
    C:\PROGRA~1\ROCKST~1\GRANDT~2\GAMEMO~1\gf.pwn(10859) : warning 225: unreachable code
  • unter den incs:
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • also ich habe alles so gemacht wie hier steht aber bei mir speichern die wanteds nicht warum ? weiß ich auch nicht : )
    sonst ist Tut 10/10 :thumbup:

  • mach es eifnach bei Onplayerstatechange so in etwa:


    if(GetPlayerVehicleID(playerid)==FBIcarID)
    {
    if(newstate == PLAYER_STATE_PASSENGER || IsACop (playerid) )
    {


    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du Bist kein Cop !");
    return 1;
    }
    }