Ir para conteúdo
  • Cadastre-se

[Tutorial] Criando Servidor de Lineage 2


Kelvin
Message added by Grundor

Atenção, esse tópico está desatualizado, use https://curso.l2jbrasil.com para um tutorial mais atualizado sobre como criar seu servidor de lineage 2.

Posts recomendados

@eduardo

 

libero as portas do modem ? verificou teu NO-IP ? vai rodar o server em casa so pra ti ?

5544.png

as portas estao liberadas né ? o meu ddns funciona certinho tentei ate com meu outro modem entro normal , nao roda o server nem em casa e nem pra ngm :/ help-me [TBM QUERO RODAR O SERVER PARA TODOS JOGAREM]

Editado por eduardodedu

Grim Fandango FOREVER !

logo.jpg

Link para o comentário
Compartilhar em outros sites


@eduardodedu

 

 

Aconcelho vc a usa o no-ip, e mais simples...

 

 

NO-IP

 

Primeiramente faça seu cadastro no site: http://www.no-ip.com

 

registergs8.jpg

 

Depois de feito vc irá receber um e-mail para ativação do cadastro.

 

Com a account pronta :

 

1- Faça o Login no website

2- Vá em Hosts/Redirects e Clique em Add

3- No campo "Hostname" Digite o nome do seu servidor e logo abaixo escolha o complemento.

4- Clique em Create Host

Vá na sessão donwloads , escolha a plataforma q vc está usando e faça o download do SOFTWARE do NO-IP (DUC)

 

downloadqc4.jpg

 

Feito o download instale o programa e rode-o

 

Uma janela irá aparecer perguntando o Login e senha ... Ponha os mesmos q vc cadastrou no site

 

Feito isso o programa principal irá abrir com o link do seu redirecionamento, marque a caixinha do lado dele (caso ele não fique com a carinha igual a da figura abaixo , desmarque e marque a caixa ateh q fique igual)

 

ducex8.jpg

Depois de feito isso , seu No-IP está configurado e pronto para uso ! Note q vc pode fechar a tela principal dele q o mesmo continua rodando (veja figura abaixo)

 

standtp3.jpg

 

Agora vc soh tem q colocar no IP EXTERNO da configuraçao do seu server e no L2.ini dos clientes o REDIRECIONAMENTO Q VC CRIOU ! Nesse exemplo seria Nargenserver.servegame.com

 

"By Kelvin"

 

ve se fucionar.

 

add no msn [email protected], a gente pode se ajuda.

Editado por Cássio Douglas
Link para o comentário
Compartilhar em outros sites

@eduardodedu

 

 

Aconcelho vc a usa o no-ip, e mais simples...

 

 

NO-IP

 

Primeiramente faça seu cadastro no site: http://www.no-ip.com

 

registergs8.jpg

 

Depois de feito vc irá receber um e-mail para ativação do cadastro.

 

Com a account pronta :

 

1- Faça o Login no website

2- Vá em Hosts/Redirects e Clique em Add

3- No campo "Hostname" Digite o nome do seu servidor e logo abaixo escolha o complemento.

4- Clique em Create Host

Vá na sessão donwloads , escolha a plataforma q vc está usando e faça o download do SOFTWARE do NO-IP (DUC)

 

downloadqc4.jpg

 

Feito o download instale o programa e rode-o

 

Uma janela irá aparecer perguntando o Login e senha ... Ponha os mesmos q vc cadastrou no site

 

Feito isso o programa principal irá abrir com o link do seu redirecionamento, marque a caixinha do lado dele (caso ele não fique com a carinha igual a da figura abaixo , desmarque e marque a caixa ateh q fique igual)

 

ducex8.jpg

Depois de feito isso , seu No-IP está configurado e pronto para uso ! Note q vc pode fechar a tela principal dele q o mesmo continua rodando (veja figura abaixo)

 

standtp3.jpg

 

Agora vc soh tem q colocar no IP EXTERNO da configuraçao do seu server e no L2.ini dos clientes o REDIRECIONAMENTO Q VC CRIOU ! Nesse exemplo seria Nargenserver.servegame.com

 

"By Kelvin"

 

ve se fucionar.

 

add no msn [email protected], a gente pode se ajuda.

Tenho NO-IP e DDNS aki agora vo usa o no-ip vlw

Grim Fandango FOREVER !

logo.jpg

Link para o comentário
Compartilhar em outros sites

E ai galera beleza!! Aqui to fazendo tudo certo mais quando chega na parte do no-ip,nao entra :/. Vou posta tudo que estou fazendo para vcs verem se estou fazendo alguma coisas errada...

 

printporta.jpg

Aqui sao as portas aqual o tutor pedi para abril pelo visto acho que esta ok

 

printnoip.jpg

Aqui e meu no-ip configurado pelo visto esta tudo ok

 

printlonggame.jpg

Aqui configurei o longserve e gameserve com o ip host do no-ip tudo ok

 

printl2ini.jpg

Aqui e o l2.ini da minha system configurado pelo ip host do no-ip tudo ok

 

Agora quando coloco para roda...

 

printlonggameteste.jpg

Aqui tudo ocorre sem erro tbm pelo visto tudo ok

 

mais... quando vou entra no servido nao passa nem do long...

 

printserve.jpg

 

 

Se vc poderem me ajuda desde ja agradeço eu estou usando o rev 817 do l2frozen pelo vista a mais estavel delas.

 

Obs: Eu uso o modem speedtouch para quem nao consegui indentifica nas configuraçao... uso um rotiado wireless com uma placa de rede wireless.

 

Ainda estou com mesmo problema :/

Link para o comentário
Compartilhar em outros sites

preciso de ajuda ..eu começei a fazer o server ...so cheguei ate a parte que faz o l2jdb no navicat ...depois nao entendi mais nada..

 

 

5ª Pre-Configurado REV.

 

5.1. Extraia todos os arquivos p. uma pasta de sua escolha. C:\Server

 

qui arquivos ?

 

Abra o NAVICAT e restaure o backup da DATABASE q esta inclusa no pacote.(que pacote)Vc vai achar o backup

(InterludeSvBAK.psc) na msm pasta onde vc extraiu o conteúdo do server..

 

se alguem puder me ajudar por msn ou pelo TeamViewer seria bom...obg desde jah!!

 

[email protected] @geziassoul

Link para o comentário
Compartilhar em outros sites

oi consegui colocar sserve pra rodar... aind não cheguei em cliente... mas tenho algumas considerações pra quem tá começando e é noob, noob, como eu rrsrrs

 

1. tou tentando colocar um high five, portanto não vem com backup

 

2. a rev q eu peguei é aquela que vem com o login server e a janelinha em java, já configurada pra host 127.0.0.1

e internal e external server * [asterisco]... não é necessário mexer em nada nela [ revs L2j_DataPack_BETA e L2j_Server_BETA]

 

3. vc não coloca, mas para configurar as tabela e fazer o caminho para o l2jdb é necessário antes do start login e start game server ir em tools e configurar o database installer [tem um turorial aki que ensina a fazer isso bem direitinho]

 

4. e ainda antes do start login e start game server ir em login, verificar o hexid... [tbm tem um tutorial aki, criando o hexid, q está perfeito... lembrem-se sempre de verificar se o hexid está presente no login e game server e q são iguais... seguindo passo a passo o tutorial não tem errro]

 

bem, é isso... a primeira parte está completa... agora vou tentar conectar o server ao cliente e depois aprender a configurar... primeira batalha ganha, falta a guerrra.... kkkkkkk

Link para o comentário
Compartilhar em outros sites

CRIANDO O SERVIDOR.

Nescessario:

Todos os arquivos e programas necessarios estão para download no meu 4Shared.

 

logo.gif

 

Download Softwares necessarios.

 

Java JDK

MySQL 5.0 ou MySQL 6.0

Navicat 8.0 Trial

NO-IP ou DDNS

FileEdit ou Editor ini

 

Podera escolher um servidor na zona de servidores.

 

Clique aqui!

 

 

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

1ª instale o JavaJDK.

2ª instale o MySQL 5.0 Server.

 

Instalando - MySQL 5.0 Server.

-Rode o arquivo executável (DUH).

-Aperte no botão Next para criar um novo exemplo.

 

-Selecione Detailed Configuration.

clipimage001gg3.jpg

 

