OnPlayerText Text 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
  • Hey habe 2 -Fragen:
    1 Wenn ich normal schreibe sehe ich das doppelt wenn ein spieler in der nähe ist wenn ich aus der range von 20 bin sehe ich es normal bitte um hilfe .
    2 Wie kann ich das ausstellen ,dass jeder mein text den ich schreibe sieht ?


    public OnPlayerText(playerid, text[])
    {
    new Float: pos[3];GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    new rad = 20;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new str[128];
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i, rad, pos[0], pos[1], pos[2])) continue;
    format(str,sizeof(str),"%s : %s",SpielerName(playerid),text);
    SendClientMessage(playerid,0xDCDCDCFF,str);
    }
    return 1;
    }

  • public OnPlayerText(playerid, text[])
    {
    new Float: pos[3];GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    new rad = 20;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new str[128];
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i, rad, pos[0], pos[1], pos[2])) continue;
    format(str,sizeof(str),"%s : %s",SpielerName(playerid),text);
    SendClientMessage(i,0xDCDCDCFF,str);
    }
    return 0; //Verhindert, dass die Nachricht weitergegeben wird.
    }


    Montero: Das verkleinert aber auch die Distanz auf die man einen Spieler auf der Map sieht, je nach dem ob er das will. (http://wiki.sa-mp.com/wiki/LimitGlobalChatRadius)

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()


  • Danke ich habe noch ne Frage undzwar wenn ich SetPlayerColor mache wird man unten in der Map angezeigt wie kann ich das wegmachen?


  • Anmerkung zu der Notiz:
    Verhindert aber auch,dass die Nachricht mehr als 1 Spieler empfangen wird.
    Außerdem sollte bei SendClientMessage i hin,nicht playerid. So krieg ja nur ich meine eigenen Nachrichten zu lesen aber nie die,die andere Spieler geschrieben haben.


    Bonustipp ;)

    Spoiler anzeigen
    Variable str außerhalb der Schleife deklarieren und dort auch einmalig formatieren.

  • Sehr gute lösung in einer schleife ein return zu nutzen damit die nachicht auch nur ein spieler bekommt...


    Da vertut sich einmal Jeffry... :whistling:


    Schreis so:


    public OnPlayerText(playerid, text[])
    {
    new Float: pos[3], rad = 20, i, str[128];
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]),format(str,sizeof(str),"%s : %s",SpielerName(playerid),text);
    for(; i < MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, rad, pos[0], pos[1], pos[2])) continue;
    SendClientMessage(i,0xDCDCDCFF,str);
    }
    return 0;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Gut danke habe aber noch eine Frage , die lautet wenn ich ShowPlayerMarkers(0); unter OneGameModeInit mache dann seh ich kein Marker mehr bei /adienst ( wollte aber nur , dass man die spieler auf der minimap nichtmehr seht )

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beavis: Goldkiller:
    Ewwgz, natürlich ... ich war wohl gedanklich schon beim DFB Pokal. :wacko:
    Hab meinen Post geändert, Danke.


    derpr0: http://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayer Wenn du es nur für bestimmte Spieler bei bestimmten Befehlen ausschalten willst. Wobei mir nicht ganz klar wurde, was genau du meinst, die Grammatik in deinem Satz ist etwas wirr.


    Jo danke hatte meinen Satz auch edietiert :S