Nгo deu certo, apareceu que um novo veнculo foi vendido mas... Nгo aparece que o veнculo й invбlido e nгo vende.
PHP код:
#include <a_samp>
//Maneira fбcil de calcular tempo para um timer: (Horas*Minutos*Segundos*1000), ignorando valores 1.
// (Minutos * Segundos * 1000)
//new newVehicleTime = (60 * 60 * 1000);
//new updatePlayerTime = (60 * 1000); //Um minuto
//Eu desativei para poder testar melhor - /\
//E usei isso \/
new newVehicleTime = (60000);
new updatePlayerTime = (1000);
new currentVehicle = -1; //Guardarб o veнculo atual
new VeiculosBBO[12];
new bool:isInGaragem[MAX_PLAYERS];
public OnFilterScriptInit()
{
SetTimer("AtualizarVeiculo", newVehicleTime, true); //Executara 'AtualizarVeiculo' a cada uma hora apуs este Script ser iniciado.
AtualizarVeiculo(); //Como o 'SetTimer' sу executarб daqui uma hora, atualize o veнculo pela primeira vez.
SetTimer("AtualizarCarro", updatePlayerTime, true); //Executara 'AtualizarCarro' a cada minuto para todos jogadores.
//Seus veнculos
VeiculosBBO[0] = CreateVehicle(559,-1990.7375,170.9375,27.1953,270.0000000,0,3,15); //Jester-BBO
VeiculosBBO[1] = CreateVehicle(559,-1990.7375,170.9375,27.1953,270.0000000,0,3,15); //Jester-BBO
VeiculosBBO[2] = CreateVehicle(559,-1991.0796,159.3297,27.1953,270.0000000,0,3,15); //Jester-BBO
VeiculosBBO[3] = CreateVehicle(559,-1991.4545,146.6407,27.1953,270.0000000,0,3,15); //Jester-BBO
VeiculosBBO[4] = CreateVehicle(559,-1991.9436,130.0406,27.1953,270.0000000,0,3,15); //Jester-BBO
VeiculosBBO[5] = CreateVehicle(559,-1992.5179,110.5918,27.1954,270.0000000,0,3,15); //Jester-BBO
VeiculosBBO[6] = CreateVehicle(411,-1990.7375,170.9375,27.1953,270.0000000,0,3,15); //Infernus-BBO
VeiculosBBO[7] = CreateVehicle(411,-1990.7375,170.9375,27.1953,270.0000000,0,3,15); //Infernus-BBO
VeiculosBBO[8] = CreateVehicle(411,-1991.0796,159.3297,27.1953,270.0000000,0,3,15); //Infernus-BBO
VeiculosBBO[9] = CreateVehicle(411,-1991.4545,146.6407,27.1953,270.0000000,0,3,15); //Infernus-BBO
VeiculosBBO[10] = CreateVehicle(411,-1991.9436,130.0406,27.1953,270.0000000,0,3,15); //Infernus-BBO
VeiculosBBO[11] = CreateVehicle(411,-1992.5179,110.5918,27.1954,270.0000000,0,3,15); //Infernus-BBO
return 1;
}
//Ter certeza de que o jogador nгo inicie 'na garagem'.
public OnPlayerConnect(playerid) {
isInGaragem[playerid] = false;
return 1;
}
forward AtualizarVeiculo();
public AtualizarVeiculo()
{
//Respawna o Veнculo Antigo no caso de ele nгo estar vendido.
if(currentVehicle != -1)
SetVehicleToRespawn(VeiculosBBO[currentVehicle]);
//Faz com que o veнculo nгo repita.
new oldVeh = currentVehicle;
while(oldVeh != currentVehicle)
currentVehicle = random(sizeof(VeiculosBBO)); //Seleciona um veнculo Aleatуrio.
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(!IsPlayerConnected(playerid)
|| !isInGaragem[playerid])
continue;
SendClientMessage(playerid, -1, "Este veнculo nгo estб mais а venda.");
}
SendClientMessageToAll(-1, "Hб um novo veнculo а venda!");
return;
}
forward VenderCarro();
public VenderCarro()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(IsPlayerInArea(playerid, -1964.867553, 253.466934, -1925.898315, 309.475463)
&& currentVehicle != -1)
{
isInGaragem[playerid] = true;
new v = GetPlayerVehicleID(playerid);
if(v == VeiculosBBO[currentVehicle])
{
SendClientMessage(playerid, -1, "Vendido!");
SetVehicleToRespawn(v);
currentVehicle = -1; //Veнculo nгo estarб mais а venda
isInGaragem[playerid] = false;
}
continue;
}
isInGaragem[playerid] = false;
continue;
}
return;
}
IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY) {
return 1;
}
return 0;
}
//ficou dando erro no IsPlayerInArea que vocк fez...
/*
COP.pwn(111) : warning 219: local variable "min" shadows a variable at a preceding level
COP.pwn(111) : warning 213: tag mismatc
COP.pwn(116) : warning 219: local variable "min" shadows a variable at a preceding level
COP.pwn(116) : warning 213: tag mismatch
*/
/*
IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY) {
if(MinX > MaxX) {
new min = MinX;
MinX = MaxX;
MaxX = min;
}
if(MinY > MaxY) {
new min = MinY;
MinY = MaxY;
MaxY = min;
}
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
return true;
return false;
}*/