SSGamers - 10 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

5 participantes

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Lucas_Scarfe
Lucas_Scarfe
--> Postador Avançado
--> Postador Avançado


Steam Steam : Teacher English
Zello : Scripter SA:MP
Mensagens : 321
Moedas : 2699
Data de inscrição : 08/05/2016

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Lucas_Scarfe Qua 29 Jun 2016 - 12:45

Fala Galera Hoje Trago um Tutorial Muito Pedido de Como criar Bonecos NPCS que nem do Dimmy_Scarfe (Brasil Project City) se Gosto deixe sua avaliação.

[size=48]Gravando um arquivo de reprodução[/size]
Primeiro de tudo, precisamos gravar um arquivo de reprodução para o nosso NPC usar. Inicie um servidor, de qualquer modo de jogo e então logue-se na RCON. (Use "/rcon login sua_senha" ) e carregue o filterscript npc_record (use "/rcon loadfs npc_record" )
Agora, existem 3 comandos principais para gravação de seu NPC no filterscript npc_record ...

* /vrecord - Inicia a gravação de um caminho de veículo para o nome do arquivo especificado.
* /ofrecord - Inicia a gravação apé para o arquivo especificado.
* /stoprecord - Pára a gravação do veículo e em trajetos apé.


Neste tutorial, vamos estar fazendo um trajeto do veículo, assim que entrar em um veículo, digite /vrecord meunpc (Nota: você deve estar logado na rcon) para iniciar a gravação.
Faça sua trajetoria e quando tiver terminado use /stoprecord.
Feche o jogo,vá para seu diretório scriptfiles, deve haver um arquivo chamado meunpc.rec. Mova o arquivo para  /npcmodes/recordings/
Feito? Ok, ótimo! Você já gravou um caminho para o NPC, e mudou-o para o diretório necessário.

[size=48]Controlando o NPC[/size]
Você pode ter notado um monte de scripts de peão no diretório npcmodes, estes são autônomos "mini" scripts que controlam o comportamento do seu NPC.
Então, vamos criar um caminho para o seu recém-gravado!
Iniciar um novo arquivo em PAWNO, e substituir seu conteúdo com ...

Código:
#define RECORDING "meunpc" //Este é o nome do seu arquivo de gravação, sem a extenção(.rec).
#define RECORDING_TYPE 1 //1 para gravações em veículo e 2 para gravações apé.



Código:
#include <a_npc>
main(){}
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

#if RECORDING_TYPE == 1
 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
 public OnNPCExitVehicle() StopRecordingPlayback();
#else
 public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
#endif



Isso pode parecer confuso, por isso agora explicarei isso linha por linha.



Código:
[size=13]#define RECORDING "meunpc" //Este é o nome do seu arquivo de gravação, sem a extenção(.rec).[/size]


[size=13]Como diz o comentário, este é o nome do caminho que você gravou sem a extensão. Nossa reprodução de gravação foi nomeado meunpc, e seu arquivo foi meunpc.rec assim que entramos no "meunpc".[/size]






Código:
[size=13]#define RECORDING_TYPE 1 //1 para gravações em veículo e 2 para gravações apé.[/size]


[size=13]Como diz o comentário de novo, este é o tipo de gravação. Se o seu NPC está apé, esta definição seria definida como 2, se estava em um veículo seria definida como 1.[/size]






Código:
[size=13]#include <a_npc>[/size]


[size=13]Incluindo as funções de SA-MP NPC.[/size]






Código:
[size=13]public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);[/size]


[size=13]OnRecordingPlaybackEnd é uma callback incluida na biblioteca NPC, como mostrado a linha acima. Esta linha de código faz com que o ciclo de gravação, como quando a reprodução da gravação terminou, ele inicia a gravação. Ou seja, nunca parando.[/size]






Código:
[size=13]public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);[/size]


[size=13]Esta é uma outra callback incluida na livraria NPC. Isto irá iniciar a reprodução quando o NPC for colocado em um veículo[/size]





Código:
[size=13]public OnNPCExitVehicle() StopRecordingPlayback();[/size]


[size=13]Contudo uma outra callback incluida na livaria NPC, isto irá parar a reprodução da gravação, se por qualquer razão, o NPC sai do veículo.[/size]






Código:
[size=13]public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);[/size]


[size=13]Contudo uma outra callback incluida na livaria NPC, isso irá iniciar a reprodução quando o NPC spawnar.[/size]






Como você pode ver, é tudo muito simples. Agora salve o seu NPC "mini" script como "meunpc.pwn" no diretorio de seu servidor de SA-MP. /npcmodes/, e compile.
Se for compilado, você pode continuar para a última etapa deste tutorial, se não conseguir compilar, certifique-se de que você atualizou seu SA-MP que inclui as últimas versões da 0.3, e certifique-se de não ter perdido qualquer parênteses ou semi -e-vírgula. Ainda não compilou? Poste aqui mesmo pedindo ajuda.
[size=48]
Conectando seu NPC
[/size]
Então, nós temos o caminho do arquivo, temos o "mini" peão script para controlar o NPC diretamente, agora precisamos carregar o NPC em um GameMode ou filterscript!
Feche a mini script "peão", e carregar o seu modo de jogo ou uma filterscript em PAWNO, É hora de ser introduzida para a funçãoConnectNPC, e como o próprio nome sugere, é utilizado para conectar um NPC ao seu servidor.
Vamos explorar estes parâmetros de funções, e ver o que eles significam ...



Código:
[size=13]ConnectNPC("Sucre","meunpc");[/size]

"Sucre" - O primeiro parâmetro é o nome do NPC's. Com isso você pode detectar diferentes personagens, e executar ações diferentes a eles.
"meunpc" - Este é o nome do arquivo (sem extensão), da "mini" script que criamos acima.




Com seus novos conhecimentos da função ConnectNPC, vamos tentar fazer nosso NPC ligar quando seu GameMode ou filterscript carregar.



Código:
public OnGameModeInit()
{
 print("meu gamemode");
 ConnectNPC("MeuPrimeiroNPC","meunpc");
 return 1;
}



Ou, se você está adicionando o NPC em um filterscript ...



Código:
public OnFilterScriptInit()
{
 print("meu filterscript");
 ConnectNPC("MeuPrimeiroNPC","meunpc");
 return 1;
}



Agora, como nós criamos um caminho em um veículo, temos de criar um veículo para o NPC a unidade em torno de pol
OnGameModeInit se parece com isso, agora eu criei um veículo para o NPC de usar ...
NOTA: Se o NPC não está em um veículo que você pode pular esta etapa.



Código:
new MeuPrimeiroNPCVehicle; //Variavel global
public OnGameModeInit()
{
 print("meu gamemode");
 ConnectNPC("MeuPrimeiroNPC","meunpc");
 MeuPrimeiroNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
 return 1;
}



Ou, se você está adicionando o NPC em um filterscript ...



Código:
new MeuPrimeiroNPCVehicle; //Variavel global
public OnFilterScriptInit()
{
 print("meu filterscript");
 ConnectNPC("MeuPrimeiroNPC","meunpc");
 MeuPrimeiroNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
 return 1;
}



Note que a localização real do veículo não importa, já que será teleportado para onde o caminho começa a NPC's, quando o caminho começa a reprodução.

Só mais uma coisa antes que você pode ir no jogo e testar seu primeiro NPC, é preciso colocar o NPC dentro do veículo que criamos para isso.
Eu fiz isso usando OnPlayerSpawn ...
NOTA: Se o NPC não está em um veículo você pode pular esta etapa.



Código:
public OnPlayerSpawn(playerid)
{
 if(IsPlayerNPC(playerid)) //Verifica se o jogador é um NPC.
 {
 new npcname[MAX_PLAYER_NAME];
 GetPlayerName(playerid, npcname, sizeof(npcname)); //Obtendo o nome do(s) NPC(s).
 if(!strcmp(npcname, "MeuPrimeiroNPC", true)) //Checando se o nome do NPC é MeuPrimeiroNPC
 {
 PutPlayerInVehicle(playerid, MeuPrimeiroNPCVehicle, 0); //Colocar o NPC dentro do veículo que criamos para isso.
 }
 return 1;
 }
 //Outras coisas para os jogadores normais vai aqui!
 return 1;
}



Se você quiser adicionar outro NPC, esta estrutura OnPlayerSpawn é fácil de modificar, aqui está um exemplo para 2 NPCs ...



Código:
public OnPlayerSpawn(playerid)
{
 if(IsPlayerNPC(playerid)) //Checa se o jogador é um NPC.
 {
 new npcname[MAX_PLAYER_NAME];
 GetPlayerName(playerid, npcname, sizeof(npcname)); //Obtendo o nome do(s) NPC(s).
 if(!strcmp(npcname, "MeuPrimeiroNPC", true)) //Checando se o nome do NPC é MeuPrimeiroNPC
 {
 PutPlayerInVehicle(playerid, MeuPrimeiroNPCVehicle, 0); //Colocar o NPC dentro do veículo que criamos para isso.
 return 1;
 }
 if(!strcmp(npcname, "MeuSegundoNPC", true))
 {
 PutPlayerInVehicle(playerid, OutroVehicleID, 0);
 return 1;
 }
 return 1;
 }
 //Outras coisas para os jogadores normais vai aqui!
 return 1;
}



Agora, compile o seu GameMode ou filterscript, e vá no jogo!
Com alguma sorte, você vai ver a sua condução NPC em torno do caminho que você definiu para ele, parabéns! Você fez o seu primeiro NPC!
Não funcionou? Poste aqui para ver se podemos solucionar o problema.
Mais alguma pergunta? Novamente, poste neste tópico!

[size=48]Problemas comuns[/size]

Meu NPC sai do meu servidor depois após se conectar.
Seu script está forçando o NPC fazer o login, ou você tem um anti-cheat / kicker ping que está interferindo com o NPC. Você pode adicionar ...


Código:
[size=13]if(IsPlayerNPC(playerid)) return 1;[/size]


[size=13]... como a primeira linha de qualquer callbacks bots que vai usar, por exemplo, OnPlayerRequestClass ou OnPlayerRequestSpawn. Para uma maneira eficiente e simples de exclusão de NPCs de loops, confira foreach por Y_Less.[/size]




Meu NPC não entra em meu servidor para todos
Isto é provavelmente causado por seu servidor que está com senha.

Eu não consigo carregar filterscript npc_record para começar
Você não tem o filterscript, ou ele já está carregado. Tente continuar de qualquer maneira.

Meu NPC só fica no ponto de spawn
Volte, e re-leia a parte OnPlayerSpawn do tutorial.

Meus NPCs estavam normais, mas agora atualizei para RC5 eles não funcionam
Há uma variável maxnpc novo server.cfg que o padrão é 0. Adicione ...


Código:
maxnpc numero_de_npcs_aqui


... no seu server.cfg para corrigir esse problema.


Creditos:
Desevolvidor do Tutorial: Lucas_Scarfe
Base:Brasil Project City

avatar
-
--> Hiper postador
--> Hiper postador


Mensagens : 2172
Moedas : 6502
Data de inscrição : 12/10/2015
Idade : 71

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por - Qua 29 Jun 2016 - 13:01

Excelente parabéns Lucas.
Lucas_Scarfe
Lucas_Scarfe
--> Postador Avançado
--> Postador Avançado


Steam Steam : Teacher English
Zello : Scripter SA:MP
Mensagens : 321
Moedas : 2699
Data de inscrição : 08/05/2016

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Lucas_Scarfe Qua 29 Jun 2016 - 13:02

Obrigado!

Zeus_Kills
Zeus_Kills
--> Postador Fanático
--> Postador Fanático


Mensagens : 105
Moedas : 2250
Data de inscrição : 14/05/2016
Idade : 27

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Zeus_Kills Qua 29 Jun 2016 - 13:23

Boa! Mais tu pego da nét! parabéns mesmo assim por postar aqui! Very Happy



Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus 4goryo
Seja bem vindo a SSGAMERS seus lindos!
Lucas_Scarfe
Lucas_Scarfe
--> Postador Avançado
--> Postador Avançado


Steam Steam : Teacher English
Zello : Scripter SA:MP
Mensagens : 321
Moedas : 2699
Data de inscrição : 08/05/2016

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Lucas_Scarfe Qua 29 Jun 2016 - 13:32

Rs nada Ver Obrigado!

Kezz
Kezz
--> Postador Iniciante
--> Postador Iniciante


Mensagens : 4
Moedas : 245
Data de inscrição : 06/04/2021
Idade : 26

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Kezz Seg 19 Abr 2021 - 17:20

parabéns man,
cade o link?
Weslley_Script
Weslley_Script
SS - Fundador
SS - Fundador


Steam Steam : WeslleySSGames
Zello : WeslleySSGames
Mensagens : 9464
Moedas : 1025828
Data de inscrição : 06/10/2011
Idade : 26
Localização : Brasil

Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Weslley_Script Ter 20 Abr 2021 - 13:20

tem alguma informação faltando nesse post?



Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus D07Xwqb
Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Yjab9HN

Conteúdo patrocinado


Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus Empty Re: Criando Bonecos NPC (BOTS) para Dirigir Carros ou Onibus

Mensagem por Conteúdo patrocinado


    Data/hora atual: Sab 27 Nov 2021 - 5:22