Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Goku ^ poslato Februar 04, 2023, 12:49:55 POSLE PODNE

Naslov: Bug Logs
Poruka od: Goku ^ poslato Februar 04, 2023, 12:49:55 POSLE PODNE
Pitanje/savjet: Kako da napravim da sortira logove prema vremenu? Napravio sam komandu za citanje prijavljenih bagova i predloga. Eh sad kako da napravim da sortira prema vremenu da novi prijavljen bug bude prvi a ne poslenji??
Opširnije:^^^^^
Dodatno:^^^^^
Naslov: Odg: Bug Logs
Poruka od: V01D poslato Februar 04, 2023, 14:05:01 POSLE PODNE
https://www.geeksforgeeks.org/sorting-algorithms/

Biraj sta ti pase dole ispod :)
Naslov: Odg: Bug Logs
Poruka od: njoBe_ poslato Februar 04, 2023, 21:22:40 POSLE PODNE
steta sto ne zna sta je algoritam..
Naslov: Odg: Bug Logs
Poruka od: MirsoN poslato Februar 04, 2023, 22:19:28 POSLE PODNE
Citat: njoBe_ poslato Februar 04, 2023, 21:22:40 POSLE PODNE
steta sto ne zna sta je algoritam..
A ti se rodio i odma znao sve
Naslov: Odg: Bug Logs
Poruka od: schatzi poslato Februar 05, 2023, 10:36:23 PRE PODNE
Citat: MirsoN poslato Februar 04, 2023, 22:19:28 POSLE PODNE
A ti se rodio i odma znao sve
pa kako majka ga je pametnog rodila
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 05, 2023, 17:21:51 POSLE PODNE
Citat: V01D poslato Februar 04, 2023, 14:05:01 POSLE PODNE
https://www.geeksforgeeks.org/sorting-algorithms/

Biraj sta ti pase dole ispod :)
Moze preko bublesort da soritare prema datumu i vremenu u notepadu gde se i cuvaju logs? Koristio sam buble za sortiranje /admini i /gamemasteri prema levelu.
Naslov: Odg: Bug Logs
Poruka od: njoBe_ poslato Februar 05, 2023, 22:53:19 POSLE PODNE
Citat: MirsoN poslato Februar 04, 2023, 22:19:28 POSLE PODNE
A ti se rodio i odma znao sve
Problem je u tome sto ljudi ne pokusaju traziti po internetu, ne razmisle kako bi se nesto rijesilo nego odma traze da neko drugi servira. Mogao je potraziti za bilo koji programski jezik i ako ima imalo logike za programiranje dobio bi viziju kako da uradi.
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 05, 2023, 23:33:18 POSLE PODNE
Citat: njoBe_ poslato Februar 05, 2023, 22:53:19 POSLE PODNE
Problem je u tome sto ljudi ne pokusaju traziti po internetu, ne razmisle kako bi se nesto rijesilo nego odma traze da neko drugi servira. Mogao je potraziti za bilo koji programski jezik i ako ima imalo logike za programiranje dobio bi viziju kako da uradi.
Zar ova sekcija ne postoji za pomoc, obljasnjavanje itd itd ili je najlakse reci naci na google i resi problem? I taj isti koji govori  " Problem je u tome sto ljudi ne pokusaju traziti po internetu, ne razmisle kako bi se nesto rijesilo nego odma traze da neko drugi servira" Ne govori za druge kako kukaju i ne znaju da "potraze na internetu" kada si isti kao i svi ostali.

https://balkan-samp.com/forum/index.php?topic=139429.msg1007424#msg1007424
https://balkan-samp.com/forum/index.php?topic=139763.msg1010199#msg1010199
https://balkan-samp.com/forum/index.php?topic=139775.msg1010280#msg1010280
https://balkan-samp.com/forum/index.php?topic=140501.msg1016079#msg1016079
https://balkan-samp.com/forum/index.php?topic=141274.msg1023421#msg1023421
https://balkan-samp.com/forum/index.php?topic=142490.msg1034193#msg1034193
https://balkan-samp.com/forum/index.php?topic=142740.msg1036204#msg1036204
https://balkan-samp.com/forum/index.php?topic=142763.msg1036391#msg1036391
https://balkan-samp.com/forum/index.php?topic=142897.msg1037159#msg1037159

Naslov: Odg: Bug Logs
Poruka od: №Grella poslato Februar 06, 2023, 02:50:59 PRE PODNE
sto bi jednopstavno kad moze komplikovano  ;D ;D divim se
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 06, 2023, 02:54:51 PRE PODNE
Citat: Grella™ poslato Februar 06, 2023, 02:50:59 PRE PODNE
sto bi jednopstavno kad moze komplikovano  ;D ;D divim se
:D :D

Zato sto imam stranice svakih 20+ stranica pravi automatsko novu stranicu, i ne zelim da skrolujem tipa 5 stranica da bih dosao na nove prijavljene bugove, nego zelim da cim udjem da mi odmah pisu novi logovi a da idem 5 stranica da bih video stare logove. Jeste komplikovano i da kazemo nepotrebno ali eto radi izgleda i generalno olaksan posao tom koji gleda a smrt za mene koji pravi.
Naslov: Odg: Bug Logs
Poruka od: Bit Frosty poslato Februar 06, 2023, 19:36:55 POSLE PODNE
SELECT * FROM `BugReports` ORDER BY `BugReports`.`Time` desc LIMIT 10 OFFSET 20
10 je koliko "prikazujes", 20 preskaces (znaci 21,22...30). Naravno ovo je primer, ti sad sam radi sistem.
Sortiras po vremenu, ti mozes i po imenu ili bog zna cemu, mozes i da dodas uslov od odredjenog igraca, itd...

Mozes sqlite, mozes mysql, syntaxa bi radila u oba slucaja
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 07, 2023, 14:01:56 POSLE PODNE
Citat: Deleted User poslato Februar 06, 2023, 19:36:55 POSLE PODNE
SELECT * FROM `BugReports` ORDER BY `BugReports`.`Time` desc LIMIT 10 OFFSET 20
10 je koliko "prikazujes", 20 preskaces (znaci 21,22...30). Naravno ovo je primer, ti sad sam radi sistem.
Sortiras po vremenu, ti mozes i po imenu ili bog zna cemu, mozes i da dodas uslov od odredjenog igraca, itd...

Mozes sqlite, mozes mysql, syntaxa bi radila u oba slucaja
INI koristim, ne znam oce se razlikovati nesto posto nije sqlite i mysql. Ako nece oda jel Select stavljam pri citanju ili cuvanju?

SELECT * FROM `BugReports` ORDER BY `BugReports`.`Time` desc LIMIT 10 OFFSET 20

Ovako cuva logove
[pawn]
    format(logs, sizeof(logs), "Prijavio: %s | Opis: %s", GetName(playerid), bug);
    ingamelog("Logs/InGameLogs/Bugovi.log", logs);
[/pawn]

a ovako cita logove
[pawn]
{
            if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid,-1, "Nemate ovlascenje za dalju upotrebu ovog dialoga.");
            new text[4096], str[4096];
             new File:buglogs = fopen("Logs/InGameLogs/Bugovi.log", io_read);
             if(buglogs)
            {
                    while(fread(buglogs, text))
               {
                  format(str, sizeof str, "%s\n", text);
                  AddDialogListitem(playerid, str);
               }
               ShowPlayerDialogPages(playerid, "ServerLogs", DIALOG_STYLE_TABLIST, "Server Logovi", "Dalje", "Izlaz", 20);
               fclose(buglogs);
             }
             else SCM(playerid, , "Trenutno nema logova prijavljenih bugova servera.");
         }
