[TuT] Statsi u textdrawowima [new]

Započeo [TG:RP]$--L84S--$, April 11, 2012, 20:45:15 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Uvod:
Svi se vjerojatno sjećate ove teme i mog tutoriala oko statsa u textdrawu http://balkan-samp.com/forum/index.php?topic=25931.0
Uvidio sam u zadnje vrijeme da nema više pravih odnosno dobrih tutoriala pa sam odlučio napraviti par ovo je jedan od njih (ostale će te moći pronaći na mom oficijalnom sajtu uskoro više o tome )...
U ovom ću vam tut-u pokazati kako pomoću jednoga textdrawa uraditi isti stats system puno bolji i optimiziraniji .
Tutorijal je naravno raden za gamemodove od 0 ali moze i za editane samo se trebaju podesiti varijable ...
Da ne duljim idemo na prvi korak :)

Prvi korak :
idemo na vrh i kreiramo varijable :

new Text:StatsText[MAX_PLAYERS];
new Pokrenuti[MAX_PLAYERS];



Drugi korak :
u drugom koraku pravimo textdraw (možete na dosta načina Textdraw editori i sl.. )

    StatsText[playerid] = TextDrawCreate(260.000000, 150.000000,"Racun");//1
    TextDrawAlignment(StatsText[playerid],0);
    TextDrawBackgroundColor(StatsText[playerid],255);
    TextDrawFont(StatsText[playerid],1);
    TextDrawLetterSize(StatsText[playerid],0.259999,0.600000);
    TextDrawColor(StatsText[playerid],-1);
    TextDrawSetOutline(StatsText[playerid],1);
    TextDrawSetProportional(StatsText[playerid],1);
    TextDrawSetShadow(StatsText[playerid],1);


pa da malo objasnimo :

TextDrawCreate(260.000000, 150.000000,"Racun");
373.0  -  x kordinata
182.0  -  y kordinata
"Racun" - tu ide tekst u ovom slučaju to je nebitno .

TextDrawAlignment(StatsText[playerid],0);
StatsText[playerid] - naziv koji smo staviti za textdraw
0,1,2,3 - lijevo , centralno , desno poravnavanje


TextDrawColor(StatsText[playerid],-1);
StatsText[playerid] - naziv koji smo staviti za textdraw
0xF5DEB3AA - boja textdrawa

TextDrawFont(StatsText[playerid],1);
StatsText[playerid] - naziv koji smo staviti za textdraw
1 - Font



Treći korak:
nakon pravljenja textdrawa prelazimo na stats system .
za pocetak pravimo stock :
stock Stats(playerid, player)
{
return 1;
}


u stock cemo stavljati varijable i ostalo pojasnjavat cu vam posebno za svaku :

stock Stats(playerid, player)
{

    new string[128];
format(string,sizeof(string),"Ime i prezime : %s~n~~n~Novac: %d$",GetName(playerid),GetPlayerMoney(playerid));
TextDrawSetString(StatsText[playerid], string); //s
return 1;
}

Ovo je osnovno sto ce biti u ovom tutorialu tj. u statsima sada možete dodavati naprimjer za posao uradite :
    new text[128];
    if(GetPVarInt(playerid, "Posao") == 1) { text = "Naziv posla za id 1"; }
    else if(GetPVarInt(playerid, "Posao") == 2) { text = "Naziv posla za id 2"; }
    else { text = "Nezaposlen"; } // ako je id posla 0 odnosno ako je igrac nezaposlen

ili ako koristite enum

    new text[128];
    if(PlayerInfo[playerid][Posao] == 1) { text = "Naziv posla za id 1"; }
    else if(PlayerInfo[playerid][Posao] == 1) { text = "Naziv posla za id 2"; }
    else { text = "Nezaposlen"; } // ako je id posla 0 odnosno ako je igrac nezaposlen


Naravno vi će te ovo sve prilagodavati svome gamemodu .
onda ce stock izgledati ovako :
stock Stats(playerid, player)
{

        new string[128],text[128];
        //posao
        if(GetPVarInt(playerid, "Posao") == 1) { text = "Naziv posla za id 1"; }
        else if(GetPVarInt(playerid, "Posao") == 2) { text = "Naziv posla za id 2"; }
        else { text = "Nezaposlen"; } // ako je id posla 0 odnosno ako je igrac nezaposlen   
        //   
format(string,sizeof(string),"Ime i prezime : %s~n~~n~Novac: %d$~n~~n~Posao: %s",GetName(playerid),GetPlayerMoney(playerid),text);
TextDrawSetString(StatsText[playerid], string); //
        ShowStats(playerid, player);//ovo ću objasniti u idućem koraku (korak 4 )
return 1;
}


tako možete raditi za sve .

NAPOMENA :nemojte samo copy/paste nego pročitajte sta vam piše pokraj svega i prilagodite svome gamemodu .


