В этом уроке я вас научу как узнать дистанцию между игроками:
В самый конец мода:
Code
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)); }
а вот и живой пример:
Code
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 единицах
урок by King источник http://www.forum-pawno.ru/ ==================================== * Я тебя пну бл*ать! :D * ====================================
Сообщение отредактировал [east_side]_trane - Воскресенье, 16.10.2011, 20:02:08