30.07.2016, 21:03
Buenas, tengo éste sistema de renta de vehículos y le quiero hacer una modificación; el sistema cumple con la función de que si es un vehículo de renta y te subes te sale un dialogo y tienes que poner cuanto lo quieres rentar... funciona bien, más no lo quiero así... quiero que salga un dialogo estilo lista que diga 5, 10/30 o 1 hora(con hacer un ejemplo de 5 y 10m lo demás lo puedo hacer) minutos/horas que lo quieras rentar y ta, eso... que se rente por ese tiempo.
Код:
DIALOGO de Renta.
case DIALOG_RENTA:
{
if(!response) return RemovePlayerFromVehicle(playerid);
if(response)
{
if(LlaveRenta_[playerid] != -1) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, COLOR_ROJO, "* Ya tienes un vehículo rentando, utiliza(/dejar renta) para alquilar otro.");
if(VehiculoRenta_(VehiculoID))
{
new
found;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(LlaveRenta_[i] == VehiculoID)
{
SendClientMessage(playerid, COLOR_ROJO, "* Ya este vehículo se encuentra rentado por otra persona."), found = 1;
break;
}
}
if(found != 1)
{
if(!IsNumeric(inputtext)) return SendClientMessage(playerid, COLOR_ROJO, "* Solo está permitido números en este dialogo."), RemovePlayerFromVehicle(playerid);
if(strval(inputtext) < 5 || strval(inputtext) > 100) return SendClientMessage(playerid, COLOR_ROJO, "* Tiene que ser entre 5 y 100 para que funcione."), RemovePlayerFromVehicle(playerid);
new
Cantidad = strval(inputtext) * 3;
if(GetPlayerMoney(playerid) < Cantidad){RemovePlayerFromVehicle(playerid);return 1;}
QuitarDineroPlayer_(playerid, Cantidad);
ShowInfoForPlayer(playerid, "Aviso: Cuando dejes de usar el vehiculo usa ~y~/dejar renta", 3000);
LlaveRenta_[playerid] = VehiculoID, TiempoRenta_[playerid] = strval(inputtext);
}
}
else RemovePlayerFromVehicle(playerid);
return 1;
}
}
Y en OnGamemodeInit se activa 1 timer de 1 segundo y pues este es el timer con la comprobación de los autos de renta.
CALLBACK: TimerDeUnSegundo()
{
new
hour, minute;
gettime(hour, minute);
SetWorldTime(hour);
if(minute == 2 && PayDay_ == 0){PayDay(), PayDay_ = 1;}
if(minute == 3 && PayDay_ == 1){PayDay_ = 0;}
static
Contador[3];
for(new i; i < sizeof(Contador); i++) Contador[i]++;
if(Contador[1] >= 60)
{
Contador[1] = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(TiempoRenta_[i] != 0) TiempoRenta_[i]--;
if(TiempoRenta_[i] == 0 && LlaveRenta_[i] != -1)
{
SetVehicleToRespawn(LlaveRenta_[i]);
LlaveRenta_[i] = -1, TiempoRenta_[i] = 0;
SendClientMessage(i, COLOR_AZUL, "* Importante: Su renta caducó, por lo tanto se le quitó el vehículo.");
}
}
}
}


