GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: CarCrasher le 08 Mars 2014, 14:18:24

Titre: Problème GetClosestPlayer !
Posté par: CarCrasher le 08 Mars 2014, 14:18:24
Bonjour amis scripteurs et dans un monde innexistant scripteuses :D
Me revoilà pour vous importuner une nouvelle fois !

Cette fois-ci mon bug se pose sur mes fonctions GetNotTeamClosestPlayer & GetTeamClosestPlayer.
En effet, ma fonction GetClosestPlayer marche parfaitement, mais, pour faire un anti-nof, je me suis penché sur des variantes qui ne prennent en compte que les joueurs dont la team est différente ou la même, et celles-là ne marchent pas !

Par exemple, on peut se rendre au bar pour s'abreuver et reconstituer notre barre de vie, sauf si un joueur d'une team différente est dans les environs.

Code: (pawno) [Sélectionner]
if(GetDistanceBetweenPlayers(playerid, GetNotTeamClosestPlayer(playerid)) > 50)

Néanmoins, ça me dit toujours qu'un joueur d'une team différente est trop proche !

Alors, voici donc les fautifs !

http://pastebin.com/Y3BJfZXB (http://pastebin.com/Y3BJfZXB)

P.-S. : Je sais ma façon d'ident est différente

Merci  :biggrin:
Titre: Re : Problème GetClosestPlayer !
Posté par: Xolokos le 09 Mars 2014, 16:57:24
Autant faire :

Code: (pawn) [Sélectionner]
stock IsNoEnemiesAround(playerid, float:dist)
{
  if(IsPlayerConnected(playerid))
  {
    new Float:POS[3];
    GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
       if(IsPlayerConnected(i))
       {
          if(gTeam[playerid] != gTeam[i])
          {
              if(IsPlayerInRangeOfPoint(i, dist, POS[0], POS[1], POS[2])
              {
                 return true;
              }
          }
       }
     }
  }
  else return false;
}

J'ai fais ça vite fait.
Titre: Re : Problème GetClosestPlayer !
Posté par: CarCrasher le 10 Mars 2014, 16:54:34
Ca donne toujours le même résultat :(