Szerző Téma: [TUT]Progress bar  (Megtekintve 9004 alkalommal)

[TUT]Progress bar
« Dátum: 2010. augusztus 26. - 18:05:02 »
+1 Show voters
Hello! Találtam egy jó kis scriptet,include fájlt a hivatalos fórumon sokaknak jól jöhet  :)
Kép:http://kep.psharing.com/413421.jpg
Olyan csík :D mint amivel az életedet méred.Helye,mérete,színe állítható. A következõben leírom nektek,hogy milyen függvényeket tartalmaz az include fájl és ha akarsz ilyen csíkot csinálni akkor hogyan kell.
CreateProgressBar(x, y, szélesség, magasság, szín, max);
x,y = a képernyõn a csík helyét ezekkel adhatod meg
szélesség = milyen \"hosszú\" legyen a csík
magasság = milyen \"vastag\" legyen a csík
szín = milyen színû legyen a csík
max = maximum értéke (alapból ez 100)
DestroyProgressBar(barid);
Megsemmisíted vele a csíkot. (Nem tudod visszahozni a mod restartig)
ShowProgressBarForPlayer(playerid, barid)
Egy játékosnak megjeleníti a csíkot.
HideProgressBarForPlayer(playerid, barid)
Egy játékosnak elrejti a csíkot.(láthatatlan lesz)
ShowProgressBarForAll(barid)
Minden játékosnak megjeleníti a csíkot.
HideProgressBarForAll(barid)
Minden játékosnak elrejti a csíkot.(Láthatatlan lesz)
SetProgressBarValue(barid, value)
Ezzel adod meg,hogy meddig töltsön a csík.(Figyelj arra,hogy milyen maximum értéket adtál meg a Create-nál mert annál nem lehet több!) Ha ezzel átállítottad az aktuális értéket akkor UpdateProgressBar megjeleníti a változást.
GetProgressBarValue(barid)
Lekéri az aktuális értékét a csíknak.
SetProgressBarMaxValue(barid, max)
A maximális értékét adhatod meg vele a csíknak.(CreateProgressBar -nál már egyet beállítottál,ezt csak akkor használd ha azt módosítani akarod vele menet közben!)
SetProgressBarColor(barid, color)
A csík színét állítod át vele.
UpdateProgressBar(barid, playerid=INVALID_PLAYER_ID)
Ha valamit átállítottál a csíkon (pl: Value=értékét) akkor ezt írd utána,hogy meg is jelenítse azt)
Egy egyszerû használat (forumról van nem én írtam)
 
new Bar:health = CreateProgressBar(50.0, 300.0, _, _, 0xFF0000FF, 100.0);
SetProgressBarValue(health, 50.0);
ShowProgressBarForAll(health);

 
Ha meg akarod semmisíteni:
 
DestroyProgressBar(health);

 
A script:
 
