Macro - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Macro (
/showthread.php?tid=360888)
Macro -
Hervest1998 - 19.07.2012
Код:
#include <a_samp>
#define MAXIMAL_PLAYERS 500
#define SendMessage(%0,%1,%2,%3) if(Language[%0] == 0) format(Message,150,%1,%3); if(Language[%0] == 1) format(Message,150,%2,%3); SendClientMessage(%0,0,Message)
#define SendMessageToAll(%0,%1,%2) for(new I = 0; I < MAXIMAL_PLAYERS; I++) if(Language[I] == 0) format(Message,150,%0,%2); if(Language[I] == 1) format(Message,150,%1,%2); SendClientMessage(I,0,Message)
new Message[150];
new Language[MAXIMAL_PLAYERS];
public OnPlayerConnect(playerid)
{
Language[playerid] = 0;
SendMessage(playerid,"Text %d","Text %d",Language[playerid]);
SendMessageToAll("Text %d","Text %d",Language[playerid]);
return 1;
}
SendMessage work, SendMessageToAll not work, why?
Код:
C:\Documents and Settings\user\Pulpit\Server\gamemodes\GM.pwn(14) : error 017: undefined symbol "I"
C:\Documents and Settings\user\Pulpit\Server\gamemodes\GM.pwn(14) : error 017: undefined symbol "I"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
2 Errors.
Please help.
Re: Macro -
Vince - 19.07.2012
Know when to use definitions and when to use functions. I can't understand why people (not just you) try to force a bunch of code into a definition if they can write a function instead.
Re: Macro -
leonardo1434 - 19.07.2012
here goes, it may work, but i recomend to use the stock instead of macros.
pawn Код:
#define sendmessagetoall(%0,%1);\
for(%0 = 0; %0 < MAXIMAL_PLAYERS;++%0)\
{ \
if(Language[%0] == 0)\
{ \
format(Message,128,%1);\
SendClientMessage(i,-1,Message);\
}\
else if(Language[%0] == 1)\
{ \
format(Message,128,%1);\
SendClientMessage(i,-1,Message);\
}\
}
stock sendmessagetoall2(var,text[])
{
for(var = 0; var < MAXIMAL_PLAYERS;++var) {
if(Language[var] == 0) {
format(Message,128,text);
SendClientMessage(var,-1,Message);
}
else if(Language[var] == 1) {
format(Message,128,text);
SendClientMessage(var,-1,Message);
}
}
}
stock sendmessagetoall3(text[])
{
for(new var = 0; var < MAXIMAL_PLAYERS;++var) {
if(Language[var] == 0) {
format(Message,128,text);
SendClientMessage(var,-1,Message);
}
else if(Language[var] == 1) {
format(Message,128,text);
SendClientMessage(var,-1,Message);
}
}
}
usage:
new i;
sendmessagetoall(i,"hello");
sendmessagetoall2(i,"hello");
sendmessagetoall3("hello");
Re: Macro -
Hervest1998 - 19.07.2012
Okay but look my maco - sended formatted text. Problem solved.