[FilterScript] Trabalhando com Zumbis RNPC (inacabado)
#1

Como prometido, neste tуpico estarei trazendo um cуdigo completinho e bбsico para trabalhar com RNPCS

Para ZUMBIS, nesse caso, estб apenas para seguir o jogador de forma bonita, em breve estarei implementando como fazer para tirar vida e seguir apenas o jogador mais perto!


Usando RNPC

Funзхes:
PHP код:
MoveRNPC npcidposicaoXposicaoYposicaoZvelocidade
Essa funзгo faz o NPC ir para uma posiзгo a partir da atual, com uma velocidade definida ali nos parвmetros


PHP код:
ConnectRNPC("nome"
Essa funзгo conecta um RNPC ao jogo, o nome do NPC й o nome definido logo acima, a funзгo ConnectRNPC retorna o id do npc conectado


Fiz para servidor 0.3x RC


Importante

Caso dar falta de dlls ao abrir o samp-server.exe baixe essas daqui:

msvcr100d.dll
msvcp100d.dll

Coloque na pasta do servidor ou na pasta system32 do windows em disco local!




Tutorial

Primeiramente:


Coloque

pawn Код:
#include <RNPC>

No topo do cуdigo assim estarб carregando a biblioteca rnpc.inc contida em pawno/includes


Apуs isto coloque o seguinte logo abaixo

pawn Код:
#define MAX_ZUMBIS 5
#undef MAX_PLAYERS
#define MAX_PLAYERS 10

Assim vai definir o nъmero de jogadores zumbis a ser criado bem como o nъmero mбximo de jogadores do servidor


Agora logo abaixo crie:

pawn Код:
new NPCSZUMBIS[MAX_ZUMBIS];
Essa array serve para registrar a identificaзгo do zumbi a ser criado


Logo em OnGameModeInit vocк coloca

pawn Код:
for(new i; i != MAX_ZUMBIS; ++i)
    {
        static string[128];
        format(string, 128, "Zumbi_%d", i);
        NPCSZUMBIS[i] = ConnectRNPC(string);
    }

A primeira linha vai fazer um loop percorrendo de 1 a MAX_ZUMBIS, que vai criando todos NPCS Zumbis

Logo abaixo tem a string e format, ambos servem para formar um nome para o NPC zumbi, logo que ao conecta-lo devemos atribuir um nome.

ConnectRNPC vai conectar o zumbi e retornar a identificaзгo dele, que logo apуs serб colocada em NPCSZUMBIS


Logo abaixo disto vocк coloca

pawn Код:
SetTimer("PerseguirJogador", 800, true);

Isto vai chamar uma funзгo chamada PerseguirJogador a cada 800 ms. Assim atualizando a caminhada do nosso jogador


Na funзгo, que fica logo abaixo da ъltima linha do codigo deverб conter isto:

pawn Код:
PerseguirJogador();

public PerseguirJogador() {

    for(new i; i != MAX_ZUMBIS; i++) { // pegar todos jogadores possнveis
        if(IsPlayerNPC(i)) // checar se й zumbi
        {
            for(new j ; j != MAX_PLAYERS; j ++) { // pegar todos jogadores possнveis
                if(IsPlayerConnected(j) && !IsPlayerNPC(j)) { // pegar todos jogadores online nгo npcs conectado para persegui-los
                    static Float: rnpcpos[3];
                    GetPlayerPos(j, rnpcpos[0], rnpcpos[1], rnpcpos[2]); // pegar posiзгo do jogador, para segui-lo em movernpc

                    new Float: angle; GetPlayerFacingAngle(i, angle); // pegar angulo do npc

                    MoveRNPC(i, rnpcpos[0] + floatsin(angle - 90.0, degrees) * (1.0 + random(15)), rnpcpos[1] + floatcos(angle - 90.0, degrees) * (1.0 + random(15)), rnpcpos[2], RNPC_SPEED_RUN);
                    // movernpc vai mover o rnpc zumbi para posiзгo pega do jogador
                    // com esse floatsin e floatcos farб os npcs andarem separados, evitando lag e deixando um estilo mais inteligente de caminhada
                }
            }
        }
    }
}

E pronto, o bбsico jб estб criado.


Download

Jб esta tudo configurado no pacote, com includes modificadas e as DLLS do RNPC corretamente colocadas. Com pacote inteiro do RNPC, Includes e Gamemode
http://www.solidfiles.com/d/9fdb6a8c31/



Demonstraзгo

Fiz um vнdeo para demonstrar como ficou o cуdigo baixado no pacote acima
[ame]http://www.youtube.com/watch?v=pjPjqEtIi5E[/ame]

Em breve estarei atualizando o tуpico para fazer o zumbi tirar vida e seguir apenas o jogador mais perto. Fique atento!
Reply
#2

Estarei vendo o tutorial, mas acho que seria melhor fazer o tutorial no tуpico .-.
Reply
#3

Okay!
Reply
#4

Ira dar bug se por em uma settimer para cada segundo getar a posiзгo do player para o zumbi ir atras?
Reply
#5

Nгo, bota no mнnimo uns 300 ms, menos que isso pode lagar.
Reply
#6

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Nгo, bota no mнnimo uns 300 ms, menos que isso pode lagar.
Bom Saber.. Pois usando este modo pode fazer os zumbies perseguir os players proximos.. sу falta o scripter fazer uma funзгo para checar o player mais proximo e setar para perseguilo.
Reply
#7

Estou com preguiзa hoje, isso й bem bбsico. Espero que o pessoal estude agora, o resto й fбcil.
Reply
#8

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Estou com preguiзa hoje, isso й bem bбsico. Espero que o pessoal estude agora, o resto й fбcil.
Nгo falei de vocк fazer.. eu falei do scripter que for usar o tutorial fazer hehe.
Reply
#9

Entendi script. Enfim, fale programador.
Reply
#10

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Entendi script. Enfim, fale programador.
Pawn й uma linguagem de script e nгo de programaзгo, entendeu senhor programador?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)