В этом уроке я вас научу как узнать дистанцию между игроками:
В самый конец мода:
Код: Выделить всё
forward Float:GetDistanceBetweenPlayers(p1,p2);
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));
}
а вот и живой пример:
Код: Выделить всё
forward OnPlayerUpdateNew(playerid);
public OnPlayerUpdateNew(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Float:GetDistanceBetweenPlayers(playerid,i) > 250) return SendClientMessage(playerid,0x00FF00AA,"Вы слишком далеко от других игроков");
}
}
SetTimer("OnPlayerUpdateNew",5000,0);
}
вышеуказанный пример выдает сообщение каждые 5 секунд, но только если игрок находится на расстоянии от других более чем в 250
расстояние измеряется в float единицах автор:admin ставьте +