[Ajuda] Chat NPC
#1

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+
Reply
#2

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

Troque && por ||
Reply
#4

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
Reply
#5

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;
}
Reply
#6

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

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

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




LOL!
Reply
#7

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
Reply
#8

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

@OFF

LOL 1 REP por dia, que eu te dou Oo

Aceita MSN *-*
Reply
#9

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

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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)