[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
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
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
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
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
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
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
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.