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: herban - 2011. február 28. - 11:08:13

Cím: IsPlayerInZone
Írta: herban - 2011. február 28. - 11:08:13
Üdv.
Valaki letudná nekem írni, hogy lehet azt megcsinálni ha a játékos egy adott zonán belül van akkor kíírja hogy \"Itt nem tudsz jármûvet spawnolni\"
Cím: IsPlayerInZone
Írta: ZeRo - 2011. február 28. - 19:26:44
Hát erre szerintem a legismertebb mód az, hogy meghatározod a zóna legészakibb/legdélibb/legnyugatibb/legkeletibb pontjait, és lekérdezed a játékos pozícióját, majd kiértékeled az eredményt:
 

stock IsPlayerInZone( playerid, Float: minx, Float: maxx, Float: miny, Float: maxy ) {
    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 ) return true;
    return false;
}

 
Példa:
 

public OnPlayerCommandText( playerid, cmdtext[  ] ) {
    if( strcmp( \"/veh\", cmdtext, true ) == 0 ) {
        if( IsPlayerInZone( playerid, 1.1, 3242.234, -24524.234, 64.45 ) ) {
            SendClientMessage( playerid, 0xFF0000AA, \"Itt nem tudsz jármûvet spawnolni!\" );
        } else {
            //tud
        }
        return 1;
    }
    return 0;
}
Cím: IsPlayerInZone
Írta: Rammstein - 2011. február 28. - 19:42:01
Szerintem If IsInRangeofPointal is meglehetne oldani (nemtom jól irtam e?)
Cím: IsPlayerInZone
Írta: Gang[St]e[R] - 2011. február 28. - 19:51:18
Az IsPlayerInRangeOfPoint és az 1. megoldás jó, mert az IsPlayerInRanegofPoint kör az 1. az meg téglalap.