Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => FilterScripte, Include, Pluginovi za SA-MP => Filterskripte & include fajlovi => Temu započeo: noddy_ poslato Novembar 21, 2021, 21:51:47 POSLE PODNE

Naslov: Robbery - Progress Bar
Poruka od: noddy_ poslato Novembar 21, 2021, 21:51:47 POSLE PODNE
Tip: FS
Slike ili Video: https://imgur.com/a/aMsC1SO
Opis i dodatne informacije: Pljacka marketa uz progress bar(posluzt ce pocetnicima :D ) , PawnCMD, Sscanf, progress2, YSI - Timeri.To vam je potrebno!
Download link: https://pastebin.com/Xt3edY4E
Scan link: pastebin
Credits: Ja
Naslov: Odg: Robbery - Progress Bar
Poruka od: schatzi poslato Novembar 21, 2021, 22:04:05 POSLE PODNE
Onako nije lose
Naslov: Odg: Robbery - Progress Bar
Poruka od: noddy_ poslato Novembar 21, 2021, 22:16:26 POSLE PODNE
Citat: stevich poslato Novembar 21, 2021, 22:04:05 POSLE PODNE
Onako nije lose
Hvala
Naslov: Odg: Robbery - Progress Bar
Poruka od: rane poslato Novembar 21, 2021, 22:31:58 POSLE PODNE
preskocio si ovde provjere kada igrac umre, napusti market ili se diskonektuje....

Solidan rad, moze posluziti uz malo dorade.

EDIT:takodje si umjesto timera mogao upotrijebiti ptask da ga ne pozivas svake sekunde manuelno.
Naslov: Odg: Robbery - Progress Bar
Poruka od: Galardo poslato Novembar 21, 2021, 22:36:41 POSLE PODNE
Citat: Common poslato Novembar 21, 2021, 22:31:58 POSLE PODNE
preskocio si ovde provjere kada igrac umre, napusti market ili se diskonektuje....

Solidan rad, moze posluziti uz malo dorade.

EDIT:takodje si umjesto timera mogao upotrijebiti ptask da ga ne pozivas svake sekunde manuelno.
I sta ce uraditi u ptasku?
Ponovno provjeravati da li pljacka?
Jesi li upucen kako radi ptask?
Naslov: Odg: Robbery - Progress Bar
Poruka od: rane poslato Novembar 21, 2021, 22:42:10 POSLE PODNE
Citat: Galardo poslato Novembar 21, 2021, 22:36:41 POSLE PODNE
I sta ce uraditi u ptasku?
Ponovno provjeravati da li pljacka?
Jesi li upucen kako radi ptask?
ptask se moze zaustaviti?

edit: umjesto manuelnog ponavljanja mogao si uraditi i
MiSonoAlzato = repeat RobTimer(playerid); i na kraju ga normalno ugasiti sa stopom
Naslov: Odg: Robbery - Progress Bar
Poruka od: fajnydzieciak poslato Novembar 22, 2021, 05:49:50 PRE PODNE
Mogao je kod malo bolje da se napise ali gj  :D

[pawn]
new pVrijeme[MAX_PLAYERS];
new pPBar;
new Timer:MiSonoAlzato;

new PlayerBar:r_bar;
[/pawn]

pisi brate new pa jedno ispod drugog ili u jednom redu ako oces, svjdn, posle kad budes imao 100+ varijabli bice ti zajebano za oci :D
[pawn]
new
    pVrijeme[MAX_PLAYERS],
    pPBar,

    Timer: MiSonoAlzato,
    PlayerBar: r_bar;
[/pawn]

U ovakvim slucajevima mozes koristiti return
[pawn]
timer RobTimer[1000]( playerid )
{
    if(pVrijeme[playerid] > 0)
    {
        TogglePlayerControllable(playerid, false);
        pVrijeme[playerid] --;
        new ostr[127];
        format(ostr, sizeof(ostr), "~r~PLJACKATE_JOS~w~%d~r~SEKUDNI", pVrijeme[playerid]);
        GameTextForPlayer(playerid, ostr, 1000, 3);
        pPBar ++;
        SetPlayerProgressBarValue(playerid, r_bar, pPBar);
        defer RobTimer( playerid );
    }
    if(pVrijeme[playerid] < 1)
    {
        GivePlayerMoney(playerid, 10000);
        TogglePlayerControllable(playerid, true);
        HidePlayerProgressBar(playerid, r_bar);
        stop MiSonoAlzato;
    }
}
[/pawn]

Same shit as
[pawn]
timer RobTimer[1000](playerid)
{
    if (pVrijeme[playerid])
    {
        TogglePlayerControllable(playerid, false);
        pVrijeme[playerid] --;

        new ostr[64];
        format(ostr, sizeof(ostr), "~r~PLJACKATE_JOS~w~%d~r~SEKUDNI", pVrijeme[playerid]);
        GameTextForPlayer(playerid, ostr, 1000, 3);

        pPBar ++;
        SetPlayerProgressBarValue(playerid, r_bar, pPBar);
        defer RobTimer( playerid );
        return 1;
    }

    GivePlayerMoney(playerid, 10000);
    TogglePlayerControllable(playerid, true);
    HidePlayerProgressBar(playerid, r_bar);

    stop MiSonoAlzato;

    return 1;
}
[/pawn]

Najbolje ces skontati na ovako nekom primeru

[pawn]
new __g_var_test = 10;
task TestTimer[1000]()
{
   if (__g_var_test) // if (__g_var_test > 0)
   {
      --__g_var_test;
      printf("%d", __g_var_test);
      return 1;
   }

   __g_var_test = 10;
   return 1;
}
[/pawn]

Ovde ti ide u loop sve, 9,8,7,6,5,4,3,2,1,0 pa opet ide 9,8,7,6,5,4,3,2,1,0 i tako u krug jer kad istekne gore, kad je 0, onda resetuje ispod dole na 10 opet i vrti ga

I samo kad koristis return u timeru, moras ga staviti na kraju isto dole al rece ti error sam
Naslov: Odg: Robbery - Progress Bar
Poruka od: noddy_ poslato Novembar 22, 2021, 08:06:04 PRE PODNE
Citat: Common poslato Novembar 21, 2021, 22:31:58 POSLE PODNE
preskocio si ovde provjere kada igrac umre, napusti market ili se diskonektuje....

Solidan rad, moze posluziti uz malo dorade.

EDIT:takodje si umjesto timera mogao upotrijebiti ptask da ga ne pozivas svake sekunde manuelno.
Hvala, ovo je uradjeno u 10min najvise.Ovo sam iz glave radio nesto pokusavao uraditi.
Naslov: Odg: Robbery - Progress Bar
Poruka od: noddy_ poslato Novembar 22, 2021, 08:08:01 PRE PODNE
Citat: Emmett White poslato Novembar 22, 2021, 05:49:50 PRE PODNE
Mogao je kod malo bolje da se napise ali gj  :D

[pawn]
new pVrijeme[MAX_PLAYERS];
new pPBar;
new Timer:MiSonoAlzato;

new PlayerBar:r_bar;
[/pawn]

pisi brate new pa jedno ispod drugog ili u jednom redu ako oces, svjdn, posle kad budes imao 100+ varijabli bice ti zajebano za oci :D
[pawn]
new
    pVrijeme[MAX_PLAYERS],
    pPBar,

    Timer: MiSonoAlzato,
    PlayerBar: r_bar;
[/pawn]

U ovakvim slucajevima mozes koristiti return
[pawn]
timer RobTimer[1000]( playerid )
{
    if(pVrijeme[playerid] > 0)
    {
        TogglePlayerControllable(playerid, false);
        pVrijeme[playerid] --;
        new ostr[127];
        format(ostr, sizeof(ostr), "~r~PLJACKATE_JOS~w~%d~r~SEKUDNI", pVrijeme[playerid]);
        GameTextForPlayer(playerid, ostr, 1000, 3);
        pPBar ++;
        SetPlayerProgressBarValue(playerid, r_bar, pPBar);
        defer RobTimer( playerid );
    }
    if(pVrijeme[playerid] < 1)
    {
        GivePlayerMoney(playerid, 10000);
        TogglePlayerControllable(playerid, true);
        HidePlayerProgressBar(playerid, r_bar);
        stop MiSonoAlzato;
    }
}
[/pawn]

Same shit as
[pawn]
timer RobTimer[1000](playerid)
{
    if (pVrijeme[playerid])
    {
        TogglePlayerControllable(playerid, false);
        pVrijeme[playerid] --;

        new ostr[64];
        format(ostr, sizeof(ostr), "~r~PLJACKATE_JOS~w~%d~r~SEKUDNI", pVrijeme[playerid]);
        GameTextForPlayer(playerid, ostr, 1000, 3);

        pPBar ++;
        SetPlayerProgressBarValue(playerid, r_bar, pPBar);
        defer RobTimer( playerid );
        return 1;
    }

    GivePlayerMoney(playerid, 10000);
    TogglePlayerControllable(playerid, true);
    HidePlayerProgressBar(playerid, r_bar);

    stop MiSonoAlzato;

    return 1;
}
[/pawn]

