Error Code warning 219: local variable "pName" shadows a variable at a preceding level und ein O chat?

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 habe noch ein Error Problem. Und zwar habe ich diesen Error und viele Warnings:


    .pwn(464) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(710) : error 017: undefined symbol "pName"
    .pwn(723) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(733) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1215) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1236) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1256) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1276) : warning 219: local variable "pName" shadows a variable at a preceding level


    Das kam nach dem ich dies eingefügt habe:


    Bei OnPlayerText:
    public OnPlayerText(playerid, text[])
    {
    new string[145];
    format(string, sizeof(string),"[%s] %s: %s",GetAdminRank(playerid),pName(playerid),nachricht);
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }


    stock GetAdminRank:
    stock GetAdminRank(playerid)
    {
    new rank[20];
    switch(pPlayer[playerid][pAdminlevel])
    {
    case 0: rank = "Spieler";
    case 1: rank = "Probe. Sup";
    case 2: rank = "Supporter";
    case 3: rank = "Moderator";
    case 4: rank = "Super Mod.";
    case 5: rank = "Administrator";
    case 6: rank = "Communityleiter";
    case 7: rank = "Servermanager";
    case 8: rank = "Projektleiter";
    default: rank = "Unbekannt";
    }
    return rank;
    }


    Und ich wollte fragen ob mir jemand helfen könnte einen /o chat zu scripten. ^^


    Hoffe jemand kann mir helfen. :D

  • Nein mehr nicht.


    Ich habe new pName[MAX_PLAYER_NAME]; mal dort eingefügt
    public OnPlayerText(playerid, text[])
    {
    new string[145];
    new pName[MAX_PLAYER_NAME];
    format(string, sizeof(string),"[%s] %s: %s",GetAdminRank(playerid),pName(playerid),nachricht);
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }


    Und bekomme jetzt diese ERRORS:


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

  • new pName[MAX_PLAYER_NAME];

    Mach mal:
    forward pName(playerid);
    public pName(playerid) {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
    }


    und ne pName entfernst du

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Habe es eingefügt und bekomme 2 errors und warnings:


    .pwn(145) : error 090: public functions may not return arrays (symbol "pName")
    .pwn(471) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(717) : error 017: undefined symbol "nachricht"
    .pwn(730) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(740) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1222) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1243) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1263) : warning 219: local variable "pName" shadows a variable at a preceding level
    .pwn(1283) : warning 219: local variable "pName" shadows a variable at a preceding level


    Habe auch new pName bei OnPlayerText entfernt.

  • public OnPlayerText(playerid, text[])
    {
    new string[145], UserName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, UserName, sizeof(UserName));
    format(string, sizeof(string),"[%s] %s: %s",GetAdminRank(playerid), UserName(playerid), nachricht);
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }


    warning 219: local variable "pName" shadows a variable at a preceding level.


    Bedeutet das pName schon verwendet wird, und daher nicht immer wieder verwendet werden kann.


    Außerdem hast du das bei OnPlayerText vergessen:


    GetPlayerName(playerid, UserName, sizeof(UserName));


    damit kannst du dir überhaupt erst den Namen vom Spieler holen.


    MfG DjNightcore. 8)

  • wie der Dj bereits gesagt hast kannst du pName dann nicht wiederverwenden. Aber musst dir einig werden ob pname eine Variable oder public sein soll ;)

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Habe es jetzt so:


    public OnPlayerText(playerid, text[])
    {
    new string[145], sName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sName, sizeof(sName));
    format(string, sizeof(string),"[%s] %s: %s",GetAdminRank(playerid),sName(playerid),nachricht);
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }


    Und bekomme noch errors:


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


    Und pName soll eine Variable sein.

  • Mach es so

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • Ahhh ich danke euch allen. Hat geklappt. :D Hab noch eine Frage und zwar weis ich nicht ganz wie ich einen /o chat machen kann.


    Oben ins Script:


    new OOC;


    Bei OnGameModeInit:


    OOC = 1;


    OCMD:
    ocmd:o(playerid, params[])
    {
    if(OOC == 1)
    {
    new OOCText[156], String[156], PlayerName[MAX_PLAYER_NAME];
    if(sscanf(params,"s", OOCText)) return SendClientMessage(playerid, DEINE FARBE, "Verwendung: /o [Dein Text]");
    GetPlayerName(PlayerName, sizeof(PlayerName));
    format(String, sizeof(String), "%s: %s", PlayerName, OOCText);
    SendClientMessageToAll(DEINE FARBE, String);
    }
    return 1;
    }


    ocmd:togooc(playerid, params[])
    {
    if(DEINE SPIELRVARIABLE >= ADMINLEVEL)
    {
    if(OOC == 1)
    {
    SendClientMessage(playerid, DEINE FARBE, "Du hast den OOC-Chat ausgeschaltet.");
    OOC = 0;
    }
    else
    {
    SendClientMessage(playerid, DEINE FARBE, "Du hast den OOC Chat angeschaltet");
    OOC = 1;
    }
    }
    return 1;
    }



    Müsste so eigentlich funktionieren. ;)


    DEINE FARBE musst du auch natürlich ersetzen!


    MfG DjNightcore. 8)


    //Edit fehler behoben.

  • DEINE SPIELERVARIABLE und ADMINLEVEL ersetzt du natürlich ;)


    Du kannst auch >= statt == schreiben damit alle die den ADMINLEVEL oder höher den Befehl benutzen können ;)

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.