[/pawn]
Naslov: Odg: Bug Logs
Poruka od: // xunder poslato Februar 07, 2023, 14:31:28 POSLE PODNE
Hoces najnovije prvo? Zasto jednostavno ne upises najnoviji unos/bug/prijedlog ili sta god prvi u file?
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 07, 2023, 14:47:00 POSLE PODNE
Citat: // xunder poslato Februar 07, 2023, 14:31:28 POSLE PODNE
Hoces najnovije prvo? Zasto jednostavno ne upises najnoviji unos/bug/prijedlog ili sta god prvi u file?
Zato sto mi sve pise u notepadu jedno ispod drugog i to na kraj ispadne ovako, najstariji je je jelte ovaj u 14:42:56 a najnoviji je 14:43:0, onda ce ingame ovaj 14:42:56 koji je najstariji biti prvi a najnoviji ovaj 14:43:0 biti poslednji koji je najnoviji, eh sad zelim da ih obrnem naopacke da radi poslednji dole novi gore.

[pawn]
/prijavibug   7.2.2023 - 14:42:56   z   Goku
/prijavibug   7.2.2023 - 14:42:57   z   Goku
/prijavibug   7.2.2023 - 14:42:57   z   Goku
/prijavibug   7.2.2023 - 14:42:57   z   Goku
/prijavibug   7.2.2023 - 14:42:58   z   Goku
/prijavibug   7.2.2023 - 14:42:58   z   Goku
/prijavibug   7.2.2023 - 14:43:0   z   Goku
[/pawn]
Naslov: Odg: Bug Logs
Poruka od: // xunder poslato Februar 08, 2023, 04:09:25 PRE PODNE
Citat: Goku ^ poslato Februar 07, 2023, 14:47:00 POSLE PODNE
Zato sto mi sve pise u notepadu jedno ispod drugog i to na kraj ispadne ovako, najstariji je je jelte ovaj u 14:42:56 a najnoviji je 14:43:0, onda ce ingame ovaj 14:42:56 koji je najstariji biti prvi a najnoviji ovaj 14:43:0 biti poslednji koji je najnoviji, eh sad zelim da ih obrnem naopacke da radi poslednji dole novi gore.

[pawn]
/prijavibug   7.2.2023 - 14:42:56   z   Goku
/prijavibug   7.2.2023 - 14:42:57   z   Goku
/prijavibug   7.2.2023 - 14:42:57   z   Goku
/prijavibug   7.2.2023 - 14:42:57   z   Goku
/prijavibug   7.2.2023 - 14:42:58   z   Goku
/prijavibug   7.2.2023 - 14:42:58   z   Goku
/prijavibug   7.2.2023 - 14:43:0   z   Goku
[/pawn]

To mozes ispraviti. Sortiraj prijave po datumu od novijeg ka starijem. Ovim nacinom ces brze i jednostavnije odraditi read i lakse ces moci da odradis pagination.
Opet, ako ne zelis da uradis kako je preporuceno iz nekog razloga, moraces da koristis fread ili fgetchar, fseek i flength naravno. Takodje, moraces da nadjes workaround za nepostojanje funkcije ftell u SA-MPu.
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 08, 2023, 04:26:16 PRE PODNE
Citat: // xunder poslato Februar 08, 2023, 04:09:25 PRE PODNE
To mozes ispraviti. Sortiraj prijave po datumu od novijeg ka starijem. Ovim nacinom ces brze i jednostavnije odraditi read i lakse ces moci da odradis pagination.
Opet, ako ne zelis da uradis kako je preporuceno iz nekog razloga, moraces da koristis fread ili fgetchar, fseek i flength naravno. Takodje, moraces da nadjes workaround za nepostojanje funkcije ftell u SA-MPu.
Ja znam da mogu ALI KAKO. Nikada to nisam radio ne znam kako da ih sortiram. I da koristim trenutno fopen da otvori taj log i fread da ga procita i onda na kraj fclose. Ja razumem to ali ne znam kako da ispravim da ide po datumu od novijeg ka starijem to je i glavni razlog ovog topica
Naslov: Odg: Bug Logs
Poruka od: №Grella poslato Februar 08, 2023, 23:45:19 POSLE PODNE
mnogo ga komplikujes zar nije lakse spojiti mysql i odraditi kao covjek nego se patiti i kontati kako i sta
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 09, 2023, 02:31:23 PRE PODNE
Citat: Grella™ poslato Februar 08, 2023, 23:45:19 POSLE PODNE
mnogo ga komplikujes zar nije lakse spojiti mysql i odraditi kao covjek nego se patiti i kontati kako i sta
Lako je reci nego uraditi, klk ce meni trebati vremena da totalni ini prebacim u mysql i da ga spojim?
Naslov: Odg: Bug Logs
Poruka od: №Grella poslato Februar 09, 2023, 04:04:06 PRE PODNE
Citat: Goku ^ poslato Februar 09, 2023, 02:31:23 PRE PODNE
Lako je reci nego uraditi, klk ce meni trebati vremena da totalni ini prebacim u mysql i da ga spojim?

