#1

Код:
#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.
Reply
#2

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

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");
Reply
#4

Okay but look my maco - sended formatted text. Problem solved.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)