Szerző Téma: Területfüggo tele  (Megtekintve 1021 alkalommal)

Nem elérhető hpeter94

  • 1450
  • Fórum fenntartó
    • Profil megtekintése
Területfüggo tele
« Dátum: 2010. Január 16. - 11:11:41 »
0 Show voters
Halihó :D Kéne nekem egy olyan sript amiben van egy tele és ha azt beírja akkor attól függoen teleportálja el hogy melyik területen van (ls, sf, lv, vidék, sivatag) és ha nem lenne gond akkor olyan legyen amit mondjuk továbbtok fejleszteni még pár telével :D Elore is köszi!

Területfüggo tele
« Válasz #1 Dátum: 2010. Január 16. - 23:22:56 »
0 Show voters
#include <a_samp>
#define ZONE 5
new Float: Zones [ ZONE ] [ 4 ] = {
{ 0.0, 0.0, 0.0, 0.0 }, // Zóna 1 koordinátái
{ 0.0, 0.0, 0.0, 0.0 }, // stb
{ 0.0, 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0, 0.0 }
};
new Float: Tele [ ZONE ] [ 3 ] = {
{ 0.0, 0.0, 0.0 }, // Ha a játékos Zóna1 ben van és parancsot használ ide teleportálja
{ 0.0, 0.0, 0.0 }, // stb
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 }
};
// Nem jó koordináták
new Int [ ZONE ] = { 0, 0, 0, 0, 0 }; // A hely interiorja ahova a játékos teleportáljon
// Az 1. szám a 1. zónáé, a 2. szám a 2.-é így tovább
public OnPlayerCommandText ( playerid, cmdtext [ ] )
{
if ( strcmp ( \"/area\", cmdtext, true, 5 ) == 0 ) TeleportSystem ( playerid );
if ( strcmp ( \"/ch\", cmdtext, true, 3 ) == 0 ) TeleportSystem ( playerid );
if ( strcmp ( \"/dm\", cmdtext, true, 3 ) == 0 ) TeleportSystem ( playerid );
return 0;
}
forward TeleportSystem ( playerid );
public TeleportSystem ( playerid )
{
    new zone;
GetPlayerZone ( playerid, zone );
for ( new i = 0; i < ZONE; i++ )
{
if ( zone == i )
{
   SetPlayerPos ( playerid, Tele [ i ] [ 0 ], Tele [ i ] [ 1 ], Tele [ i ] [ 2 ] );
   SetPlayerInterior ( playerid, Int [ i ] );
   break;
}
}
return 1;
}
forward GetPlayerZone ( playerid, &zoneid );
public GetPlayerZone ( playerid, &zoneid )
{
for ( new i = 0; i < ZONE; i++ )
{
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos ( playerid, X, Y, Z );
    if ( X >= Zones [ i ] [ 0 ] && X <= Zones [ i ] [ 2 ] && Y >= Zones [ i ] [ 1 ] && Y <= Zones [ i ] [ 3 ] )
    {
   zoneid = i;
   break;
    }
}
return 1;
}
 
/*
Ha a játékos x zónában van x zónába teleportálja egy megadott parancs használata során
*/

 
Nem teszteltem.
A zónák koordinátájának számolásához ajánlom a területszámítás programomat, ami bár törölve lett a fórumról.
http://www.rks-samp.tarhelyem.net/index.php?topic=38.0

Nem elérhető hpeter94

  • 1450
  • Fórum fenntartó
    • Profil megtekintése
Területfüggo tele
« Válasz #2 Dátum: 2010. Január 18. - 13:10:00 »
0 Show voters
thx

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal