PARTNERI:

Marketing


-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] Sistem ovisnosti[y_ini]  (Pročitano 255 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže D4NCH1

Sistem ovisnosti[y_ini]
« poslato: Jun 26, 2022, 22:18:40 posle podne »
Pozdrav svima na forumu, htio bi demonstrirati kako da napravite jednostavni sistem a ujedno i moj prvi sistem ovisnosti koji mozete doraditi koliko hocete i uraditi milion sitnih dodataka da poboljsate isti. OVO JE SAMO SKELETON SISTEMA I NIJE ZAVRSEN SKROZ

Za pocetak sistem radimo u modulu tj. fajlu odvojenom od glavne skripte

Prva stvar koju morate uraditi je kreirati .pwn fajl gdje hocete i includovati ga u glavnoj skripti npr.

Pawno Code: [Izaberi]
#include "[modules]/[igrac]/ovisnost.pwn"

Drugi korak je includovati potrebne includove u svoj pwn fajl , mi cemo koristiti

a_samp - glavni include da bi samp skripta uopste radila
y_ini - sluzi za cuvanje stavki u fajl igraca
y_hooks - sluzi da bi mogli iz fajla u kojem se informacije igraca cuvaju hookovati(povuci ) potrebne stavke
y_commands - koristimo za YCMD tj . komande koje pisemo u skripti
Pawno Code: [Izaberi]
#include <a_samp>
#include <ysilib\YSI_Storage\y_ini>
#include <ysilib\YSI_Coding\y_hooks>
#include <ysilib\YSI_Visual\y_commands>

Ispod includova potrebno je dodati staticne stavke koje se dodaju igracu u cuvanj

Pawno Code: [Izaberi]
static
    iOvisnost[MAX_PLAYERS],
    iCigareKoristenje[MAX_PLAYERS];

Da bi mogli upisati ove informacije u igracev fajl potrebno je hookovati account te napraviti ove stavke da bi se mogle upisati u fajl, Account_Load je potrebno napraviti u login sistemu ako koristite module, ako radite u jednom fajlu samo INI dodate gdje registracija igraca

Pawno Code: [Izaberi]
hook Account_Load(const playerid, const string: name[], const string: value[]);
hook Account_Load(const playerid, const string: name[], const string: value[])
{
    INI_Int("iOvisnost", iOvisnost[playerid]);
    INI_Int("CigareKoristenje", iCigareKoristenje[playerid]);

    return Y_HOOKS_CONTINUE_RETURN_1;
}

Nakon sto smo povukli account pocinjemo pisati komandu, za pocetak provjeravamo broj koliko je igrac cigara zapalio te u slucaju da je to manje od 10 (moze te staviti koliko hocete) igracu se dodaje animacije pusenja, koristene cigare se dodaju na kraju komande jer svakim koristenjem komande jedna cigara ce se dodati

Pawno Code: [Izaberi]
if(iCigareKoristenje[playerid] < 10)
    {
        SendClientMessage(playerid, col_white, "Jos niste postali ovisni"); //SCM je samo za debug, col_white definisite po zelji ili koristite svoje boje
        ApplyAnimation(playerid, "GANGS", "smkcig_prtl", 4.1, 1, 1, 1, 1, 1, 1);
    }
Listu animacija mozete pogledati na linku https://open.mp/docs/scripting/resources/animations

Dodajemo novu provjeru koja provjerava da li je igrac koristio vise od zadanog broja cigara u nasem slucaju 10, te mu dodajemo ovisnost, provjeru heltha i da svakim paljenjem naredne cigare skida odredjen HP

Pawno Code: [Izaberi]
else if(iCigareKoristenje[playerid] > 10)
    {
        SendClientMessage(playerid, col_white, "Postali ste ovisnik od cigara"); //debug, boje gore objasnjene

        iOvisnost[playerid] = 1; // dodaje ovisnost
        new Float:phealth;  // kreiramo float phealth koji cemo kasnije dobiti koristenjem funkcije GetPlayerHealth
        GetPlayerHealth(playerid, phealth); // dobijamo igracev health
        SetPlayerHealth(playerid, phealth -= 10.0); //postavljamo da dobijeni health izgubi 10 HP i tako dok igrac ne umre, sve mozete modifikovati i odrediti koliko hp ce gubiti
    }

Na samom kraju dodajemo jednostavno dodavanje koristenih cigareta te cuvamo sve informacije dobivene gore
Pawno Code: [Izaberi]
iCigareKoristenje[playerid] += 1;

    new INI:File = INI_Open(Korisnici(playerid));
    INI_SetTag( File, "data" );
    INI_WriteInt(File, "CigareKoristenje", iCigareKoristenje[playerid]);
    INI_WriteInt(File, "Ovisnost", iOvisnost[playerid]);

    INI_Close( File );

    return Y_HOOKS_CONTINUE_RETURN_1;
}

