Wie sendet man alle in der Umgebung eine Nachicht

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
  • Hi, leute, meine Frage wie kann man alle in der Umgebung eine nachicht, also so radius 100 würde ich sagen, wo man auch den name sieht der das geschreiben hat.
    ich ha keine ahnung wie man das macht.

  • oder:


    stock SendClientMessageInRange(playerid,msg[],farbe,range)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(IsPlayerInRangeOfPoint(i,range,x,y,z))
    {
    SendClientMessage(i,color,msg);
    }
    }


    return 1;
    }


    Nicht getestet ^^

  • Wie mach ich dann weiter, soo??


    If (IsPlayerInRangeOfPoint(...
    /*und dann*/ SendClientMesage(playerid, ...



    oder wie??

  • Verwende einfach das hier:


    stock SendClientMessageInRange(playerid,msg[],farbe,range)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(IsPlayerInRangeOfPoint(i,range,x,y,z))
    {
    SendClientMessage(i,color,msg);
    }
    }


    return 1;
    }


    Bsp:


    //OnPlayerSpawn
    SendClientMessageInRange(playerid,"Ich bin gespawnt",DEINE FARBE,100);

  • Ich wollte ja ein Befehl für die Police machen, die mit einem Befehl alle speiler im umkreis informieren können über....

  • stock SendClientMessageInRange(playerid,msg[],farbe,range)
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(IsPlayerInRangeOfPoint(i,range,x,y,z))
    {
    SendClientMessage(i,color,msg);
    }
    }


    return 1;
    }
    Nach unten


    Und dann:
    if(strcmp,"/BEFEHL",cmdtext,true)==0)
    {
    SendClientMessageInRange(playerid,"TEXT",FARBE,100);
    }

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Euch ist schon klar, dass das nicht funktionieren wird und zudem ineffizient ist?^^
    stock SendClientMessageInRange(playerid,msg[],farbe,range)
    {
    for(new i=0;i<GetMaxPlayers();i++)//MAX_PLAYERS verwenden oder GetMaxPlayers()-Wert in einer Variable speichern, anstatt dauernd abzufragen...
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);//Nicht effizient, dauernd abzufragen.
    if(IsPlayerInRangeOfPoint(i,range,x,y,z))
    {
    SendClientMessage(i,color,msg);//hier ist "color", oben ist es "farbe" ==> ERROR
    }
    }


    return 1;
    }


    Besser:



    stock SendClientMessageInRange(playerid,color,msg[],Float:range)
    {
    new Float:x,Float:y,Float:z,maxplayers=GetMaxPlayers();
    if(GetPlayerPos(playerid,x,y,z))
    {
    for(new i=0;i<maxplayers;i++)
    if(IsPlayerConnected(i) && (i==playerid || IsPlayerInRangeOfPoint(i,range,x,y,z)))
    SendClientMessage(i,color,msg);
    return 1;
    }
    return 0;
    }

  • if(strcmp,"/BEFEHL",cmdtext,true)==0)
    {
    SendClientMessageInRange(playerid,"TEXT",FARBE,100);
    }


    Wo ist da bitte die Range bestimmung?!?? oder kommt da keine rein?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Nicht gleicht so unfreundlich du nest, danke dass ihr mir geholfen habt.


    //closed