06.03.2016, 19:24
Quote:
Se podrнa hacer de esta manera:
Код:
new rentasCoche[][] = { {15,300}, {30,600}, {60,800} }; forward FUNC_TimerRentaCoche(playerid); public FUNC_TimerRentaCoche(playerid) { if(GetPVarInt(playerid, "RentoVehID") == GetPlayerVehicleID(playerid)) { SetVehicleToRespawn(GetPVarInt(playerid, "RentoVehID")); VehRentado[GetPVarInt(playerid, "RentoVehID")] = 0; DeletePVar(playerid, "RentoVehID"); } return 1; } Cuando te subes en el vehнculo en.. "OnPlayerStateChange" if(EsVehRenta(VehID)) { if(VehRentado[VehID] == 0) { new std[200]; for(new i; i < sizeof(rentasCoche); i++) format(std, sizeof(std), "%s%i Minutos\t$%i\n", rentasCoche[i][0], rentasCoche[i][1]); ShowPlayerDialog(playerid,DIALOG_RENTA,DIALOG_STYLE_LIST,"Renta",std,"Rentar","Salir"); } else if(VehRentado[VehID] == 1 && GetPVarInt(playerid,"RentoVehID") != VehID) { RemovePlayerFromVehicle(playerid); Error(playerid,"ЎYa alguien ha rentado este vehнculo!"); return 1; } } lo que activa el dialogo... y el response en donde quiero aplicar los timers: case DIALOG_RENTA: { if(!response) return RemovePlayerFromVehicle(playerid); if(GetPVarInt(playerid,"RentoVehID")) { Error(playerid,"ЎYa has rentado un vehнculo!"); RemovePlayerFromVehicle(playerid); return 1; } if(GetPlayerMoney(playerid) < rentasCoche[listitem][1]) { Error(playerid, "ЎNo tienes dinero suficiente!"); RemovePlayerFromVehicle(playerid); return 1; } new std[120]; format(std, sizeof(std), "ЎRentaste este vehнculo por "#CGRIS2"%i minutos"#CBLANCO" con el costo de %i dуlares!.", rentasCoche[listitem][0], rentasCoche[listitem][1]); SendClientMessage(playerid, C_BLANCO, std); SetPVarInt(playerid, "RentoVehID", GetPlayerVehicleID(playerid)); //Yo por lo general uso timers de YSI.. pero esto es lo que quieres SetTimerEx("FUNC_TimerRentaCoche", rentasCoche[listitem][0]*60000, false, "i", playerid); VehRentado[GetPlayerVehicleID(playerid)] = 1; QuitarDinero(playerid, rentasCoche[listitem][1]); return 1; } |