stock DetectarAuto(playerid)
{
new Float:v_PosX,
Float:v_PosY,
Float:v_PosZ,
Modelo;
Modelo = GetPlayerVehicleID(playerid);
GetVehiclePos(Modelo, v_PosX, v_PosY, v_PosZ);
GetPlayerPos(playerid, Mostrar[playerid][CercaPos_X], Mostrar[playerid][CercaPos_Y], Mostrar[playerid][CercaPos_Z]);
Mostrar[playerid][CercaPos_X] = v_PosX;
Mostrar[playerid][CercaPos_Y] = v_PosY;
Mostrar[playerid][CercaPos_Z] = v_PosZ;
if(!IsPlayerInRangeOfPoint(playerid, 5.0, Mostrar[playerid][CercaPos_X], Mostrar[playerid][CercaPos_X], Mostrar[playerid][CercaPos_X])) return TextDrawHideForPlayer(playerid, AutoCerca[playerid]);
if(IsPlayerInRangeOfPoint(playerid, 5.0, Mostrar[playerid][CercaPos_X], Mostrar[playerid][CercaPos_X], Mostrar[playerid][CercaPos_X]))
{
TextDrawShowForPlayer(playerid, AutoCerca[playerid]);
}
return true;
}
DetectarAuto(playerid);
Intentб aumentando el radio en el que toma el auto... Igual ese cуdigo te darб un lag tremendo, OnPlayerUpdate es llamado hasta 15 veces por jugador en un segundo... No es recomendable hacer ese tipo de cosas, si lo quieres hacer de ъltima hazlo en un timer y no de un segundo, saludos!
|
for(new i; i != MAX_VEHICLES; i++)//En OnPlayerUpdate
{
new dist = CheckPlayerDistanceToVehicle(5.0, playerid, i);
if(dist)
{
result = i;counter++;
}
}
switch(counter)
{
case 0: { SendClientMessage(playerid, -1, "No hay vehiculo cerca de ti."); }
case 1:
{
//Tu cуdigo
}
default: SendClientMessage(playerid, -1, " Se ha detectado mas de un vehнculo cerca, acerquese mas a su vehнculo.");
}
stock CheckPlayerDistanceToVehicle(Float:radi, playerid, vehicleid)
{
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;
}
pawn Код:
|
warning 204: symbol is assigned a value that is never used: "result"
new result, counter;
for(new i; i != MAX_VEHICLES; i++)//En OnPlayerUpdate
{
new dist = CheckPlayerDistanceToVehicle(5.0, playerid, i);
if(dist)
{
result = i;counter++;
}
}
switch(counter)
{
case 0: { TextDrawHideForPlayer(playerid, AutoCerca[playerid]); }
case 1:
{
TextDrawShowForPlayer(playerid, AutoCerca[playerid]);
}
default: SendClientMessage(playerid, -1, " Se ha detectado mas de un vehнculo cerca, acerquese mas a su vehнculo.");
}
result = i;counter++;
for(new i; i != MAX_VEHICLES; i++)//En OnPlayerUpdate
{
new dist = CheckPlayerDistanceToVehicle(5.0, playerid, i);
if(dist)
{
AutoCerca[playerid] = i;
TextDrawShowForPlayer(playerid, AutoCerca[playerid]);
}
}
pawn Код:
|
new counter;
for(new i; i != MAX_VEHICLES; i++)//En OnPlayerUpdate
{
new dist = CheckPlayerDistanceToVehicle(5.0, playerid, i);
if(dist)
{
counter++;
}
}
switch(counter)
{
case 0:
{
TextDrawHideForPlayer(playerid, AutoCerca[playerid]);
TextDrawShowForPlayer(playerid, Barra[0]);
TextDrawShowForPlayer(playerid, Barra[1]);
}
case 1:
{
TextDrawShowForPlayer(playerid, AutoCerca[playerid]);
TextDrawHideForPlayer(playerid, Barra[0]);
TextDrawHideForPlayer(playerid, Barra[1]);
}
}
new counter;
for(new i; i != MAX_VEHICLES; i++)//En OnPlayerUpdate
{
if(IsPlayerInAnyVehicle(playerid))
{
//cуdigo para retirar el textdraws
}
new dist = CheckPlayerDistanceToVehicle(5.0, playerid, i);
if(dist)
{
counter++;
}
}
switch(counter)
{
case 0:
{
TextDrawHideForPlayer(playerid, AutoCerca[playerid]);
TextDrawShowForPlayer(playerid, Barra[0]);
TextDrawShowForPlayer(playerid, Barra[1]);
}
case 1:
{
TextDrawShowForPlayer(playerid, AutoCerca[playerid]);
TextDrawHideForPlayer(playerid, Barra[0]);
TextDrawHideForPlayer(playerid, Barra[1]);
}
}