Hola, bueno ahora les vengo a traer una de las formas para crear entradas y salidas a interiores, por ejemplo:
Voy a la puerta de la comisaria, presiono F y entro al interior de la comisaria.
Primero vamos a tomar las coordenadas, pueden hacerlo utlizando /save yo usare mi FS.
Nos dirijimos al interior deseado, ya sea con Mod Sobeit o cualquier otro programa o FS, una vez dentro utilizamos este comando para tener el numero del Interior en el que se encuentran (estando dentro del interior a usar).
Codigo:
Ahora si vamos a tomar las coordenadas usando /save.
Tomamos las coordenadas de la Entrada al Interior.
Osea,iremos a la entrada donde queremos que sea el interior,ejemplo en este caso de la comisaria,y presionamos /save.
Ahora tomamos las coordenadas con /save pero Dentro del interior,osea la ENTRADA.
Las coordenadas se guardan en GTA san andreas user Files/SAMP/SavedPositions,y allí estarán todas.
Ya tenemos ambas coordenadas de Entrada y Salida.
Vamos a la parte mas "dificil" que seria en el CallBack OnPlayerKeyStateChange, pasare a explicar todo en el pawno,ya qué aquí me tomaria mucho,es lo mismo pero lo hago mas rapido alli.
Sí no entendieron algo,posteen o MP.
Saludos.
Voy a la puerta de la comisaria, presiono F y entro al interior de la comisaria.
Primero vamos a tomar las coordenadas, pueden hacerlo utlizando /save yo usare mi FS.
Nos dirijimos al interior deseado, ya sea con Mod Sobeit o cualquier otro programa o FS, una vez dentro utilizamos este comando para tener el numero del Interior en el que se encuentran (estando dentro del interior a usar).
Codigo:
- Código:
if(strcmp("/mivwint", cmdtext, true) ==0)
{
new string[128];
format(string, sizeof(string), "Tu VW es: {0000C5}%d {FFFFFF}y tu Interior es: {0000C5}%d", GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
SendClientMessage(playerid, -1, string);
return 1;
}
Ahora si vamos a tomar las coordenadas usando /save.
Tomamos las coordenadas de la Entrada al Interior.
Osea,iremos a la entrada donde queremos que sea el interior,ejemplo en este caso de la comisaria,y presionamos /save.
Ahora tomamos las coordenadas con /save pero Dentro del interior,osea la ENTRADA.
Las coordenadas se guardan en GTA san andreas user Files/SAMP/SavedPositions,y allí estarán todas.
Ya tenemos ambas coordenadas de Entrada y Salida.
Vamos a la parte mas "dificil" que seria en el CallBack OnPlayerKeyStateChange, pasare a explicar todo en el pawno,ya qué aquí me tomaria mucho,es lo mismo pero lo hago mas rapido alli.
- Código:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) // Sino la tienen la agregan
{
if(newkeys & KEY_SECONDARY_ATTACK && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) // Key secondary seria Intro o F y verificamos que no esten en un coche
{
//---------------------------------------Comisaria---------------------------------------------//
if(IsPlayerInRangeOfPoint(playerid, 3.0, 1554.824462,-1675.545898,16.195312)) Aqui agregan el radio por ej: 3.0, y las coordenadas de la Entrada al interior osea Estando Afuera de la Comisaria
{ // En caso de que presionara la tecla F o Intro estando afuera de la comi se realizaria lo siguiente:
SetPlayerPos(playerid, 246.548614,107.998275,1003.218750); // Teleportamos al jugador a las coordenadas dentro de la comisaria es decir las de Salida del interior
SetPlayerInterior(playerid, 10); // le damos el interior 10, que es el que tomamos con /mivwint
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 246.548614,107.998275,1003.218750)) // Aqui ponemos tambien el radio, las coordenadas de Salida del Interior (al reves que el otro)
{ // si presiona F o Intro estando en el radio de las coordenadas de Salida del Interior
SetPlayerPos(playerid, 1554.824462,-1675.545898,16.195312); // lo teleportamos a las coord afuera de la comisaria las de Entrada al Interior
SetPlayerInterior(playerid, 0); // le damos el interior 0 que seria el que tenemos por defecto afuera.
return 1;
}
//-----------------------Ayuntamiento--------------------------------------------------------//
if(IsPlayerInRangeOfPoint(playerid, 3.0, 1480.646362,-1771.658691,18.795755)) //ayunta afuera
{
SetPlayerPos(playerid, 389.274627,173.718017,1008.382812); //coord del ayunta adentro
SetPlayerInterior(playerid, 3); //interior del ayunta tomado con mivwint
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 389.274627,173.718017,1008.382812))
{
SetPlayerPos(playerid, 1480.646362,-1771.658691,18.795755);
SetPlayerInterior(playerid, 0);
return 1;
}
//------------------------------------------------------------------------------------------------------------------//
}
return 1;
}
Sí no entendieron algo,posteen o MP.
Saludos.