Ir para conteúdo
  • Cadastre-se

L2JBrasil 3.0 Oficial


Tayran.JavaDev

Posts recomendados

  • L2JBr ADM
10 minutos atrás, l2triedge disse:

tem um bug em gmshop quanod vou em armor/ grade D/ Boots/ quuando clico em brigantine bota da critical erro

 

Aparece algum erro no console nesse momento? Qual o código do critical error? 

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites


2 horas atrás, l2triedge disse:

cara eu tava usando o 3.0.0 to baixaindo o 3.0.2 ja  ate deletei o antgo desculpa n ter visto o erro.... so q quuando clica na bota da critico.. tou baixando agr o mas atualizado se der erro lhe aviso

Fiz o teste aqui e está tudo normal.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

como falei no 3.0.0 tem bug no gm shop e qusndo vou compra algum nos npc shop da critico erro abaixo

General protection fault!

history: NWnd Util::IteminfoToNCParam <- UNetworkHandler::Tick <- Function Name=BuyListPacket <-

UGameEngine::Tick <- UpdateWold <- MainLoop

 

no meu pc so deu pra rodar o 3.0.0 por favor alguem pode resolver pra mim....

 

sera q er no meu client?

 

@Tayran.JavaDev pode me arrumar o backup do 3.0.2 sou iniciante e nao sei mecher nesse negocio de database instaler 

 

uso o mysql 6.0 pega ner?

Link para o comentário
Compartilhar em outros sites

1 hora atrás, l2triedge disse:

 

@Tayran.JavaDev pode me arrumar o backup do 3.0.2 sou iniciante e nao sei mecher nesse negocio de database instaler 

 

uso o mysql 6.0 pega ner?

 

Provavelmente é seu cliente esse problema no GMShop, você tem que usar o MySql 5.7.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

Em 08/11/2017 at 11:07, vert disse:

 

Sim Sim Black, mas em questão de desempenho, o front-end de um site lê XML gastando muito mais recursos (memória, processador, disco rígido ou flash do servidor...) do que para ler um JSON retornado pelo back-end (através do php, grails, ...), saca ? 

Beleza, obrigado o/

Estou pensando em em desenvolver um site free, porém bom, para os membros (seria lançado junto com alguma versão do servidor no github), suas skills de design sem dúvida são melhores que as minhas, se quiser desenvolver um site em html, eu passo ele pra php (provavelmente utilizando o Laravel - junto com um tutorial pro pessoal). Se topar, utilize Flex para fazer a estrutura e alinhar os itens do site. Qualquer coisa, é só me dar um toque o/

Sim meu mano. Mas acho que me compreendeu errado, ali digo que é através do back usando parâmetros do PHP. Mas enfim, quero muito criar algo free que vá ser utilizado pelo forum, mas criar algo exclusivamente pro projeto do BRASIL é ainda mais animador. Bora conversar sobre oque podemos criar. 

Em 08/11/2017 at 13:44, Grundor disse:


O uso de XML não tem se mostrado tanto eficaz, com o MySQL é possível fazer Joins entre tabelas e deixar que o serviço de banco de dados decida qual é a melhor forma de processar esses dados. 
Se o dado precisa ser combinado com outro não deve estar em um arquivo estático, até porque esse dado estará em disco, quanto o banco de dados utiliza recursos de memória para entregar essa informação de maneira mais rápida e eficiente para o programa. 

 

Sim as joins facilitam muito, porem entramos nesse assunto de XML por causa das atuais packs que estão utlizando muitas tabelas em XML e na hora de criar um sistema utilizando tais tabelas que não existe mais a galera meio que buga, e acabam utilizando websites e paineis admins simples. Vou ficar aguardando alguns dias mais para ver como vai ficar o banco de dados da pack e ai entro em contato com o VERT para criarmos algo elegante pro projeto. 

R2d3uef.png

Link para o comentário
Compartilhar em outros sites

Galera vou ter que ficar off ate terça,  motivos de Saúde. Enquanto isso Grundor. Elfo e contribuidores irão continuar. Terça volto com força total, se tiver Issues para resolver quando voltar, vai ser melhor entao Continue nos ajudando testando e reportando.  Ia soltar uma atualização grande hoje.  Mas nao deu tempo. Fica para quando eu voltar.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link para o comentário
Compartilhar em outros sites

Em 10/11/2017 at 20:41, Tayran.JavaDev disse:

