Beiträge von 4#Future

    Das hängt sicherlich mit der Funktion OnPlayerStreamIn
    zusammen. So ist es ja auch in der Wiki beschrieben.


    Wie man das Problem lösen kann, weiß ich nun allerdings
    auch nicht.


    Eine Idee wäre noch die folgende:
    if(strcmp(cmd, "/maske", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(mask[playerid] == 0)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {
    SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    return 1;
    }
    }

    if(mask[playerid] == 1)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {
    SendClientMessage(playerid, COLOR_WHITE, " Du hast deine Maske abgesetzt!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s nimmt seine Maske ab!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    return 1;
    }
    }
    }
    return 1;
    }
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(mask[playerid] == 1)
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, 0);
    }
    else
    {
    ShowPlayerNameTagForPlayer(forplayerid, playerid, 1);
    }
    }
    Ich denke so müsste es eigentlich funktionieren.


    Probiere es bitte mal genau so!

    Du musst das jetzt genau so einfügen, wie ich's Dir schreibe.


    if(strcmp(cmd, "/maske", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(mask[playerid] == 0)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerNameTagForPlayer(i, playerid, false);
    }
    }

    SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    return 1;
    }
    }

    if(mask[playerid] == 1)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerNameTagForPlayer(i, playerid, true);
    }
    }


    SendClientMessage(playerid, COLOR_WHITE, " Du hast deine Maske abgesetzt!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s nimmt seine Maske ab!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    return 1;
    }
    }
    }
    return 1;
    }

    In Ordnung, Dani.


    Dann füge in der Funktion OnGameModeInit bitte
    mal diese Funktion ein, an irgend eine Stelle innerhalb der Funktion.


    ShowNameTags(1);
    Dann werden schonmal definitiv alle Spielernamen angezeigt.

    Auch nach der ersten Funktion Klammern setzen.


    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    return 1;
    }


    public Atomic() ---------------------
    {
    if(AtomicStatus == 0) return 1;
    if(AtomicStatus == 1)
    {
    AtomicStatus = 2;

    Hey Dani,


    schau mal in Dein Script und suche mal bitte
    folgendes: ShowNameTage


    Wenn Du die Funktion findest, sag mir mal,
    ob diese mit 1 oder 0 definiert ist.


    Diese ist dafür verantwortlich, dass die Spielernamen
    angezeigt werden, allerdings nur global bedingt.

    @Everest


    Du hast es bei Dir im Script eben mit einer Reichweiten-
    regulierung gelöst, Dani jedoch möchte den Namen
    offenbar für alle Spieler ausblenden.


    Daher auch die Schleife, die alle Spieler "anspricht".



    Freundliche Grüße


    4#Future | Fake - Philip

    Hey Danili!


    Ich habe es mal korigiert.
    Scheinbar waren kleinere Fehler drin.

    Probier es mal folgendermaßen, bitte:


    if(strcmp(cmd, "/maske", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(mask[playerid] == 0)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerNameTagForPlayer(i, playerid, false);
    }
    }

    SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    return 1;
    }
    }

    if(mask[playerid] == 1)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerNameTagForPlayer(i, playerid, true);
    }
    }


    SendClientMessage(playerid, COLOR_WHITE, " Du hast deine Maske abgesetzt!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s nimmt seine Maske ab!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    return 1;
    }
    }
    }
    return 1;
    }


    Freundliche Grüße


    4#Future | Fake - Philip

    Guten Abend!


    Die Klammern, die Funktionen schließen, also { und },
    habe im "Case" überhaupt nichts verloren.


    Einfach { und } entfernen und es klappt.


    case pickup1: SetPlayerPos(playerid,-1983.1892,137.7320,27.6875);

    Freundliche Grüße


    4#Future | Fake - Philip




    // EDIT


    sonic


    Du willst mich heute Nacht wohl fertig machen? ^^
    Du bist nur schneller, weil ich meinen Text schön formatiere :D

    Zitat

    4#Future: Ganz dumme Frage an dich: Was habe ich oben gepostet


    Ja, ich merk's schon.


    Während Du antwortest, schreibe ich auch meine Antwort.
    Da überschneiden sich manche Fakten eben.

    Nachdem überprüft wurde, dass die Variable
    kein Text ist, kannst Du sie nun einfach verwenden.


    Quasi:


    SpielerInfo[playerid][sAlter] = inputtext;


    oder nochmal sicherheitshalber


    SpielerInfo[playerid][sAlter] = strval(inputtext);



    if(response)
    {
    if(strval(inputtext) != 0)
    {
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"{FFFFFF}Überschrifft","{FFFFFF}Nun sind wir beim Letzen Schritt angekommen!\nGebe biite nun dein Alter an!\nz.B. {FF0000}24","Fertig","");
    }


    SpielerInfo[playerid][sAlter] = inputtext;
    }