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 ...
Isso pode parecer confuso, por isso agora explicarei isso linha por linha.
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 ...
Com seus novos conhecimentos da função ConnectNPC, vamos tentar fazer nosso NPC ligar quando seu GameMode ou filterscript carregar.
Ou, se você está adicionando o NPC em um filterscript ...
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.
Ou, se você está adicionando o NPC em um filterscript ...
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.
Se você quiser adicionar outro NPC, esta estrutura OnPlayerSpawn é fácil de modificar, aqui está um exemplo para 2 NPCs ...
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 ...
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 ...
... no seu server.cfg para corrigir esse problema.
Creditos:
Desevolvidor do Tutorial: Lucas_Scarfe
Base:Brasil Project City
[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
* /ofrecord
* /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
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.
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