Ir para conteúdo
Entre para seguir isso  
Longhart

[creatureevent] - Função onKill

Recommended Posts

Longhart    16
Longhart

Bom dia/tarde/noite a todos;

 

Bom, estou divulgando esse tutorial, por ser muito útil em certas ocasiões, então separarei algumas dúvidas antes de começar o tutorial.

 

1. O que é uma função onKill?

É a função que faz com que uma ação seja realizada ao monstro morrer.

 

2. Posso fazer acontecer qualquer coisa?

Sim, tanto qualquer coisa quanto qualquer quantidade de ações.

 

3. Qual é a utilidade?

Isso você que decide, depende do seu uso, só vou ensinar como fazer e dar algum exemplo.

 

4. Qual é o exemplo?

Você poderá por exemplo, ao player matar um Rat, uma mensagem aparecer na tela dizendo "Parabéns, você matou um rat!".

 

O Tutorial

 

Bom, primeiro vou explicar alguns conceitos básicos necessários para que você, leitor, consiga continuar sem ter problemas.

O primeiro conceito importante e, básico, que você precisa entender é que: Na informática, não se admite erros. Qualquer erro básico pode inutilizar totalmente seu script, então tente acompanhar os mínimos detalhes do tutorial. O segundo conceito importante, é que você precisa saber o mínimo de script para poder configurar algo mais complexo com esta função, certo?

 

 

 

 

Começo

 

O primeiro passo para fazer essa função, é fazer uma configuração básica para que o script atue dentro do seu OT. Vou explicar passo a passo como fazer isso:

 

Abra a pasta do seu OT, e siga esse caminho:

data>creaturescripts

 

Ao entrar na pasta creaturescripts, abra o arquivo creaturescripts.xml.

 

Lembrete: Não modifique nenhum tipo de informação dentro do arquivo para não desconfigurar algo indevido.

 

Você deverá inserir a seguinte linha de código dentro desse arquivo, sem misturar o código com outro:

 

<event type="kill" name="rat" script="teste/rat.lua"/>

 

Explicação:

Em event type, podemos verificar a palavra "kill" em vermelho. Event type, é o tipo de evento que determinará a execução do script, no caso, kill significa matar, em outras palavras, quando um player matar um monstro. Você não poderá trocar essa palavra, ja que é ela quem determina a forma da execução que estamos estudando.

 

Em name, nos podemos verificar a palavra "rat" em azul. name, no caso, será o nome do script que será executado, e esse pode ser modificado. É importante saber o que é o que, então escolha um nome de acordo com o tipo de situação, ou entre tipos de criaturas diferentes, para não ser perder durante a criação do seu script.

 

Em script, nos podemos verificar a palavra teste, em rosa. script no caso, será o local onde o arquivo de configuração de nosso script se encontra, ou seja, o arquivo .xml vai verificar onde se encontra o arquivo que executa as ações, e teste será a pasta onde está o arquivo.

Acompanhado teste, se encontra a palavra rat.lua em verde, e esse sim é o arquivo que determina o que acontecerá quando um monstro morrer para um jogador. Ambas as palavras, teste e rat.lua podem ter seus nomes alterados de acordo com a pasta e o nome do arquivo .lua.

 

Estudamos então, a parte do script que será inserido em creaturescripts.xml, agora iremos configurar para o server reconhecer esse script quando o server for iniciado.

 

Meio

 

Você deverá então prosseguir para o diretório:

data>creaturescripts>scripts

 

Nesse local, abra o arquivo login.lua.

 

Novamente, não modifique nada para não apresentar conflitos ao iniciar o server.

 

Você deverá inserir a seguinte linha de código:

 

registerCreatureEvent(cid, "rat")

 

Explicação: registerCreatureEvent é um registro que será interpretado pelo servidor ao iniciar o server, isso significa que dispensa então comandos como /reload monsters, creaturescripts etc. "rat" no caso é o nome do evento que nós damos no passo anterior, caso esteja com dúvidas, leia novamente do começo.

 

Fim

 

Agora, devemos entrar no seguinte diretório:

data>creaturescripts>scripts>teste

 

Esse é o local onde o nosso arquivo rat.lua deve estar, provavelmente ele não existe, ainda. Crie um arquivo chamado rat.lua e cole o seguinte código:

 

 

function onKill(cid, target, lastHit)

if isMonster(target) and getCreatureName(target):lower() == 'rat' then

doPlayerSendTextMessage(cid,22,"Parabens, você matou um rat!")

end

return true

end

 

Entre if e o primeiro end, você poderá inserir qualquer código, respeitando as regras da linguagem lua.

Você poderá inserir também mais tipos de if se quiser.

 

E, para acabar, no monstro que você estiver fazendo a configuração, insira o seguinte código:

 

<script>

<event name="rat"/>

</script>

 

Assim, em event name, deve conter o nome do evento em creatureevents.xml que você deu, e não o nome do arquivo que está sendo executado. adicione esse código em qualquer lugar do script do monstro, eu sugiro colocar antes da tag <loot>, para ser fácil de encontrar.

 

Bom, o tutorial acabou, então espero que tenham entendido, caso tenha alguma duvida sobre o tutorial que não foi explicada nesse tópico, deixe na resposta que irei responder.

Editado por Longhart
Erros ortográficos.

Compartilhar este post


Link para o post
Startix    9
Startix

Ótimo tutorial, gostei dessa função e a sua aplicabilidade é bem versátil, parabéns pelo tutorial e obrigado por compartilhar

Aprovado e Movido.

Editado por Startix

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×