#include <a_samp>
#include <progress>
new Bar:vhealth[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
forward ProgressBar();
public OnFilterScriptInit()
{
   SetTimer(\"ProgressBar\", 500, 1);
   return 1;
}
public ProgressBar() //I prefer not to use OnPlayerUpdate with textdraws
{
   for(new playerid; playerid < MAX_PLAYERS; playerid++) //I recommend foreach(Player, playerid)
   {
       new vehicleid;
       if((vehicleid = GetPlayerVehicleID(playerid)) && vhealth[playerid] != INVALID_BAR_ID)
       {
           new Float:health;
           GetVehicleHealth(vehicleid, health);
           SetProgressBarValue(vhealth[playerid], health);
           UpdateProgressBar(vhealth[playerid], playerid);
       }
   }
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
   if(oldstate == PLAYER_STATE_DRIVER)
   {
       DestroyProgressBar(vhealth[playerid]);
       vhealth[playerid] = INVALID_BAR_ID;
   }
   if(newstate == PLAYER_STATE_DRIVER)
   {
       vhealth[playerid] = CreateProgressBar(548.5, 36.0, _, _, 0x00FF00FF, 1000.0);
       ShowProgressBarForPlayer(playerid, vhealth[playerid]);
   }
   return 1;
}

 
Ez egy egyszerû kis script ami a jármûved állapotát méri.
Kép:http://img710.imageshack.us/img710/3010/healthbar.png
Ez 1.3.1 -es verzió lehet,hogy lesz még másik kiadás is.
Include fájl: http://toribio.pastebin.com/TrJXUKtC
Ezt tedd bele a szervermappád/pawno/include mappába progress.inc legyen a fájl neve.
A scripted elejére pedig ezt kell írni: #include <progress>
Progress bar készítõ: http://toribio.pastebin.com/b3jwyn0z
Ezzel könnyen megcsinálhatod a csíkot.
Itt egy videó róla:

Eredeti leírás: http://forum.sa-mp.com/showthread.php?t=113443&highlight=progressbar
Remélem érthetõ a leírás(nagyrészt csak az eredetit fordítottam persze nem szórol szóra csak a lényeget)
Ha valami nem érthetõ írj kommentbe :)
« Utoljára szerkesztve: 2010. augusztus 26. - 18:08:32 írta Szilord »

Nem elérhető ptlevi

  • 235
    • Profil megtekintése
[TUT]Progress bar
« Válasz #1 Dátum: 2010. augusztus 27. - 20:49:29 »
0 Show voters
Nem írnál, vagy nem írna valaki nekem egy példa scriptet mert nem nagyon akar sikerülni.
Ha számít az is hogy mibe kell akkor: nekem a teleporthoz kell, amikor az objecteket be kell töltse.

[TUT]Progress bar
« Válasz #2 Dátum: 2010. augusztus 28. - 08:24:03 »
0 Show voters
írtam neked egyet
 
#include <progress> // ezt beilleszted a modod legelejérte
new Bar:loading; // a loading a csíkod neve arra írod amire akarod
forward toltodikacsik1(playerid); // ez egy timer neve ennek is mindegy
forward toltodikacsik2(playerid);// szintén
forward toltodikacsik3(playerid);//szintén
//ezt a 4-et a new-tól kezdve a mod elejére kell
//most attól függ,hogy gamemode-be vagy filterscript-be írod e a teleportot
//ha scriptbe akkor: public OnFilterScriptInit() alá illeszd be
//ha gamemodebe akkor: public OnGameModeInit() alá
loading = CreateProgressBar(250.00, 385.00, 145.50, 8.50, -16776961, 100.0);
//ugyanettõl függ OnFilterScriptExit vagy OnGameModeExit alá illeszd ezt:
DestroyProgressBar(loading);
//Itt vannak a timerek:
public toltodikacsik1(playerid)
{
SetProgressBarValue(loading,30);
UpdateProgressBar(loading,playerid);
return 1;
}
public toltodikacsik2(playerid)
{
SetProgressBarValue(loading,60);
UpdateProgressBar(loading,playerid);
return 1;
}
public toltodikacsik3(playerid)
{
SetProgressBarValue(loading,100);
UpdateProgressBar(loading,playerid);
HideProgressBarForPlayer(playerid,loading);
TogglePlayerControllable(playerid,1);
return 1;
}
//mikor tölt a csík lefagyasztja az embert,ha betöltött akkor feloldja
//Ezt az onplayercommandtext alá illeszd be:
if (strcmp(\"/teleportod\", cmdtext, true) == 0)
{
SetTimer(\"toltodikacsik1\",1000,0);
SetTimer(\"toltodikacsik2\",2000,0);
SetTimer(\"toltodikacsik3\",3000,0);
TogglePlayerControllable(playerid,0);
ShowProgressBarForPlayer(playerid,loading);
return 1;
}

Nem elérhető ptlevi

  • 235
    • Profil megtekintése
[TUT]Progress bar
« Válasz #3 Dátum: 2010. augusztus 28. - 12:24:10 »
0 Show voters
Köszönöm szépen.  :)

Nem elérhető nyE

  • 1745
    • Profil megtekintése
[TUT]Progress bar
« Válasz #4 Dátum: 2010. augusztus 28. - 17:04:25 »
0 Show voters
Nem jó a link :(

[TUT]Progress bar
« Válasz #5 Dátum: 2010. augusztus 28. - 18:35:46 »
0 Show voters
Egész jó cucc! Kössz hogy áthoztad ide is Szilord.  ;)
Ha valaki a ki írt scriptet használja akkor érdemes a koordinátát átírni. Mert ha van pánélja a játékosnak akkor bele lóg át tettem az élet és a páncél közé:
 
vhealth[playerid] = CreateProgressBar(548.5, 58.0, _, _, 0x00FF00FF, 1000.0);

 
Csak ezt az egy sórt kell kicserélni ha valaki szeretné.
« Utoljára szerkesztve: 2010. augusztus 28. - 19:13:30 írta [M]D[S]Rotary »

[TUT]Progress bar
« Válasz #6 Dátum: 2010. augusztus 30. - 18:47:32 »
0 Show voters
Fúú ez nagyon odavág...köszi az Uppot

Nem elérhető KDDomi

  • 976
    • Profil megtekintése
[TUT]Progress bar
« Válasz #7 Dátum: 2010. szeptember 20. - 20:06:45 »
0 Show voters
Nem jo a include link :(:(

[TUT]Progress bar
« Válasz #8 Dátum: 2010. szeptember 20. - 21:19:58 »
0 Show voters
nekem bejön

Nem elérhető KDDomi

  • 976
    • Profil megtekintése
[TUT]Progress bar
« Válasz #9 Dátum: 2010. szeptember 21. - 16:41:16 »
0 Show voters
beraktam és ezt irja:
 
C:\\Users\\Domi\\Desktop\\Szerver\\proba\\pawno\\include\\progress.inc(1) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
1 Error.
« Utoljára szerkesztve: 2010. szeptember 21. - 17:50:09 írta KDDomi »

[TUT]Progress bar
« Válasz #10 Dátum: 2010. szeptember 21. - 18:42:10 »
0 Show voters
Az include fáljt be tetted?

Nem elérhető KDDomi

  • 976
    • Profil megtekintése
[TUT]Progress bar
« Válasz #11 Dátum: 2010. szeptember 21. - 18:49:35 »
0 Show voters
Igen beraktam és ezt irta :( ugy csináltam: letöltötem a .txt fálj és ott a mentés másként és oda irtam fáljnévként hogy progress.inc és azt beraktam

[TUT]Progress bar
« Válasz #12 Dátum: 2010. szeptember 21. - 18:57:00 »
0 Show voters
Szerintem szedd le megint és tedd be :D
Link:
Download progress.inc

Nem elérhető KDDomi

  • 976
    • Profil megtekintése
[TUT]Progress bar
« Válasz #13 Dátum: 2010. szeptember 22. - 16:30:15 »
0 Show voters
kösz igy már jo!!

Nem elérhető [sdc]skyline

  • 1333
  • ςκyΙιηε
    • Profil megtekintése
[TUT]Progress bar
« Válasz #14 Dátum: 2011. december 26. - 20:22:14 »
0 Show voters
DRotary\" post=\"75727\" timestamp=\"1283013346\"]
Egész jó cucc! Kössz hogy áthoztad ide is Szilord.  ;)
Ha valaki a ki írt scriptet használja akkor érdemes a koordinátát átírni. Mert ha van pánélja a játékosnak akkor bele lóg át tettem az élet és a páncél közé:
 
vhealth[playerid] = CreateProgressBar(548.5, 58.0, _, _, 0x00FF00FF, 1000.0);

 
Csak ezt az egy sórt kell kicserélni ha valaki szeretné.
 
[/quote]
igen de így meg a levegõbe lóg bele xD

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal