SA-MP Forums Archive
[Ajuda] Chat NPC - 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] Chat NPC (/showthread.php?tid=279254)



[Ajuda] Chat NPC - Lуs - 26.08.2011

Pessoal, estou comeзando a montar o chat dos meus NPCs

Sу que surgiu um problema (sempre surge). Tipo, ela responde a primeira merda que vem na cabeзa dela:

pawn Код:
public OnPlayerText(playerid, text[])
{
    new string[150], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 361.8299,173.4297,1008.3828))
    {
        if(strfind(text, "ola") && strfind(text, "ana") && strfind(text, "maria") && strfind(text, "oi") && strfind(text,"eae") != -1)
        {
            format(string, sizeof(string), "Oi %s! Bem vindo a prefeitura! Vocк precisa de alguma coisa?", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "sim") != -1)
        {
            format(string, sizeof(string), "Entгo me fale :), doque vocк precisa?", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "nao") || strfind(text, "nгo") != -1)
        {
            format(string, sizeof(string), "Ok, se nгo quer nada, oque faz aqui? Vб embora.", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "habilitacao") || strfind(text, "carteira") || strfind(text, "motorista") || strfind(text, "aviao")
        || strfind(text, "licenca") || strfind(text, "teste") || strfind(text, "auto-escola") != -1)
        {
            format(string, sizeof(string), "Entгo vou te mostrar entгo um menu com todas as opзхes de testes que temos, ok?", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "ok") || strfind(text, "certo") != -1)
        {
            //DIALOG HABILITAЗХES AQUI!
        }
    }
    return 1;
}
Quando eu digito "oi" й como seu eu tivesse digitando Nгo e licenca ou qualquer palavra ali da strfind da parte das licenзas ao mesmo tempo. Fora que alйm de cega ela й o Flash, porque antes de eu apertar ENTER ela jб respondeu, sу olha na SS:



Aguardo respostas e vocкs aguardem REP+


Re: [Duvida] Chat NPC - MiTToS - 26.08.2011

Nгo entendi bem o que vocк quer fazer, mas acho que poderia usar strcmp junto com o strfind para lhe dar um melhor resultado.


Re: [Duvida] Chat NPC - Shadoww5 - 26.08.2011

Troque && por ||


Re: [Duvida] Chat NPC - Lуs - 26.08.2011

Quote:
Originally Posted by MiTToS
Посмотреть сообщение
Nгo entendi bem o que vocк quer fazer, mas acho que poderia usar strcmp junto com o strfind para lhe dar um melhor resultado.
Tipo, eu digito "Oi" perto do BOT, e ela deveria responder sу:

Quote:

Oi %s! Bem vindo a prefeitura! Vocк precisa de alguma coisa?

Mais ela respondeu oque vocк viu lб na screen.

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
Troque && por ||
Tava com || mais eu tirei sу pra ver se funcionava


Re: [Duvida] Chat NPC - ViniBorn - 26.08.2011

pawn Код:
public OnPlayerText(playerid, text[])
{    
    new string[150], name[MAX_PLAYER_NAME];    
    GetPlayerName(playerid, name, sizeof(name));    
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 361.8299,173.4297,1008.3828))    
    {        
        if(strfind(text, "ola")  != -1 || strfind(text, "ana")  != -1 || strfind(text, "maria")  != -1 || strfind(text, "oi")  != -1 || strfind(text,"eae") != -1)        
        {            
            format(string, sizeof(string), "Oi %s! Bem vindo a prefeitura! Vocк precisa de alguma coisa?", name);            
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);            
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);        
        }        
        if(strfind(text, "sim") != -1)        
        {            
            format(string, sizeof(string), "Entгo me fale :), doque vocк precisa?", name);            
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);            
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);        
        }        
        if(strfind(text, "nao")  != -1 || strfind(text, "nгo") != -1)        
        {            
            format(string, sizeof(string), "Ok, se nгo quer nada, oque faz aqui? Vб embora.", name);            
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);            
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);        
        }        
        if(strfind(text, "habilitacao") != -1 || strfind(text, "carteira") != -1 || strfind(text, "motorista")  != -1 || strfind(text, "aviao") != -1 || strfind(text, "licenca")  != -1 || strfind(text, "teste")  != -1 || strfind(text, "auto-escola") != -1)        
        {            
            format(string, sizeof(string), "Entгo vou te mostrar entгo um menu com todas as opзхes de testes que temos, ok?", name);            
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);            
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);        
        }        
        if(strfind(text, "ok") != -1|| strfind(text, "certo") != -1)        
        {            
            //DIALOG HABILITAЗХES AQUI!        
        }    
    }    
    return 1;
}



Re: [Duvida] Chat NPC - Lуs - 26.08.2011

LOL VINI, eu te amo mano! REP+ com certeza.

Uma ultima duvida, porque ela responde antes de mim ? Oo

============ EDIT




LOL!


Re: [Duvida] Chat NPC - ViniBorn - 26.08.2011

De nada

Porque o SendClientMessage que contйm a mensagem do jogador estб depois da mensagem do NPC



Edit:

Й porque vocк me deu REP ontem em outro tуpico xD


Re: [Duvida] Chat NPC - Lуs - 26.08.2011

Eu teria que fazer um timer entгo? '-'

@OFF

LOL 1 REP por dia, que eu te dou Oo

Aceita MSN *-*


Re: [Duvida] Chat NPC - ViniBorn - 26.08.2011

Nгo, й sу colocar antes da verificaзгo dos NPC's


Re: [Duvida] Chat NPC - Lуs - 26.08.2011

Mais nгo tem sendclientmessage na public onplayertext mano, olha a public toda:

pawn Код:
public OnPlayerText(playerid, text[])
{
    new string[150], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 361.8299,173.4297,1008.3828))
    {
        if(strfind(text, "ola")  != -1 || strfind(text, "ana")  != -1 || strfind(text, "maria")  != -1 || strfind(text, "oi")  != -1 || strfind(text,"eae") != -1)
        {
            format(string, sizeof(string), "Oi %s! Bem vindo a prefeitura! Vocк precisa de alguma coisa?", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "sim") != -1)
        {
            format(string, sizeof(string), "Entгo me fale :), doque vocк precisa?", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "nao")  != -1 || strfind(text, "nгo") != -1)
        {
            format(string, sizeof(string), "Ok, se nгo quer nada, oque faz aqui? Vб embora.", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "habilitacao") != -1 || strfind(text, "carteira") != -1 || strfind(text, "motorista")  != -1 || strfind(text, "aviao") != -1 || strfind(text, "licenca")  != -1 || strfind(text, "teste")  != -1 || strfind(text, "auto-escola") != -1)
        {
            format(string, sizeof(string), "Entгo vou te mostrar entгo um menu com todas as opзхes de testes que temos, ok?", name);
            ProxDetector(20.0, Recepcionista, string, AMARELO,AZUL,VERDE,ROXO,VERMELHO);
            SetPlayerChatBubble(Recepcionista, string, VERDE, 20.0, 10000);
        }
        if(strfind(text, "ok") != -1|| strfind(text, "certo") != -1)
        {
            //DIALOG HABILITAЗХES AQUI!
        }
    }
    return 1;
}