SA-MP Forums Archive
[Tutorial] Criando macros - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Criando macros (/showthread.php?tid=348826)



Criando macros - Crueliz0n - 06.06.2012

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.



Re: Criando macros - Truck - 06.06.2012

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

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


Re: Criando macros - Kuddy - 06.06.2012

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


Re: Criando macros - Hiuship - 06.06.2012

Muito bom...

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


Re: Criando macros - Jason` - 06.06.2012

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


Re: Criando macros - Juninho_Oakley - 06.06.2012

Bom tutorial gostei apesar de nao ser expert nisso...


Re: Criando macros - Crueliz0n - 06.06.2012

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


Respuesta: Criando macros - CidadeNovaRP - 06.06.2012

Very good! Parabйns


Re: Criando macros - Abravanel - 06.06.2012

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)



Re: Criando macros - DrTHE - 07.06.2012

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 '-'