-
Nos ugye teszem azt van ez a ciklus:
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Float:x,Float:y,Float:z;
if(IsPlayerConnected(i))
{
GetPlayerPos(i,x,y,z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
{
SendClientMessage(playerid, -1, \"Van itt valaki!\");
}
else SendClientMessage(playerid, -1, \"Nincs a közeledben senki.\");
}
}
Ezzel egy a gond.. ha van a szerveren 20 játékos és csak 1 van a közeledben, akkor 19szer ki írja hogy Nincs a közeledben senki... Hogy tudnám megoldani hogyha akár 1 ember a közelemben van ne írja ki azt hogy \"Nincs a közeledben senki.\".. Meg azt hogyha tényleg nincs senki a közelemben akkor csak 1-szer írja ki.. ne pedig floodolja,
-
Hát szerintem inkább így csináld, így jobb lesz, mivel így csak a saját pozícióját kéri le és (ha minden igaz), csak egyszer írja ki xD
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Float:x,Float:y,Float:z;
if(IsPlayerConnected(i))
{
GetPlayerPos(playerid,x,y,z);
if(IsPlayerInRangeOfPoint(i, 2.0, x, y, z))
{
SendClientMessage(playerid, -1, \"Van itt valaki!\");
}
else SendClientMessage(playerid, -1, \"Nincs a közeledben senki.\");
}
}
-
Rossz példát írtam a kérdésbe :D Akkor mondom a konkrétan:
Van nekem egy ház rendszerem... ha be akarok menni az egyikbe ugye ottkell lennem az ajtó elõtt.. de a ciklus miatt pl van 15 ház akkor 14-szer kiírja hogy nem vagyok a háznál.
-
Próbáld meg így:
[pawn]for(new h = 0; h < MAX_HOUSES; h++)
{
if(IsPlayerInRangeOfPoint(playerid, 2, HouseInfo[h][hEnterX], HouseInfo[h][hEnterY], HouseInfo[h][hEnterZ]))
{
inHouse[playerid] = h;
SetPlayerPos(playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]);
break;
}
else { if((MAX_HOUSE - 1) == i) return SendClientMessage(playerid, -1, \"Nem vagy háznál\"); }
}[/pawn]
Ha nem mûködik akkor szóljál és kijavítom ;)
-
Próbáld így:
new bool:vaneott;
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Float:x,Float:y,Float:z;
if(IsPlayerConnected(i))
{
GetPlayerPos(i,x,y,z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z))
{
vaneott=true;
break;
}
}
}
if(vaneott)
{
// ha van ott valaki
} else {
// ha nincs
}