Najbolje ces skontati na ovako nekom primeru

[pawn]
new __g_var_test = 10;
task TestTimer[1000]()
{
   if (__g_var_test) // if (__g_var_test > 0)
   {
      --__g_var_test;
      printf("%d", __g_var_test);
      return 1;
   }

   __g_var_test = 10;
   return 1;
}
[/pawn]

Ovde ti ide u loop sve, 9,8,7,6,5,4,3,2,1,0 pa opet ide 9,8,7,6,5,4,3,2,1,0 i tako u krug jer kad istekne gore, kad je 0, onda resetuje ispod dole na 10 opet i vrti ga

I samo kad koristis return u timeru, moras ga staviti na kraju isto dole al rece ti error sam
Hvala, i na misljenju i nekoj "popravci" koda, ovo je uradjeno u svega 10min i ne treba mi :D
Naslov: Odg: Robbery - Progress Bar
Poruka od: noddy_ poslato Novembar 22, 2021, 09:31:25 PRE PODNE
Citat: Galardo poslato Novembar 21, 2021, 22:36:41 POSLE PODNE
I sta ce uraditi u ptasku?
Ponovno provjeravati da li pljacka?
Jesi li upucen kako radi ptask?
Slazem se potpuno, jedino za sto bi ja koristio taskove su kao neki hajmo reci globalni timeri :D
Vrijeme/Datum u TextDrawu i jos nesto slicno...Ali rob nikad...
Naslov: Odg: Robbery - Progress Bar
Poruka od: rane poslato Novembar 22, 2021, 11:40:16 PRE PODNE
Citat: ɴᴏᴅɪ poslato Novembar 22, 2021, 09:31:25 PRE PODNE
Slazem se potpuno, jedino za sto bi ja koristio taskove su kao neki hajmo reci globalni timeri :D
Vrijeme/Datum u TextDrawu i jos nesto slicno...Ali rob nikad...
ja sam se malo zbunio jer sam nedavno radio slican sistem sa y_timerima samo sam se kasno sjetio da sam koristio repeat a ne ptask.
Naslov: Odg: Robbery - Progress Bar
Poruka od: noddy_ poslato Novembar 22, 2021, 18:55:43 POSLE PODNE
Citat: Common poslato Novembar 22, 2021, 11:40:16 PRE PODNE
ja sam se malo zbunio jer sam nedavno radio slican sistem sa y_timerima samo sam se kasno sjetio da sam koristio repeat a ne ptask.
Desi se
Naslov: Odg: Robbery - Progress Bar
Poruka od: Rack! poslato Februar 06, 2022, 19:36:59 POSLE PODNE
Ništa posebno moze to i bolje pohvala za trud 6/10
Naslov: Odg: Robbery - Progress Bar
Poruka od: V01D poslato Februar 06, 2022, 20:26:31 POSLE PODNE
Cool, fali par "sigurnosnih" provela koji su recene gore, ali boze moj, moze posluziti pocetnicima.
Naslov: Odg: Robbery - Progress Bar
Poruka od: Slade poslato Februar 06, 2022, 21:03:35 POSLE PODNE
Nije lose, ja bih to svakako drukcije odradio, ovako prepasivan sistem, dodati da se nisani neki NPC, NPCData holder sa ako nista hardcoded kreiranje npcova, itd.. Ima tu dosta ideja, progress bar mozda da bude centriran i da se center GameText spusti da dodje tacno iznad njega, eventualno da i taj Center GameText bude zapravo TD, jer bi izgledalo vise smooth. Svakako nije losa skriptica, ima tu dosta stvari, izmjena, ali to su uglavnom prijedlozi tako da ono nisi duzan da to ispostujes, treba biti zahvalan na objavljivanju bilo kakve besplatne skripte ovdje svakako. Keep it up
Naslov: Odg: Robbery - Progress Bar
Poruka od: Fr0z3n poslato Februar 06, 2022, 21:09:44 POSLE PODNE
kada koristis vec ysi libraby, zasto bi koristio Pawn.CMD a ne y_commands, koje je uzgreg bezbroj puta optimizovaniji i ima vise mogucnosti? Ako koristis neki libraby istrazi sta sve ima i iskoristi ga u potpunosi...
Naslov: Odg: Robbery - Progress Bar
Poruka od: Slade poslato Februar 06, 2022, 21:12:47 POSLE PODNE
Citat: Fr0z3n poslato Februar 06, 2022, 21:09:44 POSLE PODNE
kada koristis vec ysi libraby, zasto bi koristio Pawn.CMD a ne y_commands, koje je uzgreg bezbroj puta optimizovaniji i ima vise mogucnosti? Ako koristis neki libraby istrazi sta sve ima i iskoristi ga u potpunosi...

