Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Como criar um NPC competo!


Tetris
 Compartilhar

Esse post merece Fixo ?  

  1. 1. Esse post merece Fixo ?

    • Sim!
      0
    • Não!
      0


Posts Recomendados

Como criar um NPC completo!

 

Pessoas, hoje eu irei mostrar como se cria um npc.

Então vamos nessa!

 

Para criar um NPC utilize o bloco de notas.

 

1.0 - Crianndo cabeçalho do NPC;

1.1 - Comandos básicos de um NPC;

1.2 - Comando "Warp";

1.3 - Utilizando variáveis;

1.4 - Comando "percenthel";

1.5 - Adicionando ou retirando Zenys;

1.6 - Retirando ou adicionando itens;

1.7 - Comandos "if", "goto" e "contitem";

1.8 - Utilizando o comando "atcommand";

1.9 - Utilizando a função "digit";

2.0 - Invocando monstros;

2.1 - Eventos automáticos (Labels de evntos/eventos do servidor)

 

 

(Antes de começar gostaria de pedir a todos que lerem este post que comentem se encontrarem algum erro ou se desejam que eu adicione alguma coisa.

Estarei atualizando este post sempre que puder.)

 

 

1.0 - Criando o cabeçalho do NPC:

 

Este é um cabeçalho de um npc de script.

 

prontera.gat,130,130,4 [TAB] script [TAB] nome do npc [TAB] 48,{

 

- prontera.gat,130,130-Mapa,cordenada X,cordenada Y;

- 4-Direção para qual o NPC está virado;

- script-Indica que o npc é um npc de script ou seja realiza comandos;

- 48-Sprite do NPC

(Os sprites podem ser encontrados neste

É necessário se cadastrar para acessar o conteúdo.

 

Esse é um cabeçalho de npc de shop.

 

prontera.gat,130,130,4 [TAB] shop [TAB] nome do npc [TAB] 48,5111:7000,5132:9000;

 

- 5111:7000 / 5132:9000

| | | |

Item-Custo/Item-Custo

 

Obs: para criar um NPC que vende itens por ROP's substitua o "shop" por "cashshop"

----------------------------------------------------------------------------------------------------------------------------------

1.1 - Comandos básicos de um NPC:

 

show "Oque o npc vai falar"; || No eAthena utiliza-se "mes" invez de show.

menu "Opção1",bloco1,"Opção2",bloco2,"Opção3",bloco3..........

next; - Passa para a próxima fala ou menu.

close; - Termina a fala do NPC.

 

EX:

 

prontera.gat,154,132,5 [TAB] script [TAB] Ajudante [TAB] 811,{

 

show "Olá quem é você?";

next;

menu "Seu amigo",amigo,"Seu inimigo",inimigo;

 

//BLOCO1

amigo:

show "Que bom qualquer coisa pode falar comigo!";

close;

 

//BLOCO2

inimigo:

show "Se é assim vá embora!!!";

close;

 

}

----------------------------------------------------------------------------------------------------------------------------------

1.2 - Comando "Warp":

 

O comando warp é utilizado para teleportar seu personagem para uma certo mapa.

 

Utilização:

 

izlude.gat,131,98,3 [TAB] script [TAB] Teleportador [TAB] 48,{

 

warp "mapa.gat",cordenada X,cordenada Y;

 

}

----------------------------------------------------------------------------------------------------------------------------------

1.3 - Utilizando variáveis:

 

Variáveis são palavras, letras, números, etc...

 

as variáveis são:

 

var - Esse é um tipo de variável (sem nada) que fica armazenada do char da pessoa para sempre.

 

var$ - Variável armazenada no char que aceita letras

 

#var - Esse é um tipo de variável que fica armazenada na conta da pessoa, para sempre, não importando com qual char ela esteja. Não aceita letras.

 

#var$ - Esse é um tipo de variável que fica armazenada na conta da pessoa, para sempre, não importando com qual char ela esteja. Aceita letras.

 

##var - Variável inter server, ou seja, que funciona entre os servidores.

 

##var$ - Variável inter server, ou seja, que funciona entre os servidores. Aceita letras.

 

@var - Essa é uma variável temporaria, ou seja, quando o NPC acabar ela acaba tambem. Só aceita numeros.

 

@var$ - Essa é uma variável temporaria, ou seja, quando o NPC acabar ela acaba tambem. Aceita letras.

 

$var - É uma variável global, ou seja, vale para todos os jogadores do server. Ela é permanente e só aceita números.

 

$var$ - É uma variável global, ou seja, vale para todos os jogadores do server. Ela é permanente e aceita letras.

 

@$var - Variável global, ou seja, que vale apra todos, e temporaria, que existe enquanto o NPC funcionar.

 

@$var$ - Variável igual a de cima, que aceita letras e números.

 

.var - Variável permanente do NPC ( quando o npc acaba ela não acaba junto ).

 

.var$ - Variável permamente de letras.

 

.@var - Variável temporaria do NPC( ou seja quando o npc acabar ela acaba também ).

 

.@var$ - Variável temporária do NPC que aceita letras ( ou seja quando o npc acabar ela acaba também ).

 

Obs: Todas as variáveis tem o valor inicial de 0;

- - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -

Ex da utilização de variáveis:

 

prontera.gat,132,133,6 [TAB] script [TAB] <a href='#' onClick="hwClick5435865(undefined);return false;" style='cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;' onmouseover="hw5435865(event, this, 'undefined'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe('HOTWordsTitle'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " oncontextmenu="return false;">Homem</a> Sombrio [TAB] 48,{

 

show "Você pode me ajudar?";

next;

menu "Sim",sim,"Não",nao;

 

sim:

obrigado agora fale com meu amigo em izlude.";

//COMANDO PARA <a href='#' onClick="hwClick0435865(undefined);return false;" style='cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;' onmouseover="hw0435865(event, this, 'undefined'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe('HOTWordsTitle'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " oncontextmenu="return false;">MUDAR</a> O VALOR DE UMA VARIÁVEL\\

set var,1;

close;

 

nao:

show "...";

close;

 

}

 

Obs: agora quando ele só podera falar com seu amigo se a variável estiver com o valor 1 ( veremos isto mais adiante ).

----------------------------------------------------------------------------------------------------------------------------------

1.4 - Comando percenthel:

 

O comando percenthel é utilizado para curar um personagem.

 

Ex:

 

prontera.gat,123,123,4 [TAB] script [TAB] Curandeira [TAB] 811,{

 

show "Olá oque quer?";

next;

menu "Cura",cura,"Nada",nada;

 

cura:

//--Porcentagem de HP/SP a ser restaurada.

percenthel 100,100

 

nada:

show "Tudo bem volte sempre.";

close;

 

}

----------------------------------------------------------------------------------------------------------------------------------

1.5 - Adicionado ou retirando Zenys:

 

Comando:

 

set Zeny,Zeny- ( - . + . * . / || Menos/Mais/Vezes/Dividido ) 1000;

 

Neste exemplo nós retiramos 1000 Zenys do personagem.

----------------------------------------------------------------------------------------------------------------------------------

1.6 - Retirando ou Adicionado itens:

 

delitem - Reitra um item do personagem.

additem - Adiciona um item ao personagem.

 

Retirando:

 

delitem 5111(ID),4(Quantidade);

- - - - - - - -

Adicionando:

 

additem 5323(ID),1(Quantidade);

----------------------------------------------------------------------------------------------------------------------------------

1.7 - Comandos "if" , "goto" e "countitem":

 

O comando "IF" é utilizado para enterpretar uma condição.

O comando "GOTO" é utilizado para passar para um bloco.

O comando countitem é itilizado para a verificação de itens em uma quest ou outra coisa.

 

Ex:

 

if(var==1) goto seg_par;

show "...";

close;

 

//Aqui nós enterpretamos assim : Se a variável for exatamente igual a 1 ele irá para o bloco seg_par.

 

seg_par:

show "Olá meu amigo me disse que você estava a caminho entregue isto para ele.";

additem 5111,50;

set var,2;

close;

 

Você se lembra de um exemplo acima?

Naquele exemplo o "Homem Sombrio" te pediu para achar seu amigo e mudou sua variável para 1.

Agora no certo amigo dele se sua variável estiver exatamente igual a 1 você iré completar o pedido do "Homem Sombrio" e poderá comppletar a quest.

Agora vamos alterar um pouco o NPC "Homem Sombrio" para completar esta pequena quest.

 

prontera.gat,132,133,6 [TAB] script [TAB] Homem Sombrio [TAB] 48,{

 

if(var==3) goto nao;

if(var==2) goto completar;

if(var==1) goto amigo;

show "Você pode me ajudar?";

next;

menu "Sim",sim,"Não",nao;

 

sim:

obrigado agora fale com meu amigo em izlude.";

set var,1;

close;

 

nao:

show "...";

close;

 

completar:

if(countitem(5111) < 50) goto semitem;

show "Vejo que falou com meu amigo aqui está a sua recompensa.";

additem ID,Quantidade;

set var,3; //Para que você não possa fazer a quest novamente.

close;

 

semitem:

show "Você não tem os itens necessarios";

close;

 

}

 

Assim criamos uma pequena quest!

----------------------------------------------------------------------------------------------------------------------------------

1.8 - Utilizando o comando "atcommand" :

 

Esse comando faz com que o personagem execute um comando escolhido por você.

 

Ex:

 

atcommand "@die";

 

Faz com que o player morra :D

 

Aqui também pode ser utilizado muitos outros comandos.

----------------------------------------------------------------------------------------------------------------------------------

1.9 - Utilizando a função "digit" :

 

A função "digit" é utilizado para que quando você digite alguma coisa uma ação se realize.

 

Obs: no eAthena a função digit == input.

Ex:

 

No Cronus;

digit @nro_monstro;

atcommand "@monster Poring "+@nro_monstro+"";

 

No eAthena;

input @nro_monstro;

atcommand "@monster Poring "+@nro_monstro+"";

 

Esse comando faz com que você invoque o número de Porings que você digitou.

----------------------------------------------------------------------------------------------------------------------------------

Invocando monstros de outra maneira:

 

Comando:

 

monster "mapa.gat",[X],[Y],"Jolico",1002,4,"Invocador::acabar"

 

Jolico - Nome que vai aparecer no monstro 1002 (Poring);

4 - Númeero de monstros;

Invocador - Nome do NPC;

acabar - Nome do bloco que vai ser executado quando os monstros morrerem;

----------------------------------------------------------------------------------------------------------------------------------

2.1 - "Eventos automáticos":

 

Os eventos automáticos são eventos que são executados automáticamente sem nenhuma interferencia do jogador.

 

Eles são:

 

OnPCLoginEvent - É executado quando o player fizer login;

OnPCLogoutEvent - É executado quando o player fizer logout;

OnPCLoadMapEvent - É executado quando o player mudar de mapa;

OnPCDieEvent - É executado quando o player morre;

OnPCKillEvent - É executado quando o player mata outro player;

OnNPCKillEvent - É executado quando um player mata qualquer tipo de "mob"( monstro );

OnPCBaseUpEvent - É executado quando um player evolui se nível base;

 

Todos esses eventos tem valor inicial 0 com esceção dos "PCLoginEvent", "PCLogoutEvent";

E isso quer dizer que eles teem de ser mudados para 1.

Para mudalos para 1 você tem que fazer um npc que realize a função:

set PCBaseUpEvent,1;

----------------------------------------------------------------------------------------------------------------------------------

2.2 - NPC's sem localização:

 

NPC's sem localização são npc's que são ocultos ou seja realizam ações "invisiveis".

Esses npc's tem um cabeçalho próprio para eles vamos ver:

 

prontera.gat,0,0,0 [TAB] script [TAB] NOME [TAB] -1,{

São esses npc's que realizam os eventos.

 

Ex:

prontera.gat,0,0,0 [TAB] script [TAB] PCLoginEvent [TAB] -1,{

 

OnPCLoginEvent:

show "Bem vindo ao MEU SERVIDOR!";

close;

 

}

Esse comando fara com que toda vez que um player logar no jogo aparecera a mensagem "Bem vindo ao MEU SERVIDOR!".

----------------------------------------------------------------------------------------------------------------------------------

 

Para adicionar o NPC em seu servidor vá no arquivo scripts_personalizado.conf e adicione uma linha assim || npc: diretório_do_npc/nome_do_npc.txt

 

----------------------------------------------------------------------------------------------------------------------------------

 

Obs: [TAB] = Tecla "Tab" do teclado.

 

 

Obrigado por participarem desta "AULA" de como criar um NPC!

 

Se ajudei, agradeça

 

- - - - - - - - - - - - - - -

Link para o comentário
Compartilhar em outros sites

Mtu bom ae soh q vc eh mtu esquisito

 

Eu quero um flood ake pqp.

sabe pq?

1-Pq eu sou imorívelll

2- pq eu gosto de Patos

3-Pq eu mando ake

 

Eu quero um flood ake pqp.

sabe pq?

1-Pq eu sou imorívelll

2- pq eu gosto de Patos

3-Pq eu mando ake

:(:(:(:(:(:(:(:(:(:(:(:(:(

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.