[TUT]Fuel system

Započeo SpawneR.
11. Jan. 2013. Zaključano
1,630
pregleda
5
postova
SpawneR Open
3
Rookie
11. Jan. 2013.
S_TUT
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...
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; // texdraw


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.
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 🙂
tbedy
4
Shot Caller
11. Jan. 2013.
Vrlo lijepo i korisno 😉 Pohvala!
Blaeks_Biofor
5
Forum Don
11. Jan. 2013.
napokon tutorijal gde si objasnio lepo svaku liniju  😄
cestitke
grga1
4
Made Man
11. Jan. 2013.
Quote from January 11, 2013, 5:33 pm:
Vrlo lijepo i korisno 😉 Pohvala!
[EX:RP]N1XTON
5
Underboss
11. Jan. 2013.
jednostavno a dobro pohvale  😛

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha