Ir para conteúdo
  • Cadastre-se

[ TUTORIAL ] Criando NPC Quest


Rüsty ~

Posts recomendados

BOM IREI AJUDAR VCS COM ALGUNS COMANDO DE QUEST

 

 

 

 

 

scripts Quest definir o fluxo de completa ou quase completa dos eventos que ocorrem a partir da

início ao fim de uma busca. Isso inclui, mas não é limitted, começando e aceitando

a busca, na sequência de diálogos complexos, atacando ou matando monstros, descobrindo itens quest, desova

mobs quest, completando uma quest, e recebendo prêmios.

 

A fim de scripts busca para funcionar correctamente, pelo menos, três aulas devem ser importados do Java:

from net.sf.l2j.gameserver.model.quest import State

from net.sf.l2j.gameserver.model.quest import QuestState

from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuestt

 

Além disso, a biblioteca jython "sys" é geralmente importado de conveniência. Mais classes pode

ser importado, conforme necessário, para ter acesso a outros componentes do núcleo e melhorar as habilidades

do script.

 

scripts busca Jython essencialmente herdam da classe Java net.sf.l2j.gameserver.model.quest.Quest

Desenvolvedores que estão confortáveis com o Java pode ler o código-fonte para esta classe, como previsto pela

projeto l2jserver (www.l2jserver.com) para obter mais detalhes e funções disponíveis. Alternativamente, um

pode ler em frente nesta documentação.

 

 

Funções disponíveis:

Existe um conjunto de funções que são predefinidos para quests e são desencadeadas a partir de várias ações.

Estas funções, seus gatilhos, e os parâmetros passados para o script estão definidas abaixo:

 

1) onEvent (self, evento r)

Essa função é chamada sempre que um jogador clica em um link em um diálogo de busca.

O parâmetro "r" contém uma referência para o QuestState do jogador que usou o link.

O parâmetro "event" contém uma seqüência de identificador para o evento. Geralmente, essa seqüência

é transmitida diretamente através do link. Por exemplo:

<a action="bypass -h Quest 626_ADarkTwilight 31517-1.htm"> Olá </ a>

O link acima define a variável de evento para "31517-1.htm" para a busca 626_ADarkTwilight

O parâmetro "auto" é uma referência para a busca em si. Você pode usar self.XXXX onde XXXX é

qualquer função definida na classe pai de sua busca.

 

 

2) onAttack (self, jogadores, NPC)

Essa função é chamada sempre que um jogador ataca um NPC que está registrado para a busca

O parâmetro "npc" contém uma referência à instância exata do NPC que fui atacado

O parâmetro "player" contém uma referência para a instância exata do jogador que atacou.

O parâmetro "auto" funciona da mesma forma em onEvent.

 

3) onKill (self, jogadores, NPC)

Esta função é chamada sempre que um jogador mata um NPC que está registrado para a busca

Todos os parâmetros são os mesmos que em onAttack

 

4) onTalk (self, jogadores, NPC)

Esta função é chamada sempre que um jogador clicar com o "Quest" link de um NPC que está registrado

para a busca.

Todos os parâmetros são os mesmos que em onAttack

 

5) onFirstTalk (self, jogadores, NPC)

Essa função é chamada sempre que um jogador conversa com um NPC que está registrado para a missão. Isto é,

ele é disparado a partir do primeiro clique sobre o NPC, não via outra janela.

NOTA: Cada NPC podem ser registrados para no máximo uma busca para desencadear esta função. Em outras palavras,

o mesmo um NPC não pode responder a um "onFirstTalk" pedido de duas missões diferentes.

Tentativa de registrar um NPC em duas missões diferentes para essa função irá resultar em uma das

duas registo a ser ignorado.

NOTA: Uma vez que um link Quest não for clicado, a fim de chegar a este, um estado de busca pode ser inválido dentro desta

função. O codificador do script pode precisar criar um estado de nova missão (se necessário), por meio de:

r = self.newQuestState (jogador)

Todos os parâmetros são os mesmos que em onAttack.

 

6) onDeath (self, personagem, NPC, r)

Essa função é chamada sempre que uma instância exata de um personagem que foi registrado anteriormente para este

evento morre. A inscrição para eventos onDeath não é feito através da busca em si, mas é tratado, em vez

pela QuestState de um jogador em particular.

O parâmetro "npc" contém uma referência à instância exata do NPC que matou o personagem.

O parâmetro "caráter" contém uma referência para a instância exata do caractere que foi morto.

O parâmetro "r" contém uma referência para o QuestState de quem estava interessado (em espera) para o matar

O parâmetro "auto" funciona da mesma forma em onEvent.

 

7) funções de registro:

As funções descritas abaixo têm uma única finalidade: Para registrar um NPC de evento dispara. Basta colocar,

um NPC deve ser registrado em busca de um determinado evento, para que o NPC para responder à ocorrência

de dessa hipótese.

Funções de registo não são chamados automaticamente. Em vez disso, eles devem ser adicionados na parte inferior do seu

busca script.

Descrições de todas as funções de registro a seguir:

 

a) addStartNpc (NPCID)

Registra um NPC para eventos onTalk. Estes NPCs são considerados NPCs começar. Portanto, o jogador

não necessita ter começado a quest para acessar a seção onTalk da busca.

Em vez disso, quando um jogador conversa com NPCs registrado por addStartNpc, então os jogadores obtém automaticamente

um estado criado para esta busca.

O parâmetro "NPCID" contém o ID do modelo para este NPC.

 

b) addTalkId (NPCID)

Registra um NPC para eventos onTalk. Esses NPCs não são considerados NPCs começar (a menos que eles também são

registada com addStartNpc). NPCs registrados usando addTalkId só responder ao jogador

clique de um "Quest" link se e somente se o jogador tem alredy começou a busca.

O parâmetro "NPCID" contém o ID do modelo para este NPC.

 

c) addAttackId (NPCID)

Registra um NPC para eventos onAttack. Os jogadores não precisam ser registrados para a busca, a fim

para desencadear uma resposta a um ataque contra este NPC.

O parâmetro "NPCID" contém o ID do modelo para este NPC.

 

d) addKillId (NPCID)

Registra um NPC para eventos onKill. Os jogadores não precisam ser registrados para a busca, a fim

para desencadear uma resposta a este NPC ser morto.

O parâmetro "NPCID" contém o ID do modelo para este NPC.

 

Quest:

Depois de escrever o script, a fim de iniciar sua busca e registrá-lo com o servidor do jogo, perto do

parte inferior do seu script, você deve usar:

QUEST Quest = (id, "12345_QuestName", "Descrição")

Por exemplo:

QUEST Quest = (626, "626_ADarkTwilight", "A Twilight das Trevas")

 

Muitas vezes, é útil para definir o nome da quest em uma variável no início do script (geralmente chamado de "qn").

Nesse caso, você pode registrar sua busca utilizando:

QUEST Quest = (626, qn ", um crepúsculo das Trevas")

 

QuestState:

A QuestState não é parte da definição de busca em si, mas contém a informação que acompanha o

progresso de um jogador em particular para esta missão. Dado um exemplo de jogador, a busca de estado de que o jogador de

esta missão pode ser encontrada por meio de:

r = player.getQuestState ("12345_questname")

Se o jogador não tem uma quest de estado para esta missão (ou seja, o jogador não está fazendo essa quest), então

r será nulo.

Além disso, o queststate de um membro do partido aleatória que tem uma determinada variável eo valor armazenado para esta missão,

podem ser descobertos por meio de:

self.getRandomPartyMember partyMember = (o jogador, "variável", "valor")

r = partyMember.getQuestState ("12345_questname")

Da mesma forma, o queststate de um membro do partido aleatória que atingiu um estado em particular para esta missão,

podem ser descobertos por meio de:

partyMember self.getRandomPartyMemberState = (o jogador, Estado)

r = partyMember.getQuestState ("12345_questname")

Por exemplo, em vez de "variável" e "valor" na primeira amostra, pode-se usar o "cond" e "1". Em vez de Estado

a segunda amostra, pode-se usar INICIADOS

Enquanto um QuestState podem ser descobertos a partir de um jogador, ele também pode acessar a instância do jogador de volta, quando necessário, usando

st.getPlayer ()

Todos os outros métodos de execução pública de QuestState são acessíveis a partir do Jython. Da mesma forma, os objetos

acessível a partir de r pode ser ainda utilizado para chegar mais fundo. Por exemplo, pode fazer algo como:

st.getPlayer (). getClan (). getLeader (). getPlayerInstance (). getPet ()

(Esse exemplo pode não ser totalmente exatos ou pode ficar obsoleto no futuro ... é apenas um meio para

demonstation pouco de como se pode chegar a mais em uma cadeia de objetos que são acessíveis. Neste

caso, desde o QuestState, obtemos o jogador cuja QuestState este é, então, fazer clã do jogador,

líder do clã, a instância dirigente do jogador real, e de lá, encontramos animais de estimação summonned do líder!)

 

 

ESTADO:

Estados são usados para controlar os segmentos da procura. Cada estado tem sua própria lista de itens de busca que pode ser encontrada.

Após a conclusão ou aborto de uma quest, ou a mudança de um estado para outro, ESTADOS cuidar da limpeza

o excesso de itens de quest do inventário de um jogador. Para definir um estado, deve-se usar:

STATEVARIABLE Estado = ('StateName, QUEST)

por exemplo:

INICIADOS = Estado ('Introdução', QUEST)

O Estado criou é obrigatório! Todas as quests deve tê-lo. Ele é definido como:

CRIADA = Estado ("Iniciar" QUEST)

O estado PREENCHER é obrigatória para quests não repetível. Ele é definido como:

CONCLUÍDO Estado = ('Concluído' Quest)

Outros estados podem ser criados de forma arbitrária. estados mais comumente usadas são "Iniciando", "Introdução", "progresso" ou

Estados como "PartXXXX" (Part1, Part2, etc)

 

 

 

Creditos : Rusty

2qlsrrc.png
Link para o comentário
Compartilhar em outros sites


Sempre quis edita uma Quest propia, mas esse Tutorial ae e meio suspeito. :dry:

 

Mesmo assim irei testalo. Por mais que seja meio Fodin de faser hehe. :wink:

 

 

Basta Saber Mexer Em NPC's de Quest que vc consegue facim ;D

 

Supeito? Oo Pq?

2qlsrrc.png
Link para o comentário
Compartilhar em outros sites

Ao inves de estar encinando a Fazer um NPC para quest vooc esta ensinando a Modificar a quest para um Item CUSTOM

 

Deveria trocar o Nome do Topico [ TUTORIAL ] Editando Quest Para item Custom

kVyUp.png

Entre em nosso forum para saber mais a respeito do projeto!

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

ai mano tem como me explica porq quando eu baixo um npc ex: npc rank pvp pk aparece PRa fazer quest ? si souber faz um toturial pra revisão l2jfrozen bgdo

 

Aqui não é o local correto para pedir esses tipos de ajuda, que não se refere ao tutorial do mesmo .

''Junte-se a nós para recuperarmos os Links Offline''

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

ai mano tem como me explica porq quando eu baixo um npc ex: npc rank pvp pk aparece PRa fazer quest ? si souber faz um toturial pra revisão l2jfrozen bgdo

 

Edite os imports, por exemplo:

 

Se o NPC que vc quer colocar, for de server l2j e o seu server for l2emu (numa suposição) basta mudar onde está em vermelho.

 

ANTES

 

import sys

from java.util import Iterator

from l2jserver.gameserver.model.quest import State

from l2jserver.gameserver.model.quest import QuestState

from l2jserver.gameserver.model.quest.jython import QuestJython as JQuest

 

 

DEPOIS

 

import sys

from java.util import Iterator

from emu.gameserver.model.quest import State

from emu.gameserver.model.quest import QuestState

from emu.gameserver.model.quest.jython import QuestJython as JQuest

 

 

Obs.: Se não sabe qual é o import de seu servidor, uma idéia seria, abrir o arquivo de algum npc existente, por exemplo dentro de ---> gameserver\data\scripts\custom procure algum arquivo com final ---> __init__.py abra-o com bloco de notas e observe qual a extenção que está la. Depois é so fazer como descrito acima.

 

Lembre-se de colocar td que veio no npc nos seus devidos locais. (com server desligado) após ter colocado tudo, ligue seu servidor e de spawn no npc.

 

Comando: //spawn xxxxxx <--- coloque o ID do npc no lugar dos xxxx. por exemplo: //spawn 12345 (e dps enter)

 

Boa sorte.

 

Créditos: ADM-DarkAngel

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 3 years later...

Bom como o Anonimo falou o tutorial ensina a editar um npc de uma quest para outra, eu também procuro um tutorial para criação de um npc quest !

 

Se alguém achar favor me contate! :rolleyes:

tbm tenho a mesma duvida!!

j9NKAW1.gif

"A Vontade de se Preparar Transforma Heróis"

"A Dor física é só um mero Sentimento"

🦸🏽‍♂️

rogeriomorais.gif

Link para o comentário
Compartilhar em outros sites

  • 1 year later...




×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.