Szerző Téma: IsPlayerInRangeOfPlayer  (Megtekintve 1774 alkalommal)

IsPlayerInRangeOfPlayer
« Dátum: 2014. január 13. - 18:11:51 »
0 Show voters
Sziasztok! Készítettem egy nagyon egyszerû kódot. Lényege, hogy ha egy játékos egy másik játékos általunk kiválasztott távolságában van, akkor megtörténik a cselekvés, ha pedig nem, akkor értelem szerûen nem történik semmi.
Hasznos lehet pl. RP szerverekre tárgyak átadásánál.
Kód:
 
stock IsPlayerInRangeOfPlayer(playerid, toplayerid, Float:range)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(toplayerid, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, range, X, Y, Z))
{
    return 1;
}
return 0;
}

 
Egyszerû példa:
 
public OnPlayerCommandText(playerid, cmdtext[])
{
   if(!strcmp(cmdtext, \"/fejberúg\", true))
   {
for(new i = 0; i < MAX_PLAYERS; i++)
{
   if(IsPlayerInRangeOfPlayer(playerid, i, 1.0))
   {
      if(i == playerid) continue;
      SendClientMessage(playerid, -1, \"Fejbe rúgtad!\");
      SendClientMessage(i, -1, \"Fejbe rúgtak!\");
      break;
   }
   else
   {
       SendClientMessage(playerid, -1, \"Nincs senki a közeledben!\");
       break;
   }
}
return 1;
   }
   return 0;
}

 
Magyarázat: Ha a játékos beírja hogy /fejberúg, és van valaki az 1 méteres körzetében, aki nem saját maga, akkor meg történik a fejberúgás, ha pedig önmagán kivûl senki sincs a közelében, akkor nem. Remélem érthetõ voltam! :)

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
IsPlayerInRangeOfPlayer
« Válasz #1 Dátum: 2014. január 14. - 06:35:08 »
0 Show voters
Talán egyszerûbb így:
 
stock IsPlayerInRangeOfPlayer(playerid, playerid2, Float:range) {
   new Float:pos[3];
   GetPlayerPos(playerid2, pos[0], pos[1], pos[2]);
   return IsPlayerInRangeOfPoint(playerid, range, pos[0], pos[1], pos[2]);
}

 
(\"Returns   
1/true - The player is in range of the point.
0/false - The player is not in range of the point.\"
Forrás: http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal