[Ajuda] Criar chat gang aliada
#1

Estou tentando fazer um chat para as gangs aliada. As gangs aliadas й salva em DOF2.

PHP код:
#define gAliada           "/GGSALIADAS/%s.ini" 
Ai eu tentei fazer o comando para as gangs aliadas falar entre si.

PHP код:

CMD
:caa(playeridparams[])
{
    if(!
DOF2_FileExists(gAliada1) && !DOF2_FileExists(gAliada2))
    {
        if(!
strlen(params))
            return 
SendClientMessage(playeridCOR_USOCORRETO"USO: /caa [texto]");
        
format(fixStrsizeof(fixStr), "** GANG ALIADA: %s %s (ID: %d): {FFFFFF} %s **"
               
AccountName(playerid), GetPlayerNameEx(playerid), playeridparams);
              
SendMessageToAliada(0xa427ceAAfixStr);
    }
    return 
true;

Funcionou porйm atй as gangs que nгo й aliada recebe a mensagem, alguйm pode ajudar a fazer?
Reply
#2

Vocк criou um enumerador para armazenar as funзхes?

Se sim, faзa da seguinte forma...
Verifique se a setagem й em valores integers ou em valores lуgicos(booleano, verdadeiro ou falso)

Vamos supor que a setagem й em um valor lуgico.

Obs.: Tudo isso й apenas uma base.
PHP код:
/* Aconselho que vocк tenha a diretiva 'pawn.cmd', pois com ela, vocк nгo precisarб adicionar o macro do parвmetro 'isnull'. */
/* Caso, nгo tiver a diretiva e quiser adicionar o macro, faзa da seguinte forma: */
/* Adicione ao topo do seu GameMode: */
 #if !defined isnull
    #define isnull(%1) \
                
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
/* Agora, faзa tudo normal. */
enum PoInfo {
    
bool:Aliada1,
    
bool:Aliada2
};
new 
Player[MAX_PLAYERS][PoInfo];
CMD:caa(playeridparams[])
{
    if(!
Player[playerid][Aliada1] && Player[playerid][Aliada2])
        return 
SendClientMessage(playerid, -1"As gangues aliadas, nгo sгo compatнveis.");
    {
        if(!
isnull(params))
        {
            new 
str[128];
            
format(strsizeof(str), "** GANG ALIADA: %s %s (ID: %d): {FFFFFF} %s **"/*Adicione uma vнrgula e faзa suas formataзхes de acordo com suas funзхes feitas :) */);
            for(new 
0MAX_PLAYERSi++)
            {
                if(
IsPlayerConnected(i))
                {
                    if(
Player[i][Aliada1] && Player[i][Aliada2])
                    {
                        
SendClientMessage(i, -1str);
                    }
                }
            }
        }
        else
            return 
SendClientMessage(playerid, -1"Digite: /caa [TEXTO]");
    }
    return 
true;

Reply
#3

Quote:
Originally Posted by Pool
Посмотреть сообщение
Vocк criou um enumerador para armazenar as funзхes?

Se sim, faзa da seguinte forma...
Verifique se a setagem й em valores integers ou em valores lуgicos(booleano, verdadeiro ou falso)

Vamos supor que a setagem й em um valor lуgico.

Obs.: Tudo isso й apenas uma base.
PHP код:
/* Aconselho que vocк tenha a diretiva 'pawn.cmd', pois com ela, vocк nгo precisarб adicionar o macro do parвmetro 'isnull'. */
/* Caso, nгo tiver a diretiva e quiser adicionar o macro, faзa da seguinte forma: */
/* Adicione ao topo do seu GameMode: */
 #if !defined isnull
    #define isnull(%1) \
                
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
/* Agora, faзa tudo normal. */
enum PoInfo {
    
bool:Aliada1,
    
bool:Aliada2
};
new 
Player[MAX_PLAYERS][PoInfo];
CMD:caa(playeridparams[])
{
    if(!
Player[playerid][Aliada1] && Player[playerid][Aliada2])
        return 
SendClientMessage(playerid, -1"As gangues aliadas, nгo sгo compatнveis.");
    {
        if(!
isnull(params))
        {
            new 
str[128];
            
format(strsizeof(str), "** GANG ALIADA: %s %s (ID: %d): {FFFFFF} %s **"/*Adicione uma vнrgula e faзa suas formataзхes de acordo com suas funзхes feitas :) */);
            for(new 
0MAX_PLAYERSi++)
            {
                if(
IsPlayerConnected(i))
                {
                    if(
Player[i][Aliada1] && Player[i][Aliada2])
                    {
                        
SendClientMessage(i, -1str);
                    }
                }
            }
        }
        else
            return 
SendClientMessage(playerid, -1"Digite: /caa [TEXTO]");
    }
    return 
true;

Nгo tem como eu fazer essa verificaзгo se й aliada pelo DOF2 ? Do jeito que mandei acima.
Reply
#4

Quote:
Originally Posted by Firezl
Посмотреть сообщение
Nгo tem como eu fazer essa verificaзгo se й aliada pelo DOF2 ? Do jeito que mandei acima.
O DOF2, serve apenas para armazenar os dados inseridos de uma conta para um arquivo de texto.

Se o jogador entrar com essa conta, ela serб checada dentro dos arquivos de texto e as informaзхes serгo setadas, apenas isso.
As verificaзхes, vocк deve fazer com as funзхes das condicionais padrхes, nada de DOF2 se encaixa nessa performance.
Talvez por algum lado, o DOF2 possa ser um tipo de "condicional", mas no meu ponto de vista, nгo й um ponto vantajoso utilizar o DOF2 como condicional para verificar a existкncia de funзхes que podem ser feitas com as condicionais nativamente existentes dentro da linguagem.
Reply
#5

Quote:
Originally Posted by Pool
Посмотреть сообщение
O DOF2, serve apenas para armazenar os dados inseridos de uma conta para um arquivo de texto.

Se o jogador entrar com essa conta, ela serб checada dentro dos arquivos de texto e as informaзхes serгo setadas, apenas isso.
As verificaзхes, vocк deve fazer com as funзхes das condicionais padrхes, nada de DOF2 se encaixa nessa performance.
Talvez por algum lado, o DOF2 possa ser um tipo de "condicional", mas no meu ponto de vista, nгo й um ponto vantajoso utilizar o DOF2 como condicional para verificar a existкncia de funзхes que podem ser feitas com as condicionais nativamente existentes dentro da linguagem.
Nгo conseguir fazer do jeito que vocк falou, tem como ajudar por Skype?
Reply
#6

Quote:
Originally Posted by Firezl
Посмотреть сообщение
Estou tentando fazer um chat para as gangs aliada. As gangs aliadas й salva em DOF2.

PHP код:
#define gAliada           "/GGSALIADAS/%s.ini" 
Ai eu tentei fazer o comando para as gangs aliadas falar entre si.

PHP код:

CMD
:caa(playeridparams[])
{
    if(!
DOF2_FileExists(gAliada1) && !DOF2_FileExists(gAliada2))
    {
        if(!
strlen(params))
            return 
SendClientMessage(playeridCOR_USOCORRETO"USO: /caa [texto]");
        
format(fixStrsizeof(fixStr), "** GANG ALIADA: %s %s (ID: %d): {FFFFFF} %s **"
               
AccountName(playerid), GetPlayerNameEx(playerid), playeridparams);
              
SendMessageToAliada(0xa427ceAAfixStr);
    }
    return 
true;

Funcionou porйm atй as gangs que nгo й aliada recebe a mensagem, alguйm pode ajudar a fazer?
Como й sua "SendMessageToAliada"?
Reply
#7

Quote:
Originally Posted by MrEdu
Посмотреть сообщение
Como й sua "SendMessageToAliada"?
PHP код:
SendMessageToAliada(cor, const str[])
{
     
each(Players->new i)
        if(
Player[i][pLogged])
            if(!
DOF2_FileExists(gAliada1) && !DOF2_FileExists(gAliada2))
                
SendClientMessage(icorstr);

Й para enviar as mensagem para as que й aliada.
Reply
#8

Quote:
Originally Posted by Pool
Посмотреть сообщение
Vocк criou um enumerador para armazenar as funзхes?

Se sim, faзa da seguinte forma...
Verifique se a setagem й em valores integers ou em valores lуgicos(booleano, verdadeiro ou falso)

Vamos supor que a setagem й em um valor lуgico.

Obs.: Tudo isso й apenas uma base.
Vou da uma explicada melhor no que o pool falou, pra melhorar seu entendimento, tinha feito praticamente do mesmo jeito dele, entгo deletei minha postagem e sei que vocк ainda estб com dъvida.

O que ele fez?
Ele simplesmente criou um enumerador de variбveis (enum) e atribuiu valores, por exemplo:

PHP код:
enum teste{
checagem
Testando
}
new 
Player[MAX_PLAYERS][teste]; //Veja, eu enumerei a funзгo junto com a variбvel "Player" 
Como eu falei, enumerei a funзгo junto com a variбvel "Player", isso me da a possibilidade de fazer junзхes de variбveis com as que estгo dentro do enumerador (enum) , por exemplo:

PHP код:
if (Player[playerid][Testando] == 1)
{
   
//cod

ou posso fazer uma coisinha assim tambйm:

PHP код:
cmd:macho(playerid)
{
   if(
Player[playerid][checagem] == 1)
   {
        
SendClientMessage(playerid, -1"Vocк nгo pode virar um macho, pois estб com o nнvel de checagem igual a 1");
   }
    return 
1;

Se o nнvel da variбvel "checagem" desse jogador for igual a 1, ele nгo poderб usar o comando "/macho", isso й, se esse nнvel estiver setado em sua conta.

Ъnica coisa que vocк precisa fazer й armazenar os valores dessa variбvel no seu arquivo DOF2, aн quando o player for da gangAliada serб = 1, e quando nгo for = 0, isso irб identificar e fazer com que apenas esses jogadores fale no seu chat.
Reply
#9

Quote:

if(strcmp(cmd,"/cpcc",true)==0){
if(PlayerInfo[playerid][piRrecruta] || PlayerInfo[playerid][piRladrao] || PlayerInfo[playerid][piRassassino] || PlayerInfo[playerid][piRassassinoP] || PlayerInfo[playerid][piRtraficante] || PlayerInfo[playerid][piRterrorista] || PlayerInfo[playerid][piRsubdono] || PlayerInfo[playerid][piRdono] || IsPlayerAdmin(playerid))
{
//new msg[256];
strmid(tmp,cmdtext,6,strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid,Vermelho, "[ x ] Uso correto: /caa[ texto ]");
return 1;
} else {
format(string, sizeof(string), "[ Chat - Aliados] %s (%d): %s", PlayerName(playerid), playerid, tmp);
ABroadCastCAA(-1,string,1);
return 1;
}
}else{
SendClientMessage(playerid,Vermelho,"| ERRO | Somente aliados podem usar o chat pode usar este comando.");
return 1;
}
}

Comando em sн em cima.


Quote:

forward ABroadCastCAA(COLOR,const string[],level); // Chat do clan.

Colocar isso гo pede os '' Forward ''

PHP код:
public ABroadCastiR(COLOR,const string[],level)
{
foreach(
Playeri)
{
if(
PlayerInfo[i][piRrecruta] || PlayerInfo[i][piRladrao] || PlayerInfo[i][piRassassino] || PlayerInfo[i][piRassassinoP] || PlayerInfo[i][piRtraficante] || PlayerInfo[i][piRterrorista] || PlayerInfo[i][piRsubdono] || PlayerInfo[i][piRdono] || IsPlayerAdmin(i))
{
SendClientMessage(iCOLORstring);
}
}
return 
1;

Onde tem public geralmente final da gm


@@@@EDIT !!

Se der erro tente colocar isso

PHP код:
new File:temp;
    new 
index 0;
    new 
tmp[256]; 
Colocar em OnPlayerCommandText
Reply
#10

Quote:
Originally Posted by SnowBorn
Посмотреть сообщение
Comando em sн em cima.




Colocar isso гo pede os '' Forward ''

PHP код:
public ABroadCastiR(COLOR,const string[],level)
{
foreach(
Playeri)
{
if(
PlayerInfo[i][piRrecruta] || PlayerInfo[i][piRladrao] || PlayerInfo[i][piRassassino] || PlayerInfo[i][piRassassinoP] || PlayerInfo[i][piRtraficante] || PlayerInfo[i][piRterrorista] || PlayerInfo[i][piRsubdono] || PlayerInfo[i][piRdono] || IsPlayerAdmin(i))
{
SendClientMessage(iCOLORstring);
}
}
return 
1;

Onde tem public geralmente final da gm


@@@@EDIT !!

Se der erro tente colocar isso

PHP код:
new File:temp;
    new 
index 0;
    new 
tmp[256]; 
Colocar em OnPlayerCommandText
Tenta compilar em um "new.pwn" ;-;
Isso nгo vai compilar porque vocк nгo fez o enumerador que enumera essas funзхes em uma variбvel, no caso, vocк nгo solicitou a criaзгo da variбvel:
PHP код:
new PlayerInfo[MAX_PLAYERS][FUNCTION_ENUM
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)