09.09.2011, 17:05
pawn Код:
#include <zcmd>
stock CheckPlayerDistanceToVehicle(Float:radi, playerid, vehicleid)
{/* Thanks for whoever made this function */
if(IsPlayerConnected(playerid))
{
new Float:PX,Float:PY,Float:PZ,Float:CX,Float:CY,Float:CZ;
GetPlayerPos(playerid,PX,PY,PZ);
GetVehiclePos(vehicleid, CX,CY,CZ);
new Float:CDistance = (CX-PX)*(CX-PX)+(CY-PY)*(CY-PY)+(CZ-PZ)*(CZ-PZ);
if(CDistance <= radi*radi)
{
return 1;
}
}
return 0;
}
CMD:entrar(playerid, params[])
{
new contador, resultado;
for(new i; i != MAX_VEHICLES; i++)
{
new distance = CheckPlayerDistanceToVehicle(4.4, playerid, i);
if(distance)
{
resultado = i;
if(GetVehicleModel(i) == 416) contador++;
}
}
switch(contador)
{
case 0:
{
SendClientMessage(playerid, -1, "Nenhuma ambulвncia prуxima.");
}
case 1:
{
SendClientMessage(playerid, -1, "Vocк entrou na ambulвncia.");
/* Coordenadas & Interiorid do interior. */
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 0, 0, 0);
SetPVarInt(playerid, "AmbID", resultado);
SetPVarInt(playerid, "isPlayerInAmbulance", 1);
SetPlayerVirtualWorld(playerid, resultado);
}
default:
{
SendClientMessage(playerid, -1, "Tem mais de uma ambulвncia prуxima.");
}
}
return 1;
}
CMD:sair(playerid, params[])
{
if(!GetPVarInt(playerid, "isPlayerInAmbulance"))
return SendClientMessage(playerid, -1, "Vocк nгo estб em uma ambulвncia.");
SendClientMessage(playerid, -1, "Vocк saiu da ambulвncia.");
new Float:vPos[3];
GetVehiclePos(GetPVarInt(playerid, "AmbID"), vPos[0], vPos[1], vPos[2]);
SetPlayerPos(playerid, vPos[0]+1.2, vPos[1], vPos[2]+1);
SetPlayerVirtualWorld(playerid, 0);
DeletePVar(playerid, "isPlayerInAmbulance");
DeletePVar(playerid, "AmbID");
return 1;
}