Pawn Tutorial - format() // (Made in 2008)
#1

---------------------------------------------------------------------------------------------
_________________________________________________
- format()

Parameters:
(output[], len, const format[], {Float,_}:...)

output[] - The string to output the result to
len - The maximum length output can contain
format[] - The format string
{Float,_}:... - Indefinite number of arguments of any tag


Format Strings:

%b - Inserts a number at this position in binary radix
%c - Inserts a single character.
%d - Inserts an integer (whole) number
%f - Inserts a floating point number.
%i - Inserts an integer.
%s - Inserts a string.
%x - Inserts a number in hexadecimal notation.
%% - Inserts the literal '%'


Jб alguma vez tentaste mandar mensagens aos jogadores em 'tempo real', isto й, mensagens do gйnero: 'Tens, de momento, 100Ђ na tua carteira.', sem nunca ter sucesso ? Entгo preste bem atenзгo a este tutorial.
... © PLAYMAKER


.

Em primeiro lugar vamos declarar o str (string) no inicio do script.
pawn Код:
#define MAX_SERVER_STRING (512 char)

new
    MY_STRING[MAX_SERVER_STRING];
Repara que utilizo 128 devido a vбrios factores. Para saber porque deve utilizar 128 em vez de 256, visite o seguinte endereзo: Why you should not use 256

.

Agora jб pudemos utilizar o str em qualquer format() que utilize-mos.
Vamos entгo dar um exemplo:

pawn Код:
public
    OnPlayerConnect(playerid)
{
    new
        NAME[MAX_PLAYER_NAME];

    GetPlayerName(playerid, NAME, sizeof NAME);
       
    format(MY_STRING, sizeof MY_STRING
 
        , "- O jogador %s (ID: %d) entrou no sv."
       
        , NAME
        , playerid
       
    );
 
    SendClientMessageToAll((0xDFD50BFF), MY_STRING);
 
    return true;
}
.

Como podes verificar й um processo muito simples e fбcil de usar / scriptar.

Explainning format()

pawn Код:
format(str, sizeof(str), "O jogador %s (ID: %d) entrou no sv.", pName, playerid);
Vamos entгo dividir isto em 4 partes.

1 - str - O que utilizamos.
2 - sizeof(str) - Length do string.
3 - "Text & Format Strings" - Formato do texto no string.
4 - Parameters - Parameters que correspondem aos Format Strings


Uma ъltima coisa:

Temos um float definido como 1.00000

Utilizando %0.3f (3 decimal points)
Vai-nos ser dado 1.000

Utilizando %0.0f (0 decimal points)
Vai-nos ser dado 1

Muita gente tem problemas ao fazer o racio, isto й, as kills a dividir pelas deaths.
Entгo, como o racio tem sempre 2 decimal points, fazem assim:
%0.2f

Conclusгo:

pawn Код:
new
        Float:RACIO = floatdiv(KILLS[playerid], DEATHS[playerid]);
       
    format(MY_SRING, sizeof MY_STRING, "Kills: %d | Deaths: %d | Racio: %0.2f", KILLS[playerid], DEATHS[playerid], RACIO);
Algum tipo de dъvida, pm me. ;')
_________________________________________________
---------------------------------------------------------------------------------------------
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 3 Guest(s)