Erste Scriptversuche, error 012: invalid function call, not a valid address

  • Erste Scriptversuche, error 012: invalid function call, not a valid address

    Also meine Errors sind Folgende:
    LyL.pwn(694) : error 012: invalid function call, not a valid address
    LyL.pwn(694) : warning 215: expression has no effect
    LyL.pwn(694) : error 001: expected token: ";", but found ")"
    LyL.pwn(694) : error 029: invalid expression, assumed zero
    LyL.pwn(694) : fatal error 107: too many error messages on one line

    Zeile 694 ist folgende:
    [pwn] giveplayerid = ReturnUser(tmp);[/pwn]

    Dies ist der Scriptpart
    [pwn]
    //----------------------------------[Kick]------------------------------------------------
    if(strcmp(cmdtext, "/kick", true) == 0)
    {
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "/kick [playerid] [Grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    new targetlevel = SpielerInfo[giveplayerid][pAdmin];
    new playerlevel = SpielerInfo[playerid][pAdmin];
    if(targetlevel > playerlevel) return SendClientMessage(playerid, COLOR_GREY, "Du kannst diesen Spieler nicht kicken, da er ein höheres Adminlevel hat als du!");
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /kick [playerid] [Grund]");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "Admcmdtext: %s wurde von %s gekickt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    KickLog(string);
    format(string, sizeof(string), "Admcmdtext: %s wurde von %s gekickt, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    Kick(giveplayerid);
    return 1;
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

    [/pwn]

    Würde mich freuen wenn mir einer helfen kann das zu lösen.
  • zum einen
    Warum ist ein GF Script so Lang?
    Antwort es hat viele überflüssige sachen drin und es verwendet strcmp
    ich bekomme ein /ban befehl mit 10zeilen fertig
    du brauchst aber schon 10zeilen bis du denn spieler hast
    ausserdem ist ocmd nicht so systemlastig wie zb. strcmp
    Vincent kann mich gerne belehren wenn ich da Falsch liege
    und vielen mehr

    also vertrau mir und TutNichts Aka. Vincent lieber wir haben viele Kenntnisse :D

    hab hier noch zu verdeutung ein /ban befehl gemacht

    und der hat 10Zeilen
    [pwn]ocmd:ban(playerid,params[])
    {
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, 0xFF0000AA, "Du bist nicht dazu berechtigt");
    new PID,reason[50],string[128];
    if(sscanf(params,"ds",PID,reason))return SendClientMessage(playerid, 0xFF0000AA, "/ban <PID> <Reason>");
    format(string,128,"%s hat %s gebannt Grund: %s",SpielerName(playerid),SpielerName(PID),reason);
    SendClientMessageToAll(COLOR_RED,string);
    Ban(PID);
    return 1;
    }[/pwn]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von diavolonew ()