Undefined Symbol

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, ich habe folgendes Problem..


    ocmd:ban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/ban [id] [grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    SetPVarInt(pID,"Baned",1);
    Kick(pID);
    return 1;
    }



    Dann kommt der Error: C:\Dokumente und Einstellungen\Romal\Desktop\samp\gamemodes\GermanReallife.pwn(459) : error 017: undefined symbol "isPlayerAnAdmin"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.



    Ich bitte um Hilfe!

  • Ich hab das hier geschrieben



    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    ocmd:kick(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/kick [id] [grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    Kick(pID);
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {








    //-------------------LSPD PORT-------------------------------------------------
    if(strcmp(cmdtext,"/port lspd",true)==0)
    {
    if(IsPlayerAdmin(playerid))
    {
    SetPlayerPos(playerid,1546.7122,-1667.9568,5.6493);
    SendClientMessage(playerid,0xF5FF00FF,"Du wurdest Teleportiert");
    }
    else
    {
    SendClientMessage(playerid,0xFF0005FF,"Du bist kein Admin");
    }
    return 1;
    }

  • So Junge, auch für dich nochmal, bitte EXAKT die Zeile angeben wo der Error drin kommt.
    Dann kann dir auch geholfen werden liegt bestimmt nicht an dem Adminding da.

    [color=#0000FF]



    Suche aktive Leute die Interesse haben ein Freeroam Projekt großzuziehen! Es wird noch alles gesucht!
    Besonders: Scripter für einen GM der besonderen Art , Mapper, Brainstormer & Gehilfen! Bei Interesse einfach melden!
    Info: Server, Webspace & WBB 3 + Lizenz vorhanden!

  • Du musst das I bei IsPlayerAdmin großschreiben sonst wird das nichts!

  • Zeig uns mal den stock für isPlayerAnAdmin . Denn irgendwie seh ich daraus das Tut Script von MrMonat



    Maddin is my Lord and Master :D
    Musel my one and only b0wm
    Bisafloah is the pokemon that pwns a lot of goddamn ponys.

  • Wtf ist Stock?
    Kannst nicht einfach Teamviewer kommen,
    und das schnell für mich machen? ^^
    InternetInk aka Benjamin>> Ich habe das reinkopiert, weil ich schon vorhin versucht habe selber zu schreiben, aber da gings auch nicht 8|

  • InternetInk aka Benjamin>> Ich habe das reinkopiert, weil ich schon vorhin versucht habe selber zu schreiben, aber da gings auch nicht 8|

    Nö. Du hast reinkopiert:


    IsPlayerAnAdmin



    InternetInk hat aber geschrieben:


    IsPlayerAdmin



    Das ist schon ein gewaltiger unterschied.



    Und klar stock...du kannst doch nicht etwas abfragen was nirgendwo definiert ist. Speicherst du denn im Account Ordner das Admin Level ab?



    Maddin is my Lord and Master :D
    Musel my one and only b0wm
    Bisafloah is the pokemon that pwns a lot of goddamn ponys.

  • Funktionen die mit stock erstellt wurden, geben keine Warnung aus falls sie nicht benutzt werden, z.B.


    Addiere(wert1,wert2)
    {
    new erg = wert1+wert2;
    return erg;
    }


    gibt eine Warnung aus das die Funktion nie genutzt wird,



    stock Addiere(wert1,wert2)
    {
    new erg = wert1+wert2;
    return erg;
    }


    nicht...


    Und du solltest Befehle nicht einfach kopieren sondern selbst versuchen zu scripten, denn was bringt es dir einen Befehl zu kopieren wenn du nicht verstehst wie er arbeitet?
    Du kannst ihn kaum/nicht bearbeiten geschweige denn einen eigenen erstellen...

  • Okay habe jetzt selber, es gescriptet, also habe es nachgeschrieben, aber es kommt immernoch:


    C:\Dokumente und Einstellungen\Romal\Desktop\samp\gamemod\GermanReallife.pwn(463) : error 017: undefined symbol "IsPlayerAnAdmin"
    Pawn compiler 3.2.3664
    Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Wo muss ich diese funktion nachschreiben? und wie?


    Oder Wie kann ich dann außer IsPlayerAnAdmin die funktion /kick erstellen?

  • Du weißt schon anhand des Namens dieser funktion was sie macht, "IsPlayerAnAdmin" > "IstSpielerEinAdmin"


    Da es sich dabei um eine Frage handelt vermute ich mal das als Rückgabewert (Grundwissen) Wahr (1) oder Falsch (0) zurückkommt
    Kombiniert man das würde das in etwa so aussehen:


    IsPlayerAnAdmin(playerid) Playerid als Parameter (auch wieder Grundwissen) wäre am sinnvollsten
    {
    if(Nun kommt der eigentliche Teil, hier kann vieles passieren , das if (Abfrage "Wenn" (Grundwissen) ) kann nun folgende Variationen haben:
    if(AdminLevel[playerid] == 1 || AdminLevel[playerid] == 2 || AdminLevel[playerid] == 1337)
    // AdminLevel jetzt ein BEISPIEL für den Namen der Variable die das AdminLevel des Spielers beinhaltet
    So würde die Abfrage Lauten, Wenn AL gleich 1 Oder ( || (Grundwissen) ) AL gleich 2 oder AL gleich 1337 dann...


    Eine Andere Möglichkeit wäre zu Fragen
    if(AdminLevel[playerid] > 0) Größer als Null was dann ja alles mit einschließt


    Aber auch sowas wäre denkbar wenn alles unter 1337 nicht als "Admin(istrator)" sondern als Moderator gilt
    if(AdminLevel[playerid] == 1337)


    Usw usw usw.
    {
    Ist die Abfrage Wahr kann auch Wahr zurück gegeben werden, mit
    return 1;
    }
    return 0; Hier wird, wenn die abfrage nicht stimmt einfach Falsch zurück gegeben
    }


    Und die Funktion ist beendet...
    Das heißt es handelt sich nichtmal um den Kick Befehl sondern nur um eine Funktion die etwas dafür Abfragt...
    Tjaja ist nicht so einfach :P


    //Edit
    Achja und den musste dann mit einer Abfrage in den Befehl bauen,
    if(IsPlayerAnAdmin(playerid) == 1) Wenn der Spieler ein Admin ist laut der Funktion, also Wahr (1) zurückgibt dann
    {
    Passiert der Restliche Befehl, wenn nicht , dann nicht

  • Ich check das irgendwie nicht :S xd kannst du nicht teamviewer kommen und mir das eben machen? Bitte ;(


    Nur ein Beispiel befehl also mit /kick, dann würde ich es checken

  • er gibt dir schon eine perfekte anleitung dann soll er noch in tv kommen.... da lernste überhaupt nix

  • Nä, wundert mich aber auch nicht das du es nicht verstehst.
    Immerhin ist Pawn eine höhere Programmiersprache und wenn du ernsthaft scripten willst dann musst du das was ich da jetzt geschrieben habe im Kopf können.
    Denn genau das ist das Logische Denken was man braucht um selbst Funktionen schreiben zu können...


    Die Entscheidung liegt bei dir, lernen und es irgendwann können oder es nicht lernen und ständig auf Fehler zu stoßen die du selbst nicht lösen kannst...


    Wie auch immer, wenn du es lernen willst dann kannst du hier im Forum hilfe erwarten, wenn nicht dann rate ich dir es lieber ganz sein zu lassen.
    Wie gesagt, es bringt dir nichts weil du nichts selbständig erstellen kannst...