ne mora znaciti da moras prebacivati ostalo u mysql da bi mogao taj sistem odraditi

spojis mysql konektujes bazu  napravis upis/ispis samo za taj sistem

da malo proucis mysql shvatio bi koliko je lagan za koristiti
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 09, 2023, 06:38:41 PRE PODNE
Citat: Grella™ poslato Februar 09, 2023, 04:04:06 PRE PODNE
ne mora znaciti da moras prebacivati ostalo u mysql da bi mogao taj sistem odraditi

spojis mysql konektujes bazu  napravis upis/ispis samo za taj sistem

da malo proucis mysql shvatio bi koliko je lagan za koristiti
Cekaj znaci ja mogu da napravim da samo to bude u mysql a sve ostalo ini, pa da polako i postepeno sve prebacujem u mysql i nece mi praviti problem ako je 20% moda mysql a 80% ini? Da sam znao da mogu korak po korak da menjam odradio bih odavno full mod.
Naslov: Odg: Bug Logs
Poruka od: №Grella poslato Februar 09, 2023, 14:17:02 POSLE PODNE
Citat: Goku ^ poslato Februar 09, 2023, 06:38:41 PRE PODNE
Cekaj znaci ja mogu da napravim da samo to bude u mysql a sve ostalo ini, pa da polako i postepeno sve prebacujem u mysql i nece mi praviti problem ako je 20% moda mysql a 80% ini? Da sam znao da mogu korak po korak da menjam odradio bih odavno full mod.

