SA-MP Forums Archive
[Ajuda] Canal Dentro Do Jogo - 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)
+---- Thread: [Ajuda] Canal Dentro Do Jogo (/showthread.php?tid=510644)



Canal Dentro Do Jogo - Matthy - 01.05.2014

Olб

Eu Gostaria De Aprender Como Fazer Canais(chats) Diferentes Em Meu GM.

Por Exemplo: No Servidor Que Eu Jogo Existe Um Canal Para Duvidas Sobre O Servidor.
O Comando Usado й: /n Duvida

Se Alguйm Disponibilizar Um Tutorial Eu Agradeзo




Re: Canal Dentro Do Jogo - mau.tito - 01.05.2014

pawn Код:
command(n, playerid, params[])
{
   static var[ 100 ], texto[ 100 ], nome[ 80 ], i; // as strings
   GetPlayerName(playerid, nome, 80); // getar o nome do player
   if(sscanf(params, "s[100]", texto )) return SendClientMessage(playerid, -1, "/n [duvida]"); // usar string com o sscanf
   
   format(var , sizeof(var) , "|Duvida| %s : %s .", nome , texto); // formatar a mensagem para aparecer o nome e a duvida
   do { // loop simples
      if(IsPlayerAdmin(i)) // se o cara tiver logado na rcon , mas pode mudar por variavel de seu gm
          SendClientMessage(i, -1, var); // vai enviar a mensagem
      i++; // somara o id
   }
   while(i < MAX_PLAYERS); // finalizacao do loop
   SendClientMessage(playerid, -1, "Mensagem Enviada !"); // mensagem ao player dizendo que foi efetuado a pergunta
   return true ;
}



Respuesta: Canal Dentro Do Jogo - Matthy - 01.05.2014

Olб
Toda Vez Que Eu Digito:
/n (Minha Duvida)

A Minha Duvida Nгo Aparece.
Aparece /n [duvida].
Oq Eu Faзo?


Re: Canal Dentro Do Jogo - Kuddy - 01.05.2014

Deve funcionar:

pawn Код:
new pChannel[MAX_PLAYERS];

CMD:n(playerid, params[]){
    if(pChannel[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк nгo estб em nenhum canal");
    if(strlen(params) == 0) return SendClientMessage(playerid, -1, "Digite alguma coisa.");
    new strin[128];
    format(strin, 128, "%s (%d): %s.", PlayerGetName(playerid), playerid, params);
    for(new k=0; k<MAX_PLAYERS; k++) if(pChannel[k]==pChannel[playerid]) SendClientMessage(playerid, -1, strin);
    return 1;
}

CMD:joinchannel(playerid, params[]){
    new strin[128], num;
    if(!sscanf(params, "d", num)) return SendClientMessage(playerid, -1, "Digite um canal vбlido.");
    if(num==0 && pChannel[playerid]!=0) format(strin, 128, "Vocк saiu do canal.",num);
    else if(num==0) format(strin, 128, "Vocк nгo estб em nenhum canal.");
    else format(strin, 128, "Vocк entrou no canal %d.",num);
    SendClientMessage(playerid, -1, strin);
    pChannel[playerid] = num;
    return 1;
}

public OnPlayerDisconnect(playerid, reason) {
    pChannel[playerid] = 0;
    return 1;
}

stock PlayerGetName(playerid)
{
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
    return Nome;
}
Fiz correndo e nгo compilei/testei, se tiver algum erro й sу avisar.


Respuesta: Canal Dentro Do Jogo - Matthy - 01.05.2014

Olб
Alguma Coisa Errada.
Eu Digito Os Comandos e Nгo Acontece Bulufas.
Nгo Ocorre Nenhuma Aзгo, Como Se Eu Nгo Tivesse Escrito Nada!


Re: Canal Dentro Do Jogo - Kuddy - 02.05.2014

pawn Код:
new pChannel[MAX_PLAYERS];

CMD:n(playerid, params[]){
    if(pChannel[playerid] == 0) return SendClientMessage(playerid, -1, "Vocк nгo estб em nenhum canal");
    if(strlen(params) == 0) return SendClientMessage(playerid, -1, "Digite alguma coisa.");
    new strin[128];
    format(strin, 128, "%s (%d): %s.", PlayerGetName(playerid), playerid, params);
    for(new k=0; k<MAX_PLAYERS; k++) if(pChannel[k]==pChannel[playerid]) SendClientMessage(k, -1, strin);
    return 1;
}

CMD:joinchannel(playerid, params[]){
    new strin[128], num;
    if(sscanf(params, "d", num)) return SendClientMessage(playerid, -1, "Digite um canal vбlido.");
    if(num==0 && pChannel[playerid]!=0) format(strin, 128, "Vocк saiu do canal.",num);
    else if(num==0) format(strin, 128, "Vocк nгo estб em nenhum canal.");
    else format(strin, 128, "Vocк entrou no canal %d.",num);
    SendClientMessage(playerid, -1, strin);
    pChannel[playerid] = num;
    return 1;
}

public OnPlayerDisconnect(playerid, reason) {
    pChannel[playerid] = 0;
    return 1;
}

stock PlayerGetName(playerid)
{
    new Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
    return Nome;
}
Agora deve funcionar.