[AJUDA] /entrar na ambulancia -
m0ta - 09.09.2011
Antes de mais boa tarde a todos.
Gostava que alguйm me conseguisse ajudar a fazer um simples comando de /entrar na ambulвncia.
Basicamente, eu tenho um interior para a ambulвncia, e queria que um player que chegasse na parte de trбs da ambulвncia e escrevesse o comando /entrar, aparecesse no interior que tenho para a ambulancia, e que quando fizesse /sair, aparecesse outra vez atrбs da ambulвncia.
Obrigado pela colaboraзгo.
Re: [AJUDA] /entrar na ambulancia -
noobre - 09.09.2011
pawn Код:
if(strcmp(cmd, "/entrar", true) == 0)
{
SetPlayerPos(playerid, X, Y, Z);
SetPlayerInterior(playerid, 1);
return 1;
}
й isto ?
Re: [AJUDA] /entrar na ambulancia -
Dolby - 09.09.2011
no comando de /entrar
pawn Код:
new Float:x,Float:y:Float:z;
GetPlayerPos(playerid,x,y,z);
SetPlayerPos(playerid,DX,DY,DZ);
SetPlayerInterior(playerid,INTERIORAMBULANCIA);
no SetPlayerPos,muda respectivamente de DX para posiзao X,dentro do interior...
no comando de /sair
pawn Код:
SetPlayerPos(playerid,x,y,z);
SetPlayerInterior(playerid,0);
e perigoso nao dar certo,porque usei GetPlayerPos em um comando e apenas usei SetPlayerPos naquela posiзao em outro comando,mais nao custa tentar,testa e avisa ai.
Re: [AJUDA] /entrar na ambulancia -
Shelby - 09.09.2011
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;
}
Re: [AJUDA] /entrar na ambulancia -
m0ta - 12.09.2011
Obrigado Larceny!
Re: [AJUDA] /entrar na ambulancia -
[M]onsieur - 12.09.2011
larceny, use isto:
pawn Код:
IsPlayerInRangeOfVehicle(playerid, Float:radi, vehicleid)
{
static
Float:PX,
Float:PY,
Float:PZ,
Float:CX,
Float:CY,
Float:CZ
;
GetPlayerPos(playerid,PX,PY,PZ);
GetVehiclePos(vehicleid, CX,CY,CZ);
return (CX-PX)*(CX-PX)+(CY-PY)*(CY-PY)+(CZ-PZ)*(CZ-PZ) < radi*radi;
}
Talvez este tambйm:
pawn Код:
IsPlayerInRangeOfVehicle(playerid, Float:radi, vehicleid)
{
static
Float:CX,
Float:CY,
Float:CZ
;
GetVehiclePos(vehicleid, CX,CY,CZ);
return IsPlayerInRangeOfPoint(playerid, radi, CX, CY, CZ);
}
Melhor, й.
Obviamente.
Re: [AJUDA] /entrar na ambulancia -
Allan Kardec - 12.09.2011
Pessoal, sem querer ser ingrato, nгo jб existe uma callback nativa do sa-mp que faz isto? certo que ela sу pegar a cordenada atй um certo ponto, mais editando ela poderia deixб-la para um certo player.
pawn Код:
native Float:GetPlayerDistanceFromPoint(playerid, Float:X, Float:Y, Float:Z);
native Float:GetVehicleDistanceFromPoint(vehicleid, Float:X, Float:Y, Float:Z);
https://sampforum.blast.hk/showthread.php?tid=271586
Re: [AJUDA] /entrar na ambulancia -
Allan Kardec - 12.09.2011
ah sim, somente dei uma olhada na nomeclatura da publica