Jemand hat den Server betreten / verlassen| Simples System

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 Leute.


    Heute möchte ich ihnen gerne zeigen, dass wen ein Spieler den Server betretet, wird bei allen anderen Spieler angezeigt wer den Server betreten hat. Es ist ganz Simple.
    Ich werde es euch einfach mal zeigen wie dies funktioniert.


    Zuerst gehen wir zu
    public OnPlayerConnect(playerid)
    {
    return 1;
    }


    Dort erstellen wir einen neuen String mit 128 Zeichen.
    Dies geht folgender maßen:


    public OnPlayerConnect(playerid)
    {
    new string[128];
    return 1;
    }


    Dann erstellen wir uns ganz unten im Script ein stock damit wir den Spielernamen auslesen können.
    Das geht folgender maßen:

    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    Dann müssen wir unseren String den wir erstellt haben, formatieren & dort reinschreiben dass ein Spieler den Server betritt..
    Das geht Folgender maßen:


    format(string,sizeof(string),"[SPIELERINFO] Spieler %s hat den Server betreten",SpielerName(playerid));


    Nun haben wir "string" formatiert.
    das " %s " steht für den SpielerNamen, er wird ausgelesen wenn wir hinter "[SPIELERINFO] Spieler %s hat den Server betreten" "SpielerName(playerid) schreiben. Weil wir den Stock erstellt haben.


    Nun müssen wir noch machen, dass alle die Nachricht bekommen das der Server betreten wird.
    Wir müssen ein SendClientMessageToAll unter dem format machen. Dann wird dort nicht eingetragen "%s hat den Server betreten", sondern einfach nur "string" weil wir oben ja schon einen String erstellt haben und ihn formatiert haben.
    Sieht dann so aus:

    SendClientMessageToAll(0x00A91EFF,string);


    Wenn wir dass alles gemacht haben, müsste dass dan so aussehen


    public OnPlayerConnect(playerid)
    {
    new string[128];
    format(string,sizeof(string),"[SPIELERINFO]Spieler %s hat den Server betreten",SpielerName(playerid));
    SendClientMessageToAll(0x00A91EFF,string);
    }


    Nun würde InGame stehen dass jemand den Server betreten hat.
    _____________________________________________________________________________
    Jetzt kommen wir zum Server Verlassen.


    Wir gehen einfach wieder zu
    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    Wir machen einfach genau das gleich wie oben aber müssen den Stock nicht wieder erstellen. Da wir ihn ja schon haben.
    Einfach dass kopieren mit dem "Betreten" und dann bei OnPlayerDissconect einfügen.
    Sieht dann so aus:

    public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    format(string,sizeof(string),"[SPIELERINFO]Spieler %s hat den Server verlassen",SpielerName(playerid));
    SendClientMessageToAll(0xFF0000FF,string);
    }



    Nun würde auch Ingame stehen wenn jemand den Server verlässt.
    _____________________________________________________________________________________
    Ich Hoffe mein Tutorial hat einigen geholfen die sich nicht so auskennen.
    Bitte bewerten ;)


    Mit Freundlichen Grüßen, TheFreak

    Mit freundlichen Grüßen
    deniboy9

  • Login Nachicht das jemand Joint
    public OnPlayerConnect(playerid)
    {
    new pName[MAX_PLAYER_NAME];
    new string[48];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "[JOIN]%s hat den Server Betreten.", pName);
    SendClientMessageToAll(0x33AAFFFF, string);
    return 1:
    }


    Das jemand den server verlassen hat
    public OnPlayerDisconnect(playerid, reason)
    {
    new pName[MAX_PLAYER_NAME];
    new string[56];
    GetPlayerName(playerid, pName, sizeof(pName));


    switch(reason)
    {
    case 0: format(string, sizeof(string), "%s hat hat die Verbindung verloren. (Netzwerk Timeout)", pName);
    case 1: format(string, sizeof(string), "%s hat den Server verlassen.", pName);
    case 2: format(string, sizeof(string), "%s musste den Server verlassen. (Kick/ban)", pName);
    }


    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;


    }


    Ich finde das so einfacher

  • hansi es geht einfacher :D


    public OnPlayerConnect(playerid)
    {
    new string[48];
    GetPlayerName(playerid, string, sizeof(string));
    format(string, sizeof(string), "[JOIN]%s hat den Server Betreten.", string);
    SendClientMessageToAll(0x33AAFFFF, string);
    return 1:
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • bei mir im script geht es darum so ordentlich wie möglich


    ich will nich so viele stocks haben aber jeder macht es anders ist aber gut erklärt


    8/10
    Da es für mich zu umständlich ist

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Finde es gut erklärt ich gebe keine Punkte verteilung ab. Mach weiter so man kann von lernen :love:

  • ich suche ein tut wo erklärt wird wie man autohäueser serstellt nicht dynamisch

  • naja wers braucht^^


    Finde es jetzt nicht soooo sinnvoll, aber gut,ist vllt. nur für mich so :)