ÄŒetvrti korak :
u četvrtom koraku radimo pokazivanje igracu textdraw , destroy te hide textdraw pomoću stock-ova pa da krenemo .
stock ShowStats(playerid, player)
{
        TextDrawShowForPlayer(player,StatsText[playerid]);
return 0;
}
stock HideStats(playerid,player)
{
    TextDrawHideForPlayer(player,StatsText[playerid]);
}

stock DestroyStats(playerid)
{
TextDrawDestroy(StatsText[playerid]);
    return 0;
}


ovdje se nema sto previše objašnjavati znači napravili smo 3 stock za pokazivanje / micanje / i uništavanje textdrawa tako da idemo na sljedeći korak.

Peti korak :
evo došli smo i do pravljenje komande za prikazivanje statsa pa da krenemo :
radimo sa ZCMD tako da vam u gamemodu treba include od Zeex-a

CMD:stats(playerid, params[])
{
return 1;
}


CMD:stats(playerid, params[])
{
    if(GetPlayerState(playerid) != 2)
    {
    if(Pokrenuti[playerid] == 0)
    {
Stats(playerid,playerid);
Pokrenuti[playerid] = 1;
}else{SCM(playerid, -1, " Nemozete gledati statse tijekom vožnje !");}
            }
return 1;
}


Ako nema definiran SCM onda stavite na vrh gamemoda :

#define SCM SendClientMessage

Å esti korak :
u šestom koraku radimo micanje statsa na tipku enter ili slovo f i uništavanje textdrawa prilikom izlaska iz igrice :
public OnPlayerDisconnect(playerid, reason)
{
    DestroyStats(playerid);
    return 1;
}


Ako želimo da pritiskom na tipku enter ili slovo f statsi maknu radimo sljedeće
pod :
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
stavljamo :
      
if (PRESSED(KEY_SECONDARY_ATTACK))
{
if(Pokrenuti[playerid] == 1)
{HideStats(playerid,playerid);
Pokrenuti[playerid] = 0;}


Takoder provjerite da li imate :
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))


S time završavamo tutorial zahvaljujem i vidimo se u sljedećem tutorialu ;)

Izgled statsa :

Kraj : Ako imate kakvih problema obratite mi se u ovoj temi ili preko PP
Hvala i dovidenja :P
Poslednja Izmena: April 11, 2012, 21:40:18 POSLE PODNE od [TG:RP]$--L84S--$

ricken

Svaka cast odlicno si napravio tut.Sada cekam te nove tutove i taj tvoj sajt :P
btw. Nisi stavio sliku izgleda stats-a.
Poslednja Izmena: April 11, 2012, 21:10:52 POSLE PODNE od [R] - Rıcĸeη

Citat: [R] - Rıcĸeη poslato April 11, 2012, 21:08:47 POSLE PODNE
Svaka cast odlicno si napravio tut.Sada cekam te nove tutove i taj tvoj sajt :P
btw. Nisi stavio sliku izgleda stats-a.
Sada radim na sljedecem tutorialu malo opseznijem ali jako korisnom ....
slika dodana takoder to sam u 10 sekundi napravio a vi sebi uredite kako vam paše ;)

Hvala ..

Lijepo detaljno objasnjeno! Samo nesto da ti kazem

BRAVO
I najveci talenti gube se u neradu, zato nemoj trazit izgovor da neznas nego naÄ'i rjesenje!




odlican TuT trebao mi je :)

govorio mi je pixel za taj sajt biti ce vezano za skriptanje xD ?


Citat: [iS]...Blackon...â,,¢ poslato April 12, 2012, 12:02:50 POSLE PODNE
odlican TuT trebao mi je :)

govorio mi je pixel za taj sajt biti ce vezano za skriptanje xD ?

Naravno vec je skoro pri kraju tamo vec ima par blank skripti  koje sam napravio ..

ON: Hvala .

Citat: Don Conellâ,,¢ poslato April 12, 2012, 13:57:36 POSLE PODNE
odlican tut :)

Hvala ..

Idući Tut ce vjerojatno biti ili izrada gamemoda od 0 ili pravljenje dinamičnog house systema .


Citat: [TG:RP]$--L84S--$ poslato April 12, 2012, 22:41:56 POSLE PODNE
Idući Tut ce vjerojatno biti ili izrada gamemoda od 0 ili pravljenje dinamičnog house systema .

Opa,nemogu da docekam :D
Super je ovaj tut samo tako nastavi !!
Izvinjavam se na svim glupostima i ako sam nekome napisao nesto lose, neko drugi je koristio moj profil!
__________________________________________
https://bk.gta.world - GTA World Balkan - RAGEMP


hvala uskoro kad uhvatim vremena ide i taj novi tutorial ;)


Boris Spice


Lep tut. ... Hvala sto si odvojio vremena da pomognes ;)
Europe Street RPG/DM