-Server Machine

clipimage001sn7.jpg

 

-Next , Next

-Escolha a primeira opção para 20 jogadores.

clipimage001fk1.jpg

 

- NEXT , NEXT , NEXT

-Security Options ... Não marque nada !

clipimage001jv4.jpg

-EXECUTE

clipimage001vm1.jpg

->Agora voce tem configurado seu MySQL server com Login : root, sem senha e porta 3306.

 

3ª Instale o NAVICAT !

4ª No NAVICAT clique em connection e coloque em Host name/IP address "localhost" , port "3306" , Username "root" e deixe em branco password e clique em OK.

clipimage001ud7.jpg

-Ira aparecer um novo campo de conexão chamado "localhost". Certo iremos clicar com botão direito do mause e selecionar > New Database e dar o nome de l2jdb para sua nova database e clique em OK.

clipimage001bw1.jpg

 

 

5ª Pre-Configurado REV.

 

5.1. Extraia todos os arquivos p. uma pasta de sua escolha. C:\Server

 

image1oy4.jpg

5.2. Abra o NAVICAT e restaure o backup da DATABASE q esta inclusa no pacote. Vc vai achar o backup

(InterludeSvBAK.psc) na msm pasta onde vc extraiu o conteúdo do server.

image2wj5.jpg

 

5.3. Depois de feito va a pasta\Interlude Server\l2j-gameserver\dist\config\ e abra usandu o BLOCO DE NOTAS o arquivo server.proprierties

 

5.4. Edite os IPs colocando os seus respectivos.

 

image3st9.jpg

 

5.5. Vc pode mudar as rates do seu server no arquivo rates.proprierties

image4at4.jpg

 

Outra coisa …. SERVIDOR NAO MORDE ! Sinta-se livre para editar os arquivos .proprierties do seu gameserver !!! Apenas lembre de fazer um backup deles antes !

 

****Todos os NPCs vao estar no meiu de GIRAN. Sinta-se a vontade p. pegar o ID deles (segurar o shift e clicar no npc , usando um personagem GM) e dar um spawn onde vc desejar.

-Agora precisaremos rodar o "startloginserver.bat" (pasta login) e "startgameserver.bat" (pasta gameserver). Lembre seu servidor esta em modo de autocriação de conta, você precisarar ativa o arquivo "startaccountmanager.bat" desta vez.

 

serversva8hd9.jpg

Pronto o servidor esta rodando!!!

Se vc usar Roteador tera q abrir as portas 7777 (game server), e 2106 (login server).

 

Segundo passo: Client

 

Eh preciso ter a versão correspondente a seu cliente.

 

Download.

 

Usaremos um programa diferente para a edição do seu L2.ini que faz a conexão de você com o servidor.

Coloque o programa dentro da pasta system, abra ele, ele ira abrir um texto no bloco de notas procure pela linha em vermelho:

 

 

 

Depois de achado, você coloca o seu IP interno se for jogar em rede ou no mesmo PC.

Exemplo para jogar Offline:

ServerAddr=127.0.0.1

 