Ne bih se slozio da je optimizovaniji, Pawn.CMD je plugin, ycmd je include. Slazem se sa drugim dijelom, da je bolje u slucaju YSI integracije (a danas svaki mod koristi YSI) koristiti y_commands, ali pawn.CMD je bas zbog cinjenice sto je memory hacking plugin vanzemaljski brz, i nemoguce ga je porediti sa includeom. Svakako i moj opinion je kao tvoj, u slucaju koristenja YSI biblioteka, svakako je y_commands bolji izbor, ali ne i obavezan, niti bolji u "overallu", odnosno van YSI paketa.

Postoje i neke informacije da memory hacking plugins nece biti dozvoljeni pa ni pawn.cmds u open.mpu ali nisam siguran koliko su te informacije pouzdane.
Naslov: Odg: Robbery - Progress Bar
Poruka od: Fr0z3n poslato Februar 06, 2022, 21:15:37 POSLE PODNE
Citat: Slade poslato Februar 06, 2022, 21:12:47 POSLE PODNE
Ne bih se slozio da je optimizovaniji, Pawn.CMD je plugin, ycmd je include. Slazem se sa drugim dijelom, da je bolje u slucaju YSI integracije (a danas svaki mod koristi YSI) koristiti y_commands, ali pawn.CMD je bas zbog cinjenice sto je memory hacking plugin vanzemaljski brz, i nemoguce ga je porediti sa includeom. Svakako i moj opinion je kao tvoj, u slucaju koristenja YSI biblioteka, svakako je y_commands bolji izbor, ali ne i obavezan, niti bolji u "overallu", odnosno van YSI paketa.

Postoje i neke informacije da memory hacking plugins nece biti dozvoljeni pa ni pawn.cmds u open.mpu ali nisam siguran koliko su te informacije pouzdane.

Most command processors, when they claim they are faster, only time how long it takes to CALL the command. Once code execution reaches the command, that's it. But what happens inside the command? For most people, the first thing they do is check if a player can use the command. This permssion check isn't included in the command processor time because it is deemed part of the command itself. y_commands, however, does these checks for you, and includes the time taken to do these checks in its reports. Despite this overhead, it is still faster than many command processors. So you can have a slightly faster processor and much slower commands, or a slighty slower command processor and much faster commands (because the processor does the hard work for you).
Naslov: Odg: Robbery - Progress Bar
Poruka od: Slade poslato Februar 06, 2022, 22:08:15 POSLE PODNE
Koristim y_commands, ali se i dalje ne slazem da je bolje optimizovan (a dobro nisi ni naveo brzi) od pawn.cmda ,to sto si copy-paste je neko napisao na osnovu svojih pretpostavki gledajuci u ycmds, neke slike, dokazi? Na orginalnom forumu koji je Kalcor ugasio bio je test izmedju command procesora gdje je pawn.cmd bio ubjedljivo najbolji. Svakako ako sam shvatio tvoj tekst, Despite this overhead, it is still faster than many command processors, YSI ce ti pokusati pomoci, ali ako pises okej komandu, ne mora znaciti da uopste hoce,a i sam teksts kaze unatoc tome, i dalje je brzi od nekih command procesora, sto znaci da mu je to prije svega mana, a zatim da je brzi od "nekih", sto definitivno nije pawn.cmd. PawnCMD on other side je kao sto sam naveo i plugin, a ne smatram da ima potrebe danas koristiti plugin u vidu cmd procesora.

Takodjer u SAMP svijetu imas dosta developera koji su contribute na velike staze, poput Y_Lessa, ali generalno i ljude koji imaju different opinion, svako ce ti izvuci razloge zasto je to nesto tako, ali nece i njegove mane.. Naveo sam da se slazem sa tobom naposljetku kada je ovaj slucaj u pitanju,tako da nemoj to uzeti kao uvredu  ;D
Naslov: Odg: Robbery - Progress Bar
Poruka od: bunta poslato Februar 06, 2022, 23:44:32 POSLE PODNE
svidja mi se ovo
main ( ) {
    print("Kolke skije Bog te jebo!");
}