Na kraju udjete u glavnu skriptu i kompajlujete, ako ste uradili sve ispravno uspjesno ce vam se kompajlovati i moci ce te koristit i editovati ovo
Ja vam ne planiram rjesavati errore jer nemam vremena
Ovo mi je prvi tutorial te se nadam da vam se svidja, volio bi cuti konstruktivne kritike i savjete te neku ocjenu, "sistem" nije toliko koristan al moze posluziti za neki roleplay server

 

Van mreže D4NCH1

Odg: Sistem ovisnosti[y_ini]
« Odgovor #1 poslato: Jun 26, 2022, 22:48:44 posle podne »
zaboravio sam dodati ali pocetak komande samo napisete
Pawno Code: [Izaberi]
YCMD:zapalicigaru(playerid, params[], help)
{
 

Van mreže Vasic

Odg: Sistem ovisnosti[y_ini]
« Odgovor #2 poslato: Jun 26, 2022, 23:29:56 posle podne »
Citat
Prva stvar koju morate uraditi je kreirati .pwn fajl gdje hocete i includovati ga u glavnoj skripti npr.
Nema potrebe raditi modularno kada vec pises tutorijal (kao ni y_hooks).

Citat
Ispod includova potrebno je dodati staticne stavke koje se dodaju igracu u cuvanj
Stavke? To su promenljive (varijable).

Promenljiva iOvisnost bi trebala biti boolean, jer joj je vrednost 0 ili 1. (true, false).

Ovaj tutorijal moze daleko bolji da bude, ima gresaka u kodu, i komentarisanje linija je lose. Samo nastavi da ucis.

Koristi levo poravnanje teksta kada pises kod da bi bilo pregledno. Ove svetle nijanse zute boje promeniti da se vidi lepo.

• Website: www.vasic.dev
Cyber Security Enthusiast
 
Korisnici koji su se zahvalili: D4NCH1

Van mreže D4NCH1

Odg: Sistem ovisnosti[y_ini]
« Odgovor #3 poslato: Jun 27, 2022, 15:15:12 posle podne »
Nema potrebe raditi modularno kada vec pises tutorijal (kao ni y_hooks).
Stavke? To su promenljive (varijable).
 


Promenljiva iOvisnost bi trebala biti boolean, jer joj je vrednost 0 ili 1. (true, false).

Ovaj tutorijal moze daleko bolji da bude, ima gresaka u kodu, i komentarisanje linija je lose. Samo nastavi da ucis.

Koristi levo poravnanje teksta kada pises kod da bi bilo pregledno. Ove svetle nijanse zute boje promeniti da se vidi lepo.

Radio sam nesta na montrey modu pa sam u modulima radio jer mi je preglednije

iOvisnost bi trebala imati 3 nivoa zato sam ostavio onako jer sam htio doraditi jos par ovisnosti

Znam da ima gresaka u kodu ono prvi put da radim nesta tkd hvala <3

 

Na mreži ɴᴏᴅɪ

Odg: Sistem ovisnosti[y_ini]
« Odgovor #4 poslato: Jun 27, 2022, 16:09:50 posle podne »
Djasvi mi se
https://github.com/DinoWETT

Bit super Mario, welcome to my barrio
Kô djete auta palio, Skenderija, Ontario
 
Korisnici koji su se zahvalili: D4NCH1

Na mreži remiks

Odg: Sistem ovisnosti[y_ini]
« Odgovor #5 poslato: Jun 27, 2022, 16:16:03 posle podne »
hajd i nije loše
BIGDOG ENTERTAINMENT
 
Korisnici koji su se zahvalili: D4NCH1