#include <a_samp>
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#define AZZURRO 0x33CCFFAA
#define ARANCIONE 0xFF9900AA
#define ROSSO 0xAA3333AA
new Veicolo[10];
new DentroVeicolo[MAX_PLAYERS];
new InAffitto[MAX_PLAYERS];
new vecchioveicolo[MAX_VEHICLES] = (-1);
public OnFilterScriptInit()
{
print("Sistema Affitto Auto V.1 by Rio Caricato");
/* Aggiungere i Veicoli Qui */
Veicolo[0] = AddStaticVehicle(DATI);
Veicolo[1] = AddStaticVehicle(DATI);
Veicolo[2] = AddStaticVehicle(DATI);
Veicolo[3] = AddStaticVehicle(DATI);
Veicolo[4] = AddStaticVehicle(DATI);
Veicolo[5] = AddStaticVehicle(DATI);
Veicolo[6] = AddStaticVehicle(DATI);
Veicolo[7] = AddStaticVehicle(DATI);
Veicolo[8] = AddStaticVehicle(DATI);
Veicolo[9] = AddStaticVehicle(DATI);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#endif
public OnPlayerConnect(playerid)
{
DentroVeicolo[playerid] = 0;
InAffitto[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DentroVeicolo[playerid] = 0;
InAffitto[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
DentroVeicolo[playerid] = 0;
InAffitto[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/affittauto", cmdtext, true, 10) == 0) /* Comandi per affittare un veicolo */
{
if(GetPlayerMoney(playerid) <=1000)return SendClientMessage(playerid, ROSSO, "Non hai abbastanza soldi! (1000$)"); /* Controlla i soldi del player */
if(DentroVeicolo[playerid] == 1)return SendClientMessage(playerid, ROSSO, "Non sei dentro un veicolo Affitabile!"); /* Controlla se è dentro un veicolo Affitabile */
SendClientMessage(playerid, ARANCIONE, "Hai affittato questo veicolo! Non devi uscire, se esci non potrai più usarlo!");
InAffitto[playerid] = 1;
TogglePlayerControllable(playerid, 1); /* UnFreeza il Player */
GivePlayerMoney(playerid, -1000); /* Li toglie 1000, sopra ho usato il GetPlayerMoney, cosi il player non va coi soldi sotto a zero */
return 1;
}
if (strcmp("/lasciaveicolo", cmdtext, true, 10) == 0) /* Comandi per affittare un veicolo */
{
if(InAffitto[playerid] == 1)return SendClientMessage(playerid, ROSSO, "Non stai affittando un veicolo!"); /* Controlla se è dentro un veicolo Affitabile */
SendClientMessage(playerid, ARANCIONE, "Hai lasciato il veicolo che stavi affittando!");
InAffitto[playerid] = 0;
DentroVeicolo[playerid] = 0;
SetVehicleToRespawn(GetPlayerVehicleID(playerid));
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == Veicolo[0] | Veicolo[1] | Veicolo[2] | Veicolo[3] | Veicolo[4] | Veicolo[5] | Veicolo[6] | Veicolo[7] | Veicolo[8] | Veicolo[9]) /* Controlla se il player è entrato in un veicolo Affitabile */
TogglePlayerControllable(playerid, 0); /* Freeza il Player */
SendClientMessage(playerid, AZZURRO, "Questo veicolo è in affitto! Digita /affittauto per affitare il veicolo. Costo: 1000$");
DentroVeicolo[playerid] = 1;
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(InAffitto[playerid] == 1) /* Controlla se il player sta usando il veicolo in Affitto */
vecchioveicolo[vehicleid] = playerid; /* Setta il veicolo come ultimo veicolo usato */
SetTimer("tornoveicolo", 5000, 0); /* Setta un Timer di 5 secondi.. */
SendClientMessage(playerid, ROSSO, "Torna nel veicolo entro 5 secondi!"); /* Manda un messaggio */
return 1;
}
forward tornoveicolo(playerid, vehicleid);
public tornoveicolo(playerid, vehicleid)
{
{
if(GetPlayerVehicleID(playerid) == Veicolo[0] | Veicolo[1] | Veicolo[2] | Veicolo[3] | Veicolo[4] | Veicolo[5] | Veicolo[6] | Veicolo[7] | Veicolo[8] | Veicolo[9]) /* Controla se il player è in un veicolo Affitabile */
{
SendClientMessage(playerid, ARANCIONE, "Sei Tornato nel veicolo!"); /* manda il messaggio */
}
else /* Se non è dentro un veicolo Affitabile */
{
SetVehicleToRespawn(vecchioveicolo[playerid]); /* Respawna il vecchio veicolo */
SendClientMessage(playerid, ROSSO, "Non sei tornato nel veicolo!"); /* Manda il messaggio */
}
}
return 1;