GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: hErO95 - 2010. október 26. - 14:37:51

Cím: IsPlayerInRangeOfPoint
Írta: hErO95 - 2010. október 26. - 14:37:51
sziazstok! Ez olyan mint egy \"láthatatlan checkpoint\" ezt szeretném megcsinálni, csak nem tom, hogy hogy kell beállítani mondjuk hogy groovenál irja ki ezt.
parancs:
 
      public OnPlayerCommandText(playerid, cmdtext[])
      {
              if (strcmp(\"/papir\", cmdtext, true, 10) == 0)//parancs
              {
              if(IsPlayerInRangeOfPoint(playerid, 5, 432.2, 3531.2, 4231))//ha a munkahelyen van
              {
                  SendClientMessage(playerid, 0x1E84D7FF, \"Megmutattad a papirjaidat!\");
              }
              else//de ha nem
              {
                  SendClientMessage(playerid, 0x1E84D7FF, \"Hiba: Nem vagy a munkahelyen!\");
              }
                      return 1;
              }
              return 0;
      }
Cím: IsPlayerInRangeOfPoint
Írta: ZeRo - 2010. október 26. - 16:21:11
IsPlayerInRangeOfPoint( playerid, távolság, x-koordináta, y-koordináta, z-koordináta )

 
De a groove az ugye egy nagyobb terület, szóval nem biztos, hogy ezzel lenne a legegyszerûbb megoldani. Hanem elmented a terület legészakibb(MAXY), legdélibb(MINY), legkeletibb(MAXX), és legnyugatibb(MINX) pontját, és behelyettesíted ebbe a kódba:
 

#define MAXX 1.1
#define MINX 2.2
#define MAXY 3.3
#define MINY 4.4
public OnPlayerCommandText( playerid, cmdtext[  ] ) {
    if( !strcmp( \"/parancs\", cmdtext, true ) ) {
        new Float: fPos[ 3 ];
        GetPlayerPos( playerid, fPos[ 0 ], fPos[ 1 ], fPos[ 2 ] );
        if( fPos[ 0 ] < MAXX && fPos[ 0 ] > MINX && fPos[ 1 ] < MAXY && fPos[ 1 ] > MINY ) {
            //Használhatja...
        } else {
            //Nem használhatja...
        }
        return 1;
    }
    return 0;
}
Cím: IsPlayerInRangeOfPoint
Írta: hErO95 - 2010. október 26. - 16:28:53
thx :)
zárok