Mandando Mensagem para Todos
#1

Pessoal,estou tentando criar um COmando que quando o Admin, ou GM disparar ele pode enviar uma Mensagem para Todos Os Jogadores, sei que para iSoo posso usar a funзгo SendClientMessageToAll. entгo desenvolvi sу isso atй agora e empaquei, pois nгo sei quase nada de PAWN. como termino:

Preciso que a Funзгo Mostre estб Mensagem no CHAT para todos os Jogadores

[SERVER NOTICE] {Mensagem do GM}. By: PLAYERNOME
Exemplo:

[SERVER NOTICE] O Servidor serб Reiniciado. By KrySky_ADM

Код:
	if (strcmp("/speak", cmdtext, true, 10) == 0 && PlayerInfo[playerid][pAdmin] >= 1)
		{
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/speak [Speak Message]");
				return 1;
			}
			return 1;
		}
Reply
#2

Vamos ver
pawn Код:
if (strcmp("/speak", cmdtext, true, 10) == 0 && PlayerInfo[playerid][pAdmin] >= 1)
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/speak [Speak Message]");
                return 1;
            }
    SendClientMessageToAll(COLOR_WHITE, "|______________ Speak ______________|");
            format(string, sizeof(string), " [SERVER NOTICE] O Servidor serб Reiniciado. By %s", sendername, result);
            SendClientMessageToAll(COLOR_YELLOW2, string);
        }
        return 1;
    }
ta ai
Reply
#3

Na Verdade esse 'O Servidor serб Reiniciado', й so um exemplo, o Player GM ou ADM que vai definir a Mensagem.
Image no CHAT o Player Digita
/speak Servidor Com Problemas

dб enter e ai o server envia a seguinte mensagem para os jogadores

[SERVER NOTICE] Servidor com Problemas. By: ADM

Igual a um Whisper
Reply
#4

Isto deve resolver o seu problema:


pawn Код:
if (strcmp("/speak", cmdtext, true, 10) == 0 && PlayerInfo[playerid][pAdmin] >= 1)
        {
            new string[128];
            new NickName[MAX_PLAYER_NAME];
            GetPlayerName(playerid, NickName, sizeof(NickName));
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/speak [Speak Message]");
                return 1;
            }
            format(string, sizeof(string), " [SERVER NOTICE] %s. By %s", tmp, NickName);
            SendClientMessageToAll(COLOR_YELLOW2, string);
        }
        return 1;
    }

Para aprender sobre a formaзгo dos espaзos como /speak [message] sugiro que pegue o tutorial sobre KcmD na minha assinatura pois o mesmo estб bem explicativo.


Espero ter ajudado
Reply
#5

Probleminha. quando do no Chat /speak teste, nгo acontece nada
Reply
#6

й pra aparecer em textdraw ou texto?
Reply
#7

TEXTO NO CHAT
Reply
#8

Sei lб, mais tenta.
pawn Код:
if(!strcmp(cmdtext,"/Speak", true, 6))
{
            if(!strlen(cmdtext[6]))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/speak [Speak Message]");
                return 1;
            }
            format(string, sizeof(string), " [SERVER NOTICE] %s. By %s", cmdtext[6], NickName);
            SendClientMessageToAll(COLOR_YELLOW2, string);
            return 1;
}
Reply
#9

Tenta isso
pawn Код:
if(strcmp(cmd, "/speak", true) == 0)
    {
new idx;
new sendername[MAX_PLAYER_NAME];           
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COR AKI, "Use /speak [texto]");
return 1;
}
format(string, sizeof(string), "[SERVER NOTICE] %s. By: %s:", result,sendername);
SendClientMessageToAll(COR AKI, string);
return 1;
}
Reply
#10

So tem um problema na hora que mandei no chat /speak Teste
ele envio para todos a seguinte mensagem

[SERVER NOTICE] /speak Teste. By: ADM

o /speak nгo pode aparecer
Reply
#11

lol '
Reply
#12

isso ja deu cmg rsrsrsrs tente almentar cmdtext
Reply
#13

Garfield apenas um problema, como a frase serб igual a "/speak" sendo que precisa do texto? Teria de ser:

pawn Код:
if(strfind(cmdtext,"/speak",true)==0)
{
            if(strlen(cmdtext)<8)
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/speak [Speak Message]");
                return 1;
            }
            new NickName[MAX_PLAYER_NAME],spk[128];GetPlayerName(playerid,NickName,sizeof(NickName));
            format(stringspk, sizeof(stringspk), "[SERVER NOTICE] %s. By %s", cmdtext[7], NickName);
            SendClientMessageToAll(0xFFFF00AA, stringspk);
            return 1;
}
Reply
#14

Resolvido pessoal. obrigado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)