Servertag script?

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,


    Ich möchte, das alle meine Teammitglieder später ein Servertag haben... Also sie geben im SAMP ihren normalen namen ein z.B. Peter. Wenn sie dann auf dem Server joinen, gibt der Server ihnen automatisch den Tag [Test] vor.. und das immer wieder..


    Ist das möglich, ein FS zu erstellen? Müsste doch gehen mit Admin Abfrage oder nicht?


    Ich benutze ein MySQL script.


    //e: Ich habe das beim pRP script entdeckt. Währe gut, wenn das fast genau so ist...

    Einmal editiert, zuletzt von LuxCode ()

    • Offizieller Beitrag

    Das ist doch nichts aufwändiges.
    http://wiki.sa-mp.com/wiki/SetPlayerName
    Den Namen + Tag formatieren und dann den Namen setzen.


    new string[MAX_PLAYER_NAME + 5] //5 für den Tag
    format(string, sizeof string, "[GTA]%s", GetPlayerName(playerid)); //GetPlayerName() sollte vorhanden sein, gibt es auch im Forum.
    SetPlayerName(playerid, string); //FERTIG, die Abfrage muss du dann selber hinzufügen

  • Möglichkeit 1:
    Bau in dein Hauptscript folgende Funktion ein:
    forward RF_GetPlayerAdminLevel(playerid);
    public RF_GetPlayerAdminLevel(playerid)
    {
    return PlayerInfo[playerid][Admin]; //Anpassen je nachdem was für ein Script du benutzt
    }


    Jetzt kannst du bei OnPlayerConnect (evtl. OnPlayerSpawn) im Filterscript folgendes schreiben:
    if(CallRemoteFunction("RF_GetPlayerAdminLevel","i",playerid)>0)
    {
    //alles weitere - Nametag vergeben etc.
    }



    Möglichkeit 2:
    Du verbindest dich im Filterscript mit dem MySQL Server bei OnFilterScriptInit und liest das Adminlevel aus:

    SQL
    SELECT Adminlevel FROM tabellenname WHERE Name = 'Name'



    Möglichkeit 3:
    Du erstellst eine Whitelist, also eine Datei, wo alle Admins drinstehen.
    Beim Connecten auf den Server wird überporüft ob der Name des Spielers in dieser Datei steht,
    wenn ja, bekommt er einen Nametag.
    Dazu brauchst du allerdings noch Befehle wie /add un /delete, oder du machst das manuell.

  • Möglichkeit 3:
    Du erstellst eine Whitelist, also eine Datei, wo alle Admins drinstehen.
    Beim Connecten auf den Server wird überporüft ob der Name des Spielers in dieser Datei steht,
    wenn ja, bekommt er einen Nametag.
    Dazu brauchst du allerdings noch Befehle wie /add un /delete, oder du machst das manuell.


    Kannst du mir das genauer erklären? Ich bin jetzt nicht der voll Profi in pawn ^^

  • ich habe das jetzt so unter OnPlayerConnect gepackt:


    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    new string[MAX_PLAYER_NAME + 5] //5 für den Tag
    format(string, sizeof string, "[dURP]%s", GetPlayerName(playerid)); //GetPlayerName() sollte vorhanden sein, gibt es auch im Forum.
    SetPlayerName(playerid, string); //FERTIG, die Abfrage muss du dann selber hinzufügen
    }


    Ich weiß jetzt nicht ob das richtig ist... Aber jedenfalls bekomme ich 1 Error und 2 warnings.



    Zeile (5830) : Erwartete Zeichen ";", aber gefunden "[Absatz]"


    Zeile (5830) : Die Anzahl der Parameter ist falsch


    Zeile (5830) : Die Anzahl der Parameter ist falsch


    und die sind alle hier in der Zeile:


    [pwn=5830]format(string, sizeof string, "[dURP]%s", GetPlayerName(playerid)); //GetPlayerName() sollte vorhanden sein, gibt es auch im Forum.[/pwn]

  • Der Error ist weg, aber die 2 Warnings sind immer noch da..


    Zeile (6716) : Die Anzahl der Parameter ist falsch
    Zeile (6716) : Die Anzahl der Parameter ist falsch


    und das ist die Zeile


    format(string, sizeof string, "[dURP]%s", GetPlayerName(playerid));


    Ich habe die ganze Abfrage ganz zum schluss des publics OnPlayerConnect gepackt.



    Hab jetzt mal getestet. Es wird leider kein Tag vor dem name gemacht... Muss das vielleicht nicht in Public OnPlayerConnect?

    Einmal editiert, zuletzt von LuxCode ()

  • Also ich habe es in der Suche eingegeben und es erscheint auch in manchen publics usw... Also denke ich mal das diese funktion vorhanden ist..


    Hab hier was gefunden:
    stock GetName(playerid)
    {
    new getthename[MAX_PLAYER_NAME];
    GetPlayerName(playerid,getthename,sizeof(getthename));
    return getthename;
    }


    und auch unter public onplayerconnect ist es auch mehrmals drinne mit den npc's


    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "bot_bsn", true))
    {
    gPlayerLogged[playerid] = 1;
    }
    }


    Die 2 Warnings sind übrigens immer noch da

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich habe es jetzt hingekriegt! Musste es unter dem Dialog machen, sobald man Einloggen geklickt hat. Es wird jetzt jedenfalls angezeigt!


    Vielen dank für eure Hilfe.

    Einmal editiert, zuletzt von LuxCode ()