Szerző Téma: Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése  (Megtekintve 6465 alkalommal)

Nem elérhető Alpha

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Dátum: 2010. augusztus 25. - 10:55:09 »
0 Show voters
Egyszerû Üzemanyag Filterscript készítése
 
Mindenek elõtt, Deklarációk
Szükségünk lesz Alapvetõ Declarációkra amiben eltároljuk az üzemanyag értékeit.
 

#include <a_samp>
#undef MAX_VEHICLES
#define MAX_VEHICLES 30 // ide írd, mennyi jármû van a szerveren
// max játékos
#undef MAX_PLAYERS
#define MAX_PLAYERS 30 // ide írd mennyi a slot limit!
new fuel[MAX_VEHICLES]; //Üzemanyag jármûvenként
forward timer_fuel_lower(); //Idõzítõ az üzemanyag csökkenéshez
forward timer_refuel(playerid); //Idõzítõ a jármû tankoláshoz
new isrefuelling[MAX_PLAYERS] = 0; //Bool annak ellenörzéséhez ha már a játékos tankol
new Text:td_fuel[MAX_PLAYERS]; //Üzemanyag TextDraw

 
Szabványos üzemanyag érték beálítása
(Itt volt valami blabla amit nem tudtam lefordítani de az biztos lényegtelen)
 

