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
  • Also,


    das hier ist das erste was ich so richtig programmiert habe, also bitte nicht den Kopf abreißen, den brauch ich noch.


    Durch das Aktivieren dieses Scriptes, wird beim normalen Schreiben der Text nicht mehr überall angezeigt sondern nur in einem bestimmten Radius.
    Um etwas zu schreiben, dass man überall sieht, muss man den OOC benutzen. Also:

    Code
    /o Hallo


    Das mit dem /o geht aber auch nur dann, wenn der OOC-Chat aktiviert ist. Dies kann man mit RCON-Rechten mit dem Befehl /ooc tun.
    Der OOC ist standartmäßig beim Scriptstart ausgeschaltet.


    Die ganze Sache ist jetzt nichts großes, ist ja auch das erste was ich gemacht habe. Es hat gerade mal 100 Zeilen (und das nicht mal geschätzt :D).


    Copyright beim OnFilterScriptInit könnt ihr rausnehmen, wäre aber schön wenn es drin bleibt. Für das Copyright am Scriptanfang gilt das selbe.



    Pastebin: Klick


    Lob und Kritik ist erwünscht, aber bitte beachten, dass ich Anfänger bin.


    Mit freundlichen Grüßen,
    946ben


    //Update: kleine Änderung vorgenommen

    Einmal editiert, zuletzt von Ternary ()

  • Zitat


    for(new player = 0; player <= MAX_PLAYERS; player++)
    {
    // ...
    }


    MAX_PLAYER ist als 500 definiert, die Spielerids starten bei 0. D.h. die höchstmögliche ID ist 499.
    Daher solltest du die Schleife ändern:
    for(new i=0; i<MAX_PLAYERS; i++)


    Ist zwar nur ne Kleinigkeit, aber man sollte trotzdem darauf achten ;)


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Mach das ma lieber so:
    Erklärung ist dabei
    public OnPlayerText(playerid, text[])
    {
    new sender[MAX_PLAYER_NAME], Float:x, Float:y, Float:z; // mehr als 128 zeichen sind Schwachsinn da SA:MP nur 128 Zeichen im Chat unterstützt außerdem musst du nicht noch einen String definieren
    GetPlayerName(playerid, sender, sizeof(sender));
    GetPlayerPos(playerid, x, y, z);
    format(text, sizeof(text), "%s sagt: %s", sender, text); // du kannst auch den string einfach "überschreiben"
    for(new player=0; player<MAX_PLAYERS; player++)
    {
    if(IsPlayerConnected(player))
    {
    if(IsPlayerInRangeOfPoint(player,20.0,x,y,z))// nutze hier blos nicht playerid sonst kommt der Text bei jeden an, selbst wenn er irgendwo in LV Steht. Der Grund ist: Es wird geprüft ob der Spieler der den Text gesendet hat an seiner eigenen Position ist. Es soll aber geprüft werden ob ein anderer Spieler an derPosition ist.
    {
    SendClientMessage(player,COLOR_GREY,text);
    }
    }
    }
    return 0;
    }


    Zum Script selber
    es ist zwar ne nette kleine Idee, benötigt aber nicht umbedingt jeder


    Dafür das du ein Anfänger bist bekommst du von mir 5/10 Punkten

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

    Margarete Stokowski