25.07.2011, 17:44
(
Последний раз редактировалось FireCat; 11.11.2012 в 17:56.
)
Ola >: ) Este tutorial й feito pelo kc, estou sу a traduzilo. Espero que gostem.
Criar o .rec
Primeiro de tudo, precisamos do "playback" que й a gravaзгo do nosso npc, sem isso,
o NPC nunca iria trabalhar.
Comeзa o um server, entra na rcon ("/rcon login <a_tua_rcon_pass>") e inicia o fs
chamado npc_record ("/rcon loadfs npc_record")
Agora hб 3 commandos para gravar um NPC, no filterscript npc_record.
NOTA: Precisas de estar loggado rcon, para comeзares a gravar.
Coduzes um bocado... quando acabares faz /stoprecord.
Fecha o jogo, vai a pasta "scriptfiles", deve estar ai um ficheiro chamado mynpc.rec.
Mete o mynpc.rec dentro deste directorio: <O teu directorio do SA-MP>/npcmodes/recordings/
Ja estб? Muito bem! Agora ja temos o nosso NPC gravado, e no local certo.
Controlar o NPC
Ja viste que dentro do directorio "npcmodes" estгo la varios scripts. Sгo "mini" scripts que
controlam o que o teu NPC faz.
Vamos la criar o script do NPC.
Comeзa um novo ficheiro pawno, e cola isto
Pode parecer um bocado confuso.
Vamos la entгo rever.
Como o comentario, vai ser o nome do .rec mais sem a extensгo .rec
Vamos fazer include do que precisamos para criar o NPC
Faz o loop, quando o record playback acaba, comeзa a reproduzir gravaзгo outra vez
Quando o bot entra comeзa a reproduzir a gravaзгo
Quando o NPC sai do vehicle, para de reproduzir a gravaзгo
Quando o NPC faz spawn, comeзa a reproduzir a gravaзгo
Como vкs й facil. Agora grava o teu "mynpc.pwn" em <O teu directorio do SA-MP>/npcmodes.
Connectar o teu NPC
Fecha o mynpc.pwn, e abra o teu GameMode ou abra um Filterscript.
Agora vamos usar o ConnectNPC, sugero que ponham dentro do OnGameModeInit ex:
Ou se for um Filterscript
Como criamos o NPC dentro de um vehiculo precisamos de criar um vehiculo.
NOTA: SE ESTБS A CRIAR UM NPC NUM VEHICULO, PASSA ESTE PASSO.
Ou se й um Filterscript
A posiзгo do vehiculo nгo interessa, porque na gravaзгo o bot vai teletransportar para o sitio onde foi gravado.
Sу mais uma coisa antes de poderes testar, temos de po-lo num vehiculo.E
Eu fiz no OnPlayerSpawn.
NOTA: SE O TEU NPC NГO USA VEHICULO, PASSA ESTE PASSO.
Se quiseres adicionar mais do que 1 NPC
Faz compile, vai dentro do jogo e testa.
Vкs o NPC? Parabens! Acabas-te de criar o teu primeiro NPC!
Nгo trabalha? Posta aqui o problema, e vamos falar sobre ele para tentar arranjalo!
Problemas comuns
O meu NPC desconecta, logo que entra
Pode ser um anti cheat, ou o player tem de registrar ou й kickado. Adiciona
[pawn]
if(IsPlayerNPC(playerid)) return 1;
O meu NPC nгo entra
Mais provavel й porque o server tem password.
Nгo consigo que o npc_record faзa load
Ja estб loaded, ou entгo nгo estб criado.
O npc sу fica parado no spawn
Revolta a ver o OnPlayerSpawn
Espero que gostem
Isto foi feito por kc.
Eu sу traduzi.
Criar o .rec
Primeiro de tudo, precisamos do "playback" que й a gravaзгo do nosso npc, sem isso,
o NPC nunca iria trabalhar.
Comeзa o um server, entra na rcon ("/rcon login <a_tua_rcon_pass>") e inicia o fs
chamado npc_record ("/rcon loadfs npc_record")
Agora hб 3 commandos para gravar um NPC, no filterscript npc_record.
- /vrecord <nome> - Para comeзares a gravar enquanto estбs num vehiculo.
- /ofrecord <nome> - Para comeзares a gravar enquanto nгo estбs num vehiculo.
- /stoprecord - Para parares de gravar o teu NPC.
NOTA: Precisas de estar loggado rcon, para comeзares a gravar.
Coduzes um bocado... quando acabares faz /stoprecord.
Fecha o jogo, vai a pasta "scriptfiles", deve estar ai um ficheiro chamado mynpc.rec.
Mete o mynpc.rec dentro deste directorio: <O teu directorio do SA-MP>/npcmodes/recordings/
Ja estб? Muito bem! Agora ja temos o nosso NPC gravado, e no local certo.
Controlar o NPC
Ja viste que dentro do directorio "npcmodes" estгo la varios scripts. Sгo "mini" scripts que
controlam o que o teu NPC faz.
Vamos la criar o script do NPC.
Comeзa um novo ficheiro pawno, e cola isto
pawn Код:
#define RECORDING "mynpc" //This is the filename of your recording without the extension.
#define RECORDING_TYPE 1 //1 for in vehicle and 2 for on foot.
#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
Vamos la entгo rever.
pawn Код:
#define RECORDING "mynpc" //Vai ser o nome, do .rec que gravamos
pawn Код:
#define RECORDING_TYPE 1 //1 para dentro do vehicle, 2 para se o bot estiver a pй
pawn Код:
#include <a_npc>
pawn Код:
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
pawn Код:
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
pawn Код:
public OnNPCExitVehicle() StopRecordingPlayback();
pawn Код:
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
Como vкs й facil. Agora grava o teu "mynpc.pwn" em <O teu directorio do SA-MP>/npcmodes.
Connectar o teu NPC
Fecha o mynpc.pwn, e abra o teu GameMode ou abra um Filterscript.
pawn Код:
ConnectNPC("Dave","mynpc");
pawn Код:
public OnGameModeInit()
{
print("my gamemode");
ConnectNPC("MyFirstNPC","mynpc");
return 1;
}
pawn Код:
public OnFilterScriptInit()
{
print("my filterscript");
ConnectNPC("MyFirstNPC","mynpc");
return 1;
}
NOTA: SE ESTБS A CRIAR UM NPC NUM VEHICULO, PASSA ESTE PASSO.
pawn Код:
new MyFirstNPCVehicle; //Global variable!
public OnGameModeInit()
{
print("my gamemode");
ConnectNPC("MyFirstNPC","mynpc");
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
return 1;
}
pawn Код:
new MyFirstNPCVehicle; //Global variable!
public OnFilterScriptInit()
{
print("my filterscript");
ConnectNPC("MyFirstNPC","mynpc");
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
return 1;
}
Sу mais uma coisa antes de poderes testar, temos de po-lo num vehiculo.E
Eu fiz no OnPlayerSpawn.
NOTA: SE O TEU NPC NГO USA VEHICULO, PASSA ESTE PASSO.
pawn Код:
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) //Checka se o player que fez spawn й um NPC
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname)); //Getar o nome do NPC
if(!strcmp(npcname, "MyFirstNPC", true)) //Checkar se o nome do NPC й MyFirstNPC
{
PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Por o NPC que criarmos dentro de um vehiculo
}
return 1;
}
//Other stuff for normal players goes here!
return 1;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) //Checka se o player que fez spawn й um NPC
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname)); //Getar o nome do NPC
if(!strcmp(npcname, "MyFirstNPC", true)) //Checkar se o nome do NPC й MyFirstNPC
{
PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Por o NPC que criarmos dentro de um vehiculo
return 1;
}
if(!strcmp(npcname, "MySecondNPC", true))
{
PutPlayerInVehicle(playerid, AnotherVehicleID, 0);
return 1;
}
return 1;
}
//Other stuff for normal players goes here!
return 1;
}
Vкs o NPC? Parabens! Acabas-te de criar o teu primeiro NPC!
Nгo trabalha? Posta aqui o problema, e vamos falar sobre ele para tentar arranjalo!
Problemas comuns
O meu NPC desconecta, logo que entra
Pode ser um anti cheat, ou o player tem de registrar ou й kickado. Adiciona
[pawn]
if(IsPlayerNPC(playerid)) return 1;
O meu NPC nгo entra
Mais provavel й porque o server tem password.
Nгo consigo que o npc_record faзa load
Ja estб loaded, ou entгo nгo estб criado.
O npc sу fica parado no spawn
Revolta a ver o OnPlayerSpawn
Espero que gostem
Isto foi feito por kc.
Eu sу traduzi.