[Tutorial] Criando macros
#1

percebi que nгo existem muitos tutoriais sobre este assunto, entгo estarei postando uma breve explicaзгo

O macro й utilizado para criar funзхes mais otimizadas e mais rapidas. Exemplos:

pawn Код:
#define SendFormattedMsg(%0,%1,%2,%3) format(strt, sizeof(strt),%2,%3) && SendClientMessage(%0, %1, strt)

#define SendFormattedGameText(%0,%1,%2,%3,%4) format(strt, sizeof(strt),%2,%4) && GameTextForPlayer(%0, strt, %1, %3)

#define SetPlayerCash(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)

os itens %0,%1,%2 ... sгo os representantes dos parametros da funзгo dentro do macro

Explicaзгo SendFormattedMsg e SendClientMessage:

pawn Код:
#define SendFormattedMsg(%0,%1,%2,%3) format(strt, sizeof(strt),%2,%3) && SendClientMessage(%0, %1, strt)
SendClientMessage(playerid, COLOR_GREEN, ":D");
aqui temos:

%0 = playerid
%1 = COLOR_GREEN ou cor da mensagem
%2 = string do format que neste caso й ""
%3 = argumentos do format

criando a funзгo:
pawn Код:
SendFormattedMsg(playerid,COLOR_GREEN,"Vocк matou %d players",GetPlayerScore(playerid));
Explicaзгo SendFormattedGameText e GameTextForPlayer:
pawn Код:
#define SendFormattedGameText(%0,%1,%2,%3,%4) format(strt, sizeof(strt),%2,%4) && GameTextForPlayer(%0, strt, %1, %3)
GameTextForPlayer(playerid, ":D", 3000, 1);
aqui temos:

%0 = playerid
%1 = tempo de duraзгo do texto
%2 = string do format que neste caso й ""
%3 = estilo do texto
%4 = argumentos do format

criando a funзгo:
pawn Код:
SendFormattedGameText(playerid,5000,"Vocк matou %d players",1,GetPlayerScore(playerid));
Exemplo SetPlayerCash:
pawn Код:
#define SetPlayerCash(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)
aqui temos:

%0 = playerid
%1 = valor

criando a funзгo:
pawn Код:
SetPlayerCash(playerid,quantia);

й isso gente, espero que tenham gostado
aceito criticas, sugestхes e elogios.
Reply
#2

Parece estar bem explicado, pena que nгo entendo muito disso.

@Explore as cores no post, pra ficar mais suave a leitura.
Reply
#3

loL, sempre quis saber como fazem essas porras, estб bom mбs poderia ter detalhado um pouco mais ;P
Reply
#4

Muito bom...

Bem... achei um bom tutorial... mas poderia ensinar como criar!
Reply
#5

Quote:
Originally Posted by BlackDonelly
Посмотреть сообщение
Exemplo SetPlayerCash:
pawn Код:
#define SetPlayerCash(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)
Isso realmente funciona com && ?
Reply
#6

Bom tutorial gostei apesar de nao ser expert nisso...
Reply
#7

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Isso realmente funciona com && ?
sim e ja foi testado
Reply
#8

Very good! Parabйns
Reply
#9

hmm, poderia dar mais "vida" ao tуpico nй? rs
Ficou legal, atй porque й uma coisa fбcil e muita gente nгo sabia como usar isso.

Outros exemplos para quem nгo gosta de digitar muito:
pawn Код:
#define Callback:_%1(%2) forward_%1(%2); \ public_%1(%2)
#define Loop(%0,%1) for(new %0; %0<%1;++%0)
Reply
#10

Quote:
Originally Posted by AFerreira
Посмотреть сообщение
hmm, poderia dar mais "vida" ao tуpico nй? rs
Ficou legal, atй porque й uma coisa fбcil e muita gente nгo sabia como usar isso.

Outros exemplos para quem nгo gosta de digitar muito:
pawn Код:
#define Callback:_%1(%2) forward_%1(%2); \ public_%1(%2)
#define Loop(%0,%1) for(new %0; %0<%1;++%0)
essas eu ja usava

peguei do sistema de corrida do Ryder '-'
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)