Szerző Téma: Jármû sérülése  (Megtekintve 774 alkalommal)

Jármû sérülése
« Dátum: 2014. Augusztus 07. - 14:15:02 »
0 Show voters
Sziasztok!
Egy olyan scriptre lenne szükségem ami megakádolyozza azt hogy a jármû felrobbanjon ha már pl 100%-ba sérûlt és a helyett hogy felrobbanna csak kezelhetetlenné válna a jármû. Tehát csak leállna a motor és nem lehetne vele elindulni.
Ha jól tudom van erre egy megoldás de sajnos nem jöttem rá hogy mi.
Valaki tudna nekem egy ilyen scriptet készíteni/küldeni?
Elõre is köszönöm! :)

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Jármû sérülése
« Válasz #1 Dátum: 2014. Augusztus 07. - 16:14:48 »
0 Show voters
Nem tud 100%-ba rongálódni csak ha felrobbant tudomásom szerint. Hogyha a jármû élete 250HP alá esik akkor kezd el égni. Megoldás: ellenõrzöd egy timerrel a kocsi HPját, ami ha 250 alatt van, 250-re állítod. Amikor indítod a kocsit akkor pedig, hogyha 250HP, vagy akörül van akkor nem engeded elindítani.

Jármû sérülése
« Válasz #2 Dátum: 2014. Augusztus 07. - 16:24:17 »
0 Show voters
Uha :O
Nem igazán értem :D
Nem tudnád sriptileg elküldeni ?

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Jármû sérülése
« Válasz #3 Dátum: 2014. Augusztus 07. - 16:44:25 »
0 Show voters
Így oldanám meg - legalábbis így próbálkoznék elsõnek -:
OnGameModeInit() alá:
 
SetTimer(\"JarmuHP\",2500,true);

 
majd a mód aljába/tetejébe, esetleg egy szabad helyre:
 
forward JarmuHP();
public JarmuHP()
{
new hp; // ebbe tároljuk az értékünket.
for(new i; i < MAX_VEHICLES; i++) // létrehozunk egy ciklust, ami annyiszor fut le még i kisebb mint \'MAX_VEHICLES\'.
{
GetVehicleHealth(i, hp); // lekérjük a jelenleg soron levõ jármû életét
if(hp < 250) // és ha az kisebb mint 250..
{
   SetVehicleHealth(i, 250); // akkor átállítjuk neki 250re.
}
}
}

 
nem teszteltem, jónak kell lennie. Ha nem jó akkor szólj. :)

Jármû sérülése
« Válasz #4 Dátum: 2014. Augusztus 07. - 17:11:33 »
0 Show voters
Áhá jó lesz egy így :D De most akkor hogyan tudnám ilyenkor leállítani a kocsi motorját és nem engedni beindítani ?

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Jármû sérülése
« Válasz #5 Dátum: 2014. Augusztus 07. - 17:23:47 »
0 Show voters
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, objective);

 
Ez leállítja, ezt így tudod a ciklusba használni:
 
forward JarmuHP();
public JarmuHP()
{
        new hp; // ebbe tároljuk az értékünket.
        new engine, lights, alarm, doors, bonnet, boot, objective; // jármû adatai
        for(new i; i < MAX_VEHICLES; i++) // létrehozunk egy ciklust, ami annyiszor fut le még i kisebb mint \'MAX_VEHICLES\'.
        {
                GetVehicleHealth(i, hp); // lekérjük a jelenleg soron levõ jármû életét
                if(hp < 250) // és ha az kisebb mint 250..
                {
                        SetVehicleHealth(i, 250); // akkor átállítjuk neki 250re.
                        GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective); // lekérjük, hogy be van e indítva, ajtók zárva stb...
                        SetVehicleParamsEx(i, 0, lights, alarm, doors, bonnet, boot, objective); // leállítjuk a kocsit.
                }
        }
}

Jármû sérülése
« Válasz #6 Dátum: 2014. Augusztus 07. - 18:13:55 »
0 Show voters
Kezd már összeállni a dolog :D
De még annyi lenne hogy ugye a motor leáll ha totálkáros a kocsi. Viszont beindítani azok ellenére is betudom . Hogyan lehetne a motor indítását úgy megcsinálni hogy lekérdezze azt hogy totálkáros-e a kocsi? És ha az akkor ne engedje beindítani ?
Motor indítási script:
 
               new vehicleid = GetPlayerVehicleID(playerid);
         new engine, lights, alarm, doors, bonnet, boot, objective;
         GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
         if(engine == 0 && Benzin[vehicleid] <= 0)
         {
            ShowErrorDialog(playerid, \"Kifogyott az üzemanyag!\");
            return 1;
         }
         if(engine == 1) { engine = 0; lights = 0; }
         else { engine = 1; lights = 1; }
         SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Jármû sérülése
« Válasz #7 Dátum: 2014. Augusztus 07. - 19:44:25 »
+1 Show voters
Ugyanúgy, lekéred a HPját és ha 250(vagy kevesebb) akkor nem engeded beindítani.
Vagy a könyebbik megoldás lehet az is, hogy amikor a ciklusban lekéri nem \'if(hp < 250)\', hanem \'if(hp <= 250)\'
így 2.5 másodpercenként -vagy hamarabb- le fog fulladni a motor. Bár ez pazarló, de nem vészes. (Azért pazarló mert minden lefutásnál igaz lesz ha totálkáros = mindig lefut a leállítás, HP állítás).
ha le akarod kérni az életét a parancsod tetejébe tedd ezt:
 

new hp;
new vehid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehid, hp);
if(hp <= 250) return SendClientMessage(playerid, -1, \"Nem indíthatod be!\"); // mivel ott a \'return\' ezért innentõl nem fut tovább a parancs, ha igaz az állításunk(\'hp kisebb, vagy egyellõ mint 250\').

Jármû sérülése
« Válasz #8 Dátum: 2014. Augusztus 07. - 19:50:56 »
0 Show voters
Tökéletesen mûködik köszönöm szépen! :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal