hallo ich wollte mal fragen wie man machen kann das der Chat in einer Bestimmten umfeld geht also z.b 5 meter währe nett wen mir wer hilft
mfg Savas
hallo ich wollte mal fragen wie man machen kann das der Chat in einer Bestimmten umfeld geht also z.b 5 meter währe nett wen mir wer hilft
mfg Savas
#include <a_samp>
new UC[MAX_PLAYERS];
#define FILTERSCRIPT
forward Float:GetDistanceBetweenPlayers(p1,p2);
#if defined FILTERSCRIPT
#define COLOR_YELLOW 0xFFFF66FF
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by Whycando");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
#endif
public OnPlayerText(playerid, text[])
{
if(UC[playerid] == 1)
{
new pname[MAX_PLAYER_NAME],sendstr[128]; GetPlayerName(playerid,pname,sizeof pname);
format(sendstr,sizeof sendstr,"[UC] %s: %s",pname,text);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(GetDistanceBetweenPlayers(playerid,i) < 30)
{
SendClientMessage(i,COLOR_YELLOW,sendstr);
return 0;
}
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext,"/uc",true) == 0)
{
if(UC[playerid] == 0)
{
SendClientMessage(playerid,COLOR_YELLOW, " Der Umgebungschat ist eingeschaltet");
UC[playerid] = 1;
return 1;
}
else
{
SendClientMessage(playerid,COLOR_YELLOW, " Der Umgebungschat ist ausgeschaltet");
UC[playerid] = 0;
return 1;
}
}
return 0;
}
public Float:GetDistanceBetweenPlayers(p1,p2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
{
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
Script nich von mir
Hier gebe dir mal meinen Funktioniert Perfekt.
public OnPlayerText(playerid, text[])
{
new string[128];
format(string, sizeof(string),"%s sagt: %s",Spielername(playerid),text);
SMessage(playerid,WEIS,string,5);
return 0;
}
stock SMessage(playerid,farbe,text[],Float:umkreis)
{
new Float:xm, Float:ym, Float:zm,maxplayers=GetMaxPlayers(); //erklärt ich von selbst
if(GetPlayerPos(playerid,xm,ym,zm)) //das sollte sich auch von selbst erklären
{
for(new i=0;i<maxplayers;i++) //schleife die durch alle spieler geht
if(IsPlayerConnected(i) && (i==playerid || IsPlayerInRangeOfPoint(i,umkreis,xm,ym,zm)))
SendClientMessage(i,farbe,text);
return 1;
}
return 0;
}
Das hier unter OnGameModeInit:
LimitGlobalChatRadius(0);
Das währs auch schon
Limitglobalchatradius muss man garnicht benutzen um den chat auszuschalten...^^
es reicht auch wenn man bei OnPlayerText()
einfach 0 returnt.