S_TUT
Fuel system
Fuel system
Uvod
Pozdrav vima , odlucio sam da napravim jos jedan svoj TUT u vezi pravljenje fuel systema... Fuel system je jako vazan za dobar RP i ne oduzima mnogo vremena... krenimo!
Definicija
Pre svega sve moramo da definisemo na vrhu srkipte .. svaka linija je objasnjena cemu sluzi...
Standardno
Ovo je standardno , znaci ovo satavite u OnGameModeInit da kad igra udje u neko vozilo nakon restarta servera to vozilo ima 100 l goriva.
Textdravovi
Ovo su textdrvovi koji vama prikazuju to stanje goriva.. Ovo mozete da prilagodite vasem Speedometru..Stavite u public OnPlayerSpawn
Pokazivanje/uklanjanje TD-ova
Ovo sluzi da pokazi ili ukloni TD nako ulaska ili izlaska iz vozila... Sravite pod public OnPlayerStateChange..
Komanda /fill
Komanda da napunite vozilo gorivom...
Timeri
Tajmeri , postavite ih na dno skripte...
Credits
SpawneR - Pravljenje TUT-a i prebacivanje komanda i optimiziranje skripte
gamer931215 - Njegov TUT na sa-mp.com...
LockeR - Ideja
TUT je sa mog starog profila koji je izbrisan 🙂
Pozdrav vima , odlucio sam da napravim jos jedan svoj TUT u vezi pravljenje fuel systema... Fuel system je jako vazan za dobar RP i ne oduzima mnogo vremena... krenimo!
Definicija
Pre svega sve moramo da definisemo na vrhu srkipte .. svaka linija je objasnjena cemu sluzi...
new fuel; //gorivo po vozilu
forward timer_fuel_lower(); //timer akda imate manje goriva
forward timer_refuel(playerid); //timer kada trebate da napunite rezervoar
new isrefuelling = 0; //provera da li igra vec puni gorivo
new Text:td_fuel; // texdrawStandardno
Ovo je standardno , znaci ovo satavite u OnGameModeInit da kad igra udje u neko vozilo nakon restarta servera to vozilo ima 100 l goriva.
for(new i=0;i fuel = 100; //postavlja gorivo na 100
}
SetTimer("timer_fuel_lower",4200,true); //timer Textdravovi
Ovo su textdrvovi koji vama prikazuju to stanje goriva.. Ovo mozete da prilagodite vasem Speedometru..Stavite u public OnPlayerSpawn
public OnPlayerSpawn(playerid)
{
td_fuel = TextDrawCreate(45,324,"Fuel: 100"); //Pravi textdraw
TextDrawBackgroundColor(td_fuel,0x00000033); //postavlja pozadinu
TextDrawFont(td_fuel,3); //font
TextDrawLetterSize(td_fuel,0.699999,1.700000); //velicina
TextDrawColor(td_fuel,0x000000ff); // boja
TextDrawSetShadow(td_fuel,3); //senka
return 1;
}Pokazivanje/uklanjanje TD-ova
Ovo sluzi da pokazi ili ukloni TD nako ulaska ili izlaska iz vozila... Sravite pod public OnPlayerStateChange..
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
new vid = GetPlayerVehicleID(playerid);
new string;format(string,sizeof string,"Fuel:%i",fuel); //realno gorivo
TextDrawSetString(td_fuel,string);
TextDrawShowForPlayer(playerid,td_fuel); //Pokazuje da li osoba vozi vozilo..
} else {
TextDrawHideForPlayer(playerid,td_fuel); //krije ukoliko igrac nije vozac
}
return 1;
}Komanda /fill
Komanda da napunite vozilo gorivom...
CMD:fill (playerid, params[] ) {
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,"Niste u vozilu!"); //proverava da li je igrac u vozilu
if (isrefuelling) return SendClientMessage(playerid,0xFFC800FF,"Vec punis gorvio!"); //proverava da li je igrac u toku punjenja goriva kucao komandu
if (GetPlayerMoney(playerid) - 80 <0) return SendClientMessage(playerid,0xFFC800FF,"nemas dovoljno novca!"); //Proverava da li igrac ima 80$
if(IsPlayerInRangeOfPoint(playerid, 2, -228.1517,1217.3269,19.7352))
{
GivePlayerMoney(playerid,-80); //Oduima igracu 80$
SetCameraBehindPlayer(playerid); //Stavlja kameru iza igraca..
TogglePlayerControllable(playerid,0); //Feeza igraca na nekoliko sec
isrefuelling = 1; //stavlja refueling na 1 tako da nemoze igrac da spama /fill
TextDrawSetString(td_fuel,"Punjenje..."); //Stavja igracu TD
SetTimerEx("timer_refuel",4500,false,"i",playerid); //stavlja timer
}
else { SendClientMessage(playerid, SIVA, "Nisi kod pumpe!"); return 1; }
return 1;
}
Timeri
Tajmeri , postavite ih na dno skripte...
public timer_fuel_lower()
{
for(new i=0;i if (isrefuelling) continue; //stopira u punjenju
new vid = GetPlayerVehicleID(i); //uzima ID vozila
if (GetPlayerVehicleSeat(i) == 0) { //da li je igrac vozac
fuel = fuel -1; //punjenje
if (fuel<1) //da li je vozilo prazno
{
fuel = 0; //stavlja gorivo na 0
RemovePlayerFromVehicle(i); //izbacuje igraca iz vozila
GameTextForPlayer(i,"~r~Nemas ~w~goriva~r! , zovi slep sluzbu!",5000,4); //text
}
}
new string;format(string,sizeof string,"Fuel:%i",fuel); //string
TextDrawSetString(td_fuel,string); //ubacuje TD
}
return 1;
}
public timer_refuel(playerid)
{
new vid = GetPlayerVehicleID(playerid);
fuel = fuel = 100; //stavlja gorivo na 100
isrefuelling = 0;//specava spam komandom /fil
TextDrawSetString(td_fuel,"Fuel:100"); //pokazuje TD
TogglePlayerControllable(playerid,1); //unfreeza igraca
} Credits
SpawneR - Pravljenje TUT-a i prebacivanje komanda i optimiziranje skripte
gamer931215 - Njegov TUT na sa-mp.com...
LockeR - Ideja
TUT je sa mog starog profila koji je izbrisan 🙂