Para os players você coloca o NO IP (logo a baixo ensina a você criar uma conta no L2.ini.

Ex: l2jbrasil.servegame.com

 

Depois de editado o IP salve o arquivo e feche o bloco de notas normalmente.

Pronto No-Ip Editado!

 

NO-IP

 

Primeiramente faça seu cadastro no site: http://www.no-ip.com

 

registergs8.jpg

 

Depois de feito vc irá receber um e-mail para ativação do cadastro.

 

Com a account pronta :

 

1- Faça o Login no website

2- Vá em Hosts/Redirects e Clique em Add

3- No campo "Hostname" Digite o nome do seu servidor e logo abaixo escolha o complemento.

4- Clique em Create Host

Vá na sessão donwloads , escolha a plataforma q vc está usando e faça o download do SOFTWARE do NO-IP (DUC)

 

downloadqc4.jpg

 

Feito o download instale o programa e rode-o

 

Uma janela irá aparecer perguntando o Login e senha ... Ponha os mesmos q vc cadastrou no site

 

Feito isso o programa principal irá abrir com o link do seu redirecionamento, marque a caixinha do lado dele (caso ele não fique com a carinha igual a da figura abaixo , desmarque e marque a caixa ateh q fique igual)

 

ducex8.jpg

Depois de feito isso , seu No-IP está configurado e pronto para uso ! Note q vc pode fechar a tela principal dele q o mesmo continua rodando (veja figura abaixo)

 

standtp3.jpg

 

Agora vc soh tem q colocar no IP EXTERNO da configuraçao do seu server e no L2.ini dos clientes o REDIRECIONAMENTO Q VC CRIOU ! Nesse exemplo seria Nargenserver.servegame.com

 

Enjoy !!

 

 

 

ALguém poderia me ajudar, fiz todos os procedimentos, mas quando inicio o startserver aparece falied como segue em na image abaixo

erroserveri.jpg

GifOfLineageII.gif

 

Até os mais fortes Sucumbem.

Link para o comentário
Compartilhar em outros sites

@felipe

 

3 posts amigo, assim tu vai tomar warn facil

 

REINSTALE SEU JAVA

 

Aquele que aprendeu e reviveu aqui na l2jbrasil

Faço muitos trabalhos para esta comunidade, assim como tambem ajudo aos que precisão.

A VIDA E UMA CAIXINHA DE SUPRESAS, NAO DEIXE PARA DEPOIS O QUE PODES FAZER AGORA!

 

Link para o comentário
Compartilhar em outros sites

Caro ByJrmhp, você poderia me ajudar, sou novo nisso de criar server, fiz todos os procedimentos que tem na vido aula do l2Java, inicio normalmente o startloginserver, mas quando inicio o startgameserver, acontece esse erro, podeeria me escalrecer o que ded errado está acontecendo?

Tentei criar um server epilogue com [L2jServer] Epilogue Revision 4416 que baixei aki do l2jbrasil mesmo!

Abaixo o erro:

erronostartserver.jpg

Agradeço a atenção!

GifOfLineageII.gif

 

Até os mais fortes Sucumbem.

Link para o comentário
Compartilhar em outros sites

@divin

 

desativa o comunnity server nas configs do teu server

 

Aquele que aprendeu e reviveu aqui na l2jbrasil

Faço muitos trabalhos para esta comunidade, assim como tambem ajudo aos que precisão.

A VIDA E UMA CAIXINHA DE SUPRESAS, NAO DEIXE PARA DEPOIS O QUE PODES FAZER AGORA!

 

Link para o comentário
Compartilhar em outros sites

@divin

 

desativa o comunnity server nas configs do teu server

Não sei faze-lo, tem como você me dizer como faço tal coisa!

GifOfLineageII.gif

 

Até os mais fortes Sucumbem.

Link para o comentário
Compartilhar em outros sites

arquivo

 

options.ini

 

# =================================================================

# Configure panel community (Community board)

# =================================================================

# Panel Type Community

# - Full = new panel

# - Old = old panel

# - Off = off

CommunityType = off

BBSDefault = _bbshome

# Displayed in the community level characters

ShowLevelOnCommunityBoard = False

ShowStatusOnCommunityBoard = True

NamePageSizeOnCommunityBoard = 50

NamePerRowOnCommunityBoard = 5

 

deixe como está em vermelho

 

Aquele que aprendeu e reviveu aqui na l2jbrasil

Faço muitos trabalhos para esta comunidade, assim como tambem ajudo aos que precisão.

A VIDA E UMA CAIXINHA DE SUPRESAS, NAO DEIXE PARA DEPOIS O QUE PODES FAZER AGORA!

 

Link para o comentário
Compartilhar em outros sites

# This is the Community Board server configuration file.

EnableCommunityBoard = true

CommunityServerHostname = 192.168.1.107

CommunityServerPort = 9013

CommunityServerSqlDpId = 1

CommunityServerHexId = -6ae989b425fdc5b6343f03366f81108f

 

# NetCon configurations

# ================================================================

# TCP Server start

# ================================================================

 

# ExternalHostAddress: Use * bind all available IPs

# Default: *

ExternalHostAddress = 192.168.1.107

# ExternalPort: Use 0 bind all available Ports

# Default: 0

ExternalPort = 0

# ConnectionQueue: Maximum connections.

# Default: 50

ConnectionQueue = 50

 

# Default: False

FloodProtectionEnabled = true

# Default: 15

FastConnectionLimit = 15

# Default: 350

FastConnectionTime = 350

# Default: 700

NormalConnectionTime = 700

# Default: 50

MaxConnectionperIP = 50

# Default: False

IPBannEnabled = true

# Default:

IPBannList =

 

# ================================================================

# TCP Client start

# ================================================================

# SendBufferSize: DO NOT TOUCH!

# Default: 8192

SendBufferSize = 8192

# SendBufferSize: DO NOT TOUCH!

# Default: 8192

ReceiveBufferSize = 8192

 

Não achei o arquivo opitions.ini, mas achei um Comunityserver dentro da pasta config do gameserver?

E esse que tenho que colocar false?

GifOfLineageII.gif

 

Até os mais fortes Sucumbem.

Link para o comentário
Compartilhar em outros sites

sim bota false que acaba o erro

 

Aquele que aprendeu e reviveu aqui na l2jbrasil

Faço muitos trabalhos para esta comunidade, assim como tambem ajudo aos que precisão.

A VIDA E UMA CAIXINHA DE SUPRESAS, NAO DEIXE PARA DEPOIS O QUE PODES FAZER AGORA!

 

Link para o comentário
Compartilhar em outros sites

galera ja fiz de tudo pra fazer meu char ADM mais nau consigo naum sei pq tipo... Segui todo o tutorial ai quando eu logo eu digito os comandos mais nau aparece ah janela. quando vc escreve //admin nau aparece nada !!! se vcs puderem me ajudar ficarei muito grato a todos ;D

Link para o comentário
Compartilhar em outros sites

oi gente. no meu evento de TVT as portas do coliseu estão abertas, como eu mudo para fechar na hora do evento e abrir depois que acabar? tem como por para acontecer o TVT em locais diferentes cada vez que iniciar, tipo dentro de Oren? última coisa, não sei alterar o tempo de buff e eu queria por tudo para 1 hora e os iguais CoV 4 minutos mais não sei como ajudae pliss. [email protected]

 

 

# Door ID's to open/close on start/end.

# Not supported in instance, use xml template for defining doors.

# Example: TvTDoorsToOpen = 1;2;3;4;5;6

# Default: No Default Value Set.

TvTDoorsToOpen =

TvTDoorsToClose = 24190001;24190002;24190003;24190004

 

ta ai

homem-lobisomen.gif
Link para o comentário
Compartilhar em outros sites

E ai galera beleza!! Aqui to fazendo tudo certo mais quando chega na parte do no-ip,nao entra :/. Vou posta tudo que estou fazendo para vcs verem se estou fazendo alguma coisas errada...

 

printporta.jpg

Aqui sao as portas aqual o tutor pedi para abril pelo visto acho que esta ok

 

printnoip.jpg

Aqui e meu no-ip configurado pelo visto esta tudo ok

 

printlonggame.jpg

Aqui configurei o longserve e gameserve com o ip host do no-ip tudo ok

 

printl2ini.jpg

Aqui e o l2.ini da minha system configurado pelo ip host do no-ip tudo ok

 

Agora quando coloco para roda...

 

printlonggameteste.jpg

Aqui tudo ocorre sem erro tbm pelo visto tudo ok

 

mais... quando vou entra no servido nao passa nem do long...

 

printserve.jpg

 

 

Se vc poderem me ajuda desde ja agradeço eu estou usando o rev 817 do l2frozen pelo vista a mais estavel delas.

 

Obs: Eu uso o modem speedtouch para quem nao consegui indentifica nas configuraçao... uso um rotiado wireless com uma placa de rede wireless.

 

 

Ai gente ajuda ai ainda estou com msm problema.... plisss hellppeeeee :sad:

Link para o comentário
Compartilhar em outros sites

Kelvin bom dia tudo bem?

Espero que sim.

 

Bom baixei todos os programas que você mencionou acima, e instalei corretamente.

No Navicat está tudo certinho também.

So que quando vou rodar o Start e Loguin SERVER aparece a seguinte mensagem:

 

SEU SISTEMA NÃO ESTA RECONHECENDO O JAVA.

 

Essa mensagem não para de aparecer no Start e Loguin.

 

Já desinstalei e reinstalei o JAVA mais permanece o mesmo problema.

Sabe qual a possivel causa?

 

Meu comp***dor é Windowns Seven.

 

 

Quando era XP o Start e Loguin Server até rodou mais na página de criar o char aconteceu o mesmo problema do nosso amigo Cássio Douglas o server não passa do Loguin.

Link para o comentário
Compartilhar em outros sites

NAO TO CONSEGUINDO TERMINAR ...QUANDO ABRO O START GAME SERVE E O START LOGIN SERVER APAREVE "APERTE QUALQUER BOTAO PARA CONTINUAR" QUANDO APERTO A TELA FECHA !!! O QUE SERA Q TA ERRADO ....JAH REINSTALEI MUITAS VEZES ...TA CERTINHO!!

 

INSTALEI O JAVA JDK 6,NAVICATE 9.0, MY SQL 5.0..

Link para o comentário
Compartilhar em outros sites

  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.






  • Patrocinadores

  • Quem Está Navegando

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

    • Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?    
    • muchas gracias muy lindos NPC 🙂
    • relaxa jovem gafanhoto, testa as quests. e posTa os erros indesejaveis.  
    • Se alguém pudesse me ensinar como codificar as missões, eu ficaria feliz em fazer isso sozinho ou pelo menos ajudar. Eu realmente quero jogar em um servidor onde todas as quests funcionem bem e melhor ainda se você puder fazer quests customizadas!
    • mas no interlude, nem todas as quests de class,  vai mostrar onde tem que ir, ate o reborn nao mostrava quando era interlude, só mostrou depois que eles colocaram client classic pra rodar, e ficou melhor ainda quando virou hellbound em diante, mas ha sim alguma chance de modificar isso direto no script para fazer igualmente, só basta te um pouco de paciencia e persistencia exato
    • 408_PathToElvenwizard dá Orion eu tive que mexer tbm, até modifiquei e consegui deixar ela igual do Classic, com a seta e a marcação no mapa. (não retail IL) Dá pra importar py de várias revs, o foda é que não da regular as quest py através do debug em tempo real, pelo menos eu não consegui rsrs
    • Hasta el momento todas las QUESTS son completables si te guias con un tutorial de youtube. El problema es que tienen bugs de locacion y de subquests que no avanzan o no te marcan correctamente a donde ir en el mapa, cosa que en Retail si se ve como corresponde.
    • estranho, mas pelo menos a galera nunca reclamo das quests quando tinha aberto 5x, geral fez class primeira e segunda job, poucos que compraram a class
    • en RUSaCis-3.5 data pack, las Quests estan en formato .java y son diferentes a como estan redactadas en jOrion y jFrozen 1.5 (ProyectX) package net.sf.l2j.gameserver.scripting.quest; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.enums.Paperdoll; import net.sf.l2j.gameserver.enums.QuestStatus; import net.sf.l2j.gameserver.enums.actors.ClassId; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.scripting.QuestState; public class Q224_TestOfSagittarius extends SecondClassQuest { private static final String QUEST_NAME = "Q224_TestOfSagittarius"; // Items private static final int BERNARD_INTRODUCTION = 3294; private static final int HAMIL_LETTER_1 = 3295; private static final int HAMIL_LETTER_2 = 3296; private static final int HAMIL_LETTER_3 = 3297; private static final int HUNTER_RUNE_1 = 3298; private static final int HUNTER_RUNE_2 = 3299; private static final int TALISMAN_OF_KADESH = 3300; private static final int TALISMAN_OF_SNAKE = 3301; private static final int MITHRIL_CLIP = 3302; private static final int STAKATO_CHITIN = 3303; private static final int REINFORCED_BOWSTRING = 3304; private static final int MANASHEN_HORN = 3305; private static final int BLOOD_OF_LIZARDMAN = 3306; private static final int CRESCENT_MOON_BOW = 3028; private static final int WOODEN_ARROW = 17; // Rewards private static final int MARK_OF_SAGITTARIUS = 3293; // NPCs private static final int BERNARD = 30702; private static final int HAMIL = 30626; private static final int SIR_ARON_TANFORD = 30653; private static final int VOKIAN = 30514; private static final int GAUEN = 30717; // Monsters private static final int ANT = 20079; private static final int ANT_CAPTAIN = 20080; private static final int ANT_OVERSEER = 20081; private static final int ANT_RECRUIT = 20082; private static final int ANT_PATROL = 20084; private static final int ANT_GUARD = 20086; private static final int NOBLE_ANT = 20089; private static final int NOBLE_ANT_LEADER = 20090; private static final int BREKA_ORC_SHAMAN = 20269; private static final int BREKA_ORC_OVERLORD = 20270; private static final int MARSH_STAKATO_WORKER = 20230; private static final int MARSH_STAKATO_SOLDIER = 20232; private static final int MARSH_STAKATO_DRONE = 20234; private static final int MARSH_SPIDER = 20233; private static final int ROAD_SCAVENGER = 20551; private static final int MANASHEN_GARGOYLE = 20563; private static final int LETO_LIZARDMAN = 20577; private static final int LETO_LIZARDMAN_ARCHER = 20578; private static final int LETO_LIZARDMAN_SOLDIER = 20579; private static final int LETO_LIZARDMAN_WARRIOR = 20580; private static final int LETO_LIZARDMAN_SHAMAN = 20581; private static final int LETO_LIZARDMAN_OVERLORD = 20582; private static final int SERPENT_DEMON_KADESH = 27090; public Q224_TestOfSagittarius() { super(224, "Test Of Sagittarius"); setItemsIds(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW); addQuestStart(BERNARD); addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN); addMyDying(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = event; QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; // BERNARD if (event.equalsIgnoreCase("30702-04.htm")) { st.setState(QuestStatus.STARTED); st.setCond(1); playSound(player, SOUND_ACCEPT); giveItems(player, BERNARD_INTRODUCTION, 1); if (giveDimensionalDiamonds39(player)) htmltext = "30702-04a.htm"; } // HAMIL else if (event.equalsIgnoreCase("30626-03.htm")) { st.setCond(2); playSound(player, SOUND_MIDDLE); takeItems(player, BERNARD_INTRODUCTION, 1); giveItems(player, HAMIL_LETTER_1, 1); } else if (event.equalsIgnoreCase("30626-07.htm")) { st.setCond(5); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_1, 10); giveItems(player, HAMIL_LETTER_2, 1); } // SIR_ARON_TANFORD else if (event.equalsIgnoreCase("30653-02.htm")) { st.setCond(3); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_1, 1); } // VOKIAN else if (event.equalsIgnoreCase("30514-02.htm")) { st.setCond(6); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_2, 1); } return htmltext; } @Override public String onTalk(Npc npc, Player player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; switch (st.getState()) { case CREATED: if (player.getClassId() != ClassId.ROGUE && player.getClassId() != ClassId.ELVEN_SCOUT && player.getClassId() != ClassId.ASSASSIN) htmltext = "30702-02.htm"; else if (player.getStatus().getLevel() < 39) htmltext = "30702-01.htm"; else htmltext = "30702-03.htm"; break; case STARTED: int cond = st.getCond(); switch (npc.getNpcId()) { case BERNARD: htmltext = "30702-05.htm"; break; case HAMIL: if (cond == 1) htmltext = "30626-01.htm"; else if (cond == 2 || cond == 3) htmltext = "30626-04.htm"; else if (cond == 4) htmltext = "30626-05.htm"; else if (cond > 4 && cond < 8) htmltext = "30626-08.htm"; else if (cond == 8) { htmltext = "30626-09.htm"; st.setCond(9); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_2, 10); giveItems(player, HAMIL_LETTER_3, 1); } else if (cond > 8 && cond < 12) htmltext = "30626-10.htm"; else if (cond == 12) { htmltext = "30626-11.htm"; st.setCond(13); playSound(player, SOUND_MIDDLE); } else if (cond == 13) htmltext = "30626-12.htm"; else if (cond == 14) { htmltext = "30626-13.htm"; takeItems(player, BLOOD_OF_LIZARDMAN, -1); takeItems(player, CRESCENT_MOON_BOW, 1); takeItems(player, TALISMAN_OF_KADESH, 1); giveItems(player, MARK_OF_SAGITTARIUS, 1); rewardExpAndSp(player, 54726, 20250); player.broadcastPacket(new SocialAction(player, 3)); playSound(player, SOUND_FINISH); st.exitQuest(false); } break; case SIR_ARON_TANFORD: if (cond == 2) htmltext = "30653-01.htm"; else if (cond > 2) htmltext = "30653-03.htm"; break; case VOKIAN: if (cond == 5) htmltext = "30514-01.htm"; else if (cond == 6) htmltext = "30514-03.htm"; else if (cond == 7) { htmltext = "30514-04.htm"; st.setCond(8); playSound(player, SOUND_MIDDLE); takeItems(player, TALISMAN_OF_SNAKE, 1); } else if (cond > 7) htmltext = "30514-05.htm"; break; case GAUEN: if (cond == 9) { htmltext = "30717-01.htm"; st.setCond(10); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_3, 1); } else if (cond == 10) htmltext = "30717-03.htm"; else if (cond == 11) { htmltext = "30717-02.htm"; st.setCond(12); playSound(player, SOUND_MIDDLE); takeItems(player, MANASHEN_HORN, 1); takeItems(player, MITHRIL_CLIP, 1); takeItems(player, REINFORCED_BOWSTRING, 1); takeItems(player, STAKATO_CHITIN, 1); giveItems(player, CRESCENT_MOON_BOW, 1); giveItems(player, WOODEN_ARROW, 10); } else if (cond > 11) htmltext = "30717-04.htm"; break; } break; case COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; } @Override public void onMyDying(Npc npc, Creature killer) { final Player player = killer.getActingPlayer(); final QuestState st = checkPlayerState(player, npc, QuestStatus.STARTED); if (st == null) return; switch (npc.getNpcId()) { case ANT: case ANT_CAPTAIN: case ANT_OVERSEER: case ANT_RECRUIT: case ANT_PATROL: case ANT_GUARD: case NOBLE_ANT: case NOBLE_ANT_LEADER: if (st.getCond() == 3 && dropItems(player, HUNTER_RUNE_1, 1, 10, 500000)) st.setCond(4); break; case BREKA_ORC_SHAMAN: case BREKA_ORC_OVERLORD: if (st.getCond() == 6 && dropItems(player, HUNTER_RUNE_2, 1, 10, 500000)) { st.setCond(7); giveItems(player, TALISMAN_OF_SNAKE, 1); } break; case MARSH_STAKATO_WORKER: case MARSH_STAKATO_SOLDIER: case MARSH_STAKATO_DRONE: if (st.getCond() == 10 && dropItems(player, STAKATO_CHITIN, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING)) st.setCond(11); break; case MARSH_SPIDER: if (st.getCond() == 10 && dropItems(player, REINFORCED_BOWSTRING, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case ROAD_SCAVENGER: if (st.getCond() == 10 && dropItems(player, MITHRIL_CLIP, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN)) st.setCond(11); break; case MANASHEN_GARGOYLE: if (st.getCond() == 10 && dropItems(player, MANASHEN_HORN, 1, 1, 100000) && player.getInventory().hasItems(REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case LETO_LIZARDMAN: case LETO_LIZARDMAN_ARCHER: case LETO_LIZARDMAN_SOLDIER: case LETO_LIZARDMAN_WARRIOR: case LETO_LIZARDMAN_SHAMAN: case LETO_LIZARDMAN_OVERLORD: if (st.getCond() == 13) { if (((player.getInventory().getItemCount(BLOOD_OF_LIZARDMAN) - 120) * 5) > Rnd.get(100)) { playSound(player, SOUND_BEFORE_BATTLE); takeItems(player, BLOOD_OF_LIZARDMAN, -1); addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } else dropItemsAlways(player, BLOOD_OF_LIZARDMAN, 1, 0); } break; case SERPENT_DEMON_KADESH: if (st.getCond() == 13) { if (player.getInventory().getItemIdFrom(Paperdoll.RHAND) == CRESCENT_MOON_BOW) { st.setCond(14); playSound(player, SOUND_MIDDLE); giveItems(player, TALISMAN_OF_KADESH, 1); } else addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } break; } } }  
×
×
  • 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.