Servertag beim Connecten bekommen.

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 Breadfish :)


    Ich wollte gerne eine Funktion haben, das die Teammitglieder beim Connecten einen Servertag/Clantag bekommen.
    Also ich habe beim SA:MP Launcher den Namen Horizon eingetragen.
    Aber wenn ich Connecte soll ich ein Tag bekommen, also z.b.: [BLA]Horizon oder so.


    Könnte mir jemand ein Codeschnippsel oder so zeigen/erstellen?


    Mit freundlichen Grüßen,
    Horizon

  • Oder ich könnte mir das einfach machen und ein Filterscript schreiben mit Befehlen für jedes Teammitglied der den Namen mit SetPlayerName ändert :D
    Dann muss ich nicht immer den Namen ändern im SAMP Launcher, wenn ich auf anderen Server war. :D


    Aber danke schonmal, ich werde es erst mit Strings etc. versuchen.

  • Oder ich könnte mir das einfach machen und ein Filterscript schreiben mit Befehlen für jedes Teammitglied der den Namen mit SetPlayerName ändert :D
    Dann muss ich nicht immer den Namen ändern im SAMP Launcher, wenn ich auf anderen Server war. :D


    Aber danke schonmal, ich werde es erst mit Strings etc. versuchen.


    Dann musst du aber auch seine Datei/Datenbank eintrag neuschreiben bzw. aktualisieren.
    Mach einfach eine Admin Abfrage unter OnPlayerText + String oder wenn du den Namen wirklich ändern willst, dann SetPlayerName, dann muss er sich aber mit dem neuen Namen nach dem aktualisieren der Dateien auch so einloggen.

    KleineHilfe 2.0

  • Oben einen String erstellen, für den echten Namen:

    new RealName[MAX_PLAYERS][MAX_PLAYER_NAME];


    Dann setten wir den Namen und speichern den alten:

    new NewName[34];
    format(RealName[playerid],MAX_PLAYER_NAME,"%s",PlayerName(playerid)); //Spielername muss geändert werden, bzw angepasst werden auf einen Stock von eurem Script
    format(NewName,sizeof(NewName),"[BLA]%s",RealName[playerid]);
    SetPlayerName(playerid,NewName);


    Bei dem Disconecten setzen wir den Namen wieder zurück z.b. auf Horizon

    SetPlayerName(playerid,RealName[playerid]);
    //DANN ERST SAVEPLAYER



    WICHTIG:
    Du musst immer vor dem Speichern den Namen Zürcksetzen und dann wieder setten, oder halt die Daten auf RealName Speicher lassen.


    BSP:

    stock SavePlayer(playerid)
    {
    new NewName[MAX_PLAYER_NAME+5];
    SetPlayerName(playerid,RealName[playerid]);
    //Speichern
    format(NewName,sizeof(NewName),"[BLA]%s",RealName[playerid]);
    SetPlayerName(playerid,NewName);
    }


    Falls etwas nicht geht, tut mir leid, melde dich dann nochmal, habe es kurz geschrieben.


  • Oder beim speichern direkt den richtigen Namen nehmen?
    Wofür den Namen umsetzen?


    Außerdem bringt MAX_PLAYER_NAME+5 herzlich wenig, da MAX_PLAYER_NAME maximal ist somit kann man nur einen normalen Namen ändern der MAX_PLAYER_NAME-5 ist


    Gruß

    ik bin der vito c:

  • @Dark.Shadow Ich verstehe die erste aussage nicht, wenn ich einen Clan beitrette und mein Name ist Metro, dann ist mein Name dann halt [LoR]Metro.
    Aber [LoR]Metro existiert nicht in der DB, also muss ich ihn umsetten auf Metro, oder den String RealName von mir nutzen.
    Zu der 2ten Aussage, tut mir leid, habe ich nicht gewusst :/, naja dann muss man eben 34 hinschreiben.
    Danke fürs korrigieren.

  • @Dark.Shadow Ich verstehe die erste aussage nicht, wenn ich einen Clan beitrette und mein Name ist Metro, dann ist mein Name dann halt [LoR]Metro.
    Aber [LoR]Metro existiert nicht in der DB, also muss ich ihn umsetten auf Metro, oder den String RealName von mir nutzen.
    Zu der 2ten Aussage, tut mir leid, habe ich nicht gewusst :/, naja dann muss man eben 34 hinschreiben.
    Danke fürs korrigieren.


    Namenlänge -> 24 ^^


    Das heißt ein Tag [LOR] können nur Spieler erhalten, deren Name höchstens 19 Zeichen lang ist.


    Gemeint war, dass du es komisch gemach hast


    Name setzen (ohne tag)
    speichern
    Name mit Tag setzen


    Warum den Namen für das speichern setzen wenn man direkt den formatierten String ohne Tag nehmen kann
    So war das gemeint


    Fürs verbessern bedanken: nichts zu danken dafür ist das Forum da ^^

    ik bin der vito c:

  • @Dark.Shadow



    ocmd:test(playerid,params[])
    {
    new string[MAX_PLAYER_NAME+5];
    SendClientMessageEx(playerid,COLOR_FADE1,"%i",sizeof(string));
    format(string,3,"");
    return 1;
    }


    ocmd:test2(playerid,params[])
    {
    new string[MAX_PLAYER_NAME];
    SendClientMessageEx(playerid,COLOR_FADE1,"%i",sizeof(string));
    format(string,3,"");
    return 1;
    }


    Test: 29
    Test2: 24


    Hatte ich jetzt doch recht? Bin leicht verwirrt? :/

  • Mehr oder weniger ^^


    Das ist richtig nur KANNST du die Grenze von SetPlayerName nicht verändern


    SetPlayerName fasst nur 24 Zeichen alles darüber wird abgeschnitten
    Also dann z.b. Dark.Shadow12345678901 (20 Zeichen) würde mit Tag zu
    [ABC]Dark.Shadow12345679 werden


    Das heißt der Rest wird abgeschnitten


    Sonst könntest du ja in samp einen Namen wie
    "HalliMeinNameIstDieterIchKommeAusKoeln" haben aber naja das ist halt zulang ^^


    Info
    http://wiki.sa-mp.com/wiki/Limits
    Unter Name Length


    Gruß

    ik bin der vito c: