SA-MP Forums Archive
[AJUDA]NPC falar ao jogador - 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]NPC falar ao jogador (/showthread.php?tid=339424)

Pages: 1 2


[AJUDA]NPC falar ao jogador - Detonador - 03.05.2012

olб gente! eu vi isso em um servidor russo a algum tempo, eu quero q quando o jogador chegue perto do meu npc, o npc diga: olб eu sou um robф. bom conhecer vocк!
ah e tbm queria algum comando que faзa aparecer na lista de players por exemplo:
Joao(bot)
pq ta identificando q tem dois players online mas nao aparece na lista.
disseram q isso eh impossivel mas nao eh, pq tbm vi em um server.
desde jб agradeзo!


Re: [AJUDA]NPC falar ao jogador - Matheus_Ecko - 03.05.2012

estuda esse bar do SuB_ZeRo0_ tem um sistema que o bot fala, dai sу adptar ao seu gm.


Re: [AJUDA]NPC falar ao jogador - Detonador - 03.05.2012

valeu aн amigo mas deste jeito o npc fala quando o jogador digita certa palavra.
eu quero que quando o jogador chegue perto, o Bot diga.
terei que usar range of point, mas nгo sei mexer direito com isso.


Re: [AJUDA]NPC falar ao jogador - CidadeNovaRP - 03.05.2012

Bot й igual a um player, use GetPlayerPos no bot ou use estб funзгo:
pawn Code:
stock GetNearestBot(playerid, Float:abstand)
{
    new Float:pX, Float:pY, Float:pZ, Float:vX, Float:vZ, Float:vY;
    GetPlayerPos(playerid, pX, pY, pZ);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerNPC(i))
    {
        GetPlayerPos(i, vX, vY, vZ);
        if(floatabs(pX-vX) < abstand && floatabs(pY-vY) < abstand && floatabs(pZ-vZ) < abstand &&  i != playerid)
        {
            return i;
        }
    }
    }
    return 9999;
}
E o SendClientMenssage com vamos supor, uma tag de [BOT] na frente ou use simplesmente o GetPlayerName.


Re: [AJUDA]NPC falar ao jogador - Detonador - 03.05.2012

nгo consegui entender, este code que vocк me mandou faz o quк?


Re: [AJUDA]NPC falar ao jogador - CidadeNovaRP - 03.05.2012

Quote:
Originally Posted by Detonador
View Post
nгo consegui entender, este code que vocк me mandou faz o quк?
Geta a pos do NPC mais prуximo .


Re: [AJUDA]NPC falar ao jogador - Detonador - 03.05.2012

e manda a mensagem?


Re: [AJUDA]NPC falar ao jogador - CidadeNovaRP - 03.05.2012

Quote:
Originally Posted by Detonador
View Post
e manda a mensagem?
No, ai vocк tem que usar o SendClientMenssage .


Re: [AJUDA]NPC falar ao jogador - Detonador - 03.05.2012

como assim amigo?
nгo pode me mandar o code completo?


Re: [AJUDA]NPC falar ao jogador - KinX - 03.05.2012

kra ,n entendi direito como funciona essa funзгo, mas se for como eu to pensando, acho q poderia ser assim

pawn Code:
public OnPlayerUpdate(playerid)
{
  if(GetNearestBot(playerid, Float:1.0)) // Acho que a distвncia й definida assim
  {
  SendClientMessage(playerid, -1, [BOT] Oi, eu sou um robф);
  }
  return 1;
}

stock GetNearestBot(playerid, Float:abstand)
{
    new Float:pX, Float:pY, Float:pZ, Float:vX, Float:vZ, Float:vY;
    GetPlayerPos(playerid, pX, pY, pZ);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerNPC(i))
    {
        GetPlayerPos(i, vX, vY, vZ);
        if(floatabs(pX-vX) < abstand && floatabs(pY-vY) < abstand && floatabs(pZ-vZ) < abstand &&  i != playerid)
        {
            return i;
        }
    }
    }
    return 9999;
}
Nгo sei se ta certo, tente ai


Re: [AJUDA]NPC falar ao jogador - CidadeNovaRP - 03.05.2012

Quote:
Originally Posted by KinX
View Post
kra ,n entendi direito como funciona essa funзгo, mas se for como eu to pensando, acho q poderia ser assim

pawn Code:
public OnPlayerUpdate(playerid)
{
  if(GetNearestBot(playerid, Float:1.0)) // Acho que a distвncia й definida assim
  {
  SendClientMessage(playerid, -1, [BOT] Oi, eu sou um robф);
  }
  return 1;
}

stock GetNearestBot(playerid, Float:abstand)
{
    new Float:pX, Float:pY, Float:pZ, Float:vX, Float:vZ, Float:vY;
    GetPlayerPos(playerid, pX, pY, pZ);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerNPC(i))
    {
        GetPlayerPos(i, vX, vY, vZ);
        if(floatabs(pX-vX) < abstand && floatabs(pY-vY) < abstand && floatabs(pZ-vZ) < abstand &&  i != playerid)
        {
            return i;
        }
    }
    }
    return 9999;
}
Nгo sei se ta certo, tente ai
Corrigindo :
pawn Code:
public OnPlayerUpdate(playerid)
{
    if(GetNearestBot(playerid, 5.0))
    {
        SendClientMessage(playerid, -1, "[BOT] Oi, eu sou um robф"); //Mensagem do BOT
    }
    return 1;
}

stock GetNearestBot(playerid, Float:abstand)
{
    new Float:pX, Float:pY, Float:pZ, Float:vX, Float:vZ, Float:vY;
    GetPlayerPos(playerid, pX, pY, pZ);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerNPC(i))
    {
        GetPlayerPos(i, vX, vY, vZ);
        if(floatabs(pX-vX) < abstand && floatabs(pY-vY) < abstand && floatabs(pZ-vZ) < abstand &&  i != playerid)
        {
            return i;
        }
    }
    }
    return -1;
}



Re: [AJUDA]NPC falar ao jogador - KinX - 03.05.2012

Nossa, esqueci o " " ali kkkk, vlw por corrigir cidadenovarp ^^


Re: [AJUDA]NPC falar ao jogador - CidadeNovaRP - 03.05.2012

Quote:
Originally Posted by KinX
View Post
Nossa, esqueci o " " ali kkkk, vlw por corrigir cidadenovarp ^^
Nads .


Re: [AJUDA]NPC falar ao jogador - Detonador - 04.05.2012

galerinha, mas eu preciso pegar o nome do bot. tem q ser por exemplo, se eu chego perto do joao, ele fala oi eu sou o joao, um robo
se eu chego perto do joca, ele fala eu nao sou o joao, sou o joca, e tbm sou um robo
blz? vlws ae


Re: [AJUDA]NPC falar ao jogador - Detonador - 05.05.2012

alguem ajuda pf?


Re: [AJUDA]NPC falar ao jogador - Lуs - 05.05.2012

Eu fiz um sistema desses para o meu servidor que estava fazendo a alguns meses atrбs.

Basta usar a OnPlayerText, depois usar strcmp ou strfind para checar oque o jogador digitou e checar a distвncia com IsPlayerInRangeOfPoint.

Abraзos.


Re: [AJUDA]NPC falar ao jogador - Detonador - 05.05.2012

Quote:
Originally Posted by Los
View Post
Eu fiz um sistema desses para o meu servidor que estava fazendo a alguns meses atrбs.

Basta usar a OnPlayerText, depois usar strcmp ou strfind para checar oque o jogador digitou e checar a distвncia com IsPlayerInRangeOfPoint.

Abraзos.
ja tentei isso amigao! talvez seja pq eu nao estou conseguindo formular o code certo.
eu tentei fazendo, mas tipo, o npc ficava mandando a msg o tempo todo, mesmo sem eu estar perto dele.


Re: [AJUDA]NPC falar ao jogador - Lуs - 05.05.2012

Quote:
Originally Posted by Detonador
View Post
ja tentei isso amigao! talvez seja pq eu nao estou conseguindo formular o code certo.
eu tentei fazendo, mas tipo, o npc ficava mandando a msg o tempo todo, mesmo sem eu estar perto dele.
Mostre o cуdigo que usou.


Re: [AJUDA]NPC falar ao jogador - Detonador - 05.05.2012

pawn Code:
new IsNear[MAX_PLAYERS];

public OnPlayerUpdate(playerid)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(YOUR_NPC_ID,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z) && IsNear[playerid] == 0)
    {
        SendClientMessage(playerid,0xFFFFFFFF,"ola eu sou um bot! bom conhecer vc!");
        IsNear[playerid] = 1;
    }
    else
    {
        IsNear[playerid] = 0;
    }
    return 1;
}
eu axei esse na net e eu testei, mas como eu tinha te dito, nao funcionou.
e outra coisa, eu queria que por exemplo, o nome do npc й Joao, quando o jogador chegasse perto dele, aparecesse:
Joao(Bot) diz: oi eu sou um bot! bom conhecer vocк!
vlws aguardo sua ajuda!


Re: [AJUDA]NPC falar ao jogador - Lуs - 05.05.2012

Quote:
Originally Posted by Detonador
View Post
pawn Code:
new IsNear[MAX_PLAYERS];

public OnPlayerUpdate(playerid)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(YOUR_NPC_ID,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z) && IsNear[playerid] == 0)
    {
        SendClientMessage(playerid,0xFFFFFFFF,"ola eu sou um bot! bom conhecer vc!");
        IsNear[playerid] = 1;
    }
    else
    {
        IsNear[playerid] = 0;
    }
    return 1;
}
eu axei esse na net e eu testei, mas como eu tinha te dito, nao funcionou.
e outra coisa, eu queria que por exemplo, o nome do npc й Joao, quando o jogador chegasse perto dele, aparecesse:
Joao(Bot) diz: oi eu sou um bot! bom conhecer vocк!
vlws aguardo sua ajuda!
pawn Code:
public OnPlayerText(playerid, text[])
{
    if(strcmp(text, "Oi")
    {
        if(IsPlayerInRangeOfPoint(playerid, /*X*/, /*Y*/, /*Z*/))//Coordenadas do bot
        {
            SendClientMessage(playerid,0xFFFFFFFF,"Joгo(BOT) diz: Ola eu sou um bot! bom conhecer vc!");
        }
    }
    return 0;
}
E assim vai indo. Se quiser pode usar SetPlayerChatBubble tambйm.

Boa sorte.