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.
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
-
-
unter ongamemodeinit
LimitGlobalChatRadius(100.0);
-
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 untenUnd dann:
if(strcmp,"/BEFEHL",cmdtext,true)==0)
{
SendClientMessageInRange(playerid,"TEXT",FARBE,100);
} -
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?
-
if(strcmp,"/BEFEHL",cmdtext,true)==0)
{
SendClientMessageInRange(playerid,"TEXT",FARBE,100);
}Wo ist da bitte die Range bestimmung?!?? oder kommt da keine rein?
Blind oder was? 100 definiert die Reichweite... Ich frag mich, ob man bei Ebay auch Augen kaufen kann...
-
-
Nicht gleicht so unfreundlich du nest, danke dass ihr mir geholfen habt.
//closed