Szerző Téma: IsPlayerInZone  (Megtekintve 1813 alkalommal)

herban

  • Vendég
IsPlayerInZone
« Dátum: 2011. Február 28. - 11:08:13 »
0 Show voters
Ü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\"

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
IsPlayerInZone
« Válasz #1 Dátum: 2011. Február 28. - 19:26:44 »
0 Show voters
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;
}

Rammstein

  • Vendég
IsPlayerInZone
« Válasz #2 Dátum: 2011. Február 28. - 19:42:01 »
0 Show voters
Szerintem If IsInRangeofPointal is meglehetne oldani (nemtom jól irtam e?)

Gang[St]e[R]

  • Vendég
IsPlayerInZone
« Válasz #3 Dátum: 2011. Február 28. - 19:51:18 »
0 Show voters
Az IsPlayerInRangeOfPoint és az 1. megoldás jó, mert az IsPlayerInRanegofPoint kör az 1. az meg téglalap.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal