GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Leírások/Útmutatók => A témát indította: Szilord - 2010. Augusztus 26. - 18:05:02

Cím: [TUT]Progress bar
Írta: Szilord - 2010. Augusztus 26. - 18:05:02
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 :)
Cím: [TUT]Progress bar
Írta: ptlevi - 2010. Augusztus 27. - 20:49:29
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.
Cím: [TUT]Progress bar
Írta: Szilord - 2010. Augusztus 28. - 08:24:03
í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;
}
Cím: [TUT]Progress bar
Írta: ptlevi - 2010. Augusztus 28. - 12:24:10
Köszönöm szépen.  :)
Cím: [TUT]Progress bar
Írta: nyE - 2010. Augusztus 28. - 17:04:25
Nem jó a link :(
Cím: [TUT]Progress bar
Írta: [M]D[S]Rotary - 2010. Augusztus 28. - 18:35:46
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é.
Cím: [TUT]Progress bar
Írta: erik019 - 2010. Augusztus 30. - 18:47:32
Fúú ez nagyon odavág...köszi az Uppot
Cím: [TUT]Progress bar
Írta: KDDomi - 2010. Szeptember 20. - 20:06:45
Nem jo a include link :(:(
Cím: [TUT]Progress bar
Írta: Szilord - 2010. Szeptember 20. - 21:19:58
nekem bejön
Cím: [TUT]Progress bar
Írta: KDDomi - 2010. Szeptember 21. - 16:41:16
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.
Cím: [TUT]Progress bar
Írta: [M]D[S]Rotary - 2010. Szeptember 21. - 18:42:10
Az include fáljt be tetted?
Cím: [TUT]Progress bar
Írta: KDDomi - 2010. Szeptember 21. - 18:49:35
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
Cím: [TUT]Progress bar
Írta: [M]D[S]Rotary - 2010. Szeptember 21. - 18:57:00
Szerintem szedd le megint és tedd be :D
Link:
Download progress.inc
Cím: [TUT]Progress bar
Írta: KDDomi - 2010. Szeptember 22. - 16:30:15
kösz igy már jo!!
Cím: [TUT]Progress bar
Írta: [sdc]skyline - 2011. December 26. - 20:22:14
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