[AJUDA] TextDraw Score -
davidjnio - 27.12.2011
Manolos
to tentando fazer o seguinte:
que o Score e o Spree (kill's seguidos) apareзam em um textdraw
O erro й que esses dados sу apareзem para o id 0
para os outros sу й mostrado os textdraw mais sem os dados
*Os valores de score e spree estгo sendo salvos na scriptfiles.
pawn Код:
#include <a_samp>
#include "southclawini"
forward ScoresXX();
new arqScore[128];
new arqSpree[128];
new KillingSpree[MAX_PLAYERS];
new Text:ScoreText[MAX_PLAYERS];
new Text:SpreeText[MAX_PLAYERS];
new Text:BarraScore;
public OnGameModeInit()
{
InfoTD();
BarraScore = TextDrawCreate(634.000000, 340.000000, "-");
TextDrawBackgroundColor(BarraScore, 255);
TextDrawFont(BarraScore, 1);
TextDrawLetterSize(BarraScore, 0.370000, 3.399998);
TextDrawColor(BarraScore, 0);
TextDrawSetOutline(BarraScore, 0);
TextDrawSetProportional(BarraScore, 1);
TextDrawSetShadow(BarraScore, 0);
TextDrawUseBox(BarraScore, 1);
TextDrawBoxColor(BarraScore, 80);
TextDrawTextSize(BarraScore, 529.000000, 21.000000);
return 1;
}
public OnPlayerConnect(playerid) //seta os valores de score e spree
{
SetTimerEx("ScoresXX",100,true,"i",playerid);
TextDrawHideForPlayer(playerid, BarraScore);
TextDrawHideForPlayer(playerid, ScoreText[playerid]);
TextDrawHideForPlayer(playerid, SpreeText[playerid]);
format(arqScore, sizeof (arqScore),"GameMode/scoreXX/%s.ini",PlayerName(playerid));
file_Open(arqScore);
SetPlayerScore(playerid,file_GetVal("Score"));
file_Close();
format(arqSpree, sizeof (arqSpree),"GameMode/scoreXX/%s.ini",PlayerName(playerid));
file_Open(arqSpree);
KillingSpree[playerid] = (playerid,file_GetVal("Spree"));
file_Close();
return 1;
}
public OnPlayerDisconnect(playerid, reason) //salva o score e o killingspree
{
format(arqScore, sizeof (arqScore),"GameMode/scoreXX/%s.ini",PlayerName(playerid));
if(!fexist(arqScore)) { file_Create(arqScore); }
file_Open(arqScore);
file_SetVal("Score", GetPlayerScore(playerid));
file_Save(arqScore);
file_Close();
format(arqSpree, sizeof (arqSpree),"GameMode/scoreXX/%s.ini",PlayerName(playerid));
if(!fexist(arqSpree)) { file_Create(arqSpree); }
file_Open(arqSpree);
file_SetVal("Spree", KillingSpree[playerid]);
file_Save(arqSpree);
file_Close();
TextDrawHideForPlayer(playerid, BarraScore);
TextDrawHideForPlayer(playerid, ScoreText[playerid]);
TextDrawHideForPlayer(playerid, SpreeText[playerid]);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid,playerid,reason);
GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~r~MORTO!",5000,5);
KillingSpree[killerid] ++;
KillingSpree[killerid] = 0;
//por enquanto nesta callback o conteъdo й sу este para teste
//do killingspree
return 1;
}
public ScoresXX()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new str[30];
format(str,sizeof(str), "SCORE: ~w~%i",GetPlayerScore(i));
TextDrawSetString(ScoreText[i], str);
format(str,sizeof(str), "SPREE: ~w~%d",KillingSpree[i]);
TextDrawSetString(SpreeText[i], str);
return true;
}
return true;
}
return 1;
}
InfoTD()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
ScoreText[i] = TextDrawCreate(537.000000, 341.000000, "-");
TextDrawBackgroundColor(ScoreText[i], 255);
TextDrawFont(ScoreText[i], 2);
TextDrawLetterSize(ScoreText[i], 0.290000, 1.300000);
TextDrawColor(ScoreText[i], 0xFFBF00FF);
TextDrawSetOutline(ScoreText[i], 1);
TextDrawSetProportional(ScoreText[i], 1);
SpreeText[i] = TextDrawCreate(537.000000, 356.000000, "-");
TextDrawBackgroundColor(SpreeText[i], 255);
TextDrawFont(SpreeText[i], 2);
TextDrawLetterSize(SpreeText[i], 0.290000, 1.200000);
TextDrawColor(SpreeText[i], 0xFFBF00FF);
TextDrawSetOutline(SpreeText[i], 1);
TextDrawSetProportional(SpreeText[i], 1);
}
}
/*:D*/
Re: [AJUDA] TextDraw Score -
!Niiw - 27.12.2011
em OnPlayerConnect
pawn Код:
TextDrawShowForPlayer(playerid,BarraScore);
TextDrawShowForPlayer(playerid, ScoreText[playerid]);
TextDrawShowForPlayer(playerid, SpreeText[playerid]);
Hide vai esconder a Text
Re: [AJUDA] TextDraw Score -
ReDKiiL - 27.12.2011
Voce Tem Que Criar Um TextDraw Para Cada Player.
Re: [AJUDA] TextDraw Score -
davidjnio - 27.12.2011
@edit
hum red...
como faзo isso? й meio complicado esses porras de textdraw
Re: [AJUDA] TextDraw Score -
!Niiw - 27.12.2011
TextDrawHideForPlayer no OnPlayerConnect vai ocultar a text quando o Emo logar no sv, jб o Show vai mostrar pra ele a Text.
Re: [AJUDA] TextDraw Score -
davidjnio - 27.12.2011
Niw acho que й minha net que ta fail
quando vi seu post apareзia sу um cуdigo do Textdraw no OnPlayerConnect que vc pediu pra alterar
nao deve ter carregado os outros 2 por isso achei estranho e pedi mais o Hide e Show eu sei as suas
respectivas funзхes
Obrigado
Re: [AJUDA] TextDraw Score -
Lуs - 28.12.2011
Quote:
Originally Posted by davidjnio
up '-'
|
Sу й permitido dar Bumper em tуpicos depois de 48h da ultima resposta.
Para criar uma textdraw para cada player utilize variбveis:
pawn Код:
new Text:MinhaTextDraw[MAX_PLAYERS];
AW: [AJUDA] TextDraw Score -
Enderman - 28.12.2011
Voce deve criar uma Draw para cada player, e mudar o local dos Draw ao invйs do OnGameModeInit coloque no OnPlayerConnect exemplo
pawn Код:
new Text:BarraScore[MAX_PLAYERS];
//OnPlayerConnect
BarraScore[playerid] = TextDrawCreate(634.000000, 340.000000, "-");
TextDrawBackgroundColor(BarraScore[playerid], 255);
TextDrawFont(BarraScore[playerid], 1);
TextDrawLetterSize(BarraScore[playerid], 0.370000, 3.399998);
TextDrawColor(BarraScore[playerid], 0);
TextDrawSetOutline(BarraScore[playerid], 0);
TextDrawSetProportional(BarraScore[playerid], 1);
TextDrawSetShadow(BarraScore[playerid], 0);
TextDrawUseBox(BarraScore[playerid], 1);
TextDrawBoxColor(BarraScore[playerid], 80);
TextDrawTextSize(BarraScore[playerid], 529.000000, 21.000000);//quando o player logar, irб criar a draw para ele