public OnFilterScriptInit()//Amikor a FilterScript betöltõdik
{
   for(new i=0;i<MAX_VEHICLES;i++) {
       fuel = 100; //Alapértéknek minden jármû 100-as üzemanyag értéket kap, ami a maximum
   }
   SetTimer(\"timer_fuel_lower\",4200,true); //Idõzítõ az üzemanyag csökkenéshez
   return 1;
}

 
Elkészítjük a TextDrawot amikor a játékos spawnol
Beálítjuk a textdraw pozícióját és effektusait.
 

public OnPlayerSpawn(playerid)
{
   td_fuel[playerid] = TextDrawCreate(45,324,\"Fuel: 100\"); //Csinál 1 TextDrawot a 45,324 pozícióba
   TextDrawBackgroundColor(td_fuel[playerid],0x00000033); //Csinálunk neki egy szép hátteret
   TextDrawFont(td_fuel[playerid],3); //TextDraw Front beálítása
   TextDrawLetterSize(td_fuel[playerid],0.699999,1.700000); //Méret
   TextDrawColor(td_fuel[playerid],0x000000ff); //Szín
   TextDrawSetShadow(td_fuel[playerid],3); //Árnyék =)
   return 1;
}

 
Megmutatjuk/Elrejtjük az üzemanyag szintet ha a játékos beszáll a jármûbe vagy elhagyja
Elrejtjük a TextDrawot ha a játékos NINCS a kocsiban
 

public OnPlayerStateChange(playerid, newstate, oldstate)
{
   if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
   {
       new vid = GetPlayerVehicleID(playerid);
       new string[125];format(string,sizeof string,\"Fuel:%i\",fuel[vid]); //Gyorsan csinálunk 1 kicsi frissítést az üzemanyag szinten
       TextDrawSetString(td_fuel[playerid],string);
       TextDrawShowForPlayer(playerid,td_fuel[playerid]); //Megmutatja az üzemanyag szintet ha a játékos kocsiban van
   } else {
       TextDrawHideForPlayer(playerid,td_fuel[playerid]); //Elrejtjük a TextDrawot ha a játékos nincs a kocsiban
   return 1;
}

 
Most megcsináljuk a Tankolás parancsot
 

public OnPlayerCommandText(playerid,cmdtext[]) {
   if (!strcmp(\"/refuel\",cmdtext,true,7)) {
       if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"You are not in an vehicle!\"); //Ha a játékos nincs jármûben MEGÁLÍTJUK a parancsot
       if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"You are already refuelling!\"); //Ha már a játékos tankol akkor MEGÁLÍTJUK a parancsot
       if (GetPlayerMoney(playerid) - 80 <0) return SendClientMessage(playerid,0xFFC800FF,\"You dont have enough money!\"); //Ha a játékosnak NINCS elég pénze akkor visszalökjük!
       GivePlayerMoney(playerid,-80); //De ha van akkor leveszünk -80$-t
       SetCameraBehindPlayer(playerid); //A játékos mögé rakjuk a kamerát mert õ így jobban lát mikor megvan fagyasztva
       TogglePlayerControllable(playerid,0); //Megfagyasztjuk a játékost
       isrefuelling[playerid] = 1; //Beálítjuk a refuel értéket 1 re hogy ne tudjon SPAMOLNI
       TextDrawSetString(td_fuel[playerid],\"Refuelling...\"); //Kicseréli a TextDrawot
       SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); //És beálítjuk az ujratöltési idõt
       return 1;
   }
   return 0;
}

 
REMEK! Elérkeztél az utolsó lépéshez aminél az idõzítõket(timer) beálítjuk
 

public timer_fuel_lower()
{
   for(new i=0;i<MAX_PLAYERS;i++) { //Ciklus minden játékosnak
       if (isrefuelling) continue; //Megálítjuk ha a játékos tankol
       new vid = GetPlayerVehicleID(i); //Lekérjük a Kocsi ID-jét
       if (GetPlayerVehicleSeat(i) == 0) { //Ha a játékos a vezetõ
           fuel[vid] = fuel[vid] -1; //Csökkenés mértéke
           if (fuel[vid]<1) //Ha elfogyott a benzin
           {
               fuel[vid] = 0; //Beálítjuk az üzemanyag szintet 0 ra Mert ha nem álítjuk be akkor az idõzítõ lehúzza -1 -2 -3 stb. re mielött kivehetnénk a kocsiból!
               RemovePlayerFromVehicle(i); //Kiszedjük a játékost a jármûvébõl!
               GameTextForPlayer(i,\"~r~You are out of ~w~fuel~r~!\",5000,4); //Szöveg megmutatása
           }
       }
       new string[125];format(string,sizeof string,\"Fuel:%i\",fuel[vid]); //String elõkészítése a következõ üzemanyag értékhez
       TextDrawSetString(td_fuel,string); //textDraw frissítése
   }
   return 1;
}
public timer_refuel(playerid) //Amikor tankol
{
   new vid = GetPlayerVehicleID(playerid);
   fuel[vid] = fuel[vid] = 100; //Beálítjuk az üzemanyagát 100 ra
   isrefuelling[playerid] = 0;//Eltüntetjük az AntiSpam cuccost
   TextDrawSetString(td_fuel[playerid],\"Fuel:100\"); //TextDraw frissítése
   TogglePlayerControllable(playerid,1); //És levesszük a fagyasztást a játékosról
}

 
EREDETI LEÍRÁS: http://forum.sa-mp.com/showthread.php?t=169284

EREDETI SZERZÕ: gamer931215


LEFORDÍTOTTA: ALPHA

Ha valami hibát találsz kérlek jelezd!(Helyenként nem 100% osan ugyan az van leírva mert úgy kicsit értelmetlen dolog jött volna ki!)
« Utoljára szerkesztve: 2010. augusztus 26. - 11:46:42 írta Alpha »

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #1 Dátum: 2010. augusztus 25. - 11:29:06 »
0 Show voters
Ez attól lesz egyszerû, hogy pazarol és lehetne gyorsabb is?

Nem elérhető maark

  • 565
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #2 Dátum: 2010. augusztus 25. - 12:41:49 »
0 Show voters
- A leírások elé szükséges a [TuT] vagy e szócskának a szinonimája. (Például [Lecke], [Leírás] stb)
- A leírás írója ne másoljon szkripteket, és azt elemezze
[/quote]

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #3 Dátum: 2010. augusztus 25. - 13:18:52 »
0 Show voters
Idézetet írta: maark date=1282732909\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2980\" data-ipsquote-contentclass=\"forums_Topic

- A leírás írója ne másoljon szkripteket, és azt elemezze

[/quote]
Miért másolt szkriptet?
Ez egy fordítás...Nem tilos leírást fordítani az angol fórumról.

Nem elérhető Alpha

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #4 Dátum: 2010. augusztus 25. - 13:41:25 »
0 Show voters
Idézetet írta: Epsilon date=1282728546\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2980\" data-ipsquote-contentclass=\"forums_Topic
Ez attól lesz egyszerû, hogy pazarol és lehetne gyorsabb is?
 
Nos én nem kocka profiknak írtam hanem kezdõknek, akinek nem tetszik írjon mást kész!

Nem elérhető Mambo

  • 4239
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #5 Dátum: 2010. augusztus 25. - 13:45:06 »
0 Show voters
AZÉRT KELL WARNOLNI A GYEREKET MERT EGY TUTORIALT RAK KI? ÚRISTEN... Jóhogy nem azért warnolod, mert témát nyitott... Tudok felsorolni a moderátorok között olyat is, aki ezt szintén megszegte párszor.
Bocsi Mambo, de a témanyitó több szabályzati pontot áthágott, valamint ez nem tutorial, mivel csak azt írja le hogy rakd ide rakd oda! Egyébként a funkciók mellé igaz hogy tett kommentet, de az semmi. Szóval légyszíves fogd vissza magad.
« Utoljára szerkesztve: 2010. augusztus 25. - 15:06:24 írta ScreaM »

Nem elérhető Alpha

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #6 Dátum: 2010. augusztus 25. - 13:53:23 »
0 Show voters
Amúgy a \"Leírások/Útmutatok\" részbe miért KÖTELEZÕ beleírni a téma nevébe, hogy leírás?! Nem fölösleges dolog ez 1 kicsit ha már így a pazarlásnál tartunk?
« Utoljára szerkesztve: 2010. augusztus 25. - 13:59:40 írta Alpha »

Nem elérhető Delta

  • 159
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #7 Dátum: 2010. augusztus 25. - 13:54:38 »
0 Show voters
Ez egyszerûen röhej. Hova süllyedt minden? Ki ír egy tutorialt KEZDÕKNEK(!!), erre még ezt is leszóljátok? Jó, ez is rendben van, de legalább oda írnátok, hogy mi a hibás, meg hogyan javítsa ki.

Nem elérhető Alpha

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #8 Dátum: 2010. augusztus 25. - 16:32:58 »
0 Show voters
Bocsi Mambo, de a témanyitó több szabályzati pontot áthágott, valamint ez nem tutorial, mivel csak azt írja le hogy rakd ide rakd oda! Egyébként a funkciók mellé igaz hogy tett kommentet, de az semmi. Szóval légyszíves fogd vissza magad.[/quote]
Ennél többet mit írjak le?! Egszerû mindenre azt mondani, hogy FOS.
Neked is érik a warn. Fogd vissza magad.
« Utoljára szerkesztve: 2010. augusztus 25. - 17:21:25 írta ScreaM »

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #9 Dátum: 2010. augusztus 25. - 16:48:56 »
0 Show voters
Szerintem jó lett!

Peace: H.P.

Nem elérhető Alpha

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #10 Dátum: 2010. augusztus 25. - 18:31:31 »
0 Show voters
Idézetet írta: Alpha date=1282746778\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2980\" data-ipsquote-contentclass=\"forums_Topic

Bocsi Mambo, de a témanyitó több szabályzati pontot áthágott, valamint ez nem tutorial, mivel csak azt írja le hogy rakd ide rakd oda! Egyébként a funkciók mellé igaz hogy tett kommentet, de az semmi. Szóval légyszíves fogd vissza magad.
Ennél többet mit írjak le?! Egszerű mindenre azt mondani, hogy FOS.
Neked is érik a warn. Fogd vissza magad.
 
[/quote]
Aha értem ha már igaza van az embernek akkor már warn meg ban jár neki mi?

Nem elérhető Depi

  • 2259
  • Még mindig TrYp. :)
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #11 Dátum: 2010. augusztus 25. - 18:37:47 »
0 Show voters
Idézetet írta: Alpha date=1282753891\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2980\" data-ipsquote-contentclass=\"forums_Topic


 
Bocsi Mambo, de a témanyitó több szabályzati pontot áthágott, valamint ez nem tutorial, mivel csak azt írja le hogy rakd ide rakd oda! Egyébként a funkciók mellé igaz hogy tett kommentet, de az semmi. Szóval légyszíves fogd vissza magad.
Ennél többet mit írjak le?! Egszerû mindenre azt mondani, hogy FOS.
Neked is érik a warn. Fogd vissza magad.
 
[/quote]
Aha értem ha már igaza van az embernek akkor már warn meg ban jár neki mi?
 
[/quote]
Aza baj,hogy a kezdõk nem fogják meg érteni,pedig aza lényeg,ezért kell nagyon részletes leírást írni.

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #12 Dátum: 2010. augusztus 25. - 18:47:09 »
0 Show voters
Ezzel tulajdonképpen nincs is semmi baj, mivel mindenhova odaírta, hogy mit csinál vele, és hogy miért van ott. Az olyanokkal szokott gond lenni, amiben csak annyi van, hogy \"ezt másold ez alá...\", de mondom, ez rendben van.

Nem elérhető Alpha

Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #13 Dátum: 2010. augusztus 25. - 18:54:12 »
0 Show voters
Én sem írok ide többet tutorialt ok nélkül warnoltok stb.
A kódok mögé // el oda van írva mi mit csinál én ennél érthetõbben már nem tudom leírni
« Utoljára szerkesztve: 2010. augusztus 25. - 18:56:56 írta Alpha »

Nem elérhető Depi

  • 2259
  • Még mindig TrYp. :)
    • Profil megtekintése
Egyszerû(Alapvetõ) Üzemanyag Filterscript készítése
« Válasz #14 Dátum: 2010. augusztus 25. - 19:22:53 »
0 Show voters
Hát nem én,és nem is ZeRo volt.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal