SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

4 participantes

    Como criar um NPC [BOT em seu servidor]

    LaZer_.
    LaZer_.
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 10
    Moedas : 4311
    Data de inscrição : 31/07/2012
    Idade : 24
    Localização : Em Frente de vc

    Como criar um NPC [BOT em seu servidor] Empty Como criar um NPC [BOT em seu servidor]

    Mensagem por LaZer_. Qua 22 Ago 2012 - 14:38

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

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

    pawn 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é.#include 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.


    pawn Código:
    #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".


    pawn Código:
    #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.


    pawn Código:
    #include Incluindo as funções de SA-MP NPC.


    pawn Código:
    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.


    pawn Código:
    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.


    pawn Código:
    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.


    pawn Código:
    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. /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 ...


    pawn Código:
    ConnectNPC("Sucre","meunpc");"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.


    pawn Código:
    public OnGameModeInit(){ print("meu gamemode"); ConnectNPC("MeuPrimeiroNPC","meunpc"); return 1;}
    Ou, se você está adicionando o NPC em um filterscript ...


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


    pawn Código:
    new MeuPrimeiroNPCVehicle; //Variavel globalpublic 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 ...


    pawn Código:
    new MeuPrimeiroNPCVehicle; //Variavel globalpublic 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.


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


    pawn 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!

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

    pawn Código:
    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 ...

    pawn Código:
    maxnpc numero_de_npcs_aqui... no seu server.cfg para corrigir esse problema.
    Pvictormonteiro
    Pvictormonteiro
    --> Super Postador
    --> Super Postador


    Mensagens : 1284
    Moedas : 6187
    Data de inscrição : 17/03/2012
    Idade : 28
    Localização : EUA-Brokllin vizinho do Chrisss

    Como criar um NPC [BOT em seu servidor] Empty Re: Como criar um NPC [BOT em seu servidor]

    Mensagem por Pvictormonteiro Qua 22 Ago 2012 - 14:53

    Que dor de cabeça





    Como criar um NPC [BOT em seu servidor] 46uGg

    @sa12d2
    @sa12d2
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 187
    Moedas : 4736
    Data de inscrição : 06/02/2012
    Idade : 33
    Localização : Localização:

    Como criar um NPC [BOT em seu servidor] Empty Re: Como criar um NPC [BOT em seu servidor]

    Mensagem por @sa12d2 Qua 22 Ago 2012 - 15:02

    QuiNada é facin Razz
    iCamila_Script
    iCamila_Script
    --> Postador Médio
    --> Postador Médio


    Mensagens : 213
    Moedas : 4694
    Data de inscrição : 20/07/2012

    Como criar um NPC [BOT em seu servidor] Empty Re: Como criar um NPC [BOT em seu servidor]

    Mensagem por iCamila_Script Qua 22 Ago 2012 - 18:30

    Vlw pelo TUTO ^^




    Como criar um NPC [BOT em seu servidor] 1354403396573

    Como criar um NPC [BOT em seu servidor] 24qseur


    Conteúdo patrocinado


    Como criar um NPC [BOT em seu servidor] Empty Re: Como criar um NPC [BOT em seu servidor]

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex 26 Abr 2024 - 23:22