Errors :(

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
  • Hey habe in meinem Script nen paar Errors : ;(


    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(215) : warning 209: function "OnPlayerText" should return a value
    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(234) : error 017: undefined symbol "SendAdminMessage"
    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : error 017: undefined symbol "pInfo"
    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : warning 215: expression has no effect
    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : error 001: expected token: ";", but found "]"
    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : error 029: invalid expression, assumed zero
    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : fatal error 107: too many error messages on one line


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



    5 Errors.


    das sind die Zeilen dazu :



    public OnPlayerText(playerid, text[])
    {
    if(AFK[playerid] == 1) // Abfrage ob er AFK ist wenn er schreiben möchte!
    {
    SendClientMessage(playerid, COLOR_RED, "Du kannst nicht schreiben, schreibe /back um zu schreiben!"); // Falls er AFK ist , ist er gemutet und kann erst schreiben wenn er /back macht!
    return 1;
    }
    }
    ocmd:sup(playerid,params[])
    {
    new text[256];
    if(sscanf(params,"s",text))
    {
    SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /sup [text]");
    }
    else
    {
    if(TicketAngenommen[playerid] == 0)
    {
    new pname[MAX_PLAYERS],save[512], string[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(save,sizeof save,"Tickets/%s.ini",pname);
    if(!dini_Exists(save) && TicketZeile[playerid] == 0) // Wenn noch kein Ticket existiert und auch die TicketZeile auf 0 ist.
    {
    new adminmeldung[128];
    format(adminmeldung, sizeof(adminmeldung), "%s hat ein Support-Ticket geschrieben", pname);
    SendAdminMessage(COLOR_YELLOW, adminmeldung);
    SupportTicket[playerid] = 1;
    TicketZeile[playerid] = 1;
    dini_Create(save);
    dini_Set(save,"Suptext",text);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast ein Ticket mit folgendem Text geöffnet:");
    format(string, sizeof(string), "%s", text);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Warte bis es ein Supporter annimmt!");
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Du kannst noch mit /sup 2 weitere Zeilen anhängen");
    return 1;
    }
    else if(TicketZeile[playerid] == 1) // Wenn die erste Zeile schon geschrieben wurde
    {
    new string2[128];
    dini_Set(save, "Suptext2",text);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
    format(string2, sizeof(string2), "%s", text);
    SendClientMessage(playerid, COLOR_YELLOW, string2);
    TicketZeile[playerid] = 2;
    return 1;
    }
    else if(TicketZeile[playerid] == 2) // Wenn bereits 2 Zeilen ausgefüllt sind
    {
    new string3[128];
    dini_Set(save, "Suptext3",text);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
    format(string3, sizeof(string3), "%s", text);
    SendClientMessage(playerid, COLOR_YELLOW, string3);
    TicketZeile[playerid] = 3;
    return 1;
    }
    else if(TicketZeile[playerid] == 3) // Wenn das Ticket bereits 3 Zeilen hat
    {
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Dein Ticket ist bereits randgefüllt!");
    return 1;
    }
    }
    if(TicketAngenommen[playerid] == 1) // Zum direkten Antworten per /sup , wenn das Ticket angenommen wurde.
    {
    new pID = DeinSupport[playerid];
    new antwort[128], antwort2[128], DerFragende[MAX_PLAYER_NAME], DerSup[MAX_PLAYER_NAME];
    GetPlayerName(playerid, DerFragende, sizeof (DerFragende));
    GetPlayerName(pID, DerSup, sizeof (DerSup));
    format(antwort, sizeof (antwort),"--> %s", text);
    SendClientMessage(playerid, COLOR_YELLOW, antwort);
    format(antwort2, sizeof (antwort2), "%s schrieb: %s", DerFragende, text);
    SendClientMessage(pID, COLOR_YELLOW, antwort2);
    }


    }
    return 1;
    }
    ocmd:taketicket(playerid,params[])
    {
    new pID;
    new string2[256], string[256], string3[256], string4[256],mitteilung[128] , DerPlayer[MAX_PLAYER_NAME], DerAdmin[MAX_PLAYER_NAME];
    if(sscanf(params,"u",pID)){
    return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /taketicket [id]");
    }
    new pname[MAX_PLAYERS],save[512];
    GetPlayerName(pID,pname,sizeof pname);
    format(save,sizeof save,"Tickets/%s.ini",pname);
    if(dini_Exists(save)) // Ob ein Ticket existiert! bzw. Datei-Abfrage
    {
    if(pInfo[playerid][admin] >= 1) // Ob der Spieler ein Supporter ist!
    {
    if(TicketAngenommen[pID] == 0)
    {
    string2 = dini_Get(save,"Suptext");
    string3 = dini_Get(save,"Suptext2");
    string4 = dini_Get(save,"Suptext3");
    GetPlayerName(pID, DerPlayer, sizeof(DerPlayer));
    GetPlayerName(playerid, DerAdmin, sizeof(DerAdmin));
    format(string, sizeof(string), "%s schrieb folgende Supportnachricht:", DerPlayer);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, string2);
    SendClientMessage(playerid, COLOR_YELLOW, string3);
    SendClientMessage(playerid, COLOR_YELLOW, string4);
    SendClientMessage(playerid, COLOR_YELLOW, "Du kannst per /aw [ID] antworten");
    format(mitteilung, sizeof(mitteilung), "[SUPPORT] %s hat dein Support Ticket geöffnet. Du kannst nun per /sup direkt mit ihm schreiben!",DerAdmin);
    SendClientMessage(pID, COLOR_YELLOW, mitteilung);
    DeinSupport[pID] = playerid; // Der persönliche Supporter wird gesetzt , um die Antworten an ihn weiterzuleiten
    TicketAngenommen[pID] = 1;
    }
    }
    }
    return 1;
    }


    Danke schonmal im Vorraus für dioe Hilfe


    mfg


    /edit PWN code nun^^

  • Änder das public OnPlayerText bei dir in folgendes:

    Diese Funktion ist nicht definiert, daher entfernen oder scripten.

    SendAdminMessage(COLOR_YELLOW, adminmeldung);

    Für den Rest habe ich keine Lust, weil du den PWN BB Code nicht nutzt, total unübersichtlich...

  • Ein paar Englisch-Grundkenntnisse solltest du haben, denn wenn du dir den Fehler durchliest, merkst du das die Meldung selber schon sagt was fehlt und was falsch ist. Aaaaalso:


    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(215) : warning 209: function "OnPlayerText" should return a value


    Auf Deutsch übersetzt: Die Funktion "OnPlayerText" sollte einen Wert zurückgeben. Wie können in Pawn Werte zurückgegeben werden in publics? Richtig, mit return. Also:


    public OnPlayerText(playerid, text[])
    {
    if(AFK[playerid] == 1) // Abfrage ob er AFK ist wenn er schreiben möchte!
    {
    SendClientMessage(playerid, COLOR_RED, "Du kannst nicht schreiben, schreibe /back um zu schreiben!"); // Falls er AFK ist , ist er gemutet und kann erst schreiben wenn er /back macht!
    return 1;
    }
    return 1; // <= hat gefehlt!
    }


    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(234) : error 017: undefined symbol "SendAdminMessage"


    Auf Deutsch: Undefiniertes Symbol "SendAdminMessage", was soviel heißt wie das er nicht weiß was SendAdminMessage ist. Du hast in deinem Script halt nirgends die Funktion SendAdminMessage. Benutz also SendClientMessage z.B.


    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : error 017: undefined symbol "pInfo"


    Selbes wie eben. pInfo kennt er nicht, warum benutzt du es dann? Wetten du hast Copy&Paste benutzt und gehofft, das es mal klappt? Das funktioniert so nicht, dein Script benutzt nunmal andere Variablen..


    C:\Users\Benedikt\Desktop\Selfmade Server\gamemodes\NewCityReallife.pwn(299) : error 001: expected token: ";", but found "]"


    Zu Deutsch: In dieser Zeile in deinem Script wird an einer bestimmten Stelle ein ";"-Zeichen erwartet, der Compiler findet aber das "]"-Zeichen.


    Soviel einfach mal zum Verständnis. Habe mir den Rest der Errors nicht angesehen, ich will aber das du verstehst was ich oben geschrieben habe, und jetzt versuche mal die Errors und Warnings wegzubekommen, auch die restlichen die ich hier nicht erklärt habe. Wenn du es nicht schaffst melde dich nochmal.


    ;)

  • public OnPlayerText(playerid, text[])
    {
    if(AFK[playerid] == 1) // Abfrage ob er AFK ist wenn er schreiben möchte!
    {
    SendClientMessage(playerid, COLOR_RED, "Du kannst nicht schreiben, schreibe /back um zu schreiben!"); // Falls er AFK ist , ist er gemutet und kann erst schreiben wenn er /back macht!
    return 1;
    }
    }
    ocmd:sup(playerid,params[])
    {
    new text[256];
    if(sscanf(params,"s",text))
    {
    SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /sup [text]");
    }
    else
    {
    if(TicketAngenommen[playerid] == 0)
    {
    new pname[MAX_PLAYERS],save[512], string[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(save,sizeof save,"Tickets/%s.ini",pname);
    if(!dini_Exists(save) && TicketZeile[playerid] == 0) // Wenn noch kein Ticket existiert und auch die TicketZeile auf 0 ist.
    {
    new adminmeldung[128];
    format(adminmeldung, sizeof(adminmeldung), "%s hat ein Support-Ticket geschrieben", pname);
    SendAdminMessage(COLOR_YELLOW, adminmeldung);
    SupportTicket[playerid] = 1;
    TicketZeile[playerid] = 1;
    dini_Create(save);
    dini_Set(save,"Suptext",text);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast ein Ticket mit folgendem Text geöffnet:");
    format(string, sizeof(string), "%s", text);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Warte bis es ein Supporter annimmt!");
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT]Du kannst noch mit /sup 2 weitere Zeilen anhängen");
    return 1;
    }
    else if(TicketZeile[playerid] == 1) // Wenn die erste Zeile schon geschrieben wurde
    {
    new string2[128];
    dini_Set(save, "Suptext2",text);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
    format(string2, sizeof(string2), "%s", text);
    SendClientMessage(playerid, COLOR_YELLOW, string2);
    TicketZeile[playerid] = 2;
    return 1;
    }
    else if(TicketZeile[playerid] == 2) // Wenn bereits 2 Zeilen ausgefüllt sind
    {
    new string3[128];
    dini_Set(save, "Suptext3",text);
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Du hast folgendes an dein Ticket anhängt:");
    format(string3, sizeof(string3), "%s", text);
    SendClientMessage(playerid, COLOR_YELLOW, string3);
    TicketZeile[playerid] = 3;
    return 1;
    }
    else if(TicketZeile[playerid] == 3) // Wenn das Ticket bereits 3 Zeilen hat
    {
    SendClientMessage(playerid, COLOR_YELLOW, "[SUPPORT] Dein Ticket ist bereits randgefüllt!");
    return 1;
    }
    }
    if(TicketAngenommen[playerid] == 1) // Zum direkten Antworten per /sup , wenn das Ticket angenommen wurde.
    {
    new pID = DeinSupport[playerid];
    new antwort[128], antwort2[128], DerFragende[MAX_PLAYER_NAME], DerSup[MAX_PLAYER_NAME];
    GetPlayerName(playerid, DerFragende, sizeof (DerFragende));
    GetPlayerName(pID, DerSup, sizeof (DerSup));
    format(antwort, sizeof (antwort),"--> %s", text);
    SendClientMessage(playerid, COLOR_YELLOW, antwort);
    format(antwort2, sizeof (antwort2), "%s schrieb: %s", DerFragende, text);
    SendClientMessage(pID, COLOR_YELLOW, antwort2);
    }


    }
    return 1;
    }
    ocmd:taketicket(playerid,params[])
    {
    new pID;
    new string2[256], string[256], string3[256], string4[256],mitteilung[128] , DerPlayer[MAX_PLAYER_NAME], DerAdmin[MAX_PLAYER_NAME];
    if(sscanf(params,"u",pID)){
    return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /taketicket [id]");
    }
    new pname[MAX_PLAYERS],save[512];
    GetPlayerName(pID,pname,sizeof pname);
    format(save,sizeof save,"Tickets/%s.ini",pname);
    if(dini_Exists(save)) // Ob ein Ticket existiert! bzw. Datei-Abfrage
    {
    if(pInfo[playerid][admin] >= 1) // Ob der Spieler ein Supporter ist!
    {
    if(TicketAngenommen[pID] == 0)
    {
    string2 = dini_Get(save,"Suptext");
    string3 = dini_Get(save,"Suptext2");
    string4 = dini_Get(save,"Suptext3");
    GetPlayerName(pID, DerPlayer, sizeof(DerPlayer));
    GetPlayerName(playerid, DerAdmin, sizeof(DerAdmin));
    format(string, sizeof(string), "%s schrieb folgende Supportnachricht:", DerPlayer);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, string2);
    SendClientMessage(playerid, COLOR_YELLOW, string3);
    SendClientMessage(playerid, COLOR_YELLOW, string4);
    SendClientMessage(playerid, COLOR_YELLOW, "Du kannst per /aw [ID] antworten");
    format(mitteilung, sizeof(mitteilung), "[SUPPORT] %s hat dein Support Ticket geöffnet. Du kannst nun per /sup direkt mit ihm schreiben!",DerAdmin);
    SendClientMessage(pID, COLOR_YELLOW, mitteilung);
    DeinSupport[pID] = playerid; // Der persönliche Supporter wird gesetzt , um die Antworten an ihn weiterzuleiten
    TicketAngenommen[pID] = 1;
    }
    }
    }
    return 1;
    }
    Hier vllt ist es jetzt übersichlicher.. Auch wenn das einrücken fehlt :D