Ne, ne zavisi ti to sta radis od ostalih stvari
Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 09, 2023, 14:34:07 POSLE PODNE
Citat: Grella™ poslato Februar 09, 2023, 14:17:02 POSLE PODNE
Ne, ne zavisi ti to sta radis od ostalih stvari
Da sam znao da ne zavisi i da mogu odvojeno odradio bih odavno, nista pocecu tako, ja znam da je mysql dosta laksi itd itd ali eto nisam znao da moze posebno ovo posebno ovo.
Naslov: Odg: Bug Logs
Poruka od: №Grella poslato Februar 09, 2023, 16:48:24 POSLE PODNE
cak i kada prebacujes accove, mozes drzati mysql i ini zajedno kao spremanje/citanje korisnickog racuna, medjutim da ti stoji password i sqlid naravno i novac(dajem primjer) stoje u mysql, a da ti ostale stvari ostanu u ini i tako postepeno prebacujes iz ini u mysql ostalo ti ostane na ini cuvanje na isto ime, a ovo u mysql na isto ime, ako si me skontao o cemu pricam
Naslov: Odg: Bug Logs
Poruka od: Bit Frosty poslato Februar 09, 2023, 18:45:04 POSLE PODNE
Citat: Grella™ poslato Februar 09, 2023, 16:48:24 POSLE PODNE
cak i kada prebacujes accove, mozes drzati mysql i ini zajedno kao spremanje/citanje korisnickog racuna, medjutim da ti stoji password i sqlid naravno i novac(dajem primjer) stoje u mysql, a da ti ostale stvari ostanu u ini i tako postepeno prebacujes iz ini u mysql ostalo ti ostane na ini cuvanje na isto ime, a ovo u mysql na isto ime, ako si me skontao o cemu pricam
Sine, nisam te ni ja skontao a kamoli on...
Naslov: Odg: Bug Logs
Poruka od: PazzOnee poslato Februar 09, 2023, 18:55:11 POSLE PODNE
Citat: Deleted User poslato Februar 09, 2023, 18:45:04 POSLE PODNE
Sine, nisam te ni ja skontao a kamoli on...
Pa kako nisi, bitno je da ti sqlid i password stoje u mysql, eventualno i novac HAAHAHA
Naslov: Odg: Bug Logs
Poruka od: njoBe_ poslato Februar 09, 2023, 20:14:36 POSLE PODNE
Cek koji ce ti k 2 cuvanja i dodatno opterecivanje masine. Ne vidim poentu cuvanja nekih stvari u SQL a nekih u i ini. (konkretno na statse igraca). Ili jedno ili drugo, u ini eventualno logove.
Naslov: Odg: Bug Logs
Poruka od: №Grella poslato Februar 09, 2023, 23:11:43 POSLE PODNE
Citat: Deleted User poslato Februar 09, 2023, 18:45:04 POSLE PODNE
Sine, nisam te ni ja skontao a kamoli on...

Navodio sam primjer kako zapoceti prebacivanje iz ini u mysql acc stats kao (sqlid,password) da napravi prvenstveno kao info od mysql, a ostalo ostavi u yini  kako bude prebacivao jednu po jednu stvar u mysql tako ce se postepeno onaj drugi dio iz yini smanjitim(account infoi mislim), a pri tome ce moci sve odraditi detaljno

Citat: njoBe_ poslato Februar 09, 2023, 20:14:36 POSLE PODNE
Cek koji ce ti k 2 cuvanja i dodatno opterecivanje masine. Ne vidim poentu cuvanja nekih stvari u SQL a nekih u i ini. (konkretno na statse igraca). Ili jedno ili drugo, u ini eventualno logove.

nece biti 2 citanja rekao sam da to moze uraditi i lakse je, i da nakon toga moze nastaviti prebacivanje ostalih stvari u mysql

Citat: PazzOnee poslato Februar 09, 2023, 18:55:11 POSLE PODNE

Pa kako nisi, bitno je da ti sqlid i password stoje u mysql, eventualno i novac HAAHAHA
...



Naslov: Odg: Bug Logs
Poruka od: Goku ^ poslato Februar 10, 2023, 00:53:21 PRE PODNE
Citat: Grella™ poslato Februar 09, 2023, 23:11:43 POSLE PODNE
Navodio sam primjer kako zapoceti prebacivanje iz ini u mysql acc stats kao (sqlid,password) da napravi prvenstveno kao info od mysql, a ostalo ostavi u yini  kako bude prebacivao jednu po jednu stvar u mysql tako ce se postepeno onaj drugi dio iz yini smanjitim(account infoi mislim), a pri tome ce moci sve odraditi detaljno

nece biti 2 citanja rekao sam da to moze uraditi i lakse je, i da nakon toga moze nastaviti prebacivanje ostalih stvari u mysql
...
Polako sad dok provalim sve oko pravljenje tabela itd itd i basic stvari posle prebacivanje ce biti lakse.
Naslov: Odg: Bug Logs
Poruka od: // xunder poslato Februar 10, 2023, 06:42:54 PRE PODNE
Citat: Goku ^ poslato Februar 08, 2023, 04:26:16 PRE PODNE
Ja znam da mogu ALI KAKO. Nikada to nisam radio ne znam kako da ih sortiram. I da koristim trenutno fopen da otvori taj log i fread da ga procita i onda na kraj fclose. Ja razumem to ali ne znam kako da ispravim da ide po datumu od novijeg ka starijem to je i glavni razlog ovog topica


