Jump to content

script Fuel system by [MR.]cobra


-MR.-cobra

Recommended Posts

caw all pawneri

 

Robil som si do modu fuel system a tak vam ho tu ukážem.

 

Je to veľmi jednoduchy script, kodoval som ho cca 20 min. a testovanie a opravovanie bugov cca 10 min.

 

Inštalácia:

 

1. Otvorte si pawno a stlačte "new project"

2. Vymažte tam všetko a skopírujte tam toto --> PASTEBIN

3. Do OnFilterScriptInit dajte:

AddBenzinka(pos:X,pos:Y,pos:Z); //vytvoríte benzínku

4. potom to skompilujte a .amx vložte na server do zložky FilterScripty, atd...

 

Použitie:

- prídete na server sadnete do auta a idete na vami vytvorenú benzínku.

- ked tam pridete napíšte príkaz /natankovat a počkajte 10 sec., a natankuje vám to plnú nádrž

- môžete spraviť aj admin príkaz:

if(strcmp("/tankovat",cmdtext,true,9)==0)
{
     if(Adminlvl[playerid] < 1) return SendClientMessage(playerid,COLOR_RED,"Nemáš prava"); 
     for(new v;v      {
           palivo[v] = 100;
     }
     SendClientMessageToAll(COLOR_RED,"Admin natankoval všetky autá.");
     return 1;
}

 

 

Ak chcete zmenit napríklad ako rýchlo sa vám odoberá palivo tak na riadku:

54 zmente '300000' na vlastný interval vyjadrený v milisekundách (300000 = 5 min.)

 

Ak najdete nejakú chybu (nemala by byť, testoval som s piatimi benzínkami a fungovalo) tak ju nahláste sem do komentov.

 

To je asi všetko.

 

S pozdravom:

[MR.]cobra

Link to comment
Share on other sites

Je to tvoje ? BTW Palivo sa odoberá aj autám v ktorých nikto nesedí... čo je na ehm... na nič

 

Samozrejme že je to moje.

A to s tými autami v ktorých nikto nesedí - pracujem na tom

 

OPRAVENÉ tu je LINK

Link to comment
Share on other sites

Je to tvoje ? BTW Palivo sa odoberá aj autám v ktorých nikto nesedí... čo je na ehm... na nič

A vo není všechno... Zkuste najít chybu :d

if(strcmp("/tankovat-all",cmdtext,true,15)==0)
{
     if(Adminlvl[playerid] >= 1) 
     {
           for(new c;c            {
                 palivo[c] == 100;
           }
           SCMTA(pekná_farbička,"Admin natankoval všetky autá.");
     }else{
           SCM(playerid,pekná_farbička,"Nemáš práva");
     }
     return 1;
}

 

Nechápu proč lidi zveřejňujou script, kterej není funkční..

 

Navíc proč dělat cykl na auta a pak zjišťovat, zda je tam nějakej hráč (další cykl), když můžeš udělat cykl na hráče, zda je ve vozidle :d

Link to comment
Share on other sites

if(strcmp("/tankovat-all",cmdtext,true,15)==0)
{
     if(Adminlvl[playerid] >= 1) 
     {
           for(new c;c            {
                 palivo[c] == 100;
           }
           SCMTA(pekná_farbička,"Admin natankoval všetky autá.");
     }else{
           SCM(playerid,pekná_farbička,"Nemáš práva");
     }
     return 1;
}

 

to som tam len tak na rýchlo hodil aby ste pochopili že premena je to palivo[MAX_VEHICLES]

Link to comment
Share on other sites

cobra":2iwk48i5]
if(strcmp("/tankovat-all",cmdtext,true,15)==0)
{
     if(Adminlvl[playerid] >= 1) 
     {
           for(new c;c            {
                 palivo[c] == 100;
           }
           SCMTA(pekná_farbička,"Admin natankoval všetky autá.");
     }else{
           SCM(playerid,pekná_farbička,"Nemáš práva");
     }
     return 1;
}

 

to som tam len tak na rýchlo hodil aby ste pochopili že premena je to palivo[MAX_VEHICLES]

No to je hezký, ale když už si to sem tak narychlo hodil, mohls to aspoň napsat správně... Blbě je, zda je příkaz to /tankovat-all, pak nastavení plné nádrže a to ani nemluvim o tom, že není nadefinovaná pekná_barvička a SCM..

Link to comment
Share on other sites

Ne neopravil, je to furt blbě ;) Příkaz je dlouhý 9 znaků, ne 10, ach ta matika.. Okdy se hodnota nastavuje == ? To je spíš jako porovnání.. A teď mně dostalo, že palivo nastavuješ hráčům :d Cykl na hráče :d

Link to comment
Share on other sites

cobra":3irxk8sv]dúfam že tam už chybu nenajdeš

Kdybych tě chtěl vyprovokovat, napsal bych, proč ještě neoptimalizuješ ten INC, takhle to žere o 1000% víc CPU, ale vyprovokovat tě nechci a proto ti to nenapíšu :lol:

Link to comment
Share on other sites

Ukážem ti nedostatky ktoré by časom mohli zmiznúť....

 

#define MAX_BEN           1000

// WTF ? 1 000 Benzíniek sa nenazbiera ani na všetkých GTA sériach... AKA zbytočné premeny = zbytočná záťaž na RAM

 

 

 
public Palivo_minus()
{
       for(new v;v        {
           if(player_in[v] == true)
           {
                   if(GetVehicleModel(v) == 481 || GetVehicleModel(v) == 509 || GetVehicleModel(v) == 510)
               {
               }else{
                       palivo[v]--;
                   }
               }
       }
       return true;
}

Nekontroluješ či je v aute hráč a všetkým autám bereš palivo... takto o 1-2 hodiny na servery budú všetky autá bez benzínu... btw

if(GetVehicleModel(v) == 481 || GetVehicleModel(v) == 509 || GetVehicleModel(v) == 510)

{

}else{

palivo[v]--;

}

asi ti pomienka != nič nehovorí...

 

 

    if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510)
   {
   }else{
               palivo[vehicleid] = 50 + random(50);
       }

Zase tá inteligentnná podmienka...

 

    if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510)
   {
   }else{
       palivo[vehicleid] = 0;
   }

a zase...

 

      if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
       {
           if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return false;
               IsPalivoInVehicle(GetPlayerVehicleID(playerid))
               {
                   new fuel_str[15];
                       format(fuel_str,sizeof(fuel_str),"Palivo: ~r~%d",palivo[GetPlayerVehicleID(playerid)]);
                       TextDrawSetString(td_fuel[playerid],fuel_str);
                       TextDrawShowForPlayer(playerid,td_fuel[playerid]);
               }else{
                   GameTextForPlayer(playerid,"~b~Toto vozidlo ma ~r~prazdnu ~g~palivovu ~r~nadrz",5000,4);
                   DestroyVehicle(GetPlayerVehicleID(playerid));
                   RemovePlayerFromVehicle(playerid);
               }
       }

Mohol si použiť premenu (server sa viac namáha lebo stále zistuje id háčovho auta

 

                    DestroyVehicle(GetPlayerVehicleID(playerid));
                   RemovePlayerFromVehicle(playerid);

Zmažeš auto vyhoíš hráča ? :d

 

        palivo[GetPlayerVehicleID(playerid)] = 100;
       new fuel_str[15];
       format(fuel_str,sizeof(fuel_str),"Palivo: ~r~%d",palivo[GetPlayerVehicleID(playerid)]);

Vôbec netrebal format...

TextDrawSetString(td_fuel[playerid],"Palivo: ~r~100");

 

Ale ak je to tvoj prvý tak sa to dá...

Link to comment
Share on other sites

Stim natankovat je to blbost. Urob to tak, ze ak rychlost= 0 no tak mu zacne automaticky tankovat. Inac good

 

Ukaž mi když už tady rozdáváš chytré napady jak by jsi to udělal...a navíc tohle je na RP ...jak realne že když auto stojí tak se benzín sám natankuje...

Link to comment
Share on other sites

  • Administrátor
8/10... dobré :thumbup: , možná něco z toho využiju, jestli budu dělat RP... btw. na QWERovu kritiku si zvykni :d (vždy něco najde :d )

QWER neco najde kdyz je co najit jako prominy ale tankovat auto ckylem MAX_Players to hranici s demenci

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...