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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: hpeter94 - 2010. január 16. - 11:11:41

Cím: Területfüggo tele
Írta: hpeter94 - 2010. január 16. - 11:11:41
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!
Cím: Területfüggo tele
Írta: [RKS]Ricsii - 2010. január 16. - 23:22:56
#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
Cím: Területfüggo tele
Írta: hpeter94 - 2010. január 18. - 13:10:00
thx