27.01.2014, 14:10
pawn Код:
#include <a_samp>
#define pressed(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
new bool:EstaDentro[MAX_PLAYERS],
GuardarEstaDentroID[MAX_PLAYERS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
new vehicleid = GetPlayerVehicleID(playerid);
if(pressed(KEY_CROUCH) && EstaDentro[playerid] == false){ //para entrar
if(GetVehicleModel(vehicleid) == ID_VEHICULO){ //aca el colocamos el modelo del vehiculo.
GuardarEstaDentroID[playerid] = vehicleid; //aca guardamos el id del vehiculo al jugador.
EstaDentro[playerid] = true; //aca le damos una variable para identificar que esntro al remolque.
SetPlayerPos(playerid, Float:x, Float:y, Float:z); //aca la posicion del remolque.
SetPlayerVirtualWorld(playerid, GuardarEstaDentroID[playerid]); //aca le damos Virtual World al jugador, que sera el id del vehiculo.
}
}
if(pressed(KEY_CROUCH) && EstaDentro[playerid] == true){ //para salir
if(!IsPlayerInAnyVehicle(playerid){
new world = GetVehicleVirtualWorld(GuardarEstaDentroID[playerid]); //aca vehiculo camos el Virtual World en el que este el vehiculo id que guardamos con la variable.
SetPlayerVirtualWorld(playerid, world); //aca le damos el Virtual World del vehiculo al jugador.
new Float:pos[3];
GetVehiclePos(GuardarEstaDentroID[playerid], pos[0], pos[1], pos[2]); //aca verificamos la posicion del vehiculo con la id guardara ocn la variable.
SetPlayerPos(playerid, pos[0], pos[1], pos[2]); //aca le damos la posicion obtenidad anteriormente al jugador.
GuardarEstaDentroID[playerid] = -1; //aca reseteamos la variable
EstaDentro[playerid] = false; //aca reseteamos la variable
}
}
return true;
}