[AJUDA] TextDraw Score
#1

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*/
Reply
#2

em OnPlayerConnect

pawn Код:
TextDrawShowForPlayer(playerid,BarraScore);
TextDrawShowForPlayer(playerid, ScoreText[playerid]);
 TextDrawShowForPlayer(playerid, SpreeText[playerid]);
Hide vai esconder a Text
Reply
#3

Voce Tem Que Criar Um TextDraw Para Cada Player.
Reply
#4

@edit

hum red...
como faзo isso? й meio complicado esses porras de textdraw
Reply
#5

TextDrawHideForPlayer no OnPlayerConnect vai ocultar a text quando o Emo logar no sv, jб o Show vai mostrar pra ele a Text.
Reply
#6

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
Reply
#7

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];
Reply
#8

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
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)