26 de abr. de 2011

Ghost Control


Opa Eae Galera Belezinha ? Então Estou Postando Algo Muito Util Em Sua Vida.
Este Programa Gravar QUALQUER MOVIMENTO Que Você Fassa No Teclado / Mouse Por 30 Segundos ( Caso Queirar Gravar Por Mais De 30 Sec. Pague Pelo Programinha xD. )

Link Para Download : http://www.megaupload.com/?d=0M7332DT




Tutorial Como Usar O Programa :

1º :Instale O Programa Aonde Quiser ( Seu Anti - Vírus Pode Detectar DLL'S Desconhecidas Não Possui 0.1 % De Vírus Este Programa ).
2º: Após Instalar Execute-O.
3º: Para Gravar Seus Movimentos Teclados Ou De Mouse Va Na Opção ' New ' Com Um Botão Redondo E Vermelho Escrito : Start Recording.
4º: Você Tem 30 Segundos Para Gravar Seus Movimentos No Teclado E Mouse. 30 Segundos Opcionais Pode Gravar Até 2 Segundos. Ao Terminar Clique No Botão Grande E Vermelho Novamente.
5º: Após Gravar Va Em ' My Jobs ' Estára Ali O Nome Da Sua Gravação.
6º: Quer Alterar Velocidade Que Repita A Gravação ? Clique Em 'Speed' E Escolhe A Velocidade Que Querer. Quer Alterar Quantas Vezes Repita A Gravação? Clique Em ' Repeat ' E Digite Quantas Vezes Querer Q Repita.
7º: Terminou De Configurar? Clique Em ' RUN '
8º: Obs Final : Seja Inteligente Ja Tenha O Game Aberto...
9º: É Possivel Bugar E Não Funcionar Suas Configurações . Delete E Crie Um Novo.



10º: Enfim , Para Que Sérve Este Programa? Sabe Aquele Servidor Rpg Que Você Esta Upando Parado E Toma Kick Por Esc Ou Parado Ou Toma Comando /afk E Você Não Fica Upando? Então Em Quanto Estiver Usando O Programa Você Não Vai Estar Parado :)

Duvidas? Mande Emai-l : shadauer@yahoo.com.br

Tutorial -> Criando um novo NPC

Este é sem duvida um tema muito comentado, então vamos passar um tutorial de como criar NPCs, os famosos bots.

Gravando um arquivo de reprodução
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 <nome_do_arquivo> - Inicia a gravação de um caminho de veículo para o nome do arquivo especificado.
* /ofrecord <nome_do_arquivo> - 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 <Seu servidor SA-MP> /npcmodes/recordings/
Feito? Ok, ótimo! Você já gravou um caminho para o NPC, e mudou-o para o diretório necessário.

Controlando o NPC
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 ...
#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é.

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

#define RECORDING "meunpc" //Este é o nome do seu arquivo de gravação, sem a extenção(.rec).
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".

#define RECORDING_TYPE 1 //1 para gravações em veículo e 2 para gravações apé.
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.

#include <a_npc>
Incluindo as funções de SA-MP NPC.

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
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.

public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
Esta é uma outra callback incluida na livraria NPC. Isto irá iniciar a reprodução quando o NPC for colocado em um veículo.

public OnNPCExitVehicle() StopRecordingPlayback();
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.

public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
Contudo uma outra callback incluida na livaria NPC, isso irá iniciar a reprodução quando o NPC spawnar.

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. <Seu diretório>/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.

Conectando seu NPC
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ção ConnectNPC, 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 ...

ConnectNPC("Sucre","meunpc");
"Sucre" - O primeiro parâmetro é o nome do NPC&#39;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.

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

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

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.

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

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&#39;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.

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

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!

Problemas comuns

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 ...
if(IsPlayerNPC(playerid)) return 1;
... 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.

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 ...
maxnpc numero_de_npcs_aqui
... no seu server.cfg para corrigir esse problema.

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger