Hilfe bei /givesfPass

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 liebe Leute,


    ich brauche einmal Hilfe bei diesem Befehl "/givesfPass", es kommt immer dieses Empty Statement


    (34935) : error 036: empty statement



    Hier einmal der Befehl
    if(strcmp(cmd, "/givesfpass", true) == 0) { if(PlayerInfo[playerid][pAdmin] >= 4); //Fehlerzeile Semikolon entfernen { giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",giveplayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string); PlayerInfo[giveplayerid][pSFPass] = 1; return 1; } } return 1; }


    Betroffen ist das ISPlayerAdmin..


    Bitte um Hilfe und verstehe nicht wieso mein alter beitrag gelöscht wurde.


    MfG ExTaZZe


  • if(PlayerInfo[playerid][pAdmin] >= 4); //Fehlerzeile Semikolon entfernen Weiss nicht was ein Semikolon ist?
    ; <-- und das sollst du entfernen.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Erstelle den bitte im Quellcode.


    if(strcmp(cmd, "/givesfpass", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    PlayerInfo[giveplayerid][pSFPass] = 1;
    return 1;
    }
    }
    return 1;
    }


    Woher bekommst du denn "giveplayer" und "sendername"?

  • Bist du überhaupt Admin Rang 4?


    Mach mal pls so:
    if(strcmp(cmd, "/givesfpass", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast nicht die Rechte!");
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    PlayerInfo[giveplayerid][pSFPass] = 1;
    }
    return 1;
    }
    und guck, ob etwas zurück kommt...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Versuch das mal so:
    if(strcmp(cmd, "/givesfpass", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast nicht die Rechte!");
    new pID,sendername[MAX_PLAYER_NAME],giveplayer[MAX_PLAYER_NAME];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1," /givesfpass [playerid / Name]");
    if(IsPlayerConnected(pID))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(pID, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",pID);
    SendClientMessage(playerid, -1, string);
    format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername);
    SendClientMessage(giveplayerid, -1, string);
    PlayerInfo[pID][pSFPass] = 1;
    return 1;
    }
    return 1;
    }


    Ist bisschen anders als deins, aber nun mit sscanf Abfrage, damit du die Playerid reinschreiben kannst ;)

  • Hast da, denke ich ein wenig was vertauscht.
    Schließlich soll die pID die Nachricht erhalten und der Name ausgegeben werden, welcher den Schein erhalten hat.
    Würde das also folgendermaßen machen:
    if(strcmp(cmd, "/givesfpass", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast nicht die Rechte!");
    new pID,sendername[MAX_PLAYER_NAME],giveplayer[MAX_PLAYER_NAME];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1," /givesfpass [playerid / Name]");
    if(IsPlayerConnected(pID))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(pID, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "Sie haben %s den Führerschein gegeben.",giveplayer); //hier giveplayer anstatt pID
    SendClientMessage(playerid, -1, string);
    format(string, sizeof(string), "Admin %s hat ihnen den Führerschein gegeben.",sendername);
    SendClientMessage(pID, -1, string); //hier pID anstatt giveplayer
    PlayerInfo[pID][pSFPass] = 1;
    return 1;
    }
    return 1;
    }

  • Fehler von mir, dass unten im Script einfügen:
    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;
    }