Galera vou ter que ficar off ate terça,  motivos de Saúde. Enquanto isso Grundor. Elfo e contribuidores irão continuar. Terça volto com força total, se tiver Issues para resolver quando voltar, vai ser melhor entao Continue nos ajudando testando e reportando.  Ia soltar uma atualização grande hoje.  Mas nao deu tempo. Fica para quando eu voltar.

Caro amigo @Tayran Espero que esteja bem. volte logo em nossa missão de fazer uma comunidade divertida que possamos ajudar uns aos outros.

Link para o comentário
Compartilhar em outros sites

Em 09/11/2017 at 15:02, l2triedge disse:

nao consegui instala esse nao 

Mandei em sua caixa de entrada. 2 links MYSQL 5.7

Em resposta do moderador @Tayran
 "você tem que usar o MySql 5.7."

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
Em 10/11/2017 at 00:38, Blackdiamond disse:

Sim meu mano. Mas acho que me compreendeu errado, ali digo que é através do back usando parâmetros do PHP. Mas enfim, quero muito criar algo free que vá ser utilizado pelo forum, mas criar algo exclusivamente pro projeto do BRASIL é ainda mais animador. Bora conversar sobre oque podemos criar. 

Sim as joins facilitam muito, porem entramos nesse assunto de XML por causa das atuais packs que estão utlizando muitas tabelas em XML e na hora de criar um sistema utilizando tais tabelas que não existe mais a galera meio que buga, e acabam utilizando websites e paineis admins simples. Vou ficar aguardando alguns dias mais para ver como vai ficar o banco de dados da pack e ai entro em contato com o VERT para criarmos algo elegante pro projeto. 

Sim, vc por em xml vc acaba limitado tendo que construir seus próprios filtros e mecanismos de busca, o que prejudicaria e limitaria alguns mods. A performance de passar as coisas para XML não é justificável. Tanto que embora existam xml para skills, foi necessário uma tabela para vincular as classes e as skills que cada uma aprende, poderia estar tudo no banco de dados. O tratamento de dados de L2j hoje em dia é muito precário, a arquitetura que esse sistema foi construida também não é das melhores. Mas vamos tentar fazer um bom trabalho nessa pack.

11 horas atrás, Diego Fonseca disse:

Show!

Eu gostaria de participar da forma que for possível.

 

Precisamo de ajuda para testar! ;)

 

 

 

Pessoal, alguém conseguiu montar o servidor no linux?

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Opa, voltando aq, vou acompanhar o projeto, ajudar no q for preciso! Nice Work!

Cgm5YQy.png

                                                                                          Divulgue seu Server, Cadastre seu servidor de Lineage 2

 

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

 

Test Server IP :

149.56.180.90 

(Deploy da versão 3.0.2-rc)

 

 

Criação de contas automáticas.

Rate 100x

Modificar o ip no seu l2.ini ou arquivo host do windows.

O servidor pode apresentar instabilidades, os itens podem ser removidos e contas deletadas sem aviso prévio, o objetivo do servidor é apenas para testes.

  • Gostei 4
  • Amei 4

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

@Grundor 

Bom dia amigos, gostaria de ajudar como tester, notei que vcs talvez precisariam de uma ajuda para testar os commites, podem contar cmg, tenho certa experiência e estou com tempo livre durante esse final de ano.

Abraços, sucesso no projeto.

zf3sc.png

Thanks PsicotikoO pela Assinatura

Link para o comentário
Compartilhar em outros sites

Em 14/11/2017 at 15:00, Grundor disse:

 

Test Server IP :

149.56.180.90 

(Deploy da versão 3.0.2-rc)

 

 

Criação de contas automáticas.

Rate 100x

Modificar o ip no seu l2.ini ou arquivo host do windows.

O servidor pode apresentar instabilidades, os itens podem ser removidos e contas deletadas sem aviso prévio, o objetivo do servidor é apenas para testes.

Não estou conseguindo logar! usei esse ip no l2.ini 149.56.180.90 

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
21 minutos atrás, KondZilla disse:

Não estou conseguindo logar! usei esse ip no l2.ini 149.56.180.90 

Estavamos fazendo um teste, não achei que iria causar um downtime tão longo.

Já está disponível novamente, estarei logado (afk) mas deixarei o petition ligado e o pm tbm.

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

