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 : (http://img441.imageshack.us/img441/2735/statsbs.jpg)
Kraj : Ako imate kakvih problema obratite mi se u ovoj temi ili preko PP
Hvala i dovidenja :P
Svaka cast odlicno si napravio tut.Sada cekam te nove tutove i taj tvoj sajt :P
btw. Nisi stavio sliku izgleda stats-a.
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
odlican TuT trebao mi je :)
govorio mi je pixel za taj sajt biti ce vezano za skriptanje xD ?
odlican tut :)
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 .
svaka cast, odlican tut! :D
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 !!
Odlican tutorial ! :)
hvala uskoro kad uhvatim vremena ide i taj novi tutorial ;)
Nije lose ali moze i dosta bolje. :D
dobar tut :D posluzit ce :DD
Lep tut. ... Hvala sto si odvojio vremena da pomognes ;)
SviÄ'a mi se tutorijal, nadam se da će nekome i pomoći, vrlo je korisno.
Lep tutorijal , svaka cast , ti samo pravis tutove za gm od 0 , moze se izgraditi mod od 0 od svih tvojih tutorijala :D
Fino ;)
Bravo djasvi mi se tut!
Super tut hvala :)
Super tut
Dobijam 5 errora, pomozite - http://balkan-samp.com/forum/index.php?topic=47381.0
Evo uradio sam sve po Tutorialu, i izbacilo mi 26 Errora.
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\pawno\include\utils.inc(1) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\pawno\include\dini.inc(239) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\pawno\include\sscanf.inc(1) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(1287) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(3037) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(3131) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(3247) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(3256) : error 004: function "OnPlayerLogin" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(3289) : error 004: function "OnPlayerUpdate" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4408) : error 004: function "OnPlayerRegister" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4494) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4513) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4563) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4632) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4742) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4795) : error 004: function "SetPlayerToTeamColor" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4820) : error 004: function "SetPlayerToTeamColor" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(4996) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5000) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5012) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5016) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5020) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5024) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5028) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5032) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5036) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5048) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5052) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5056) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5060) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5064) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5076) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5080) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5084) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5096) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5100) : error 004: function "PlayerToPoint" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5254) : warning 219: local variable "playersip" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5255) : error 004: function "CheckOwner" is not implemented
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5258) : warning 219: local variable "PlayerNameFormat" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5260) : warning 219: local variable "FileFormat" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5292) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5544) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Documents and Settings\Edmir\Desktop\Cro Balkan\gamemodes\crobalkan.pwn(5550) : error 004: function "SendIRCMessage" is not implemented
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
26 Errors.
mos mi pomoc oko ovog?
C:\Documents and Settings\Korisnik\Desktop\MIHAEL\eQuilibrium\gamemodes\eQ.pwn(13760) : error 017: undefined symbol "GetName"
Hvala Vanilla, imas ljepu tetu ispod nicka ;)