main() {
new File:handle = fopen("prijedlozi.txt", io_read); // Otvaramo fajl "prijedlozi.txt" za citanje

if (handle) { // Provjeravamo da li je handle validan. Ukoliko ne provjerimo i pokusamo neku IO operaciju nad invalid handle - server ce crashovati
#define MAX_DISPLAYED_SUGGESTIONS (5) // Broj sugestija koje cemo pokazivati

new string[128],
totalSuggestions = 0, // Ukupno readovanih prijedloga iz fajla "prijedlozi.txt"
countSuggestions = 0, // Varijabla koja sluzi da spremimo koliko smo prijedloga iscitali u drugom loopu
tmpReadPos = 0, // Varijabla koja sluzi da sacuvamo trenutnu poziciju/index gdje je fread zavrsen
suggestionStart[MAX_DISPLAYED_SUGGESTIONS], // Array gdje cemo cuvati pocetnu poziciju prijedloga
tmpCount = 0; // Pomocna varijabla koja ce sluziti da znamo koliko polja smo popunili u arrayu "suggestionStart"

// Brojimo koliko ukupno fajl "prijedlzi.txt" sadrzi prijedloga
// Pretpostavljamo da su prijedlozi razdvojeni karakterom \n (novom linijom)
while(fread(handle, string)) {
++ totalSuggestions;
}

fseek(handle, 0, seek_start); // Vracamo pointer za read filea na index 0 (pocetak fajla)

// Opet vrsimo read fajla i storujemo svaki red u array "string"
while(fread(handle, string)) {
// Za svaki prijedlog dodajemo +1 na varijablu "countSuggestions" a zatim uzimamo "totalSuggestions"
// i oduzimamo "MAX_DISPLAYED_SUGGESTIONS" da bi znali da li prijedlog treba biti uzet u obzir.
if (++ countSuggestions > totalSuggestions - MAX_DISPLAYED_SUGGESTIONS) {
suggestionStart[tmpCount ++] = tmpReadPos; // U "suggestionStart" upisujemo trenutnu poziciju read pointera,
// zatim povecavamo "tmpCount" za +1 da u sledecoj iteraciji ne overwriteujemo prethodno upisano polje
}

tmpReadPos += strlen(string); // Dodajemo duzinu "string"-a na "tmpReadPos" da bi znali gdje je nas pointer trenutno
}

// Radimo reverse loop jer je "suggestionStart" upisan od 0 do 4 a ne od 4 do 0
// Da bi izbjegli reverse loop potrebno je mijenjati kod gore ("tmpCount" start vrijednost = 4 i onda umanjivati)
for(new i = MAX_DISPLAYED_SUGGESTIONS - 1; i != -1; -- i) {
fseek(handle, suggestionStart[i], seek_start); // Postavljamo pointer na poziciju pocetka prijedloga
fread(handle, string, sizeof string); // Vrsimo read (koji ce procitati liniju do novog reda - \n)
print(string); // Printamo prijedlog. Ovdje bi ti trebao da formatiras svoj dialog ili odradis "SendClientMessage" ili sta ti je vec volja
}

fclose(handle); // Zatvaramo handle
}

printf("Done!");
}


PS. Daleko od savrsenog, moze se odraditi optimizacija koda ali sam ovo sklepao na brzinu da bi vidio proces kroz koji moras da prodjes da bi napravio da ovo radi.
Naslov: Odg: Bug Logs
Poruka od: Fr0z3n poslato Februar 12, 2023, 22:30:24 POSLE PODNE
Neaktivno, lock!