@Grundor vi que você comitou um compose, você já iniciou algum teste de rodar o LogonServer ou GameServer dentro de um container? Estava com isso na cabeça uns dias atrás, caso ache que valha o esforço eu posso estar montando essas imagens no fds e mandando PR 

Editado por HangLooseE

cyCrFTF.jpg

Obrigado pelo presente Mickaelll

Corintiano Fanático;

Estudante de T.I e l2jbrasileiro nas horas vagas.

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
4 horas atrás, HangLooseE disse:

@Grundor vi que você comitou um compose, você já iniciou algum teste de rodar o LogonServer ou GameServer dentro de um container? Estava com isso na cabeça uns dias atrás, caso ache que valha o esforço eu posso estar montando essas imagens no fds e mandando PR 

Sim, comecei, já está compilando e montando... falta só arrumar a questão do run do login server e do game server... to pensando em separá-los em 2 containers, até porque assim daria para rodar multiplos game servers.

Precisa também automatizar a geração do hexid e criar um volume para os arquivos de configuração de forma fique fácil editar os arquivos por lá, o tutorial do docker tá pronto, falta só conseguir fazer rodar.

To pensando em depois que tiver ok subir isso em formato de imagem no docker hub.

Vai ser muito fácil montar um servidor de lineage 2 assim... pelo menos pra brincar é claro, já que pra rodar em produção em docker deveria ser possível fazer scale e load balancing com game server.

 

  • Gostei 1
  • Amei 1
  • Confuso 1

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

6 horas atrás, Grundor disse:

Sim, comecei, já está compilando e montando... falta só arrumar a questão do run do login server e do game server... to pensando em separá-los em 2 containers, até porque assim daria para rodar multiplos game servers.

Precisa também automatizar a geração do hexid e criar um volume para os arquivos de configuração de forma fique fácil editar os arquivos por lá, o tutorial do docker tá pronto, falta só conseguir fazer rodar.

To pensando em depois que tiver ok subir isso em formato de imagem no docker hub.

Vai ser muito fácil montar um servidor de lineage 2 assim... pelo menos pra brincar é claro, já que pra rodar em produção em docker deveria ser possível fazer scale e load balancing com game server.

 

Boa, sobre o Scale usando o K8S/Swarm fica bem de boa, se precisar de ajuda nessa parte de conteiner me avisa, trabalho a um tempinho já e posso passar alguma XP.

Sobre a separação em conteiners distintos acho super justo, até para fazer a resiliência de cada conteiner, se cair o login pelo menos o conteiner do GS continua up. 

Se você ja tiver uma branch com essa iniciativa e puder me passar eu posso ir dando uma brincada e caso eu evolua em algo eu mando o commit pra ti.

Editado por HangLooseE

cyCrFTF.jpg

Obrigado pelo presente Mickaelll

Corintiano Fanático;

Estudante de T.I e l2jbrasileiro nas horas vagas.

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
2 horas atrás, HangLooseE disse:

Boa, sobre o Scale usando o K8S/Swarm fica bem de boa, se precisar de ajuda nessa parte de conteiner me avisa, trabalho a um tempinho já e posso passar alguma XP.

Sobre a separação em conteiners distintos acho super justo, até para fazer a resiliência de cada conteiner, se cair o login pelo menos o conteiner do GS continua up. 

Se você ja tiver uma branch com essa iniciativa e puder me passar eu posso ir dando uma brincada e caso eu evolua em algo eu mando o commit pra ti.

Vou te adicionar ao grupo de devs da l2jbrasil, estamos batendo um papo lá sobre isso.

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Em 16/11/2017 at 10:07, Grundor disse:

Precisa também automatizar a geração do hexid e criar um volume para os arquivos de configuração de forma fique fácil editar os arquivos por lá, o tutorial do docker tá pronto, falta só conseguir fazer rodar.

@Grundor Você pode usar algo como isso pra automatizar a geração do hexid

echo "1" | ./register.sh && cp hexid.txt $path_to_gameserver/config/other/

Nesse caso, iria gerar o hexid para o serverId 1

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
Em 17/11/2017 at 21:02, KhayrusS disse:

@Grundor Você pode usar algo como isso pra automatizar a geração do hexid


echo "1" | ./register.sh && cp hexid.txt $path_to_gameserver/config/other/

Nesse caso, iria gerar o hexid para o serverId 1

Eu poderia estar utilizando um hexid "mock" para essa tarefa? Ou então usar o hexId como uma variável do docker? ;)

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • 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.