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."); } } } }