Error´s im script(Für mich nicht erklärbar)...

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
  • Moin,
    die Error´s:
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(791) : error 029: invalid expression, assumed zero
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(791) : warning 215: expression has no effect
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(791) : error 001: expected token: ";", but found "forward"
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(797) : error 017: undefined symbol "cmdtext"
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(798) : error 017: undefined symbol "cmdtext"
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(798) : error 029: invalid expression, assumed zero
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(798) : error 029: invalid expression, assumed zero
    C:\Users\Sinan\Desktop\SAMP SERVER2\gamemodes\Towelie.pwn(798) : fatal error 107: too many error messages on one line


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



    7 Errors.


    Meine Zeilen:
    //----------------------------------[AdminChat]-----------------------------------------------
    ocmd:admin(playerid, params[]) || ocmd:a(playerid, params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new string[100], sendername[MAX_PLAYER_NAME], idx;
    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, GELB, "NUTZE: (/a)dmin [admin chat]");
    return 1;
    }
    if(sSpieler[playerid][Adminlevel] >= 1)
    {
    format(string, sizeof(string), "*%d Admin %s[%d]: %s", sSpieler[playerid][Adminlevel], sendername, playerid, result);
    }
    else if(sSpieler[playerid][pSupporter] >= 1)
    {
    format(string, sizeof(string), "*%d Supporter %s[%d]: %s", sSpieler[playerid][pSupporter], sendername, playerid, result);
    }
    else if(sSpieler[playerid][pSupporter] == 6)
    {
    format(string, sizeof(string), "*%d Admin %s[%d]: %s", sSpieler[playerid][pSupporter], sendername, playerid, result);
    }


    else return 1;
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(sSpieler[i][pSupporter] >= 1 || sSpieler[i][Adminlevel] >= 1)
    {
    SendClientMessage(i,GELB,string);
    }
    }
    }
    }
    return 1;
    }

  • Nun wenn du dir die Definition von ocmd ansiehst, siehst du folgendes:



    #define ocmd:%1(%2) forward ocmd_%1(%2);\[*]
    public ocmd_%1(%2)


    Und nach deiner Schreibweise mit


    ocmd:admin(playerid, params[]) || ocmd:a(playerid, params[])



    kompiliert er dann folgendes:



    forward ocmd_admin(playerid, params[]);
    public ocmd_admin(playerid, params[]] ||
    forward ocmd_a(playerid, params[]);
    public ocmd_a(playerid, params[])


    Erst ab hier beginnt dann dein Code mit den { und }. Aus diesem Grund ersetze du einfach deine ocmd Sache mit:


    ocmd:a(playerid,params[]) return CallLocalFunction("ocmdadmin", "is", playerid, params);


    ocmd:admin(playerid,params[])
    //Dein restlicher Code mit { und } hier.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Das geht ganz einfach nicht,
    Da du einen stringcompare befehl in ocmd gehauen hast.
    Strcmp vergleicht einfach zwei strings miteinander.
    Bei OnPlayerCommandtext wird der cmdtext meist mit einem befehl verglichen.
    Sind diese Identisch, so passiert ....


    Außerdem funktioniert das mit dem || bei ocmd nicht.


    Außerdem:
    Bist du dir bewusst was du da abfragst-.- ??!!!
    Wie kann man den einen Befehl eingeben wenn man ueberhaupt nicht connected ist.
    Diese abfrage ist bei paramterbefehlen wie z.B kicken noetig um abzufragen ob das ziel ueberhaupt online ist,
    Aber so ....



    Außerdem:
    Was soll dass den mit dem idx zeugs da:
    Bei Paramtern einfach sscanf nutzen.
    Aber der Befehl hat noch nicht mal Parameter.


    ?!